diff -Nru mysql-5.5-5.5.20/client/CMakeLists.txt mysql-5.5-5.5.22/client/CMakeLists.txt --- mysql-5.5-5.5.20/client/CMakeLists.txt 2011-12-16 19:52:07.000000000 +0000 +++ mysql-5.5-5.5.22/client/CMakeLists.txt 2012-03-02 19:44:45.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru mysql-5.5-5.5.20/client/mysqldump.c mysql-5.5-5.5.22/client/mysqldump.c --- mysql-5.5-5.5.20/client/mysqldump.c 2011-12-16 19:52:07.000000000 +0000 +++ mysql-5.5-5.5.22/client/mysqldump.c 2012-03-02 19:44:45.000000000 +0000 @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -77,6 +77,9 @@ /* Size of buffer for dump's select query */ #define QUERY_LENGTH 1536 +/* Size of comment buffer. */ +#define COMMENT_LENGTH 2048 + /* ignore table flags */ #define IGNORE_NONE 0x00 /* no ignore */ #define IGNORE_DATA 0x01 /* don't dump data for this table */ @@ -105,7 +108,7 @@ opt_dump_triggers= 0, opt_routines=0, opt_tz_utc=1, opt_slave_apply= 0, opt_include_master_host_port= 0, - opt_events= 0, + opt_events= 0, opt_comments_used= 0, opt_alltspcs=0, opt_notspcs= 0; static my_bool insert_pat_inited= 0, debug_info_flag= 0, debug_check_flag= 0; static ulong opt_max_allowed_packet, opt_net_buffer_length; @@ -539,6 +542,8 @@ static int dump_tablespaces_for_tables(char *db, char **table_names, int tables); static int dump_tablespaces_for_databases(char** databases); static int dump_tablespaces(char* ts_where); +static void print_comment(FILE *sql_file, my_bool is_error, const char *format, + ...); /* @@ -562,6 +567,8 @@ vfprintf(stderr, fmt, args); va_end(args); + fflush(stderr); + DBUG_VOID_RETURN; } @@ -631,19 +638,19 @@ } else if (!opt_compact) { - if (opt_comments) - { - fprintf(sql_file, - "-- MySQL dump %s Distrib %s, for %s (%s)\n--\n", - DUMP_VERSION, MYSQL_SERVER_VERSION, SYSTEM_TYPE, MACHINE_TYPE); - fprintf(sql_file, "-- Host: %s Database: %s\n", - current_host ? current_host : "localhost", db_name ? db_name : - ""); - fputs("-- ------------------------------------------------------\n", - sql_file); - fprintf(sql_file, "-- Server version\t%s\n", - mysql_get_server_info(&mysql_connection)); - } + print_comment(sql_file, 0, + "-- MySQL dump %s Distrib %s, for %s (%s)\n--\n", + DUMP_VERSION, MYSQL_SERVER_VERSION, SYSTEM_TYPE, + MACHINE_TYPE); + print_comment(sql_file, 0, "-- Host: %s Database: %s\n", + current_host ? current_host : "localhost", + db_name ? db_name : ""); + print_comment(sql_file, 0, + "-- ------------------------------------------------------\n" + ); + print_comment(sql_file, 0, "-- Server version\t%s\n", + mysql_get_server_info(&mysql_connection)); + if (opt_set_charset) fprintf(sql_file, "\n/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;" @@ -701,18 +708,16 @@ fprintf(sql_file, "/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;\n"); fputs("\n", sql_file); - if (opt_comments) + + if (opt_dump_date) { - if (opt_dump_date) - { - char time_str[20]; - get_date(time_str, GETDATE_DATE_TIME, 0); - fprintf(sql_file, "-- Dump completed on %s\n", - time_str); - } - else - fprintf(sql_file, "-- Dump completed\n"); + char time_str[20]; + get_date(time_str, GETDATE_DATE_TIME, 0); + print_comment(sql_file, 0, "-- Dump completed on %s\n", time_str); } + else + print_comment(sql_file, 0, "-- Dump completed\n"); + check_io(sql_file); } } /* write_footer */ @@ -786,6 +791,9 @@ extended_insert= opt_drop= opt_lock= opt_disable_keys= opt_autocommit= opt_create_db= 0; break; + case 'i': + opt_comments_used= 1; + break; case 'I': case '?': usage(); @@ -807,11 +815,12 @@ opt_disable_keys= lock_tables= opt_set_charset= 0; break; case (int) OPT_COMPACT: - if (opt_compact) - { - opt_comments= opt_drop= opt_disable_keys= opt_lock= 0; - opt_set_charset= 0; - } + if (opt_compact) + { + opt_comments= opt_drop= opt_disable_keys= opt_lock= 0; + opt_set_charset= 0; + } + break; case (int) OPT_TABLES: opt_databases=0; break; @@ -1635,20 +1644,20 @@ } -/* +/** Quote and print a string. - SYNOPSIS - print_quoted_xml() - xml_file - output file - str - string to print - len - its length + @param xml_file - Output file. + @param str - String to print. + @param len - Its length. + @param is_attribute_name - A check for attribute name or value. - DESCRIPTION + @description Quote '<' '>' '&' '\"' chars and print a string to the xml_file. */ -static void print_quoted_xml(FILE *xml_file, const char *str, ulong len) +static void print_quoted_xml(FILE *xml_file, const char *str, ulong len, + my_bool is_attribute_name) { const char *end; @@ -1667,6 +1676,14 @@ case '\"': fputs(""", xml_file); break; + case ' ': + /* Attribute names cannot contain spaces. */ + if (is_attribute_name) + { + fputs("_", xml_file); + break; + } + /* fall through */ default: fputc(*str, xml_file); break; @@ -1727,7 +1744,7 @@ fputs(attribute_name, xml_file); fputc('\"', xml_file); - print_quoted_xml(xml_file, attribute_value, strlen(attribute_value)); + print_quoted_xml(xml_file, attribute_value, strlen(attribute_value), 0); fputc('\"', xml_file); attribute_name= va_arg(arg_list, char *); @@ -1767,13 +1784,52 @@ fputs("<", xml_file); fputs(stag_atr, xml_file); fputs("\"", xml_file); - print_quoted_xml(xml_file, sval, strlen(sval)); + print_quoted_xml(xml_file, sval, strlen(sval), 0); fputs("\" xsi:nil=\"true\" />", xml_file); fputs(line_end, xml_file); check_io(xml_file); } +/** + Print xml CDATA section. + + @param xml_file - output file + @param str - string to print + @param len - length of the string + + @note + This function also takes care of the presence of '[[>' + string in the str. If found, the CDATA section is broken + into two CDATA sections, and ]]. +*/ + +static void print_xml_cdata(FILE *xml_file, const char *str, ulong len) +{ + const char *end; + + fputs("')) + { + fputs("]]]]>", xml_file); + str += 2; + continue; + } + /* fall through */ + default: + fputc(*str, xml_file); + break; + } + } + fputs("\n]]>\n", xml_file); + check_io(xml_file); +} + + /* Print xml tag with many attributes. @@ -1783,6 +1839,7 @@ row_name - xml tag name tableRes - query result row - result row + str_create - create statement header string DESCRIPTION Print tag with many attribute to the xml_file. Format is: @@ -1792,9 +1849,13 @@ */ static void print_xml_row(FILE *xml_file, const char *row_name, - MYSQL_RES *tableRes, MYSQL_ROW *row) + MYSQL_RES *tableRes, MYSQL_ROW *row, + const char *str_create) { uint i; + my_bool body_found= 0; + char *create_stmt_ptr= NULL; + ulong create_stmt_len= 0; MYSQL_FIELD *field; ulong *lengths= mysql_fetch_lengths(tableRes); @@ -1805,19 +1866,109 @@ { if ((*row)[i]) { - fputc(' ', xml_file); - print_quoted_xml(xml_file, field->name, field->name_length); - fputs("=\"", xml_file); - print_quoted_xml(xml_file, (*row)[i], lengths[i]); - fputc('"', xml_file); - check_io(xml_file); + /* For 'create' statements, dump using CDATA. */ + if ((str_create) && (strcmp(str_create, field->name) == 0)) + { + create_stmt_ptr= (*row)[i]; + create_stmt_len= lengths[i]; + body_found= 1; + } + else + { + fputc(' ', xml_file); + print_quoted_xml(xml_file, field->name, field->name_length, 1); + fputs("=\"", xml_file); + print_quoted_xml(xml_file, (*row)[i], lengths[i], 0); + fputc('"', xml_file); + check_io(xml_file); + } + } + } + + if (create_stmt_len) + { + DBUG_ASSERT(body_found); + fputs(">\n", xml_file); + print_xml_cdata(xml_file, create_stmt_ptr, create_stmt_len); + fprintf(xml_file, "\t\t\n", row_name); + } + else + fputs(" />\n", xml_file); + + check_io(xml_file); +} + + +/** + Print xml comments. + + @param xml_file - output file + @param len - length of comment message + @param comment_string - comment message + + @description + Print the comment message in the format: + "\n" + + @note + Any occurrence of continuous hyphens will be + squeezed to a single hyphen. +*/ + +static void print_xml_comment(FILE *xml_file, ulong len, + const char *comment_string) +{ + const char* end; + + fputs("\n", xml_file); check_io(xml_file); } + +/* A common printing function for xml and non-xml modes. */ + +static void print_comment(FILE *sql_file, my_bool is_error, const char *format, + ...) +{ + static char comment_buff[COMMENT_LENGTH]; + va_list args; + + /* If its an error message, print it ignoring opt_comments. */ + if (!is_error && !opt_comments) + return; + + va_start(args, format); + my_vsnprintf(comment_buff, COMMENT_LENGTH, format, args); + va_end(args); + + if (!opt_xml) + { + fputs(comment_buff, sql_file); + check_io(sql_file); + return; + } + + print_xml_comment(sql_file, strlen(comment_buff), comment_buff); +} + + /* create_delimiter Generate a new (null-terminated) string that does not exist in query @@ -1884,8 +2035,8 @@ mysql_real_escape_string(mysql, db_name_buff, db, strlen(db)); /* nice comments */ - if (opt_comments) - fprintf(sql_file, "\n--\n-- Dumping events for database '%s'\n--\n", db); + print_comment(sql_file, 0, + "\n--\n-- Dumping events for database '%s'\n--\n", db); /* not using "mysql_query_with_error_report" because we may have not @@ -1900,12 +2051,17 @@ strcpy(delimiter, ";"); if (mysql_num_rows(event_list_res) > 0) { - fprintf(sql_file, "/*!50106 SET @save_time_zone= @@TIME_ZONE */ ;\n"); + if (opt_xml) + fputs("\t\n", sql_file); + else + { + fprintf(sql_file, "/*!50106 SET @save_time_zone= @@TIME_ZONE */ ;\n"); - /* Get database collation. */ + /* Get database collation. */ - if (fetch_db_collation(db_name_buff, db_cl_name, sizeof (db_cl_name))) - DBUG_RETURN(1); + if (fetch_db_collation(db_name_buff, db_cl_name, sizeof (db_cl_name))) + DBUG_RETURN(1); + } if (switch_character_set_results(mysql, "binary")) DBUG_RETURN(1); @@ -1922,6 +2078,13 @@ while ((row= mysql_fetch_row(event_res)) != NULL) { + if (opt_xml) + { + print_xml_row(sql_file, "event", event_res, &row, + "Create Event"); + continue; + } + /* if the user has EXECUTE privilege he can see event names, but not the event body! @@ -2007,8 +2170,16 @@ mysql_free_result(event_res); } /* end of list of events */ - fprintf(sql_file, "DELIMITER ;\n"); - fprintf(sql_file, "/*!50106 SET TIME_ZONE= @save_time_zone */ ;\n"); + if (opt_xml) + { + fputs("\t\n", sql_file); + check_io(sql_file); + } + else + { + fprintf(sql_file, "DELIMITER ;\n"); + fprintf(sql_file, "/*!50106 SET TIME_ZONE= @save_time_zone */ ;\n"); + } if (switch_character_set_results(mysql, default_charset)) DBUG_RETURN(1); @@ -2062,6 +2233,7 @@ const char *routine_type[]= {"FUNCTION", "PROCEDURE"}; char db_name_buff[NAME_LEN*2+3], name_buff[NAME_LEN*2+3]; char *routine_name; + char *query_str; int i; FILE *sql_file= md_result_file; MYSQL_RES *routine_res, *routine_list_res; @@ -2076,8 +2248,8 @@ mysql_real_escape_string(mysql, db_name_buff, db, strlen(db)); /* nice comments */ - if (opt_comments) - fprintf(sql_file, "\n--\n-- Dumping routines for database '%s'\n--\n", db); + print_comment(sql_file, 0, + "\n--\n-- Dumping routines for database '%s'\n--\n", db); /* not using "mysql_query_with_error_report" because we may have not @@ -2094,6 +2266,9 @@ if (switch_character_set_results(mysql, "binary")) DBUG_RETURN(1); + if (opt_xml) + fputs("\t\n", sql_file); + /* 0, retrieve and dump functions, 1, procedures */ for (i= 0; i <= 1; i++) { @@ -2129,13 +2304,25 @@ row[2] ? (int) strlen(row[2]) : 0)); if (row[2] == NULL) { - fprintf(sql_file, "\n-- insufficient privileges to %s\n", query_buff); - fprintf(sql_file, "-- does %s have permissions on mysql.proc?\n\n", current_user); + print_comment(sql_file, 1, "\n-- insufficient privileges to %s\n", + query_buff); + print_comment(sql_file, 1, + "-- does %s have permissions on mysql.proc?\n\n", + current_user); maybe_die(EX_MYSQLERR,"%s has insufficent privileges to %s!", current_user, query_buff); } else if (strlen(row[2])) { - char *query_str; + if (opt_xml) + { + if (i) /* Procedures. */ + print_xml_row(sql_file, "routine", routine_res, &row, + "Create Procedure"); + else /* Functions. */ + print_xml_row(sql_file, "routine", routine_res, &row, + "Create Function"); + continue; + } if (opt_drop) fprintf(sql_file, "/*!50003 DROP %s IF EXISTS %s */;\n", routine_type[i], routine_name); @@ -2215,6 +2402,12 @@ mysql_free_result(routine_list_res); } /* end of for i (0 .. 1) */ + if (opt_xml) + { + fputs("\t\n", sql_file); + check_io(sql_file); + } + if (switch_character_set_results(mysql, default_charset)) DBUG_RETURN(1); @@ -2327,16 +2520,16 @@ write_header(sql_file, db); } - if (!opt_xml && opt_comments) - { + if (strcmp (table_type, "VIEW") == 0) /* view */ - fprintf(sql_file, "\n--\n-- Temporary table structure for view %s\n--\n\n", - result_table); + print_comment(sql_file, 0, + "\n--\n-- Temporary table structure for view %s\n--\n\n", + result_table); else - fprintf(sql_file, "\n--\n-- Table structure for table %s\n--\n\n", - result_table); - check_io(sql_file); - } + print_comment(sql_file, 0, + "\n--\n-- Table structure for table %s\n--\n\n", + result_table); + if (opt_drop) { /* @@ -2537,9 +2730,10 @@ DBUG_RETURN(0); write_header(sql_file, db); } - if (!opt_xml && opt_comments) - fprintf(sql_file, "\n--\n-- Table structure for table %s\n--\n\n", - result_table); + + print_comment(sql_file, 0, + "\n--\n-- Table structure for table %s\n--\n\n", + result_table); if (opt_drop) fprintf(sql_file, "DROP TABLE IF EXISTS %s;\n", result_table); if (!opt_xml) @@ -2590,7 +2784,7 @@ { if (opt_xml) { - print_xml_row(sql_file, "field", result, &row); + print_xml_row(sql_file, "field", result, &row, NullS); continue; } @@ -2662,7 +2856,7 @@ { if (opt_xml) { - print_xml_row(sql_file, "key", result, &row); + print_xml_row(sql_file, "key", result, &row, NullS); continue; } @@ -2721,7 +2915,7 @@ else { if (opt_xml) - print_xml_row(sql_file, "options", result, &row); + print_xml_row(sql_file, "options", result, &row, NullS); else { fputs("/*!",sql_file); @@ -2765,9 +2959,19 @@ char *quoted_table_name= quote_name(table_name, quoted_table_name_buf, 1); char name_buff[NAME_LEN * 4 + 3]; + const char *xml_msg= "\nWarning! mysqldump being run against old server " + "that does not\nsupport 'SHOW CREATE TRIGGERS' " + "statement. Skipping..\n"; DBUG_ENTER("dump_trigger_old"); + if (opt_xml) + { + print_xml_comment(sql_file, strlen(xml_msg), xml_msg); + check_io(sql_file); + DBUG_VOID_RETURN; + } + fprintf(sql_file, "--\n" "-- WARNING: old server version. " @@ -2831,17 +3035,25 @@ const char *db_cl_name) { MYSQL_ROW row; + char *query_str; int db_cl_altered= FALSE; DBUG_ENTER("dump_trigger"); while ((row= mysql_fetch_row(show_create_trigger_rs))) { - char *query_str= cover_definer_clause(row[2], strlen(row[2]), - C_STRING_WITH_LEN("50017"), - C_STRING_WITH_LEN("50003"), - C_STRING_WITH_LEN(" TRIGGER")); + if (opt_xml) + { + print_xml_row(sql_file, "trigger", show_create_trigger_rs, &row, + "SQL Original Statement"); + check_io(sql_file); + continue; + } + query_str= cover_definer_clause(row[2], strlen(row[2]), + C_STRING_WITH_LEN("50017"), + C_STRING_WITH_LEN("50003"), + C_STRING_WITH_LEN(" TRIGGER")); if (switch_db_collation(sql_file, db_name, ";", db_cl_name, row[5], &db_cl_altered)) DBUG_RETURN(TRUE); @@ -2929,6 +3141,13 @@ /* Dump triggers. */ + if (! mysql_num_rows(show_triggers_rs)) + goto skip; + + if (opt_xml) + print_xml_tag(sql_file, "\t", "\n", "triggers", "name=", + table_name, NullS); + while ((row= mysql_fetch_row(show_triggers_rs))) { @@ -2961,6 +3180,13 @@ } + if (opt_xml) + { + fputs("\t\n", sql_file); + check_io(sql_file); + } + +skip: mysql_free_result(show_triggers_rs); if (switch_character_set_results(mysql, default_charset)) @@ -3209,34 +3435,24 @@ } else { - if (!opt_xml && opt_comments) - { - fprintf(md_result_file,"\n--\n-- Dumping data for table %s\n--\n", - result_table); - check_io(md_result_file); - } + print_comment(md_result_file, 0, + "\n--\n-- Dumping data for table %s\n--\n", + result_table); dynstr_append_checked(&query_string, "SELECT /*!40001 SQL_NO_CACHE */ * FROM "); dynstr_append_checked(&query_string, result_table); if (where) { - if (!opt_xml && opt_comments) - { - fprintf(md_result_file, "-- WHERE: %s\n", where); - check_io(md_result_file); - } - + print_comment(md_result_file, 0, "-- WHERE: %s\n", where); + dynstr_append_checked(&query_string, " WHERE "); dynstr_append_checked(&query_string, where); } if (order_by) { - if (!opt_xml && opt_comments) - { - fprintf(md_result_file, "-- ORDER BY: %s\n", order_by); - check_io(md_result_file); - } + print_comment(md_result_file, 0, "-- ORDER BY: %s\n", order_by); + dynstr_append_checked(&query_string, " ORDER BY "); dynstr_append_checked(&query_string, order_by); } @@ -3432,7 +3648,7 @@ { print_xml_tag(md_result_file, "\t\t", "", "field", "name=", field->name, NullS); - print_quoted_xml(md_result_file, row[i], length); + print_quoted_xml(md_result_file, row[i], length, 0); } fputs("\n", md_result_file); } @@ -3736,11 +3952,9 @@ first= 1; if (first) { - if (!opt_xml && opt_comments) - { - fprintf(md_result_file,"\n--\n-- Logfile group: %s\n--\n", row[0]); - check_io(md_result_file); - } + print_comment(md_result_file, 0, "\n--\n-- Logfile group: %s\n--\n", + row[0]); + fprintf(md_result_file, "\nCREATE"); } else @@ -3808,11 +4022,7 @@ first= 1; if (first) { - if (!opt_xml && opt_comments) - { - fprintf(md_result_file,"\n--\n-- Tablespace: %s\n--\n", row[0]); - check_io(md_result_file); - } + print_comment(md_result_file, 0, "\n--\n-- Tablespace: %s\n--\n", row[0]); fprintf(md_result_file, "\nCREATE"); } else @@ -4010,11 +4220,9 @@ */ char quoted_database_buf[NAME_LEN*2+3]; char *qdatabase= quote_name(database,quoted_database_buf,opt_quoted); - if (opt_comments) - { - fprintf(md_result_file,"\n--\n-- Current Database: %s\n--\n", qdatabase); - check_io(md_result_file); - } + + print_comment(md_result_file, 0, + "\n--\n-- Current Database: %s\n--\n", qdatabase); /* Call the view or table specific function */ init_func(qdatabase); @@ -4079,6 +4287,8 @@ if (mysql_refresh(mysql, REFRESH_LOG)) DB_error(mysql, "when doing refresh"); /* We shall continue here, if --force was given */ + else + verbose_msg("-- dump_all_tables_in_db : logs flushed successfully!\n"); } while ((table= getTableName(0))) { @@ -4088,8 +4298,7 @@ dump_table(table,database); my_free(order_by); order_by= 0; - if (opt_dump_triggers && ! opt_xml && - mysql_get_server_version(mysql) >= 50009) + if (opt_dump_triggers && mysql_get_server_version(mysql) >= 50009) { if (dump_triggers_for_table(table, database)) { @@ -4100,14 +4309,12 @@ } } } - if (opt_events && !opt_xml && - mysql_get_server_version(mysql) >= 50106) + if (opt_events && mysql_get_server_version(mysql) >= 50106) { DBUG_PRINT("info", ("Dumping events for database %s", database)); dump_events_for_db(database); } - if (opt_routines && !opt_xml && - mysql_get_server_version(mysql) >= 50009) + if (opt_routines && mysql_get_server_version(mysql) >= 50009) { DBUG_PRINT("info", ("Dumping routines for database %s", database)); dump_routines_for_db(database); @@ -4179,6 +4386,8 @@ if (mysql_refresh(mysql, REFRESH_LOG)) DB_error(mysql, "when doing refresh"); /* We shall continue here, if --force was given */ + else + verbose_msg("-- dump_all_views_in_db : logs flushed successfully!\n"); } while ((table= getTableName(0))) { @@ -4317,6 +4526,8 @@ DB_error(mysql, "when doing refresh"); } /* We shall countinue here, if --force was given */ + else + verbose_msg("-- dump_selected_tables : logs flushed successfully!\n"); } if (opt_xml) print_xml_tag(md_result_file, "", "\n", "database", "name=", db, NullS); @@ -4344,15 +4555,13 @@ for (pos= dump_tables; pos < end; pos++) get_view_structure(*pos, db); } - if (opt_events && !opt_xml && - mysql_get_server_version(mysql) >= 50106) + if (opt_events && mysql_get_server_version(mysql) >= 50106) { DBUG_PRINT("info", ("Dumping events for database %s", db)); dump_events_for_db(db); } /* obtain dump of routines (procs/functions) */ - if (opt_routines && !opt_xml && - mysql_get_server_version(mysql) >= 50009) + if (opt_routines && mysql_get_server_version(mysql) >= 50009) { DBUG_PRINT("info", ("Dumping routines for database %s", db)); dump_routines_for_db(db); @@ -4387,10 +4596,9 @@ if (row && row[0] && row[1]) { /* SHOW MASTER STATUS reports file and position */ - if (opt_comments) - fprintf(md_result_file, - "\n--\n-- Position to start replication or point-in-time " - "recovery from\n--\n\n"); + print_comment(md_result_file, 0, + "\n--\n-- Position to start replication or point-in-time " + "recovery from\n--\n\n"); fprintf(md_result_file, "%sCHANGE MASTER TO MASTER_LOG_FILE='%s', MASTER_LOG_POS=%s;\n", comment_prefix, row[0], row[1]); @@ -4600,6 +4808,7 @@ static int start_transaction(MYSQL *mysql_con) { + verbose_msg("-- Starting transaction...\n"); /* We use BEGIN for old servers. --single-transaction --master-data will fail on old servers, but that's ok as it was already silently broken (it didn't @@ -4977,12 +5186,10 @@ write_header(sql_file, db); } - if (!opt_xml && opt_comments) - { - fprintf(sql_file, "\n--\n-- Final view structure for view %s\n--\n\n", - result_table); - check_io(sql_file); - } + print_comment(sql_file, 0, + "\n--\n-- Final view structure for view %s\n--\n\n", + result_table); + /* Table might not exist if this view was dumped with --tab. */ fprintf(sql_file, "/*!50001 DROP TABLE IF EXISTS %s*/;\n", opt_quoted_table); if (opt_drop) @@ -5179,6 +5386,12 @@ exit(exit_code); } + /* + Disable comments in xml mode if 'comments' option is not explicitly used. + */ + if (opt_xml && !opt_comments_used) + opt_comments= 0; + if (log_error_file) { if(!(stderror_file= freopen(log_error_file, "a+", stderr))) @@ -5199,24 +5412,39 @@ if (opt_slave_data && do_stop_slave_sql(mysql)) goto err; - if ((opt_lock_all_tables || opt_master_data) && + if ((opt_lock_all_tables || opt_master_data || + (opt_single_transaction && flush_logs)) && do_flush_tables_read_lock(mysql)) goto err; - if (opt_single_transaction && start_transaction(mysql)) - goto err; - if (opt_delete_master_logs) + + /* + Flush logs before starting transaction since + this causes implicit commit starting mysql-5.5. + */ + if (opt_lock_all_tables || opt_master_data || + (opt_single_transaction && flush_logs) || + opt_delete_master_logs) { - if (mysql_refresh(mysql, REFRESH_LOG) || - get_bin_log_name(mysql, bin_log_name, sizeof(bin_log_name))) - goto err; + if (flush_logs || opt_delete_master_logs) + { + if (mysql_refresh(mysql, REFRESH_LOG)) + goto err; + verbose_msg("-- main : logs flushed successfully!\n"); + } + + /* Not anymore! That would not be sensible. */ flush_logs= 0; } - if (opt_lock_all_tables || opt_master_data) + + if (opt_delete_master_logs) { - if (flush_logs && mysql_refresh(mysql, REFRESH_LOG)) + if (get_bin_log_name(mysql, bin_log_name, sizeof(bin_log_name))) goto err; - flush_logs= 0; /* not anymore; that would not be sensible */ } + + if (opt_single_transaction && start_transaction(mysql)) + goto err; + /* Add 'STOP SLAVE to beginning of dump */ if (opt_slave_apply && add_stop_slave()) goto err; diff -Nru mysql-5.5-5.5.20/client/mysql_plugin.c mysql-5.5-5.5.22/client/mysql_plugin.c --- mysql-5.5-5.5.20/client/mysql_plugin.c 2011-12-16 19:52:07.000000000 +0000 +++ mysql-5.5-5.5.22/client/mysql_plugin.c 2012-03-02 19:44:45.000000000 +0000 @@ -1,5 +1,5 @@ /* - Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -1018,7 +1018,7 @@ Build the boostrap file. Create a new file and populate it with SQL commands to ENABLE or DISABLE - the plugin via INSERT and DELETE operations on the mysql.plugin table. + the plugin via REPLACE and DELETE operations on the mysql.plugin table. param[in] operation The type of operation (ENABLE or DISABLE) param[out] bootstrap A FILE* pointer @@ -1035,12 +1035,16 @@ Perform plugin operation : ENABLE or DISABLE The following creates a temporary bootstrap file and populates it with - the appropriate SQL commands for the operation. For ENABLE, INSERT + the appropriate SQL commands for the operation. For ENABLE, REPLACE statements are created. For DISABLE, DELETE statements are created. The values for these statements are derived from the plugin_data read from the .ini configuration file. Once the file is built, a call to mysqld is made in read only, bootstrap modes to read the SQL statements and execute them. + + Note: Replace was used so that if a user loads a newer version of a + library with a different library name, the new library name is + used for symbols that match. */ if ((error= make_tempfile(bootstrap, "sql"))) { @@ -1057,7 +1061,7 @@ if (strcasecmp(operation, "enable") == 0) { int i= 0; - fprintf(file, "INSERT IGNORE INTO mysql.plugin VALUES "); + fprintf(file, "REPLACE INTO mysql.plugin VALUES "); for (i= 0; i < (int)array_elements(plugin_data.components); i++) { /* stop when we read the end of the symbol list - marked with NULL */ diff -Nru mysql-5.5-5.5.20/client/mysql_upgrade.c mysql-5.5-5.5.22/client/mysql_upgrade.c --- mysql-5.5-5.5.20/client/mysql_upgrade.c 2011-12-16 19:52:07.000000000 +0000 +++ mysql-5.5-5.5.22/client/mysql_upgrade.c 2012-03-02 19:44:45.000000000 +0000 @@ -243,7 +243,6 @@ switch (optid) { case '?': - puts(ORACLE_WELCOME_COPYRIGHT_NOTICE("2000, 2011")); printf("%s Ver %s Distrib %s, for %s (%s)\n", my_progname, VER, MYSQL_SERVER_VERSION, SYSTEM_TYPE, MACHINE_TYPE); puts(ORACLE_WELCOME_COPYRIGHT_NOTICE("2000, 2010")); diff -Nru mysql-5.5-5.5.20/client/sql_string.cc mysql-5.5-5.5.22/client/sql_string.cc --- mysql-5.5-5.5.20/client/sql_string.cc 2011-12-16 19:52:07.000000000 +0000 +++ mysql-5.5-5.5.22/client/sql_string.cc 2012-03-02 19:44:45.000000000 +0000 @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru mysql-5.5-5.5.20/cmake/build_configurations/mysql_release.cmake mysql-5.5-5.5.22/cmake/build_configurations/mysql_release.cmake --- mysql-5.5-5.5.20/cmake/build_configurations/mysql_release.cmake 2011-12-16 19:52:07.000000000 +0000 +++ mysql-5.5-5.5.22/cmake/build_configurations/mysql_release.cmake 2012-03-02 19:44:45.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru mysql-5.5-5.5.20/cmake/install_macros.cmake mysql-5.5-5.5.22/cmake/install_macros.cmake --- mysql-5.5-5.5.20/cmake/install_macros.cmake 2011-12-16 19:52:07.000000000 +0000 +++ mysql-5.5-5.5.22/cmake/install_macros.cmake 2012-03-02 19:44:45.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru mysql-5.5-5.5.20/CMakeLists.txt mysql-5.5-5.5.22/CMakeLists.txt --- mysql-5.5-5.5.20/CMakeLists.txt 2011-12-16 19:52:07.000000000 +0000 +++ mysql-5.5-5.5.22/CMakeLists.txt 2012-03-02 19:44:45.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -79,8 +79,19 @@ SET(OLD_WITH_DEBUG 0 CACHE INTERNAL "" FORCE) ENDIF() +# Optionally set project name, e.g. +# foo.xcodeproj (mac) or foo.sln (windows) +SET(MYSQL_PROJECT_NAME_DOCSTRING "MySQL project name") +IF(DEFINED MYSQL_PROJECT_NAME) + SET(MYSQL_PROJECT_NAME ${MYSQL_PROJECT_NAME} CACHE STRING + ${MYSQL_PROJECT_NAME_DOCSTRING} FORCE) +ELSE() + SET(MYSQL_PROJECT_NAME "MySQL" CACHE STRING + ${MYSQL_PROJECT_NAME_DOCSTRING} FORCE) + MARK_AS_ADVANCED(MYSQL_PROJECT_NAME) +ENDIF() +PROJECT(${MYSQL_PROJECT_NAME}) -PROJECT(MySQL) IF(BUILD_CONFIG) INCLUDE( ${CMAKE_SOURCE_DIR}/cmake/build_configurations/${BUILD_CONFIG}.cmake) diff -Nru mysql-5.5-5.5.20/cmd-line-utils/libedit/chartype.h mysql-5.5-5.5.22/cmd-line-utils/libedit/chartype.h --- mysql-5.5-5.5.20/cmd-line-utils/libedit/chartype.h 2011-12-16 19:52:07.000000000 +0000 +++ mysql-5.5-5.5.22/cmd-line-utils/libedit/chartype.h 2012-03-02 19:44:45.000000000 +0000 @@ -45,11 +45,11 @@ * seems to actually advertise this properly, despite Unicode 3.1 having * been around since 2001... */ -/* XXXMYSQL : Added FreeBSD to bypass this check. - TODO : Verify if FreeBSD stores ISO 10646 in wchar_t. */ +/* XXXMYSQL : Added FreeBSD & AIX to bypass this check. + TODO : Verify if FreeBSD & AIX stores ISO 10646 in wchar_t. */ #if !defined(__NetBSD__) && !defined(__sun) \ && !(defined(__APPLE__) && defined(__MACH__)) \ - && !defined(__FreeBSD__) + && !defined(__FreeBSD__) && !defined(_AIX) #ifndef __STDC_ISO_10646__ /* In many places it is assumed that the first 127 code points are ASCII * compatible, so ensure wchar_t indeed does ISO 10646 and not some other diff -Nru mysql-5.5-5.5.20/cmd-line-utils/libedit/eln.c mysql-5.5-5.5.22/cmd-line-utils/libedit/eln.c --- mysql-5.5-5.5.20/cmd-line-utils/libedit/eln.c 2011-12-16 19:52:07.000000000 +0000 +++ mysql-5.5-5.5.22/cmd-line-utils/libedit/eln.c 2012-03-02 19:44:45.000000000 +0000 @@ -200,7 +200,7 @@ ret = -1; goto out; } - // XXX: The two strdup's leak + /* XXX: The two strdups leak. */ ret = map_addfunc(el, Strdup(wargv[0]), Strdup(wargv[1]), func); ct_free_argv(wargv); diff -Nru mysql-5.5-5.5.20/cmd-line-utils/libedit/readline.c mysql-5.5-5.5.22/cmd-line-utils/libedit/readline.c --- mysql-5.5-5.5.20/cmd-line-utils/libedit/readline.c 2011-12-16 19:52:07.000000000 +0000 +++ mysql-5.5-5.5.22/cmd-line-utils/libedit/readline.c 2012-03-02 19:44:45.000000000 +0000 @@ -1978,7 +1978,7 @@ } else wbuf = NULL; (*(void (*)(const char *))rl_linefunc)(wbuf); - //el_set(e, EL_UNBUFFERED, 1); + /*el_set(e, EL_UNBUFFERED, 1);*/ } } diff -Nru mysql-5.5-5.5.20/debian/changelog mysql-5.5-5.5.22/debian/changelog --- mysql-5.5-5.5.20/debian/changelog 2012-02-17 21:06:31.000000000 +0000 +++ mysql-5.5-5.5.22/debian/changelog 2012-03-30 00:31:34.000000000 +0000 @@ -1,3 +1,19 @@ +mysql-5.5 (5.5.22-0ubuntu1) precise; urgency=low + + * New upstream release (LP: #965523) + * d/mysql-server-5.5.mysql.upstart: Add respawn limit and code + to exit ping loop if mysqld needs to be respawned. (LP: #711635) + * New upstream bugfix release. + * Refreshed patches + * d/control: Build-Dep on dh-apparmor (LP: #948481) + * d/p/fix-mysqldump-test.patch: Fixes unreliable test introduced in + new upstream version. http://bugs.mysql.com/bug.php?id=64401 + * d/control: Re-add empty meta-package for mysql-testsuite so users + will get the 5.5 version on upgrade and when installing + mysql-testsuite. (LP: #959683) + + -- Clint Byrum Thu, 29 Mar 2012 17:31:30 -0700 + mysql-5.5 (5.5.20-0ubuntu3) precise; urgency=low * d/rules,d/mysql-server-5.5.files: Restoring apport hook and diff -Nru mysql-5.5-5.5.20/debian/control mysql-5.5-5.5.22/debian/control --- mysql-5.5-5.5.20/debian/control 2012-02-15 20:13:00.000000000 +0000 +++ mysql-5.5-5.5.22/debian/control 2012-03-20 00:17:21.000000000 +0000 @@ -4,7 +4,7 @@ Maintainer: Ubuntu Developers XSBC-Original-Maintainer: Debian MySQL Maintainers Uploaders: Norbert Tretkowski , Clint Byrum -Build-Depends: libtool (>= 1.4.2-7), procps | hurd, debhelper (>= 8.1.3~), file (>= 3.28), libncurses5-dev (>= 5.0-6), perl (>= 5.6.0), libwrap0-dev (>= 7.6-8.3), zlib1g-dev (>= 1:1.1.3-5), libreadline-dev, psmisc, po-debconf, chrpath, doxygen-latex, ghostscript, gawk, bison, lsb-release, hardening-wrapper, cmake, gcc-4.5, g++-4.5 +Build-Depends: libtool (>= 1.4.2-7), procps | hurd, debhelper (>= 8.1.3~), file (>= 3.28), libncurses5-dev (>= 5.0-6), perl (>= 5.6.0), libwrap0-dev (>= 7.6-8.3), zlib1g-dev (>= 1:1.1.3-5), libreadline-dev, psmisc, po-debconf, chrpath, doxygen-latex, ghostscript, gawk, bison, lsb-release, hardening-wrapper, cmake, gcc-4.5, g++-4.5, dh-apparmor Standards-Version: 3.9.2 Homepage: http://dev.mysql.com/ Vcs-Browser: http://svn.debian.org/wsvn/pkg-mysql/mysql-5.5/ @@ -166,6 +166,15 @@ maintainers. Install this package if in doubt about which MySQL version you want, as this is the one we consider to be in the best shape. +Package: mysql-testsuite +Architecture: all +Depends: mysql-testsuite-5.5 +Description: MySQL testsuite + This is an empty package that depends on the current "best" version of + mysql-testsuite (currently mysql-testsuite-5.5), as determined by the + MySQL maintainers. Install this package if in doubt about which MySQL + version you want, as this is the one we consider to be in the best shape. + Package: mysql-testsuite-5.5 Architecture: any Depends: mysql-server, mysql-client, ${misc:Depends}, ${shlibs:Depends} diff -Nru mysql-5.5-5.5.20/debian/mysql-server-5.5.mysql.upstart mysql-5.5-5.5.22/debian/mysql-server-5.5.mysql.upstart --- mysql-5.5-5.5.20/debian/mysql-server-5.5.mysql.upstart 2012-02-15 20:12:19.000000000 +0000 +++ mysql-5.5-5.5.22/debian/mysql-server-5.5.mysql.upstart 2012-02-20 01:59:00.000000000 +0000 @@ -7,6 +7,7 @@ stop on starting rc RUNLEVEL=[016] respawn +respawn limit 2 5 env HOME=/etc/mysql umask 007 @@ -31,6 +32,12 @@ # should not reach this line exit 2 } + statusnow=`status` + if echo $statusnow | grep -q 'stop/' ; then + exit 0 + elif echo $statusnow | grep -q 'respawn/' ; then + exit 1 + fi sleep 1 done exit 1 diff -Nru mysql-5.5-5.5.20/debian/patches/38_scripts__mysqld_safe.sh__signals.patch mysql-5.5-5.5.22/debian/patches/38_scripts__mysqld_safe.sh__signals.patch --- mysql-5.5-5.5.20/debian/patches/38_scripts__mysqld_safe.sh__signals.patch 2012-02-15 20:12:19.000000000 +0000 +++ mysql-5.5-5.5.22/debian/patches/38_scripts__mysqld_safe.sh__signals.patch 2012-03-06 23:23:20.000000000 +0000 @@ -2,10 +2,10 @@ Subject: Executes /etc/init.d/mysql on signals Bug: http://bugs.mysql.com/bug.php?id=31361 -Index: mysql-5.5-sid/scripts/mysqld_safe.sh +Index: mysql-5.5/scripts/mysqld_safe.sh =================================================================== ---- mysql-5.5-sid.orig/scripts/mysqld_safe.sh 2011-06-03 00:18:11.404604000 -0700 -+++ mysql-5.5-sid/scripts/mysqld_safe.sh 2011-06-03 00:53:07.785651661 -0700 +--- mysql-5.5.orig/scripts/mysqld_safe.sh 2012-03-06 13:10:09.545402000 -0800 ++++ mysql-5.5/scripts/mysqld_safe.sh 2012-03-06 15:23:11.849793056 -0800 @@ -29,8 +29,6 @@ syslog_tag_mysqld=mysqld syslog_tag_mysqld_safe=mysqld_safe @@ -24,7 +24,7 @@ ;; *) echo "Internal program error (non-fatal):" \ -@@ -708,6 +706,13 @@ +@@ -711,6 +709,13 @@ fi # diff -Nru mysql-5.5-5.5.20/debian/patches/62_disable_tests.patch mysql-5.5-5.5.22/debian/patches/62_disable_tests.patch --- mysql-5.5-5.5.20/debian/patches/62_disable_tests.patch 2012-02-15 20:12:19.000000000 +0000 +++ mysql-5.5-5.5.22/debian/patches/62_disable_tests.patch 2012-03-06 23:23:25.000000000 +0000 @@ -1,8 +1,8 @@ -Index: mysql-5.5.17/mysql-test/t/disabled.def +Index: mysql-5.5/mysql-test/t/disabled.def =================================================================== ---- mysql-5.5.17.orig/mysql-test/t/disabled.def 2011-10-12 05:10:24.000000000 -0700 -+++ mysql-5.5.17/mysql-test/t/disabled.def 2011-11-08 12:05:58.830579964 -0800 -@@ -17,3 +17,5 @@ +--- mysql-5.5.orig/mysql-test/t/disabled.def 2012-03-06 13:10:09.085143548 -0800 ++++ mysql-5.5/mysql-test/t/disabled.def 2012-03-06 15:23:22.905149613 -0800 +@@ -15,3 +15,5 @@ archive-big : Bug#11817185 2011-03-10 Anitha Disabled since this leads to timeout on Solaris Sparc log_tables-big : Bug#11756699 2010-11-15 mattiasj report already exists mysql_embedded : Bug#12561297 2011-05-14 Anitha Dependent on PB2 changes - eventum#41836 diff -Nru mysql-5.5-5.5.20/debian/patches/fix-mysqldump-test.patch mysql-5.5-5.5.22/debian/patches/fix-mysqldump-test.patch --- mysql-5.5-5.5.20/debian/patches/fix-mysqldump-test.patch 1970-01-01 00:00:00.000000000 +0000 +++ mysql-5.5-5.5.22/debian/patches/fix-mysqldump-test.patch 2012-03-08 19:20:03.000000000 +0000 @@ -0,0 +1,53 @@ +Author: Clint Byrum +Description: Works around non-deterministic --verbose behavior in new + mysqldump test. +Bug: http://bugs.mysql.com/bug.php?id=64401 + +=== modified file 'mysql-test/r/mysqldump.result' +--- a/mysql-test/r/mysqldump.result 2012-03-06 21:09:56 +0000 ++++ b/mysql-test/r/mysqldump.result 2012-03-08 07:07:04 +0000 +@@ -5118,12 +5118,6 @@ + # commit starting 5.5. + + #### Dump starts here #### +--- Connecting to localhost... +--- main : logs flushed successfully! +--- Starting transaction... +--- Retrieving table structure for table t1... +--- Sending SELECT query... +--- Retrieving rows... + -- + -- Host: localhost Database: b12809202_db + -- ------------------------------------------------------ +@@ -5158,9 +5152,6 @@ + LOCK TABLES `t1` WRITE; + /*!40000 ALTER TABLE `t1` DISABLE KEYS */; + INSERT INTO `t1` VALUES (1),(2),(3); +--- Retrieving table structure for table t2... +--- Sending SELECT query... +--- Retrieving rows... + /*!40000 ALTER TABLE `t1` ENABLE KEYS */; + UNLOCK TABLES; + +@@ -5185,7 +5176,6 @@ + INSERT INTO `t2` VALUES (1),(2),(3); + /*!40000 ALTER TABLE `t2` ENABLE KEYS */; + UNLOCK TABLES; +--- Disconnecting from localhost... + /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + + /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; + +=== modified file 'mysql-test/t/mysqldump.test' +--- a/mysql-test/t/mysqldump.test 2012-03-06 21:09:56 +0000 ++++ b/mysql-test/t/mysqldump.test 2012-03-08 07:06:53 +0000 +@@ -2351,7 +2351,7 @@ + --echo + --echo #### Dump starts here #### + --replace_regex /-- Server version.*// /-- MySQL dump .*// /-- Dump completed on .*/-- Dump completed/ +---exec $MYSQL_DUMP --verbose --single-transaction --flush-log b12809202_db 2>&1 ++--exec $MYSQL_DUMP --single-transaction --flush-log b12809202_db 2>&1 + --echo + --echo #### Dump ends here #### + + diff -Nru mysql-5.5-5.5.20/debian/patches/link-clientprograms-dynamically.patch mysql-5.5-5.5.22/debian/patches/link-clientprograms-dynamically.patch --- mysql-5.5-5.5.20/debian/patches/link-clientprograms-dynamically.patch 1970-01-01 00:00:00.000000000 +0000 +++ mysql-5.5-5.5.22/debian/patches/link-clientprograms-dynamically.patch 2012-03-06 23:29:45.000000000 +0000 @@ -0,0 +1,86 @@ +=== modified file 'client/CMakeLists.txt' +--- a/client/CMakeLists.txt 2012-02-15 07:57:46 +0000 ++++ b/client/CMakeLists.txt 2012-02-15 08:10:31 +0000 +@@ -27,45 +27,52 @@ + + ADD_DEFINITIONS(${READLINE_DEFINES}) + ADD_DEFINITIONS(${SSL_DEFINES}) +-MYSQL_ADD_EXECUTABLE(mysql completion_hash.cc mysql.cc readline.cc sql_string.cc) +-TARGET_LINK_LIBRARIES(mysql mysqlclient) ++IF (DISABLE_SHARED) ++ MYSQL_ADD_EXECUTABLE(mysql completion_hash.cc mysql.cc readline.cc sql_string.cc) ++ SET(LIBS mysqlclient) ++ELSE(DISABLE_SHARED) ++ SET(GET_PASSWORD_SRC ../libmysql/get_password.c) ++ MYSQL_ADD_EXECUTABLE(mysql completion_hash.cc mysql.cc readline.cc sql_string.cc ${GET_PASSWORD_SRC}) ++ SET(LIBS libmysql strings mysys ${SSL_LIBRARIES}) ++ENDIF(DISABLE_SHARED) ++TARGET_LINK_LIBRARIES(mysql ${LIBS}) + IF(UNIX) + TARGET_LINK_LIBRARIES(mysql ${READLINE_LIBRARY}) + ENDIF(UNIX) + +-MYSQL_ADD_EXECUTABLE(mysqltest mysqltest.cc COMPONENT Test) ++MYSQL_ADD_EXECUTABLE(mysqltest mysqltest.cc ${GET_PASSWORD_SRC} COMPONENT Test) + SET_SOURCE_FILES_PROPERTIES(mysqltest.cc PROPERTIES COMPILE_FLAGS "-DTHREADS") +-TARGET_LINK_LIBRARIES(mysqltest mysqlclient regex) +- +- +-MYSQL_ADD_EXECUTABLE(mysqlcheck mysqlcheck.c) +-TARGET_LINK_LIBRARIES(mysqlcheck mysqlclient) +- +-MYSQL_ADD_EXECUTABLE(mysqldump mysqldump.c ../sql-common/my_user.c) +-TARGET_LINK_LIBRARIES(mysqldump mysqlclient) +- +-MYSQL_ADD_EXECUTABLE(mysqlimport mysqlimport.c) +-TARGET_LINK_LIBRARIES(mysqlimport mysqlclient) +- +-MYSQL_ADD_EXECUTABLE(mysql_upgrade mysql_upgrade.c) +-TARGET_LINK_LIBRARIES(mysql_upgrade mysqlclient) ++TARGET_LINK_LIBRARIES(mysqltest ${LIBS} regex) ++ ++ ++MYSQL_ADD_EXECUTABLE(mysqlcheck mysqlcheck.c ${GET_PASSWORD_SRC}) ++TARGET_LINK_LIBRARIES(mysqlcheck ${LIBS}) ++ ++MYSQL_ADD_EXECUTABLE(mysqldump mysqldump.c ../sql-common/my_user.c ${GET_PASSWORD_SRC}) ++TARGET_LINK_LIBRARIES(mysqldump ${LIBS}) ++ ++MYSQL_ADD_EXECUTABLE(mysqlimport mysqlimport.c ${GET_PASSWORD_SRC}) ++TARGET_LINK_LIBRARIES(mysqlimport ${LIBS}) ++ ++MYSQL_ADD_EXECUTABLE(mysql_upgrade mysql_upgrade.c ${GET_PASSWORD_SRC}) ++TARGET_LINK_LIBRARIES(mysql_upgrade ${LIBS}) + ADD_DEPENDENCIES(mysql_upgrade GenFixPrivs) + +-MYSQL_ADD_EXECUTABLE(mysqlshow mysqlshow.c) +-TARGET_LINK_LIBRARIES(mysqlshow mysqlclient) ++MYSQL_ADD_EXECUTABLE(mysqlshow mysqlshow.c ${GET_PASSWORD_SRC}) ++TARGET_LINK_LIBRARIES(mysqlshow ${LIBS}) + + MYSQL_ADD_EXECUTABLE(mysql_plugin mysql_plugin.c) +-TARGET_LINK_LIBRARIES(mysql_plugin mysqlclient) +- +-MYSQL_ADD_EXECUTABLE(mysqlbinlog mysqlbinlog.cc) +-TARGET_LINK_LIBRARIES(mysqlbinlog mysqlclient) +- +-MYSQL_ADD_EXECUTABLE(mysqladmin mysqladmin.cc) +-TARGET_LINK_LIBRARIES(mysqladmin mysqlclient) +- +-MYSQL_ADD_EXECUTABLE(mysqlslap mysqlslap.c) ++TARGET_LINK_LIBRARIES(mysql_plugin ${LIBS}) ++ ++MYSQL_ADD_EXECUTABLE(mysqlbinlog mysqlbinlog.cc ${GET_PASSWORD_SRC}) ++TARGET_LINK_LIBRARIES(mysqlbinlog ${LIBS}) ++ ++MYSQL_ADD_EXECUTABLE(mysqladmin mysqladmin.cc ${GET_PASSWORD_SRC}) ++TARGET_LINK_LIBRARIES(mysqladmin ${LIBS}) ++ ++MYSQL_ADD_EXECUTABLE(mysqlslap mysqlslap.c ${GET_PASSWORD_SRC}) + SET_SOURCE_FILES_PROPERTIES(mysqlslap.c PROPERTIES COMPILE_FLAGS "-DTHREADS") +-TARGET_LINK_LIBRARIES(mysqlslap mysqlclient) ++TARGET_LINK_LIBRARIES(mysqlslap ${LIBS}) + + # "WIN32" also covers 64 bit. "echo" is used in some files below "mysql-test/". + IF(WIN32) + diff -Nru mysql-5.5-5.5.20/debian/patches/series mysql-5.5-5.5.22/debian/patches/series --- mysql-5.5-5.5.20/debian/patches/series 2012-02-15 20:12:19.000000000 +0000 +++ mysql-5.5-5.5.22/debian/patches/series 2012-03-29 22:11:54.000000000 +0000 @@ -3,3 +3,4 @@ 70_mysql_va_list.patch 71_disable_rpl_tests.patch 72_fix_standalone_tests.patch +fix-mysqldump-test.patch diff -Nru mysql-5.5-5.5.20/Docs/ChangeLog mysql-5.5-5.5.22/Docs/ChangeLog --- mysql-5.5-5.5.20/Docs/ChangeLog 2011-12-16 19:52:16.000000000 +0000 +++ mysql-5.5-5.5.22/Docs/ChangeLog 2012-03-02 19:44:56.000000000 +0000 @@ -1,615 +1,1549 @@ ------------------------------------------------------------ -revno: 3260 -tags: clone-5.5.20-build -committer: Sergey Vojtovich -branch nick: mysql-5.5-security-push -timestamp: Fri 2011-12-16 12:17:13 +0400 -message: - Test case for BUG11763712 is intended for 5.1 only. ------------------------------------------------------------- -revno: 3259 [merge] -committer: Mattias Jonsson -branch nick: topush-5.5-sec -timestamp: Thu 2011-12-15 17:12:04 +0100 -message: - merge. Disabled the added test in merge.test from 5.1. - ------------------------------------------------------------ - revno: 2661.768.43 - tags: clone-5.1.61-build - committer: Mattias Jonsson - branch nick: topush-5.1-sec - timestamp: Thu 2011-12-15 16:59:18 +0100 +revno: 3286 [merge] +committer: Joerg Bruehe +branch nick: clone-5.5 +timestamp: Fri 2012-03-02 13:23:52 +0100 +message: + Further upmerge the yaSSL upgrade (to 2.2.0) from MySQL 5.1 to 5.5. + + Also, take a syntax fix (C++ style comment in C file) in client/mysqldump.c. + ------------------------------------------------------------ + revno: 2661.768.65 [merge] + committer: Joerg Bruehe + branch nick: clone-5.1 + timestamp: Fri 2012-03-02 13:18:12 +0100 + message: + Upmerge the yaSSL upgrade (to 2.2.0) from MySQL 5.0 to 5.1. + ------------------------------------------------------------ + revno: 1810.4000.45 + committer: Joerg Bruehe + branch nick: clone-5.0 + timestamp: Fri 2012-03-02 13:12:07 +0100 + message: + Further upgrade the yaSSL library to version 2.2.0 + to pick up some new security fixes that are in it. + + Patch provided by Georgi Kodinov. + ------------------------------------------------------------ + revno: 2661.768.64 + committer: Karen Langford + branch nick: mysql-5.1.62-release + timestamp: Tue 2012-02-28 17:20:30 +0100 message: - Post push fix for merge.test and mysqlcheck.test on windows + AIX builds fail for comments using // +------------------------------------------------------------ +revno: 3285 +committer: Hery Ramilison +branch nick: mysql-5.5.22-release +timestamp: Thu 2012-03-01 01:05:05 +0100 +message: + fix for the windows platform for bug: 13788143 ------------------------------------------------------------ -revno: 3258 [merge] +revno: 3284 [merge] +committer: Joerg Bruehe +branch nick: clone-5.5 +timestamp: Tue 2012-02-28 12:50:23 +0100 +message: + Upmerge the copyright year change, from 5.1 to 5.5. + ------------------------------------------------------------ + revno: 2661.768.63 [merge] + committer: Joerg Bruehe + branch nick: clone-5.1 + timestamp: Tue 2012-02-28 12:44:21 +0100 + message: + Upmerge the copyright year change, from 5.0 to 5.1. + ------------------------------------------------------------ + revno: 1810.4000.44 + committer: Joerg Bruehe + branch nick: clone-5.0 + timestamp: Tue 2012-02-28 12:42:02 +0100 + message: + The current year is 2012, and nobody noticed ... + Update the year in the copyright notice, file "README". +------------------------------------------------------------ +revno: 3283 +tags: clone-5.5.22-build committer: Georgi Kodinov branch nick: merge-5.5-security -timestamp: Thu 2011-12-15 14:17:21 +0200 +timestamp: Sun 2012-02-19 09:33:55 +0200 +message: + addendum to the --builtin-innodb depreacation bug. Fixing test suite output. +------------------------------------------------------------ +revno: 3282 +committer: Georgi Kodinov +branch nick: merge-5.5-security +timestamp: Sat 2012-02-18 11:10:42 +0200 +message: + Addendum to BUG#13586262 : fixed a wrong test suite output +------------------------------------------------------------ +revno: 3281 [merge] +committer: Georgi Kodinov +branch nick: merge-5.5-security +timestamp: Sat 2012-02-18 11:03:11 +0200 message: empty weave merge mysql-5.1-security->mysql-5.5-security ------------------------------------------------------------ - revno: 2661.768.42 [merge] + revno: 2661.768.62 [merge] + tags: clone-5.1.62-build committer: Georgi Kodinov branch nick: merge-5.1-security - timestamp: Thu 2011-12-15 14:10:20 +0200 + timestamp: Sat 2012-02-18 10:58:19 +0200 message: merge mysql-5.1->mysql-5.1-security ------------------------------------------------------------ -revno: 3257 [merge] +revno: 3280 [merge] committer: Georgi Kodinov branch nick: merge-5.5-security -timestamp: Thu 2011-12-15 14:13:46 +0200 +timestamp: Sat 2012-02-18 10:58:31 +0200 message: merge mysql-5.5->mysql-5.5-security ------------------------------------------------------------ - revno: 3097.116.70 - committer: Chaithra Gopalareddy + revno: 3097.126.2 [merge] + committer: kevin.lewis@oracle.com branch nick: mysql-5.5 - timestamp: Thu 2011-12-15 16:48:40 +0530 - message: - Bug#13344643:Format function in view looses locale information - - Problem description: - When a view is created using function FORMAT and if FORMAT function uses locale - option,definition of view saved into server doesn't contain that locale information, - Ex: - create table test2 (bb decimal (10,2)); - insert into test2 values (10.32),(10009.2),(12345678.21); - create view test3 as select format(bb,1,'sk_SK') as cc from test2; - select * from test3; - +--------------+ - | cc | - +--------------+ - | 10.3 | - | 10,009.2 | - | 12,345,678.2 | - +--------------+ - 3 rows in set (0.02 sec) - - show create view test3 - View: test3 - Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` - SQL SECURITY DEFINER VIEW `test3` AS select format(`test2`.`bb`,1) AS `cc` - from `test2` - character_set_client: latin1 - collation_connection: latin1_swedish_ci - 1 row in set (0.02 sec) - - Problem Analysis: - The function Item_func_format::print() which prints the query string to create - the view does not print the third argument (i.e the locale information). Hence - view is created without locale information. - - Problem Solution: - If argument count is more than 2 we now print the third argument onto the query string. - - Files changed: - sql/item_strfunc.cc - Function call changes: Item_func_format::print() - mysql-test/t/select.test - Added test case to test the bug - mysql-test/r/select.result - Result of the test case appended here - ------------------------------------------------------------ - revno: 3097.116.69 - committer: Tor Didriksen - branch nick: 5.5 - timestamp: Thu 2011-12-15 10:44:33 +0100 + timestamp: Fri 2012-02-17 08:28:28 -0600 message: - Bug#13463417 63487: ANNOYING TRACE MESSAGE IN CMAKE CODE - - Remove it. + Merge with mysql-5.5 + ------------------------------------------------------------ + revno: 3097.116.140 + committer: Vasil Dimov + branch nick: mysql-5.5 + timestamp: Fri 2012-02-17 15:09:47 +0200 + message: + Print a deprecation warning when ignore-builtin-innodb is used + + This is part of + Bug#13586262 INNODB - HIBISCUS: ISSUE DEPRECATION WARNINGS FOR VARIABLES + + Reviewed by: Mark Alff + ------------------------------------------------------------ + revno: 3097.116.139 [merge] + committer: Marko M?kel? + branch nick: mysql-5.5 + timestamp: Fri 2012-02-17 11:52:51 +0200 + message: + Merge mysql-5.1 to mysql-5.5. + ------------------------------------------------------------ + revno: 2661.800.21 + committer: Marko M?kel? + branch nick: mysql-5.1 + timestamp: Fri 2012-02-17 11:42:04 +0200 + message: + Bug#13721257 RACE CONDITION IN UPDATES OR INSERTS OF WIDE RECORDS + + This bug was originally filed and fixed as Bug#12612184. The original + fix was buggy, and it was patched by Bug#12704861. Also that patch was + buggy (potentially breaking crash recovery), and both fixes were + reverted. + + This fix was not ported to the built-in InnoDB of MySQL 5.1, because + the function signatures of many core functions are different from + InnoDB Plugin and later versions. The block allocation routines and + their callers would have to changed so that they handle block + descriptors instead of page frames. + + When a record is updated so that its size grows, non-updated columns + can be selected for external (off-page) storage. The bug is that the + initially inserted updated record contains an all-zero BLOB pointer to + the field that was not updated. Only after the BLOB pages have been + allocated and written, the valid pointer can be written to the record. + + Between the release of the page latch in mtr_commit(mtr) after + btr_cur_pessimistic_update() and the re-latching of the page in + btr_pcur_restore_position(), other threads can see the invalid BLOB + pointer consisting of 20 zero bytes. Moreover, if the system crashes + at this point, the situation could persist after crash recovery, and + the contents of the non-updated column would be permanently lost. + + The problem is amplified by the ROW_FORMAT=DYNAMIC and + ROW_FORMAT=COMPRESSED that were introduced in + innodb_file_format=barracuda in InnoDB Plugin, but the bug does exist + in all InnoDB versions. + + The fix is as follows. After a pessimistic B-tree operation that needs + to write out off-page columns, allocate the pages for these columns in + the mini-transaction that performed the B-tree operation (btr_mtr), + but write the pages in a separate mini-transaction (blob_mtr). Do + mtr_commit(blob_mtr) before mtr_commit(btr_mtr). A quirk: Do not reuse + pages that were previously freed in btr_mtr. Only write the off-page + columns to 'fresh' pages. + + In this way, crash recovery will see redo log entries for blob_mtr + before any redo log entry for btr_mtr. It will apply the BLOB page + writes to pages that were marked free at that point. If crash recovery + fails to see all of the btr_mtr redo log, there will be some + unreachable BLOB data in free pages, but the B-tree will be in a + consistent state. + + btr_page_alloc_low(): Renamed from btr_page_alloc(). Add the parameter + init_mtr. Return an allocated block, or NULL. If init_mtr!=mtr but + the page was already X-latched in mtr, do not initialize the page. + + btr_page_alloc(): Wrapper for btr_page_alloc_for_ibuf() and + btr_page_alloc_low(). + + btr_page_free(): Add a debug assertion that the page was a B-tree page. + + btr_lift_page_up(): Return the father block. + + btr_compress(), btr_cur_compress_if_useful(): Add the parameter ibool + adjust, for adjusting the cursor position. + + btr_cur_pessimistic_update(): Preserve the cursor position when + big_rec will be written and the new flag BTR_KEEP_POS_FLAG is defined. + Remove a duplicate rec_get_offsets() call. Keep the X-latch on + index->lock when big_rec is needed. + + btr_store_big_rec_extern_fields(): Replace update_inplace with + an operation code, and local_mtr with btr_mtr. When not doing a + fresh insert and btr_mtr has freed pages, put aside any pages that + were previously X-latched in btr_mtr, and free the pages after + writing out all data. The data must be written to 'fresh' pages, + because btr_mtr will be committed and written to the redo log after + the BLOB writes have been written to the redo log. + + btr_blob_op_is_update(): Check if an operation passed to + btr_store_big_rec_extern_fields() is an update or insert-by-update. + + fseg_alloc_free_page_low(), fsp_alloc_free_page(), + fseg_alloc_free_extent(), fseg_alloc_free_page_general(): Add the + parameter init_mtr. Return an allocated block, or NULL. If + init_mtr!=mtr but the page was already X-latched in mtr, do not + initialize the page. + + xdes_get_descriptor_with_space_hdr(): Assert that the file space + header is being X-latched. + + fsp_alloc_from_free_frag(): Refactored from fsp_alloc_free_page(). + + fsp_page_create(): New function, for allocating, X-latching and + potentially initializing a page. If init_mtr!=mtr but the page was + already X-latched in mtr, do not initialize the page. + + fsp_free_page(): Add ut_ad(0) to the error outcomes. + + fsp_free_page(), fseg_free_page_low(): Increment mtr->n_freed_pages. + + fsp_alloc_seg_inode_page(), fseg_create_general(): Assert that the + page was not previously X-latched in the mini-transaction. A file + segment or inode page should never be allocated in the middle of an + mini-transaction that frees pages, such as btr_cur_pessimistic_delete(). + + fseg_alloc_free_page_low(): If the hinted page was allocated, skip the + check if the tablespace should be extended. Return NULL instead of + FIL_NULL on failure. Remove the flag frag_page_allocated. Instead, + return directly, because the page would already have been initialized. + + fseg_find_free_frag_page_slot() would return ULINT_UNDEFINED on error, + not FIL_NULL. Correct a bogus assertion. + + fseg_alloc_free_page(): Redefine as a wrapper macro around + fseg_alloc_free_page_general(). + + buf_block_buf_fix_inc(): Move the definition from the buf0buf.ic to + buf0buf.h, so that it can be called from other modules. + + mtr_t: Add n_freed_pages (number of pages that have been freed). + + page_rec_get_nth_const(), page_rec_get_nth(): The inverse function of + page_rec_get_n_recs_before(), get the nth record of the record + list. This is faster than iterating the linked list. Refactored from + page_get_middle_rec(). + + trx_undo_rec_copy(): Add a debug assertion for the length. + + trx_undo_add_page(): Return a block descriptor or NULL instead of a + page number or FIL_NULL. + + trx_undo_report_row_operation(): Add debug assertions. + + trx_sys_create_doublewrite_buf(): Assert that each page was not + previously X-latched. + + page_cur_insert_rec_zip_reorg(): Make use of page_rec_get_nth(). + + row_ins_clust_index_entry_by_modify(): Pass BTR_KEEP_POS_FLAG, so that + the repositioning of the cursor can be avoided. + + row_ins_index_entry_low(): Add DEBUG_SYNC points before and after + writing off-page columns. If inserting by updating a delete-marked + record, do not reposition the cursor or commit the mini-transaction + before writing the off-page columns. + + row_build(): Tighten a debug assertion about null BLOB pointers. + + row_upd_clust_rec(): Add DEBUG_SYNC points before and after writing + off-page columns. Do not reposition the cursor or commit the + mini-transaction before writing the off-page columns. + + rb:939 approved by Jimmy Yang ------------------------------------------------------------ - revno: 3097.116.68 - committer: Andrei Elkin - branch nick: 5.5-bug13437900-repl_ignore_server_ids - timestamp: Wed 2011-12-14 17:02:55 +0200 + revno: 3097.126.1 + committer: kevin.lewis@oracle.com + branch nick: mysql-5.5 + timestamp: Thu 2012-02-16 12:13:08 -0600 message: + Bug#64160, Oracle Bug#13698765 - bug#13437900 - post-push changes to please solaris compiler. + The problem was introduced in 5.5.20 by Bug 13116225. It tried to + protect against downgrading from a version 5.6.4 database that was + created with a page size other than 16k. Version 5.6.4 supports + page sizes 4k and 8k and stamps that page size into the header page + of each tablespace file. Version 5.5.20 attempts to read that page + size in the file header. + + But it turns out that only the first system tablespace file has a + reliable flags field in the header. So only ibdata1 can be or needs + to be tested for another page size. Extra system tablespace files + like ibdata2, ibdata3, etc do not and should not be tested since the + flags field is unreliable. +------------------------------------------------------------ +revno: 3279 [merge] +committer: Georgi Kodinov +branch nick: merge-5.5-security +timestamp: Fri 2012-02-17 11:57:45 +0200 +message: + merge mysql-5.1-security->mysql-5.5-security ------------------------------------------------------------ - revno: 3097.116.67 - committer: Andrei Elkin - branch nick: 5.5-bug13437900-repl_ignore_server_ids - timestamp: Wed 2011-12-14 15:33:43 +0200 + revno: 2661.768.61 [merge] + committer: Georgi Kodinov + branch nick: merge-5.1-security + timestamp: Fri 2012-02-17 11:55:06 +0200 message: - Bug#13437900 - VALGRIND REPORTS A LEAK FOR REPL_IGNORE_SERVER_IDS - - There was memory leak when running some tests on PB2. - The reason of the failure is an early return from change_master() - that was supposed to deallocate a dyn-array. - - Actually the same bug58915 was fixed in trunk with relocating the dyn-array - destruction into THD::cleanup_after_query() which can't be bypassed. - The current patch backports magne.mahre@oracle.com-20110203101306-q8auashb3d7icxho - and adds two optimizations: were done: the static buffer for the dyn-array to base on, - and the array initialization is called precisely when it's necessary rather than - per each CHANGE-MASTER as before. + merge mysql-5.0-security->mysql-5.1-security + ------------------------------------------------------------ + revno: 1810.4000.43 [merge] + tags: clone-5.0.96-build + committer: Georgi Kodinov + branch nick: merge-5.0-security + timestamp: Fri 2012-02-17 11:51:14 +0200 + message: + merged mysql-5.0->mysql-5.0-security ------------------------------------------------------------ - revno: 3097.116.66 + revno: 2661.768.60 [merge] committer: Georgi Kodinov - branch nick: B11754011-5.5 - timestamp: Wed 2011-12-14 12:49:32 +0200 + branch nick: merge-5.1-security + timestamp: Fri 2012-02-17 11:52:41 +0200 message: - Addendum to the fix for bug #11754011: fixed a testcase result to include - the new --slow-start-timeout option's help output + merge mysql-5.1->mysql-5.1-security +------------------------------------------------------------ +revno: 3278 [merge] +committer: Georgi Kodinov +branch nick: merge-5.5-security +timestamp: Fri 2012-02-17 11:55:36 +0200 +message: + merged mysql-5.5->mysql-5.5-security ------------------------------------------------------------ - revno: 3097.116.65 - committer: Georgi Kodinov - branch nick: B11754011-5.5 - timestamp: Tue 2011-12-13 17:44:19 +0200 + revno: 3097.116.138 + committer: Marko M?kel? + branch nick: mysql-5.5 + timestamp: Fri 2012-02-17 09:18:53 +0200 message: - Bug#11754011: 45546: START WINDOWS SERVICE, THEN EXECUTE WHAT IS NEEDED. - - Added a global read-only option slow-start-timeout to control the - Windows service control manager's service start timeout, that was - currently hard-coded to be 15 seconds. - The default of the new option is 15 seconds. - The timeout can also be set to 0 (to mean no timeout applicable). - ------------------------------------------------------------ - revno: 3097.116.64 [merge] - committer: Annamalai Gurusami - branch nick: mysql-5.5-bug13117023 - timestamp: Tue 2011-12-13 17:10:09 +0530 - message: - Merging from mysql-5.1 to mysql-5.5. - ------------------------------------------------------------ - revno: 2661.798.2 - committer: Annamalai Gurusami - branch nick: mysql-5.1-bug13117023 - timestamp: Tue 2011-12-13 14:26:12 +0530 - message: - Bug #13117023: Innodb increments handler_read_key when it should not - - The counter handler_read_key (SSV::ha_read_key_count) is incremented - incorrectly. - - The mysql server maintains a per thread system_status_var (SSV) - object. This object contains among other things the counter - SSV::ha_read_key_count. The purpose of this counter is to measure the - number of requests to read a row based on a key (or the number of - index lookups). - - This counter was wrongly incremented in the - ha_innobase::innobase_get_index(). The fix removes - this increment statement (for both innodb and innodb_plugin). - - The various callers of the innobase_get_index() was checked to - determine if anybody must increment this counter (if they first call - innobase_get_index() and then perform an index lookup). It was found - that no caller of innobase_get_index() needs to worry about the - SSV::ha_read_key_count counter. + Put back a fix that was reverted when reverting the buggy Bug#12612184 fix in + revision-id inaam.rana@oracle.com-20110930110219-vnpaqghj9hm0grds + (revno 3559). ------------------------------------------------------------ - revno: 3097.116.63 [merge] + revno: 3097.116.137 [merge] committer: Marko M?kel? branch nick: mysql-5.5 - timestamp: Mon 2011-12-12 13:53:18 +0200 + timestamp: Thu 2012-02-16 15:56:10 +0200 message: - Merge mysql-5.1 to mysql-5.5. + Null merge a fix from mysql-5.1. ------------------------------------------------------------ - revno: 2661.798.1 + revno: 2661.800.20 committer: Marko M?kel? branch nick: mysql-5.1 - timestamp: Mon 2011-12-12 13:48:24 +0200 + timestamp: Thu 2012-02-16 15:54:16 +0200 message: - Bug#13418887 ERROR IN DIAGNOSTIC FUNCTION PAGE_REC_PRINT() - - When printing information about a ROW_FORMAT=REDUNDANT record, pass - the correct flag to rec_get_next_offs(). - - rb:821 approved by Jimmy Yang ------------------------------------------------------------- -revno: 3256 [merge] -committer: Mattias Jonsson -branch nick: topush-5.5-sec -timestamp: Wed 2011-12-14 15:33:01 +0100 -message: - merged bug#12361113. - - Also added tests for partitions key caches. + Fix link error on Windows. + error LNK2001: unresolved external symbol _debug_sync_C_callback_ptr ------------------------------------------------------------ - revno: 2661.768.41 [merge] - committer: Mattias Jonsson - branch nick: topush-5.1-sec - timestamp: Wed 2011-12-14 14:41:40 +0100 + revno: 3097.116.136 [merge] + committer: Kent Boortz + branch nick: mysql-5.5 + timestamp: Thu 2012-02-16 12:06:34 +0100 message: - merge + Merge + ------------------------------------------------------------ + revno: 2661.800.19 [merge] + committer: Kent Boortz + branch nick: mysql-5.1 + timestamp: Thu 2012-02-16 12:02:53 +0100 + message: + Merge + ------------------------------------------------------------ + revno: 3097.116.135 [merge] + committer: Kent Boortz + branch nick: mysql-5.5 + timestamp: Thu 2012-02-16 12:04:44 +0100 + message: + Merge ------------------------------------------------------------ - revno: 1810.4000.36 [merge] - tags: clone-5.0.95-build - committer: Mattias Jonsson - branch nick: topush-5.0-sec - timestamp: Wed 2011-12-14 14:05:22 +0100 + revno: 3097.125.3 [merge] + committer: Marko M?kel? + branch nick: mysql-5.5 + timestamp: Thu 2012-02-16 12:28:49 +0200 message: - merge + Merge mysql-5.1 to mysql-5.5. ------------------------------------------------------------ - revno: 1810.4005.1 - committer: Mattias Jonsson - branch nick: b12361113-50-sec - timestamp: Mon 2011-12-12 14:07:02 +0100 + revno: 2661.804.4 + committer: Marko M?kel? + branch nick: mysql-5.1 + timestamp: Thu 2012-02-16 12:24:11 +0200 message: - Bug#12361113: CRASH WHEN "LOAD INDEX INTO CACHE" WITH TOO - SMALL KEY CACHE + Add instrumentation for Bug#13721257 RACE CONDITION IN UPDATES OR INSERTS + OF WIDE RECORDS - The server crashed on division by zero because the key cache was not - initialized and the block length was 0 which was used in a division. + row_ins_index_entry_low(), row_upd_clust_rec(): Make a redo log + checkpoint if a DEBUG flag is set. Add DEBUG_SYNC around + btr_store_big_rec_extern_fields(). - The fix was to not allow CACHE INDEX if the key cache was not initiallized. - Thus never try LOAD INDEX INTO CACHE for an uninitialized key cache. + rb:946 approved by Jimmy Yang + ------------------------------------------------------------ + revno: 2661.804.3 + committer: Marko M?kel? + branch nick: mysql-5.1 + timestamp: Thu 2012-02-16 12:20:41 +0200 + message: + Correct a few copyright messages. + ------------------------------------------------------------ + revno: 3097.116.134 [merge] + committer: MySQL Build Team + branch nick: mysql-5.5 + timestamp: Thu 2012-02-16 11:44:10 +0100 + message: + Updated/added copyright headers + ------------------------------------------------------------ + revno: 2661.800.18 + committer: MySQL Build Team + branch nick: mysql-5.1 + timestamp: Thu 2012-02-16 11:35:30 +0100 + message: + Updated/added copyright headers + ------------------------------------------------------------ + revno: 3097.116.133 [merge] + committer: Kent Boortz + branch nick: mysql-5.5 + timestamp: Thu 2012-02-16 11:43:05 +0100 + message: + Merge + ------------------------------------------------------------ + revno: 2661.800.17 [merge] + committer: Kent Boortz + branch nick: mysql-5.1 + timestamp: Thu 2012-02-16 11:17:04 +0100 + message: + Merge + ------------------------------------------------------------ + revno: 3097.116.132 [merge] + committer: Kent Boortz + branch nick: mysql-5.5 + timestamp: Thu 2012-02-16 11:19:19 +0100 + message: + Merge + ------------------------------------------------------------ + revno: 3097.125.2 [merge] + committer: Marko M?kel? + branch nick: mysql-5.5 + timestamp: Wed 2012-02-15 16:37:06 +0200 + message: + Merge mysql-5.1 to mysql-5.5. + ------------------------------------------------------------ + revno: 2661.804.2 + committer: Marko M?kel? + branch nick: mysql-5.1 + timestamp: Wed 2012-02-15 16:28:00 +0200 + message: + Remove a race condition in innodb_bug53756.test. + Before killing the server, tell mysql-test-run that it is to be expected. - Also added some windows files/directories to .bzrignore. + Discussed with Bjorn Munch on IM. + ------------------------------------------------------------ + revno: 3097.125.1 [merge] + committer: Marko M?kel? + branch nick: mysql-5.5 + timestamp: Wed 2012-02-15 15:55:31 +0200 + message: + Merge mysql-5.1 to mysql-5.5. + ------------------------------------------------------------ + revno: 2661.804.1 + committer: Marko M?kel? + branch nick: mysql-5.1 + timestamp: Wed 2012-02-15 15:53:29 +0200 + message: + store_create_info(): Fix a compiler warning about unused variable. + ------------------------------------------------------------ + revno: 3097.116.131 [merge] + committer: MySQL Build Team + branch nick: mysql-5.5 + timestamp: Thu 2012-02-16 10:48:16 +0100 + message: + Updated/added copyright headers + ------------------------------------------------------------ + revno: 2661.800.16 [merge] + committer: Kent Boortz + branch nick: mysql-5.1 + timestamp: Wed 2012-02-15 17:21:38 +0100 + message: + Updated/added copyright headers + ------------------------------------------------------------ + revno: 1810.4004.10 + committer: MySQL Build Team + branch nick: mysql-5.0 + timestamp: Wed 2012-02-15 17:13:47 +0100 + message: + Updated/added copyright headers + ------------------------------------------------------------ + revno: 3097.116.130 + committer: Rohit Kalhans + branch nick: mysql-5.5_bug11758263 + timestamp: Mon 2012-02-13 15:37:50 +0530 + message: + fixing test failure on pb2. + ------------------------------------------------------------ + revno: 3097.116.129 + committer: Rohit Kalhans + branch nick: mysql-5.5_bug11758263 + timestamp: Mon 2012-02-13 14:12:13 +0530 + message: + BUG#11758263: Modification of indentation in the added code. + Fixed a typo in the comment. + Fixing test cases which were previouslyno throwing due + disable warnings macro. + ------------------------------------------------------------ + revno: 3097.116.128 [merge] + committer: Sunny Bains + branch nick: 5.5 + timestamp: Fri 2012-02-10 14:11:49 +1100 + message: + Merge from mysql-5.1. + ------------------------------------------------------------ + revno: 2661.800.15 + committer: Sunny Bains + branch nick: 5.1 + timestamp: Fri 2012-02-10 14:09:12 +1100 + message: + BUG#12739098 - 62401: ASSERTION TRX->ERROR_STATE == DB_SUCCESS, QUE0QUE.C LINE 1264 ON TRUNCATE + + During FIC error handling the trx->error_state was not being set to DB_SUCCESS + after failure, before attempting the next DDL SQL operation. This reset to + DB_SUCCESS is somewhat of a requirement though not explicitly stated anywhere. + The fix is to reset it to DB_SUCCESS in row0merge.cc if row_merge_rename_indexes + or row_merge_drop_index functions fail, also reset to DB_SUCCESS at trx commit. + + rb://935 Approved by Jimmy Yang. + ------------------------------------------------------------ + revno: 3097.116.127 [merge] + committer: Sunny Bains + branch nick: 5.5 + timestamp: Fri 2012-02-10 13:04:10 +1100 + message: + Merge from mysql-5.1-innodb. + ------------------------------------------------------------ + revno: 2661.523.386 + committer: Sunny Bains + branch nick: 5.1 + timestamp: Fri 2012-02-10 12:47:42 +1100 + message: + BUG#12739098 - 62401: ASSERTION TRX->ERROR_STATE == DB_SUCCESS, QUE0QUE.C LINE 1264 ON TRUNCATE + + During FIC error handling the trx->error_state was not being set to DB_SUCCESS + after failure, before attempting the next DDL SQL operation. This reset to + DB_SUCCESS is somewhat of a requirement though not explicitly stated anywhere. + The fix is to reset it to DB_SUCCESS in row0merge.cc if row_merge_rename_indexes + or row_merge_drop_index functions fail, also reset to DB_SUCCESS at trx commit. + + rb://935 Approved by Jimmy Yang. + ------------------------------------------------------------ + revno: 3097.116.126 + committer: Rohit Kalhans + branch nick: mysql-5.5_b11758263 + timestamp: Fri 2012-02-10 01:43:47 +0530 + message: + Followup patch for bug#11758263. + ------------------------------------------------------------ + revno: 3097.116.125 + committer: Rohit Kalhans + branch nick: mysql-5.5_b11758263 + timestamp: Thu 2012-02-09 23:28:33 +0530 + message: + BUG#11758263 50440: MARK UNORDERED UPDATE WITH AUTOINC UNSAFE + + Problem: Statements that write to tables with auto_increment columns + based on the selection from another table, may lead to master + and slave going out of sync, as the order in which the rows + are retrieved from the table may differ on master and slave. + + Solution: We mark writing to a table with auto_increment table + based on the rows selected from another table as unsafe. This + will cause the execution of such statements to throw a warning + and forces the statement to be logged in ROW if the logging + format is mixed. + + Changes: + 1. All the statements that writes to a table with auto_increment + column(s) based on the rows fetched from another table, will now + be unsafe. + 2. CREATE TABLE with SELECT will now be unsafe. + ------------------------------------------------------------ + revno: 3097.116.124 + committer: Rohit Kalhans + branch nick: mysql_5.5_rollback + timestamp: Wed 2012-02-08 12:10:55 +0530 + message: + Backout the patch for bug#11758263. + ------------------------------------------------------------ + revno: 3097.116.123 + committer: Rohit Kalhans + branch nick: mysql-5.5_bug11758263 + timestamp: Wed 2012-02-08 00:33:08 +0530 + message: + BUG#11758263 50440: MARK UNORDERED UPDATE WITH AUTOINC UNSAFE + + Problem: Statements that write to tables with auto_increment columns + based on the selection from another table, may lead to master + and slave going out of sync, as the order in which the rows + are retrived from the table may differ on master and slave. + + Solution: We mark writing to a table with auto_increment table + as unsafe. This will cause the execution of such statements to + throw a warning and forces the statement to be logged in ROW if + the logging format is mixed. + + Changes: + 1. All the statements that writes to a table with auto_increment + column(s) based on the rows fetched from another table, will now + be unsafe. + 2. CREATE TABLE with SELECT will now be unsafe. +------------------------------------------------------------ +revno: 3277 [merge] +committer: Joerg Bruehe +branch nick: security-5.5 +timestamp: Thu 2012-02-16 16:03:43 +0100 +message: + Upmerge the AIX compile fix into 5.5. + ------------------------------------------------------------ + revno: 2661.768.59 [merge] + committer: Joerg Bruehe + branch nick: security-5.1 + timestamp: Thu 2012-02-16 15:55:53 +0100 + message: + Merge compile fix for AIX into delivery tree. + ------------------------------------------------------------ + revno: 2661.803.1 + committer: Joerg Bruehe + branch nick: bzero-5.1 + timestamp: Thu 2012-01-19 17:05:47 +0100 + message: + Compile fix needed for AIX, + to work around the lack of a bzero() prototype. ------------------------------------------------------------ -revno: 3255 [merge] +revno: 3276 +committer: Tor Didriksen +branch nick: 5.5-security +timestamp: Tue 2012-02-14 08:11:28 +0100 +message: + Bug#13633383 63183: SMALL SORT_BUFFER_SIZE CRASH IN MERGE_BUFFERS + + This patch is a backport of some of the cleanups/refactorings that were done + as part of WL#1393 Optimizing filesort with small limit. +------------------------------------------------------------ +revno: 3275 [merge] committer: Georgi Kodinov -branch nick: merge-5.5-security -timestamp: Mon 2011-12-12 13:45:54 +0200 +branch nick: B13706828-5.5-security +timestamp: Mon 2012-02-13 14:44:54 +0200 message: - empty weave merge mysql-5.1-security->mysql-5-5.security + merge mysql-5.1-security->mysql-5.5-security ------------------------------------------------------------ - revno: 2661.768.40 [merge] + revno: 2661.768.58 [merge] committer: Georgi Kodinov - branch nick: merge-5.1-security - timestamp: Mon 2011-12-12 12:25:35 +0100 + branch nick: B13706828-5.1-security + timestamp: Mon 2012-02-13 13:40:12 +0200 message: - merge 5.1->5.1-security. + merge from 5.0-security + ------------------------------------------------------------ + revno: 1810.4000.42 + committer: Georgi Kodinov + branch nick: B13706828-5.0-security + timestamp: Fri 2012-02-10 16:33:27 +0200 + message: + Bug #13706828: UPGRADE YASSL FROM 1.7.2 TO 2.1.4 + + $SUBJ$ + 1. Took a diff between the previous base version and the + mysql sources. + 2. Added the new 2.1.4 base version. + 3. Reviewed and re-applied the diff from step #1. ------------------------------------------------------------ -revno: 3254 [merge] +revno: 3274 [merge] committer: Georgi Kodinov -branch nick: merge-5.5-security -timestamp: Mon 2011-12-12 12:28:23 +0100 +branch nick: upgrade-yassl-5.5-security +timestamp: Fri 2012-02-10 11:51:33 +0200 message: - merged 5.5->5.5-security + merge ------------------------------------------------------------ - revno: 3097.116.62 - committer: kevin.lewis@oracle.com - branch nick: mysql-5.5 - timestamp: Thu 2011-12-08 13:32:19 -0600 + revno: 2661.768.57 [merge] + committer: Georgi Kodinov + branch nick: upgrade-yassl-5.1-security + timestamp: Fri 2012-02-10 11:49:48 +0200 message: - Bug #13116225 LIVE DOWNGRADE CRASHES WITH INNODB_PAGE_SIZE=4K - - This bug ensures that a live downgrade from an InnoDB 5.6 with WL5756 and - a database created with innodb-page-size=8k or 4k will make a version 5.5 - installation politely refuse to start. Instead of crashing or giving some - indication about a corrupted database, it will indicate the page size - difference. - - This patch takes only that part of the Wl5756 patch that is needed to - protect against opening a tablespace that is stamped with a different - page size. - - It also contains the change in dict_index_find_on_id_low() just in case - a database with another page size is created by recompiling a pre-WL5756 - InnoDB. + merge +------------------------------------------------------------ +revno: 3273 [merge] +committer: Georgi Kodinov +branch nick: upgrade-yassl-5.5-security +timestamp: Fri 2012-02-10 11:45:46 +0200 +message: + merge ------------------------------------------------------------ - revno: 3097.116.61 - committer: Jimmy Yang - branch nick: mysql-5.5 - timestamp: Wed 2011-12-07 18:44:52 -0800 + revno: 3271.1.1 [merge] + committer: Martin Hansson + branch nick: mysql-5.5-security + timestamp: Tue 2012-02-07 17:32:04 +0100 message: - Fix Bug #13083023 - 60229: BROKEN COMPATIBILITY: ERROR WHILE CREATE TABLE - WITH FOREIGN KEY CONSTRAI - - rb://844 approved by marko + Merge of fix for Bug#11765810. + ------------------------------------------------------------ + revno: 2661.802.1 + committer: Martin Hansson + branch nick: mysql-5.1-security + timestamp: Tue 2012-02-07 14:16:09 +0100 + message: + Bug #11765810 58813: SERVER THREAD HANGS WHEN JOIN + WHERE + GROUP BY + IS EXECUTED TWICE FROM P + + This bug is a duplicate of bug 12567331, which was pushed to the + optimizer backporting tree on 2011-06-11. This is just a back-port of + the fix. Both test cases are included as they differ somewhat. +------------------------------------------------------------ +revno: 3272 [merge] +committer: Georgi Kodinov +branch nick: upgrade-yassl-5.5-security +timestamp: Fri 2012-02-10 11:41:54 +0200 +message: + empty merge mysql-5.1-security->mysql-5.5-secruity ------------------------------------------------------------ - revno: 3097.116.60 - committer: Inaam Rana - branch nick: mysql-5.5 - timestamp: Wed 2011-12-07 09:12:53 -0500 + revno: 2661.768.56 [merge] + committer: Georgi Kodinov + branch nick: upgrade-yassl-5.1-security + timestamp: Fri 2012-02-10 11:39:51 +0200 message: - Bug#11759044 - 51325: DROPPING AN EMPTY INNODB TABLE TAKES A LONG TIME - WITH LARGE BUFFER POOL - - (Note: this a backport of revno:3472 from mysql-trunk) - - rb://845 - approved by: Marko - - When dropping a table (with an .ibd file i.e.: with - innodb_file_per_table set) we scan entire LRU to invalidate pages from - that table. This can be painful in case of large buffer pools as we hold - the buf_pool->mutex for the scan. Note that gravity of the problem does - not depend on the size of the table. Even with an empty table but a - large and filled up buffer pool we'll end up scanning a very long LRU - list. - - The fix is to scan flush_list and just remove the blocks belonging to - the table from the flush_list, marking them as non-dirty. The blocks - are left in the LRU list for eventual eviction due to aging. The - flush_list is typically much smaller than the LRU list but for cases - where it is very long we have the solution of releasing the - buf_pool->mutex after scanning 1K pages. - - buf_page_[set|unset]_sticky(): Use new IO-state BUF_IO_PIN to ensure - that a block stays in the flush_list and LRU list when we release - buf_pool->mutex. Previously we have been abusing BUF_IO_READ to achieve - this. + empty merge of mysql-5.0-security->mysql-5.1-security + ------------------------------------------------------------ + revno: 1810.4000.41 + committer: Georgi Kodinov + branch nick: upgrade-yassl-5.0-security + timestamp: Fri 2012-02-10 11:10:07 +0200 + message: + Bug#13706621 : UNIFY THE YASSL VERSIONS THAT WE USE BY BACKPORTING 5.1 + AND 5.5 YASSL FIXES. + + Took the 5.5 yassl code and applied it to the 5.0 codebase, keeping the + compilation files. ------------------------------------------------------------ - revno: 3097.116.59 - committer: Tor Didriksen - branch nick: 5.5-bug13013970geom - timestamp: Mon 2011-12-05 15:42:45 +0100 + revno: 2661.768.55 + committer: Georgi Kodinov + branch nick: upgrade-yassl-5.1-security + timestamp: Fri 2012-02-10 11:35:36 +0200 message: - Bug#13013970 MORE CRASHES IN FIELD_BLOB::GET_KEY_IMAGE + Bug#13706621 : UNIFY THE YASSL VERSIONS THAT WE USE BY BACKPORTING 5.1 + AND 5.5 YASSL FIXES. - The predicate is re-written from - ((`test`.`g1`.`a` = geometryfromtext('')) or ... - to - ((`test`.`g1`.`a` = (geometryfromtext(''))) or ... - - The range optimizer calls save_in_field_no_warnings, in order to fetch keys. - save_in_field_no_warnings returns 0 because of the cache wrapper, - and get_mm_leaf() proceeded to call Field_blob::get_key_image() - which accesses un-initialized data. + Took the 5.5 yassl directory and moved it to the 5.1 tree, while + preserving the makefiles. +------------------------------------------------------------ +revno: 3271 [merge] +committer: Georgi Kodinov +branch nick: merge-5.5-security +timestamp: Mon 2012-02-06 18:37:02 +0200 +message: + empty weave merge mysql-5.1-security->mysql-5.5-security ------------------------------------------------------------ - revno: 3097.116.58 - committer: Tor Didriksen - branch nick: 5.5-sighandler - timestamp: Fri 2011-12-02 15:16:39 +0100 + revno: 2661.768.54 [merge] + committer: Georgi Kodinov + branch nick: merge-5.1-security + timestamp: Mon 2012-02-06 18:26:48 +0200 message: - Bug#11761576 post-push fix: HAVE_EXPLICIT_TEMPLATE_INSTANTIATION in header file broke Mac build + empty weave merge mysql-5.0-security->mysql-5.1-security + ------------------------------------------------------------ + revno: 1810.4000.40 [merge] + committer: Georgi Kodinov + branch nick: merge-5.0-security + timestamp: Mon 2012-02-06 18:23:41 +0200 + message: + merged mysql-5.0->mysql-5.0-security ------------------------------------------------------------ - revno: 3097.116.57 - committer: Tor Didriksen - branch nick: 5.5-sighandler - timestamp: Fri 2011-12-02 14:16:48 +0100 + revno: 2661.768.53 [merge] + committer: Georgi Kodinov + branch nick: merge-5.1-security + timestamp: Mon 2012-02-06 18:24:51 +0200 message: - Bug#11761576 54082: HANDLE_SEGFAULT MAKES USE OF UNSAFE FUNCTIONS - - handle_segfault is the signal handler code of mysqld. however, it makes - calls to potentially unsafe functions localtime_r, fprintf, fflush. + merged mysql-5.1->mysql-5.1-security +------------------------------------------------------------ +revno: 3270 [merge] +committer: Georgi Kodinov +branch nick: merge-5.5-security +timestamp: Mon 2012-02-06 18:26:36 +0200 +message: + merge mysql-5.5->mysql-5.5-security ------------------------------------------------------------ - revno: 3097.116.56 [merge] - committer: Inaam Rana + revno: 3097.116.122 [merge] + committer: Vasil Dimov branch nick: mysql-5.5 - timestamp: Thu 2011-12-01 09:47:12 -0500 + timestamp: Mon 2012-02-06 13:00:41 +0200 message: - merge from mysql-5.1 + Merge mysql-5.1 -> mysql-5.5 + + The actual Bug#11754376 does not exist in MySQL 5.5 because at startup + we drop entries for temporary tables from InnoDB dictionary cache (only + if ROW_FORMAT is not REDUNDANT). But nevertheless the bug in + normalize_table_name_low() is present so we fix it. ------------------------------------------------------------ - revno: 2661.787.65 - committer: Inaam Rana + revno: 2661.800.14 + committer: Vasil Dimov branch nick: mysql-5.1 - timestamp: Thu 2011-12-01 09:41:52 -0500 + timestamp: Mon 2012-02-06 12:44:59 +0200 message: - Bug#13414773 -INNODB_FAST_SHUTDOWN=2, ASSERT STATE == BUF_BLOCK_ZIP_PAGE + Fix Bug#11754376 45976: INNODB LOST FILES FOR TEMPORARY TABLES ON + GRACEFUL SHUTDOWN + + During startup mysql picks up .frm files from the tmpdir directory and + tries to drop those tables in the storage engine. + + The problem is that when tmpdir ends in / then ha_innobase::delete_table() + is passed a string like "/var/tmp//#sql123", then it wrongly normalizes it + to "/#sql123" and calls row_drop_table_for_mysql() which of course fails + to delete the table entry from the InnoDB dictionary cache. + ha_innobase::delete_table() returns an error but nevertheless mysql wipes + away the .frm file and the entry in the InnoDB dictionary cache remains + orphaned with no easy way to remove it. + + The "no easy" way to remove it is to create a similar temporary table again, + copy its .frm file to tmpdir under "#sql123.frm" and restart mysqld with + tmpdir=/var/tmp (no trailing slash) - this way mysql will pick the .frm file + after restart and will try to issue drop table for "/var/tmp/#sql123" + (notice do double slash), ha_innobase::delete_table() will normalize it to + "tmp/#sql123" and row_drop_table_for_mysql() will successfully remove the + table entry from the dictionary cache. - We can have dirty pages during a fast shutdown. Relax the assertion. + The solution is to fix normalize_table_name_low() to normalize things like + "/var/tmp//table" correctly to "tmp/table". + + This patch also adds a test function which invokes + normalize_table_name_low() with various inputs to make sure it works + correctly and a mtr test that calls this test function. + + Reviewed by: Marko (http://bur03.no.oracle.com/rb/r/929/) ------------------------------------------------------------ - revno: 3097.116.55 - committer: sayantan.dutta@oracle.com - branch nick: 11746897 - timestamp: Thu 2011-12-01 18:54:29 +0530 + revno: 3097.116.121 + committer: Ashish Agarwal + branch nick: mysql-5.5 + timestamp: Sun 2012-02-05 14:10:50 +0530 message: - BUG #11746897 - 29508: PLEASE IMPLEMENT MYSQL-TEST-RUN.PL --STRACE-MASTER - Includes fix for strace-client and restricted to strace and linux only. - ****** + BUG#11754145: Failing test cases. Patch to correct the test case. ------------------------------------------------------------ - revno: 3097.116.54 - committer: Luis Soares + revno: 3097.116.120 + committer: Nuno Carvalho branch nick: mysql-5.5 - timestamp: Thu 2011-12-01 00:54:54 +0000 + timestamp: Fri 2012-02-03 14:23:33 +0000 message: - BUG#11745230 - - Refactored the test case: hardened and extended it. Created test inc file - to abstract the task of relocating binlogs. + BUG#12403008 RPL_HEARTBEAT_BASIC FAILS SPORADICALLY ON PUSHBUILD + + rpl_heartbeat_basic test fails sporadically on pushbuild because did + not received all heartbeats from slave in circular replication. - Also, disabled it on windows for not cluttering the test case any further, - as it depends heavily on doing filesystem operations and path handling. - ------------------------------------------------------------ - revno: 3097.116.53 [merge] - committer: Tor Didriksen - branch nick: 5.5 - timestamp: Wed 2011-11-30 17:13:04 +0100 - message: - NULL merge 5.1 => 5.5 - ------------------------------------------------------------ - revno: 2661.787.64 - committer: Tor Didriksen - branch nick: 5.1-sighandler - timestamp: Wed 2011-11-30 17:11:13 +0100 - message: - Bug#11761576 54082: HANDLE_SEGFAULT MAKES USE OF UNSAFE FUNCTIONS - - Post-push fix: build break on windows/optimized + Removed from experimental collection. ------------------------------------------------------------ - revno: 3097.116.52 [merge] - committer: Tor Didriksen - branch nick: 5.5 - timestamp: Wed 2011-11-30 15:56:38 +0100 + revno: 3097.116.119 [merge] + committer: Ashish Agarwal + branch nick: mysql-5.5 + timestamp: Fri 2012-02-03 19:41:03 +0530 message: - Mostly NULL-merge 5.1 => 5.5 of - Bug#11761576 54082: HANDLE_SEGFAULT MAKES USE OF UNSAFE FUNCTIONS + BUG#11748748: Merge from mysql-5.1 to mysql-5.5 ------------------------------------------------------------ - revno: 2661.787.63 - committer: Tor Didriksen - branch nick: 5.1-sighandler - timestamp: Wed 2011-11-30 15:39:29 +0100 + revno: 2661.800.13 + committer: Ashish Agarwal + branch nick: bug_93_5.1 + timestamp: Fri 2012-02-03 19:37:00 +0530 message: - Bug#11761576 54082: HANDLE_SEGFAULT MAKES USE OF UNSAFE FUNCTIONS + BUG#11748748 - 37280: CHECK AND REPAIR TABLE REPORT TABLE + CORRUPTED WHEN RUN CONCURRENTLY WITH - handle_segfault is the signal handler code of mysqld. however, it makes - calls to potentially unsafe functions localtime_r, fprintf, fflush. - ------------------------------------------------------------ - revno: 3097.116.51 [merge] - committer: Tor Didriksen - branch nick: 5.5 - timestamp: Wed 2011-11-30 10:45:23 +0100 - message: - NULL merge 5.1 => 5.5 - ------------------------------------------------------------ - revno: 2661.787.62 - committer: Tor Didriksen - branch nick: 5.1 - timestamp: Tue 2011-11-29 15:52:47 +0100 - message: - Build broken for gcc 4.5.1 in optimized mode. + ISSUE: Table corruption due to concurrent queries. + Different threads running check, repair query + along with insert. Locks not properly acquired + in repair query. Rows are inserted inbetween + repair query. - readline.cc: In function char* batch_readline(LINE_BUFFER*): - readline.cc:60:9: error: out_length may be used uninitialized in this function - log.cc: In function int find_uniq_filename(char*): - log.cc:1857:8: error: number may be used uninitialized in this function + SOLUTION: Mutex lock is acquired before the + repair call. Concurrent queries wont + effect the call to repair. ------------------------------------------------------------ - revno: 3097.116.50 - committer: Andrei Elkin + revno: 3097.116.118 + committer: Ashish Agarwal branch nick: mysql-5.5 - timestamp: Tue 2011-11-29 22:30:04 +0200 + timestamp: Fri 2012-02-03 19:19:32 +0530 message: - reverting the initial patch for bug#13437900 for refinement. + BUG#11754145: One of the test was failing. Patch to fix the test ------------------------------------------------------------ - revno: 3097.116.49 - committer: Andrei Elkin - branch nick: 5.5-bug13437900-repl_ignore_server_ids - timestamp: Tue 2011-11-29 20:17:02 +0200 + revno: 3097.116.117 + committer: Ashish Agarwal + branch nick: bug_4145 + timestamp: Thu 2012-02-02 18:17:14 +0530 message: - Bug#13437900 - VALGRIND REPORTS A LEAK FOR REPL_IGNORE_SERVER_IDS - - There was memory leak when running some tests on PB2. - The reason of the failure is an early return from change_master() - that was supposed to deallocate a dyn-array. + BUG#11754145 - 45702: IMPOSSIBE TO SPECIFY MYISAM_SORT_BUFFER > 4GB + ON 64 BIT MACHINES - Fixed with relocating the dyn-array's destructor at ~LEX() that is - the end of the session, per Gleb's patch idea. - Two optimizations were done: the static buffer for the dyn-array to base on, - and the array initialization is called precisely when it's necessary rather than - per each CHANGE-MASTER as before. - + PROBLEM: When sorting index during repair of + myisam tables, due to improper casting + of buffer size variables value of myisam_ + sort_buffer_size is not set greater than + 4GB. + + SOLUTION: Proper casting of buffer size variable. + myisam_buffer_size changed to unsigned + long long to handle size > 4GB on + linux as well as windows. ------------------------------------------------------------ - revno: 3097.116.48 [merge] - committer: Luis Soares + revno: 3097.116.116 [merge] + committer: Alexander Barkov branch nick: mysql-5.5 - timestamp: Tue 2011-11-29 14:34:16 +0000 + timestamp: Thu 2012-02-02 16:25:48 +0400 message: - BUG#11745230 - - Automerged approved bzr bundle into latest mysql-5.5. + Merging from 5.1 ------------------------------------------------------------ - revno: 3097.120.1 - committer: Luis Soares - branch nick: mysql-5.5 - timestamp: Thu 2011-11-24 17:15:58 +0000 + revno: 2661.800.12 + committer: Alexander Barkov + branch nick: mysql-5.1 + timestamp: Thu 2012-02-02 16:22:13 +0400 message: - BUG#11745230: 12133: MASTER.INDEX FILE KEEPS MYSQLD FROM STARTING IF - BIN LOG HAS BEEN MOVED + Postfix for Bug#11752408. + Recording correct test results. - When moving the binary/relay log files from one location to - another and restarting the server with a different log-bin or - relay-log paths, would cause the startup process to abort. The - root cause was that the server would not be able to find the log - files because it would consider old paths for entries in the - index file instead of the new location. What's even worse, the - relative paths would not be considered relative to the path - provided in log-bin and relay-log, but to mysql_data_dir. - - We fix the cases where the server contains relative paths. When - the server is reading from the index file, it checks whether the - entry contains relative paths. If it does, we replace it with the - absolute path set in log-bin/relay-log option. Absolute paths - remain unchanged and the index must be manually edited to - consider the new log-bin and/or relay-log path (this should be - documented). This is a fix for a GA version, that does not break - behavior (that much). - - For development versions, we should go with Zhenxing's approach - that removes paths altogether from index files. + modified: + mysql-test/suite/engines/funcs/r/db_alter_collate_ascii.result + mysql-test/suite/engines/funcs/r/db_alter_collate_utf8.result + ------------------------------------------------------------ + revno: 3097.116.115 + committer: Marko M?kel? + branch nick: mysql-5.5 + timestamp: Thu 2012-02-02 13:54:27 +0200 + message: + ha_innobase::records_in_range(): Remove a debug assertion + that prohibits an open range (full table). + This assertion catches unnecessary calls to this method, but such calls + are not harming correctness. ------------------------------------------------------------ - revno: 3097.116.47 [merge] - committer: Nirbhay Choubey + revno: 3097.116.114 [merge] + committer: Marko M?kel? branch nick: mysql-5.5 - timestamp: Tue 2011-11-29 19:31:51 +0530 + timestamp: Thu 2012-02-02 13:50:54 +0200 message: - Merge of patch for bug#11756764 from mysql-5.1. + Merge mysql-5.1 to mysql-5.5. ------------------------------------------------------------ - revno: 2661.787.61 - committer: Nirbhay Choubey - branch nick: B11756764-5.1 - timestamp: Tue 2011-11-29 17:59:35 +0530 + revno: 2661.800.11 + committer: Marko M?kel? + branch nick: mysql-5.1 + timestamp: Thu 2012-02-02 13:38:32 +0200 message: - Bug#11756764 48726: MYSQLD KEEPS CRASHING WITH SIGSEGV - WITH MYISAM_USE_MMAP ENABLED - - MySQL server can crash due to segmentation fault when - started with myisam_use_mmap. + Bug#13654923 BOGUS DEBUG ASSERTION IN INDEX CREATION FOR ZERO-LENGTH RECORD - The reason behind this being, while making a request to - unmap (munmap) the previously mapped memory (mmap), the - size passed was 7 bytes larger than the size requested at - the time of mapping. This can eventually unmap the adjacent - memory mapped block, belonging to some other memory-map pool. - Hence the subsequent call to mmap can map a region which was - still a valid memory mapped area. - - Fixed by removing the extra 7-byte margin which was erroneously - added to the size, used for unmappping. + row_merge_buf_write(): Relax the bogus assertion. ------------------------------------------------------------ - revno: 3097.116.46 [merge] - committer: Luis Soares - branch nick: mysql-5.5-latest - timestamp: Thu 2011-11-24 15:39:46 +0000 + revno: 3097.116.113 + committer: Marko M?kel? + branch nick: mysql-5.5 + timestamp: Thu 2012-02-02 12:31:57 +0200 message: - BUG#13427949 + Bug #13651627 Move ut_ad(0) from the beginning to the end of buf_page_print(), + print page dump + + buf_page_print(): Remove the ut_ad(0) from the beginning. Add two flags + (enum buf_page_print_flags) that can be bitwise-ORed together: - Automerged against latest mysql-5.5. + BUF_PAGE_PRINT_NO_CRASH: + Do not crash debug builds at the end of buf_page_print(). + BUF_PAGE_PRINT_NO_FULL: + Do not print the full page dump. This can be useful when adding + diagnostic printout to flushing or to the doublewrite buffer. + + trx_sys_doublewrite_init_or_restore_page(): Replace exit(1) with ut_error, + so that we can get a core dump if this extraordinary condition happens. + + rb:924 approved by Sunny Bains + ------------------------------------------------------------ + revno: 3097.116.112 [merge] + committer: Marko M?kel? + branch nick: mysql-5.5 + timestamp: Thu 2012-02-02 12:13:35 +0200 + message: + Merge mysql-5.1 to mysql-5.5. ------------------------------------------------------------ - revno: 3097.119.1 - committer: Luis Soares - branch nick: mysql-5.5 - timestamp: Thu 2011-11-24 14:51:18 +0000 + revno: 2661.800.10 + committer: Marko M?kel? + branch nick: mysql-5.1 + timestamp: Thu 2012-02-02 12:07:06 +0200 message: - BUG#13427949: CHANGE MASTER TO USER='' (EMPTY USER) CAUSES ERRORS ON VALGRING - - When passing an empty user to the connect function will cause - valgrind warnings. Seems that the client code is not prepared - to handle empty users. On 5.6 this can even be triggered by - START SLAVE PASSWORD='...'; i.e., without setting USER='...' on - the START SLAVE command (see WL#4143 for details on the new - additional START SLAVE commands). - - To fix this, we disallow empty users when configuring the slave - connection parameters (this decision might be revisited if the - client code accepts empty users in the future). + Suppress messages about long semaphore waits in innodb_bug34300.test. ------------------------------------------------------------ - revno: 3097.116.45 [merge] + revno: 3097.116.111 [merge] committer: Ashish Agarwal branch nick: mysql-5.5 - timestamp: Wed 2011-11-23 18:50:29 +0530 + timestamp: Thu 2012-02-02 14:25:43 +0530 message: - BUG#11751793 - 42784: Merge from mysql-5.1 to mysql-5.5 + BUG#11756869: Merge from mysql-5.1 to mysql-5.5 ------------------------------------------------------------ - revno: 2661.787.60 + revno: 2661.800.9 [merge] committer: Ashish Agarwal - branch nick: bug_93_5.1 - timestamp: Wed 2011-11-23 18:33:29 +0530 + branch nick: mysql-5.1 + timestamp: Thu 2012-02-02 14:19:38 +0530 message: - BUG#11751793 - 42784: ARCHIVE TABLES CAUSE 100% CPU USAGE - AND HANG IN SHOW TABLE STATUS. - - ISSUE: Table corruption due to concurrent queries. - Different threads running insert and check - query leads to table corruption. Not properly locked, - rows are inserted in between check query. + BUG#11756869 - 48848: MYISAMCHK DOING SORT RECOVER IN CERTAIN + CASES RESETS DATA POINTER TO SMAL - SOLUTION: In check query mutex lock is acquired - for a longer time to handle concurrent - insert and check query. + ISSUE: Myisamchk doing sort recover + on a table reduces data_file_length. + Maximum size of data file decreases, + lesser number of rows are stored. - NOTE: Additionally we backported the fix for CHECKSUM - issue(bug#11758979). + SOLUTION: Size of data_file_length is + fixed to the original length. + ------------------------------------------------------------ + revno: 2661.801.1 + committer: Ashish Agarwal + branch nick: bug_869_1 + timestamp: Wed 2012-02-01 11:19:53 +0530 + message: + BUG#11756869 - 48848: MYISAMCHK DOING SORT RECOVER IN CERTAIN + CASES RESETS DATA POINTER TO SMAL + + ISSUE: Myisamchk doing sort recover + on a table reduces data_file_length. + Maximum size of data file decreases, + lesser number of rows are stored. + + SOLUTION: Size of data_file_length is + fixed to the original length. ------------------------------------------------------------ - revno: 3097.116.44 - committer: Build Team - branch nick: mysql-5.5 - timestamp: Wed 2011-11-23 12:33:59 +0100 + revno: 3097.116.110 [merge] + committer: Andrei Elkin + branch nick: 5.5-bug3593869-64035-MYSQL_BINLOG_SEND-CRASH + timestamp: Tue 2012-01-31 17:16:25 +0200 message: - Bumped version number to 5.5.20 + merge from 5.5 repo. + ------------------------------------------------------------ + revno: 3097.123.8 + committer: Inaam Rana + branch nick: mysql-5.5 + timestamp: Tue 2012-01-31 09:50:17 -0500 + message: + bug#13636122: mysql-5.1 => mysql-5.5 + ------------------------------------------------------------ + revno: 3097.123.7 [merge] + committer: Inaam Rana + branch nick: mysql-5.5 + timestamp: Tue 2012-01-31 09:36:28 -0500 + message: + NULL merge from mysql-5.1 + ------------------------------------------------------------ + revno: 2661.800.8 + committer: Inaam Rana + branch nick: mysql-5.1 + timestamp: Tue 2012-01-31 09:31:31 -0500 + message: + Bug#13636122 THE ORIGINAL TABLE MISSING WHILE EXECUTE THE DDL 'ALTER TABLE ADD COLUMN + + rb://914 + approved by: Marko Makela + + Poll in fil_rename_tablespace() after setting ::stop_ios flag can + result in a hang because the other thread actually dispatching the IO + won't wake IO helper threads or flush the tablespace before starting + wait in fil_mutex_enter_and_prepare_for_io(). ------------------------------------------------------------ - revno: 3097.116.43 - tags: mysql-5.5.19, clone-5.5.19-build - committer: Jimmy Yang - branch nick: mysql-5.5 - timestamp: Tue 2011-11-22 07:06:19 -0800 + revno: 3097.116.109 [merge] + committer: Andrei Elkin + branch nick: 5.5-bug3593869-64035-MYSQL_BINLOG_SEND-CRASH + timestamp: Tue 2012-01-31 17:07:44 +0200 message: - Disable innodb_corrupt_bit.test on windows, issues with - innodb_change_buffering_debug prevents creating the Dup Key scenario on - windows + merge from 5.5 repo. + ------------------------------------------------------------ + revno: 3097.123.6 [merge] + committer: sayantan.dutta@oracle.com + branch nick: mysql-5.5 + timestamp: Tue 2012-01-31 17:46:45 +0530 + message: + Undo last push + ------------------------------------------------------------ + revno: 2661.800.7 + committer: sayantan.dutta@oracle.com + branch nick: mysql-5.1 + timestamp: Tue 2012-01-31 17:39:40 +0530 + message: + (no message) + ------------------------------------------------------------ + revno: 3097.123.5 [merge] + committer: sayantan.dutta@oracle.com + branch nick: mysql-5.5 + timestamp: Tue 2012-01-31 17:20:56 +0530 + message: + merge #64127 5.1 => 5.5 + ------------------------------------------------------------ + revno: 2661.800.6 + committer: sayantan.dutta@oracle.com + branch nick: mysql-5.1 + timestamp: Tue 2012-01-31 17:09:32 +0530 + message: + Bug #64127: MTR --warnings option misses some of InnoDB errors and warnings + ------------------------------------------------------------ + revno: 3097.123.4 [merge] + committer: Ramil Kalimullin + branch nick: mysql-5.5 + timestamp: Tue 2012-01-31 11:00:31 +0400 + message: + Auto-merge from mysql-5.1. + ------------------------------------------------------------ + revno: 2661.800.5 [merge] + committer: Ramil Kalimullin + branch nick: mysql-5.1 + timestamp: Tue 2012-01-31 10:57:12 +0400 + message: + Null-merge from mysql-5.0. + ------------------------------------------------------------ + revno: 1810.4004.9 + committer: Ramil Kalimullin + branch nick: mysql-5.0 + timestamp: Mon 2012-01-30 22:52:33 +0400 + message: + Fix for BUG#13596377: MYSQL CRASHES ON STARTUP ON FREEBSD IN PB2 + + Fix for #36428/#38364 backported into 5.0. + ------------------------------------------------------------ + revno: 3097.123.3 + author: hery.ramilison@oracle + committer: Build Team + branch nick: mysql-5.5 + timestamp: Mon 2012-01-30 18:33:55 +0100 + message: + starting 5.5.21 build + ------------------------------------------------------------ + revno: 3097.123.2 [merge] + tags: clone-5.5.21-build, mysql-5.5.21 + committer: chuck.bell@oracle.com + branch nick: mysql-12969301 + timestamp: Mon 2012-01-30 10:23:21 -0500 + message: + Merge with main for BUG#12969301 + ------------------------------------------------------------ + revno: 3097.124.24 + committer: Inaam Rana + branch nick: mysql-5.5 + timestamp: Mon 2012-01-30 09:24:09 -0500 + message: + Bug#11836233 MISLEADING SUGGESTION REGARDING LINUX NATIVE AIO IN INNODB + ERROR LOG + + Fixed error meesage + ------------------------------------------------------------ + revno: 3097.124.23 + committer: Tor Didriksen + branch nick: 5.5 + timestamp: Mon 2012-01-30 10:08:22 +0100 + message: + Bug#13604121 - LIBMYSQLCIENT.SO MISSING SOME FUNCTIONS PRESENT IN LIBMYSQLCLIENT.A + + +get_tty_password this is the only external symbol in get_password.c, + which is explicitly listed in CLIENT_SOURCES + +handle_options this is in mysys/my_getopt.c + adding this sysmbol pulls in the other externals: + T getopt_compare_strings + T getopt_double_limit_value + T getopt_ll_limit_value + T getopt_ull_limit_value + T handle_options + T my_cleanup_options + T my_getopt_register_get_addr + T my_print_help + T my_print_variables + ------------------------------------------------------------ + revno: 3097.124.22 + committer: Yasufumi Kinoshita + branch nick: mysql-5.5 + timestamp: Fri 2012-01-27 13:07:24 +0900 + message: + Fix for build break introduced at rev 3711 + asked by Calvin + ------------------------------------------------------------ + revno: 3097.124.21 + committer: Jorgen Loland + branch nick: mysql-5.5 + timestamp: Thu 2012-01-26 13:30:11 +0100 + message: + BUG 13413535 followup: Fix gcc warning + ------------------------------------------------------------ + revno: 3097.124.20 + committer: Marko M?kel? + branch nick: mysql-5.5 + timestamp: Thu 2012-01-26 13:24:00 +0200 + message: + Bug #13413535 61104: INNODB: FAILING ASSERTION: PAGE_GET_N_RECS(PAGE) > 1 + + This fix does not remove the underlying cause of the assertion + failure. It just works around the problem, allowing a corrupted + secondary index to be fixed by DROP INDEX and CREATE INDEX (or in the + worst case, by re-creating the table). + + ibuf_delete(): If the record to be purged is the last one in the page + or it is not delete-marked, refuse to purge it. Instead, write an + error message to the error log and let a debug assertion fail. + + ibuf_set_del_mark(): If the record to be delete-marked is not found, + display some more information in the error log and let a debug + assertion fail. + + row_undo_mod_del_unmark_sec_and_undo_update(), + row_upd_sec_index_entry(): Let a debug assertion fail when the record + to be delete-marked is not found. + + buf_page_print(): Add ut_ad(0) so that corruption will be more + prominent in stress testing with debug binaries. Add ut_ad(0) here and + there where corruption is noticed. + + btr_corruption_report(): Display some data on page_is_comp() mismatch. + + btr_assert_not_corrupted(): A wrapper around btr_corruption_report(). + Assert that page_is_comp() agrees with the table flags. + + rb:911 approved by Inaam Rana + ------------------------------------------------------------ + revno: 3097.124.19 [merge] + committer: Guilhem Bichot + branch nick: mysql-5.5-2 + timestamp: Thu 2012-01-26 10:38:28 +0100 + message: + merge from 5.1 + ------------------------------------------------------------ + revno: 2661.800.4 + committer: Guilhem Bichot + branch nick: mysql-5.1 + timestamp: Thu 2012-01-26 10:25:23 +0100 + message: + Fixes for: + BUG#13519696 - 62940: SELECT RESULTS VARY WITH VERSION AND + WITH/WITHOUT INDEX RANGE SCAN + BUG#13453382 - REGRESSION SINCE 5.1.39, RANGE OPTIMIZER WRONG + RESULTS WITH DECIMAL CONVERSION + BUG#13463488 - 63437: CHAR & BETWEEN WITH INDEX RETURNS WRONG + RESULT AFTER MYSQL 5.1. + Those are all cases where the range optimizer got it wrong + with > and >=. + ------------------------------------------------------------ + revno: 3097.124.18 + committer: Tor Didriksen + branch nick: 5.5 + timestamp: Thu 2012-01-26 08:00:37 +0100 + message: + Bug#11753187 post-push fix: fix .result file + ------------------------------------------------------------ + revno: 3097.124.17 + committer: Nuno Carvalho + branch nick: mysql-5.5 + timestamp: Wed 2012-01-25 18:05:10 +0000 + message: + BUG#12403008 RPL_HEARTBEAT_BASIC FAILS SPORADICALLY ON PUSHBUILD + + rpl_heartbeat_basic test fails sporadically on pushbuild because did + not received all heartbeats from slave in circular replication. + + MASTER_HEARTBEAT_PERIOD had the default value (slave_net_timeout/2) so + wait on "Heartbeat event received on master", that only waits for 1 + minute, sometimes timeout before heartbeat arrives. Fixed setting a + smaller period value. + ------------------------------------------------------------ + revno: 3097.124.16 + committer: Tor Didriksen + branch nick: 5.5-merge + timestamp: Wed 2012-01-25 16:11:03 +0100 + message: + Bug#13359121 LARGE NUMBERS, /STRINGS/DTOA.C:662 + Bug#12985021 SIMPLE QUERY WITH DECIMAL NUMBERS TAKE AN + + When parsing the fractional part of a string which + is to be converted to double, we can stop after a few digits: + the extra digits will not contribute to the actual result anyways. + ------------------------------------------------------------ + revno: 3097.124.15 + committer: Tor Didriksen + branch nick: 5.5 + timestamp: Wed 2012-01-25 16:05:27 +0100 + message: + Bug#13463415 followup: compensate for compiler bug + ------------------------------------------------------------ + revno: 3097.124.14 + committer: Tor Didriksen + branch nick: 5.5-bug13463415decimal + timestamp: Wed 2012-01-25 10:36:25 +0100 + message: + Bug#13463415 63502: INCORRECT RESULTS OF BIGINT AND DECIMAL COMPARISON + Bug#11758543 50756: BIGINT '100' MATCHES 1.001E2 + + Expressions of the form + BIGINT_COL + + should be done either as decimal, or float. + + Currently however, such comparisons are done as int, + which means that the constant may be truncated, + and yield false positives/negatives for all queries + where compare is '>' '<' '>=' '<=' '=' '!='. + + BIGINT_COL IN + and + BIGINT_COL BETWEEN AND + are also affected. + ------------------------------------------------------------ + revno: 3097.124.13 + committer: Dmitry Shulga + branch nick: mysql-5.5-bug11753187 + timestamp: Wed 2012-01-25 15:59:30 +0600 + message: + Fixed bug#11753187 (formerly known as bug 44585): SP_CACHE BEHAVES AS + MEMORY LEAK. + + Background: + - There are caches for stored functions and stored procedures (SP-cache); + - There is no similar cache for events; + - Triggers are cached together with TABLE objects; + - Those SP-caches are per-session (i.e. specific to each session); + - A stored routine is represented by a sp_head-instance internally; + - SP-cache basically contains sp_head-objects of stored routines, which + have been executed in a session; + - sp_head-object is added into the SP-cache before the corresponding + stored routine is executed; + - SP-cache is flushed in the end of the session. + + The problem was that SP-cache might grow without any limit. Although this + was not a pure memory leak (the SP-cache is flushed when session is closed), + this is still a problem, because the user might take much memory by + executing many stored routines. + + The patch fixes this problem in the least-intrusive way. A soft limit + (similar to the size of table definition cache) is introduced. To represent + such limit the new runtime configuration parameter 'stored_program_cache' + is introduced. The value of this parameter is stored in the new global + variable stored_program_cache_size that used to control the size of SP-cache + to overflow. + + The parameter 'stored_program_cache' limits number of cached routines for + each thread. It has the following min/default/max values given from support: + min = 256, default = 256, max = 512 * 1024. + Also it should be noted that this parameter limits the size of + each cache (for stored procedures and for stored functions) separately. + + The SP-cache size is checked after top-level statement is parsed. + If SP-cache size exceeds the limit specified by parameter + 'stored_program_cache' then SP-cache is flushed and memory allocated for + cache objects is freed. Such approach allows to flush cache safely + when there are dependencies among stored routines. + ------------------------------------------------------------ + revno: 3097.124.12 [merge] + committer: Marko M?kel? + branch nick: mysql-5.5 + timestamp: Wed 2012-01-25 10:18:14 +0200 + message: + Merge mysql-5.1 to mysql-5.5. + ------------------------------------------------------------ + revno: 2661.800.3 + committer: Marko M?kel? + branch nick: mysql-5.1 + timestamp: Wed 2012-01-25 10:15:27 +0200 + message: + btr_cur_search_to_nth_level(): Add a debug assertion + and some Valgrind instrumentation. + ------------------------------------------------------------ + revno: 3097.124.11 [merge] + committer: Alexander Barkov + branch nick: mysql-5.5.b13458237 + timestamp: Tue 2012-01-24 16:09:25 +0400 + message: + Merging from mysql-5.5 + ------------------------------------------------------------ + revno: 2661.800.2 [merge] + committer: Alexander Barkov + branch nick: mysql-5.1.b13458237 + timestamp: Tue 2012-01-24 16:02:12 +0400 + message: + Merging from mysql-5.1 + ------------------------------------------------------------ + revno: 3097.124.10 [merge] + committer: Alexander Barkov + branch nick: mysql-5.5.b13458237 + timestamp: Tue 2012-01-24 13:24:05 +0400 + message: + Merging BUG#13458237 from 5.1. + ------------------------------------------------------------ + revno: 2661.800.1 + committer: Alexander Barkov + branch nick: mysql-5.1.b13458237 + timestamp: Tue 2012-01-24 13:00:13 +0400 + message: + BUG#13458237 - INCONSISTENT HANDLING OF INVALIDE DATES WITH ZERO DAY. SIMILAR TO '2009-10-00' + - Reverting the patch for Bug # 12584302 + The patch will be reverted in 5.1 and 5.5. + The patch will not be reverted in 5.6, the change will + be properly documented in 5.6. + - Backporting DBUG_ASSERT not to crash on '0000-01-00' + (already fixed in mysql-trunk (5.6)) + ------------------------------------------------------------ + revno: 3097.124.9 + committer: Nuno Carvalho + branch nick: mysql-5.5 + timestamp: Mon 2012-01-23 16:50:54 +0000 + message: + BUG#12364404 - UNDETERMINISTIC WAIT LOOP IN WAIT_FOR_NDB_TO_BINLOG.INC + + The wait_for_ndb_to_binlog.inc include file used by the blow rpl_tests + common for rpl and rpl_ndb suite is simply doing a "sleep 5", this is + not deterministic and wastes lot of test time uneccessarily. The test + should be rewritten to check if the condition it wait for has been + reached or not. + + For NDB engine all events will be added by NDB injector so tests only + can continue after injector is ready, this test waits for proper + injector thread state. + ------------------------------------------------------------ + revno: 3097.124.8 + committer: Manish Kumar + branch nick: mysql-5.5 + timestamp: Mon 2012-01-23 17:39:37 +0530 + message: + BUG#11752315 - 43460: STOP SLAVE UNABLE TO COMPLETE WHEN SLAVE THREAD IS TRYING TO RECONNECT TO + + Problem : The basic problem is the way the thread sleeps in mysql-5.5 and also in mysql-5.1 + when we execute a stop slave on windows platform. + On windows platform if the stop slave is executed after the master dies, we have + this long wait before the stop slave return a value. This is because there is a + sleep of the thread. The sleep is uninterruptable in the two above version, + which was fixed by Davi patch for the BUG#11765860 for mysql-trunk. Backporting + his patch for mysql-5.5 fixes the problem. + + Solution : A new pair of mutex and condition variable is introduced to synchronize thread + sleep and finalization. A new mutex is required because the slave threads are + terminated while holding the slave thread locks (run_lock), which can not be + relinquished during termination as this would affect the lock order. + ------------------------------------------------------------ + revno: 3097.124.7 [merge] + committer: Alexander Barkov + branch nick: mysql-5.5.b11752408v2 + timestamp: Mon 2012-01-23 13:23:50 +0400 + message: + Merging Bug#11752408 from mysql-5.1 + ------------------------------------------------------------ + revno: 2661.798.22 + committer: Alexander Barkov + branch nick: mysql-5.1.b11752408 + timestamp: Mon 2012-01-23 13:07:10 +0400 + message: + Bug#11752408 - 43593: DUMP/BACKUP/RESTORE/UPGRADE TOOLS FAILS BECAUSE OF UTF8_GENERAL_CI + + Introducing new collations: + utf8_general_mysql500_ci and ucs2_general_mysql500_ci, + to reproduce behaviour of utf8_general_ci and ucs2_general_ci + from mysql-5.1.23 (and earlier). + + The collations are added to simplify upgrade from mysql-5.1.23 and earlier. + + Note: The patch does not make new server start over old data automatically. + Some manual upgrade procedures are assumed. + + Paul: please get in touch with me to discuss upgrade procedures + when documenting this bug. + + modified: + include/m_ctype.h + mysql-test/r/ctype_utf8.result + mysql-test/t/ctype_utf8.test + mysys/charset-def.c + strings/ctype-ucs2.c + strings/ctype-utf8.c + ------------------------------------------------------------ + revno: 3097.124.6 + committer: Inaam Rana + branch nick: mysql-5.5 + timestamp: Fri 2012-01-20 10:47:01 -0500 + message: + Bug#13612811 VALGRIND ERROR IN OS_AIO_INIT + + Fix valgrind warning introduced by fix for bug 11765450. + ------------------------------------------------------------ + revno: 3097.124.5 + committer: Mattias Jonsson + branch nick: topush-5.5 + timestamp: Fri 2012-01-20 14:19:39 +0100 + message: + Bug#13500478 63623: TEST CASE PARTITION_BINLOG_STMT + CREATES A FILE IN AN IMPROPER LOCATION. + + Fixed by using $MYSQLTEST_VARDIR, as proposed by + Davi Arnaut. + + Thank you Davi! + ------------------------------------------------------------ + revno: 3097.124.4 + committer: Georgi Kodinov + branch nick: fix-5.5 + timestamp: Fri 2012-01-20 13:35:48 +0200 + message: + Addendum to the fix for bug #11754014 + + - Fixed the checks to properly check for plugin_dir containing a trailing slash or backslash. + - Fixed a under-configuration in udf_skip_grants that was preventing the test + from running even when there was a udf plugin. + ------------------------------------------------------------ + revno: 3097.124.3 + committer: Dmitry Shulga + branch nick: mysql-5.5-bug13070308 + timestamp: Fri 2012-01-20 16:03:39 +0600 + message: + Patch for bug#13070308 - VALGRIND failure in XA test. + + The issue is that xa.test failed sporadically on some platforms. + The reason for the test failure is a race condition in xa.test. + The race condition occures between connection that executes statement + INSERT INTO t2 SELECT FROM t1 and other connection that tries to run + statements DELETE FROM t1 and COMMIT. If COMMIT statement had been executed + before the statement INSERT INTO t2 SELECT FROM t1 was locked by lock + on table t1 (as a result of query from table t1) then the INSERT statement + is executed successfully and a following test for deadlock would failed. + + This patch fixes this race condition by moving COMMIT statement after commit + of distributed transaction from concurrent session. + ------------------------------------------------------------ + revno: 3097.124.2 + committer: Nuno Carvalho + branch nick: mysql-5.5 + timestamp: Thu 2012-01-19 16:56:43 +0000 + message: + BUG#13050593 - BACKSLASH SWALLOWED BY INCLUDE/SHOW_SLAVE_STATUS.INC + + If an error message contains '\' backslash it is displayed correctly + through show-slave-status or + query_get_value(SHOW SLAVE STATUS, Last_IO_Error, 1);. But when + SELECT REPLACE(...) is applied backslash is escaped resulting in a + different test output. + + Disabled backslash escape on show_slave_status.inc and replaced '\' for + '/' using replace_regex function in order to achieve the same test + output when different path separators are used. + ------------------------------------------------------------ + revno: 3097.124.1 + committer: Inaam Rana + branch nick: mysql-5.5 + timestamp: Thu 2012-01-19 09:10:30 -0500 + message: + Bug#11765450 58421: INNODB TEMPORARY TABLE CRASH WHEN TMPDIR ON LINUX TMPFS + + rb://898 + approved by: Marko Makela + + On some kernel versions native aio operations are not supported on + tmpfs. Check this during start up and fall back to simulated aio. diff -Nru mysql-5.5-5.5.20/Docs/INFO_SRC mysql-5.5-5.5.22/Docs/INFO_SRC --- mysql-5.5-5.5.20/Docs/INFO_SRC 2011-12-16 19:52:07.000000000 +0000 +++ mysql-5.5-5.5.22/Docs/INFO_SRC 2012-03-02 19:44:47.000000000 +0000 @@ -1,7 +1,7 @@ -revision-id: joerg.bruehe@oracle.com-20111216193855-uoglqnztyd5pwj34 -date: 2011-12-16 20:38:55 +0100 -build-date: 2011-12-16 20:44:13 +0100 -revno: 1 -branch-nick: mysql-5.5.20-release +revision-id: hery.ramilison@oracle.com-20120302192717-x3pyzi4neg6ukaza +date: 2012-03-02 20:27:17 +0100 +build-date: 2012-03-02 20:36:32 +0100 +revno: 6 +branch-nick: mysql-5.5.22-release -MySQL source 5.5.20 +MySQL source 5.5.22 diff -Nru mysql-5.5-5.5.20/Docs/INSTALL-BINARY mysql-5.5-5.5.22/Docs/INSTALL-BINARY --- mysql-5.5-5.5.20/Docs/INSTALL-BINARY 2011-12-16 19:52:16.000000000 +0000 +++ mysql-5.5-5.5.22/Docs/INSTALL-BINARY 2012-03-02 19:44:56.000000000 +0000 @@ -17,7 +17,7 @@ MySQL compressed tar file binary distributions have names of the form mysql-VERSION-OS.tar.gz, where VERSION is a number (for - example, 5.5.20), and OS indicates the type of operating system + example, 5.5.23), and OS indicates the type of operating system for which the distribution is intended (for example, pc-linux-i686 or winx64). @@ -169,3 +169,11 @@ have no passwords. After starting the server, you should set up passwords for them using the instructions in Section 2.10, "Postinstallation Setup and Testing." + + Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights + reserved. [1]Legal Notices + +References + + + 1. file://localhost/data0/users/mysqldoc/docs-build/mysqldoc/refman-5.5/binary-installation-nolink.html#legalnotice diff -Nru mysql-5.5-5.5.20/Docs/mysql.info mysql-5.5-5.5.22/Docs/mysql.info --- mysql-5.5-5.5.20/Docs/mysql.info 2011-12-16 19:52:16.000000000 +0000 +++ mysql-5.5-5.5.22/Docs/mysql.info 2012-03-02 19:44:56.000000000 +0000 @@ -40,6 +40,7 @@ * error-handling:: Errors, Error Codes, and Common Problems * news:: MySQL Change History * restrictions:: Restrictions and Limits +* glossary:: MySQL Glossary  File: manual.info, Node: preface, Next: introduction, Prev: Top, Up: Top @@ -48,7 +49,7 @@ ************************** This is the Reference Manual for the MySQL Database System, version -5.5, through release 5.5.20. Differences between minor versions of +5.5, through release 5.5.23. Differences between minor versions of MySQL 5.5 are noted in the present text with reference to release numbers (5.5.X). For license information, see the Legal Notice. This product may contain third-party code. For license information on @@ -66,7 +67,7 @@ *Legal Notice* -Copyright (C) 1997, 2011, Oracle and/or its affiliates. All rights +Copyright (C) 1997, 2012, Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license @@ -243,7 +244,7 @@ ===================== This is the Reference Manual for the MySQL Database System, version -5.5, through release 5.5.20. Differences between minor versions of +5.5, through release 5.5.23. Differences between minor versions of MySQL 5.5 are noted in the present text with reference to release numbers (5.5.X). @@ -1020,8 +1021,8 @@ show-engines.). * The `SHOW INNODB STATUS' and `SHOW MUTEX STATUS' SQL statements - (use *Note `SHOW ENGINE INNODB STATUS': show-engine. *Note `SHOW - ENGINE INNODB MUTEX': show-engine.). + (use *Note `SHOW ENGINE INNODB STATUS': show-engine. and *Note + `SHOW ENGINE INNODB MUTEX': show-engine.). * The `SHOW PLUGIN' SQL statement (use *Note `SHOW PLUGINS': show-plugins.). @@ -2015,7 +2016,7 @@ You can set the default SQL mode by starting *Note `mysqld': mysqld. with the `--sql-mode="MODE_VALUE"' option. You can also change the mode at runtime by setting the `sql_mode' system variable with a *Note `SET -[GLOBAL|SESSION] sql_mode='MODE_VALUE'': set-option. statement. +[GLOBAL|SESSION] sql_mode='MODE_VALUE'': set-statement. statement. For more information on setting the SQL mode, see *Note server-sql-mode::. @@ -2139,8 +2140,8 @@ * The *Note `FLUSH': flush. and *Note `RESET': reset. statements. - * The *Note `SET': set-option. statement. See *Note - set-option::. + * The *Note `SET': set-statement. statement. See *Note + set-statement::. * The *Note `SHOW': show. statement. See *Note show::. The information produced by many of the MySQL-specific *Note @@ -4022,8 +4023,8 @@ Example: - shell> md5sum mysql-standard-5.5.20-linux-i686.tar.gz - aaab65abbec64d5e907dcd41b8699945 mysql-standard-5.5.20-linux-i686.tar.gz + shell> md5sum mysql-standard-5.5.23-linux-i686.tar.gz + aaab65abbec64d5e907dcd41b8699945 mysql-standard-5.5.23-linux-i686.tar.gz You should verify that the resulting checksum (the string of hexadecimal digits) matches the one displayed on the download page @@ -4157,8 +4158,8 @@ *MySQL Package and Signature Files* File Type File Name -Distribution file `mysql-standard-5.5.20-linux-i686.tar.gz' -Signature file `mysql-standard-5.5.20-linux-i686.tar.gz.asc' +Distribution file `mysql-standard-5.5.23-linux-i686.tar.gz' +Signature file `mysql-standard-5.5.23-linux-i686.tar.gz.asc' Make sure that both files are stored in the same directory and then run the following command to verify the signature for the distribution file: @@ -4167,7 +4168,7 @@ Example: - shell> gpg --verify mysql-standard-5.5.20-linux-i686.tar.gz.asc + shell> gpg --verify mysql-standard-5.5.23-linux-i686.tar.gz.asc gpg: Signature made Tue 01 Feb 2011 02:38:30 AM CST using DSA key ID 5072E1F5 gpg: Good signature from "MySQL Release Engineering " @@ -4191,8 +4192,8 @@ Example: - shell> rpm --checksig MySQL-server-5.5.20-0.glibc23.i386.rpm - MySQL-server-5.5.20-0.glibc23.i386.rpm: md5 gpg OK + shell> rpm --checksig MySQL-server-5.5.23-0.glibc23.i386.rpm + MySQL-server-5.5.23-0.glibc23.i386.rpm: md5 gpg OK *Note*: @@ -4274,7 +4275,7 @@ MySQL compressed `tar' file binary distributions have names of the form `mysql-VERSION-OS.tar.gz', where `VERSION' is a number (for example, -`5.5.20'), and OS indicates the type of operating system for which the +`5.5.23'), and OS indicates the type of operating system for which the distribution is intended (for example, `pc-linux-i686' or `winx64'). To install MySQL from a compressed `tar' file binary distribution, your @@ -4610,7 +4611,7 @@ "Complete Package." * *MySQL Installer*: This package has a file name similar to - `mysql-installer-5.5.20.0.msi' and utilizes MSI's to automatically + `mysql-installer-5.5.23.0.msi' and utilizes MSI's to automatically install MySQL server and other products. It will download and apply updates to itself, and for each of the installed products. It also configures the additional non-server products, such as @@ -4622,13 +4623,13 @@ its components. * *The Complete Package*: This package has a file name similar to - `mysql-5.5.20-win32.msi' and contains all files needed for a + `mysql-5.5.23-win32.msi' and contains all files needed for a complete Windows installation, including the Configuration Wizard. This package includes optional components such as the embedded server and benchmark suite. * *The Noinstall Archive*: This package has a file name similar to - `mysql-5.5.20-win32.zip' and contains all the files found in the + `mysql-5.5.23-win32.zip' and contains all the files found in the Complete install package, with the exception of the Configuration Wizard. This package does not include an automated installer, and must be manually installed and configured. @@ -5059,8 +5060,8 @@ `Location' string contains the path to the installation directory. In a default installation it contains `C:\Program Files\MySQL\MySQL Server 5.5\'. The `Version' string contains the release number. For example, -for an installation of MySQL Server 5.5.20, the key contains a value of -`5.5.20'. +for an installation of MySQL Server 5.5.23, the key contains a value of +`5.5.23'. These registry keys are used to help external tools identify the installed location of the MySQL server, preventing a complete scan of @@ -5153,7 +5154,7 @@ tool. For example, to perform a quiet installation (which shows no dialog boxes or progress): - shell> msiexec /i /quiet mysql-5.5.20.msi + shell> msiexec /i /quiet mysql-5.5.23.msi The `/i' indicates that you want to perform an installation. The `/quiet' option indicates that you want no interactive elements. @@ -5162,7 +5163,7 @@ the dialog boxes providing information on the installation and registration of MySQL, use `/passive' mode instead of `/quiet': - shell> msiexec /i /passive mysql-5.5.20.msi + shell> msiexec /i /passive mysql-5.5.23.msi Regardless of the mode of the installation, installing the package in this manner performs a 'Typical' installation, and installs the default @@ -5171,7 +5172,7 @@ You can also use this method to uninstall MySQL by using the `/uninstall' or `/x' options: - shell> msiexec /x /quiet mysql-5.5.20.msi + shell> msiexec /x /quiet mysql-5.5.23.msi To install MySQL and configure a MySQL instance from the command line, see *Note mysql-config-wizard-cmdline::. @@ -5846,7 +5847,7 @@ name `MySQL55' and setting the root password to 1234. shell> MySQLInstanceConfig.exe -i -q "-lC:\mysql_install_log.txt" » - "-nMySQL Server 5.5" "-pC:\Program Files\MySQL\MySQL Server 5.5" -v5.5.20 » + "-nMySQL Server 5.5" "-pC:\Program Files\MySQL\MySQL Server 5.5" -v5.5.23 » "-tmy-template.ini" "-cC:\mytest.ini" ServerType=DEVELOPMENT DatabaseType=MIXED » ConnectionUsage=DSS Port=3311 ServiceName=MySQL55 RootPassword=1234 @@ -5861,7 +5862,7 @@ Installing service ... Product Name: MySQL Server 5.5 - Version: 5.5.20 + Version: 5.5.23 Installation Path: C:\Program Files\MySQL\MySQL Server 5.5\ Creating configuration file C:\mytest.ini using template my-template.ini. @@ -6139,7 +6140,7 @@ connections: mysqld: ready for connections - Version: '5.5.20' socket: '' port: 3306 + Version: '5.5.23' socket: '' port: 3306 The server continues to write to the console any further diagnostic output it produces. You can open a new console window in which to run @@ -7299,7 +7300,10 @@ aware that they may differ from those built by us in features, capabilities, and conventions (including communication setup), and that the instructions in this manual do not necessarily apply to installing -them. The vendor's instructions should be consulted instead. +them. The vendor's instructions should be consulted instead. Because of +these differences, RPM packages built by us check whether such RPMs +built by other vendors are installed. If so, the RPM does not install +and produces a message explaining this. In most cases, you need to install only the `MySQL-server' and `MySQL-client' packages to get a functional MySQL installation. The @@ -7760,7 +7764,7 @@ To enable MySQL to start automatically at the normal (default) run levels, you can use: - root-shell> rc-update add default mysql + root-shell> rc-update add mysql default  File: manual.info, Node: solaris-installation, Next: hpux-installation, Prev: linux-installation, Up: installing @@ -7854,16 +7858,16 @@ `mysql-VERSION-solaris10-PLATFORM.pkg.gz' file, then decompress it. For example: - shell> gunzip mysql-5.5.20-solaris10-x86_64.pkg.gz + shell> gunzip mysql-5.5.23-solaris10-x86_64.pkg.gz To install a new package, use `pkgadd' and follow the onscreen prompts. You must have root privileges to perform this operation: - shell> pkgadd -d mysql-5.5.20-solaris10-x86_64.pkg + shell> pkgadd -d mysql-5.5.23-solaris10-x86_64.pkg The following packages are available: 1 mysql MySQL Community Server (GPL) - (i86pc) 5.5.20 + (i86pc) 5.5.23 Select package(s) you wish to process (or 'all' to process all packages). (default: all) [?,??,q]: @@ -7900,7 +7904,7 @@ shell> mysqladmin shutdown shell> pkgrm mysql - shell> pkgadd -d mysql-5.5.20-solaris10-x86_64.pkg + shell> pkgadd -d mysql-5.5.23-solaris10-x86_64.pkg shell> mysql_upgrade shell> mysqld_safe & @@ -8197,7 +8201,7 @@ Standard distributions are available as compressed `tar' files, Zip archives, or RPM packages. Distribution files have names of the form `mysql-VERSION.tar.gz', `mysql-VERSION.zip', or - `mysql-VERSION.rpm', where VERSION is a number like `5.5.20'. File + `mysql-VERSION.rpm', where VERSION is a number like `5.5.23'. File names for source distributions can be distinguished from those for precompiled binary distributions in that source distribution names are generic and include no platform name, whereas binary @@ -8773,18 +8777,32 @@ `INSTALL_SQLBENCHDIR' sql-bench directory `PREFIX' 5.5.7 `INSTALL_SUPPORTFILESDIR'Extra support files `PREFIX/support-files'5.5.7 directory +`MEMCACHED_HOME' Path to memcached `[none]' 5.5.16-ndb-7.2.2 `MYSQL_DATADIR' Data directory `' 5.5.7 `MYSQL_MAINTAINER_MODE'Whether to enable `OFF' 5.5.7 MySQL maintainer-specific development environment +`MYSQL_PROJECT_NAME' Windows/Mac OS X `3306' 5.5.21 + project name `MYSQL_TCP_PORT' TCP/IP port number `3306' 5.5.7 `MYSQL_UNIX_ADDR' Unix socket file `/tmp/mysql.sock'5.5.7 `ODBC_INCLUDES' ODBC includes `' directory `ODBC_LIB_DIR' ODBC library directory `' `SYSCONFDIR' Option file directory `' 5.5.7 +`WITH_BUNDLED_LIBEVENT'Use bundled libevent `ON' 5.5.16-ndb-7.2.2 + when building + ndbmemcache +`WITH_BUNDLED_MEMCACHED'Use bundled memcached `ON' 5.5.16-ndb-7.2.2 + when building + ndbmemcache +`WITH_CLASSPATH' Classpath to use when `' + building MySQL + Cluster Connector for + Java. Default is an + empty string. `WITH_COMMENT' Comment about `' 5.5.7 compilation environment @@ -8795,11 +8813,37 @@ `WITH_xxx_STORAGE_ENGINE'Compile storage `' 5.5.7 engine xxx statically into server +`WITH_ERROR_INSERT' Enable error `OFF' + injection in the + NDBCLUSTER storage + engine. Should not + be used for building + binaries intended for + production. `WITH_EXTRA_CHARSETS' Which extra character `all' 5.5.7 sets to include `WITH_LIBWRAP' Whether to include `OFF' 5.5.7 libwrap (TCP wrappers) support +`WITH_NDB_BINLOG' Enable binary logging `ON' + by default by mysqld. +`WITH_NDB_DEBUG' Produce a debug build `OFF' + for testing or + troubleshooting. +`WITH_NDB_PORT' Default port used by `[none]' + a management server + built with this + option. If this + option was not used + to build it, the + management server's + default port is 1186. +`WITH_NDB_TEST' Include NDB API test `OFF' + programs. +`WITH_NDBCLUSTER_STORAGE_ENGINE'Build the NDB storage `ON' + engine +`WITH_NDBMTD' Build multi-threaded `ON' + data node. `WITH_READLINE' Use bundled readline `OFF' 5.5.7 `WITH_SSL' Type of SSL support `no' 5.5.7 `WITH_UNIXODBC' Enable unixODBC `OFF' @@ -9018,6 +9062,8 @@ Cluster using the MySQL Cluster sources. It cannot be used to enable clustering support in other MySQL source trees or distributions. In MySQL Cluster NDB 7.2 source distributions, it is enabled by default. +See *Note mysql-cluster-install-linux-source::, and *Note +mysql-cluster-install-windows-source::, for more information. To exclude a storage engine from the build, use `-DWITHOUT_ENGINE_STORAGE_ENGINE=1'. Examples: @@ -9115,6 +9161,11 @@ environment. If enabled, this option causes compiler warnings to become errors. + * `-DMYSQL_PROJECT_NAME=NAME' + + For Windows or Mac OS X, the project name to incorporate into the + project file name. This option was added in MySQL 5.5.21. + * `-DMYSQL_TCP_PORT=PORT_NUM' The port number on on which the server listens for TCP/IP @@ -9218,6 +9269,96 @@ By default, authentication for connections to the embedded server is disabled. To enable connection authentication, define this flag. +* `CMake' Options for Compiling MySQL Cluster * + +The following options are for use when building MySQL Cluster NDB 7.2 +and. These options are supported only with the MySQL Cluster NDB 7.2 +and later MySQL Cluster sources; they are not supported with sources +from the MySQL 5.5 Server tree. + + * `-DMEMCACHED_HOME=PATH' + + Perform the build using the memcached (version 1.6 or later) + installed in the system directory indicated by PATH. Files from + this installation that are used in the build include the memcached + binary, header files, and libraries, as well as the + `memcached_utilities' library and the header file + `engine_testapp.h'. + + You must leave this option unset when building ndbmemcache using + the bundled memcached sources (`WITH_BUNDLED_MEMCACHED' option); + in other words, the bundled sources are used by default). + + This option was added in MySQL Cluster NDB 7.2.2. + + While additional `CMake' options--such as for SASL authorization + and for providing `dtrace' support--are available for use when + compiling `memcached' from external sources, these options are + currently not enabled for the `memcached' sources bundled with + MySQL Cluster. + + * `-DWITH_BUNDLED_LIBEVENT={ON|OFF}' + + Use the `libevent' included in the MySQL Cluster sources when + building MySQL Cluster with ndbmemcached support (MySQL Cluster + NDB 7.2.2 and later). Enabled by default. OFF causes the system's + libevent to be used instead. + + * `-DWITH_BUNDLED_MEMCACHED={ON|OFF}' + + Build the memcached sources included in the MySQL Cluster source + tree (MySQL Cluster NDB 7.2.3 and later), then use the resulting + memcached server when building the ndbmemcache engine. In this + case, `make install' places the `memcached' binary in the + installation `bin' directory, and the ndbmemcache engine shared + object file `ndb_engine.so' in the installation `lib' directory. + + This option is ON by default. + + * `-DWITH_CLASSPATH=PATH' + + Sets the classpath for building MySQL Cluster Connector for Java. + Default is empty. + + * `-DWITH_ERROR_INSERT={ON|OFF}' + + Enables error injection in the *Note `NDB': mysql-cluster. kernel. + For testing only; not intended for use in building production + binaries. Default is OFF. + + * `-DWITH_NDBCLUSTER_STORAGE_ENGINE={ON|OFF}' + + Build and link in support for the *Note `NDB': mysql-cluster. + (*Note `NDBCLUSTER': mysql-cluster.) storage engine in *Note + `mysqld': mysqld. Default is ON. + + * `-DWITH_NDBMTD={ON|OFF}' + + Build the multithreaded data node executable *Note `ndbmtd': + mysql-cluster-programs-ndbmtd. Default s ON. + + * `-DWITH_NDB_BINLOG={ON|OFF}' + + Enable binary logging by default in the *Note `mysqld': mysqld. + built using this option. ON by default. + + * `-DWITH_NDB_DEBUG={ON|OFF}' + + Enable building the debug versions of the MySQL Cluster binaries. + OFF by default. + + * `-DWITH_NDB_PORT=PORT' + + Causes the MySQL Cluster management server (*Note `ndb_mgmd': + mysql-cluster-programs-ndb-mgmd.) that is built to use this PORT + by default. If this option is unset, the resulting management + server tries to use port 1186 by default. + + * `-DWITH_NDB_TEST={ON|OFF}' + + If enabled, include a set of NDB API test programs. The default is + OFF. +  File: manual.info, Node: compilation-problems, Next: source-configuration-third-party, Prev: source-configuration-options, Up: source-installation @@ -9251,8 +9392,8 @@ shell> del CMakeCache.txt If you build out of the source tree, remove and recreate your build -directory before re-running `CMake'. For instructions on out of source -building, see *Note installing-source-distribution::. +directory before re-running `CMake'. For instructions on building +outside of the source tree, see `http://forge.mysql.com/wiki/CMake'. On some systems, warnings may occur due to differences in system include files. The following list describes other problems that have @@ -9312,9 +9453,6 @@ The maximum table size is not actually exceeded; the error is caused by bugs in older versions of `bison'. - * On Debian Linux 3.0, you need to install `gawk' instead of the - default `mawk'. - For information about acquiring or updating tools, see the system requirements in *Note source-installation::. @@ -9600,10 +9738,10 @@ should be similar to that shown here: shell> bin/mysqladmin version - mysqladmin Ver 14.12 Distrib 5.5.20, for pc-linux-gnu on i686 + mysqladmin Ver 14.12 Distrib 5.5.23, for pc-linux-gnu on i686 ... - Server version 5.5.20 + Server version 5.5.23 Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/lib/mysql/mysql.sock @@ -10852,7 +10990,7 @@ With the `--skip-grant-tables' option, the server does no password or privilege checking, so any client can connect and effectively - have all privilges. For additional security, use the + have all privileges. For additional security, use the `--skip-networking' option as well to prevent remote clients from connecting. @@ -10984,11 +11122,11 @@ * *Incompatible change*: In very old versions of MySQL (prior to 4.1), the *Note `TIMESTAMP': datetime. data type supported a - display width, which was silenty ignored beginning with MySQL 4.1. - This is deprecated in MySQL 5.1, and removed altogether in MySQL - 5.5. These changes in behavior can lead to two problem scenarios - when trying to use *Note `TIMESTAMP(N)': datetime. columns with a - MySQL 5.5 or later server: + display width, which was silently ignored beginning with MySQL + 4.1. This is deprecated in MySQL 5.1, and removed altogether in + MySQL 5.5. These changes in behavior can lead to two problem + scenarios when trying to use *Note `TIMESTAMP(N)': datetime. + columns with a MySQL 5.5 or later server: * When importing a dump file (for example, one created using *Note `mysqldump': mysqldump.) created in a MySQL 5.0 or @@ -11096,9 +11234,9 @@ * The `--language' option for specifying the directory for the error message file is now deprecated. The new - `--lc-messages-dir' and `--lc-messages' options should be - used instead, and `--language' is handled as an alias for - `--lc-messages-dir'. + `lc_messages_dir' and `lc_messages' system variables should + be used instead, and the server treats `--language' as an + alias for `lc_messages_dir'. * The `language' system variable has been removed and replaced with the new `lc_messages_dir' and `lc_messages' system @@ -11116,7 +11254,7 @@ returning them to the client in the character set specified by the `character_set_results' system variable. The content of error messages therefore may in some cases differ from the - messags returned previously. + messages returned previously. For more information, see *Note error-message-language::, and *Note charset-errors::. @@ -11323,7 +11461,7 @@ With the `--skip-grant-tables' option, the server does no password or privilege checking, so any client can connect and effectively - have all privilges. For additional security, use the + have all privileges. For additional security, use the `--skip-networking' option as well to prevent remote clients from connecting. @@ -11388,9 +11526,9 @@ * The `--language' option for specifying the directory for the error message file is now deprecated. The new - `--lc-messages-dir' and `--lc-messages' options should be - used instead, and `--language' is handled as an alias for - `--lc-messages-dir'. + `lc_messages_dir' and `lc_messages' system variables should + be used instead, and the server treats `--language' as an + alias for `lc_messages_dir'. * The `language' system variable has been removed and replaced with the new `lc_messages_dir' and `lc_messages' system @@ -11925,7 +12063,7 @@ You can write a `DBI' script that works with many different database engines without change. To use `DBI', you must install the `DBI' module, as well as a DataBase Driver (DBD) module for each type of -databas server you want to access. For MySQL, this driver is the +database server you want to access. For MySQL, this driver is the `DBD::mysql' module. Perl, and the `DBD::MySQL' module for `DBI' must be installed if you @@ -12201,7 +12339,7 @@ shell> mysql -h HOST -u USER -p Enter password: ******** Welcome to the MySQL monitor. Commands end with ; or \g. - Your MySQL connection id is 25338 to server version: 5.5.20-standard + Your MySQL connection id is 25338 to server version: 5.5.23-standard Type 'help;' or '\h' for help. Type '\c' to clear the buffer. @@ -13268,19 +13406,10 @@ The `NULL' value can be surprising until you get used to it. Conceptually, `NULL' means `a missing unknown value' and it is treated -somewhat differently from other values. To test for `NULL', you cannot -use the arithmetic comparison operators such as `=', `<', or `<>'. To -demonstrate this for yourself, try the following query: - - mysql> SELECT 1 = NULL, 1 <> NULL, 1 < NULL, 1 > NULL; - +----------+-----------+----------+----------+ - | 1 = NULL | 1 <> NULL | 1 < NULL | 1 > NULL | - +----------+-----------+----------+----------+ - | NULL | NULL | NULL | NULL | - +----------+-----------+----------+----------+ +somewhat differently from other values. -Clearly you get no meaningful results from these comparisons. Use the -`IS NULL' and `IS NOT NULL' operators instead: +To test for `NULL', use the `IS NULL' and `IS NOT NULL' operators, as +shown here: mysql> SELECT 1 IS NULL, 1 IS NOT NULL; +-----------+---------------+ @@ -13289,6 +13418,20 @@ | 0 | 1 | +-----------+---------------+ +You cannot use arithmetic comparison operators such as `=', `<', or +`<>' to test for `NULL'. To demonstrate this for yourself, try the +following query: + + mysql> SELECT 1 = NULL, 1 <> NULL, 1 < NULL, 1 > NULL; + +----------+-----------+----------+----------+ + | 1 = NULL | 1 <> NULL | 1 < NULL | 1 > NULL | + +----------+-----------+----------+----------+ + | NULL | NULL | NULL | NULL | + +----------+-----------+----------+----------+ + +Because the result of any arithmetic comparison with `NULL' is also +`NULL', you cannot obtain any meaningful results from such comparisons. + In MySQL, `0' or `NULL' means false and anything else means true. The default truth value from a boolean operation is `1'. @@ -15742,8 +15885,8 @@ .............................................. Many MySQL programs have internal variables that can be set at runtime -using the *Note `SET': set-option. statement. See *Note set-option::, -and *Note using-system-variables::. +using the *Note `SET': set-statement. statement. See *Note +set-statement::, and *Note using-system-variables::. Most of these program variables also can be set at server startup by using the same syntax that applies to specifying program options. For @@ -15797,8 +15940,8 @@ Suffixes for specifying a value multiplier can be used when setting a variable at server startup, but not to set the value with *Note `SET': -set-option. at runtime. On the other hand, with *Note `SET': -set-option. you can assign a variable's value using an expression, +set-statement. at runtime. On the other hand, with *Note `SET': +set-statement. you can assign a variable's value using an expression, which is not true when you set a variable at server startup. For example, the first of the following lines is legal at server startup, but the second is not: @@ -15848,7 +15991,7 @@ shell> mysql --host 85.224.35.45 --user jon Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 - Server version: 5.5.20 Source distribution + Server version: 5.5.23 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. @@ -15988,7 +16131,7 @@ shell> mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 - Server version: 5.5.20 Source distribution + Server version: 5.5.23 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. @@ -16006,7 +16149,7 @@ shell> mysql --user jon --host tonfisk Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 6 - Server version: 5.5.20 Source distribution + Server version: 5.5.23 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. @@ -16503,6 +16646,13 @@ `--datadir' options to indicate the directories in which the server and databases are located on your system. +Beginning with MySQL 5.5.21, *Note `mysqld_safe': mysqld-safe. tries +to use the `sleep' and `date' system utilities to determine how many +times it has attempted to start this second, and--if these are present +and this is greater than 5 times--is forced to wait 1 full second +before starting again. This is intended to prevent excessive CPU usage +in the event of repeated failures. (Bug #11761530, Bug #54035) + When you use *Note `mysqld_safe': mysqld-safe. to start *Note `mysqld': mysqld, *Note `mysqld_safe': mysqld-safe. arranges for error (and notice) messages from itself and from *Note `mysqld': mysqld. to go to @@ -18321,7 +18471,7 @@ The delimiter string can be specified as an unquoted or quoted argument on the `delimiter' command line. Quoting can be done with - either single quote (`''), douple quote (`"'), or backtick (``') + either single quote (`''), double quote (`"'), or backtick (``') characters. To include a quote within a quoted string, either quote the string with a different quote character or escape the quote with a backslash (``\'') character. Backslash should be @@ -18834,7 +18984,7 @@ See *Note server-system-variables::. -The *Note `SET': set-option. statement has the following effects: +The *Note `SET': set-statement. statement has the following effects: * You are not permitted to execute an *Note `UPDATE': update. or *Note `DELETE': delete. statement unless you specify a key @@ -20719,6 +20869,9 @@ MySQL account that has appropriate privileges for the `mysql' database. + Prior to MySQL 5.5.21, this option had no effect when used + together with the `--xml' option. (Bug #11760384, Bug #52792) + * `--set-charset' Add `SET NAMES DEFAULT_CHARACTER_SET' to the output. This option @@ -20918,6 +21071,10 @@ +Prior to MySQL 5.5.21, this option prevented the `--routines' option +from working correctly--that is, no stored routines, triggers, or events +could be dumped in XML format. (Bug #11760384, Bug #52792) + You can also set the following variables by using `--VAR_NAME=VALUE' syntax: @@ -24402,7 +24559,7 @@ This option requires that you have the `SUPER' privilege. It causes *Note `mysqlbinlog': mysqlbinlog. to include a `SET sql_log_bin = 0' statement in its output to disable binary logging of the - remaining output. The *Note `SET': set-option. statement is + remaining output. The *Note `SET': set-statement. statement is ineffective unless you have the `SUPER' privilege. * `--force-read', `-f' @@ -25475,7 +25632,7 @@ *Note `mysql_find_rows': mysql-find-rows. reads files containing SQL statements and extracts statements that match a given regular -expression or that contain `USE DB_NAME' or *Note `SET': set-option. +expression or that contain `USE DB_NAME' or *Note `SET': set-statement. statements. The utility was written for use with update log files (as used prior to MySQL 5.0) and as such expects statements to be terminated with semicolon (`;') characters. It may be useful with other @@ -26614,7 +26771,7 @@ innodb_stats_methodYes Yes Yes Both Yes innodb_stats_on_metadataYes Yes Yes Global Yes innodb_stats_sample_pagesYes Yes Yes Global Yes -innodb-status-fileYes Yes Yes Global No +innodb-status-fileYes Yes innodb_strict_modeYes Yes Yes Both Yes innodb_support_xaYes Yes Yes Both Yes innodb_sync_spin_loopsYes Yes Yes Global Yes @@ -26842,6 +26999,14 @@ Ndb_conflict_trans_row_conflict_count Yes Global No Ndb_conflict_trans_row_reject_count Yes Global No ndb-connectstringYes Yes +ndb-deferred-constraintsYes Yes Both Yes +- _Variable_: Yes Both Yes +ndb_deferred_constraints +ndb_deferred_constraintsYes Yes Yes Both Yes +ndb_distributionYes Yes Yes Both Yes +ndb-distributionYes Yes Both Yes +- _Variable_: Yes Both Yes +ndb_distribution ndb_execute_count Yes Global No ndb_extra_loggingYes Yes Yes Global Yes ndb_force_send Yes Yes Yes Both Yes @@ -26855,6 +27020,7 @@ ndb_log_bin Yes Yes Both Yes ndb_log_binlog_indexYes Yes Global Yes ndb_log_empty_epochsYes Yes Yes Global Yes +ndb-log-empty-epochsYes Yes Yes Global Yes *Note Yes Global No ndb_log_orig: mysql-cluster-replication-schema. @@ -26967,7 +27133,7 @@ Prepared_stmt_count Yes Global No print-defaults Yes profiling Yes Both Yes -profiling_history_size Yes Both Yes +profiling_history_sizeYes Yes Yes Both Yes protocol_version Yes Global No proxy_user Yes Session No pseudo_thread_id Yes Session Yes @@ -27141,8 +27307,8 @@ sporadic-binlog-dump-failYes Yes sql_auto_is_null Yes Both Yes sql_big_selects Yes Both Yes -sql_big_tables Yes Session Yes -sql_buffer_result Yes Session Yes +sql_big_tables Yes Both Yes +sql_buffer_result Yes Both Yes sql_log_bin Yes Both Yes sql_log_off Yes Both Yes sql_log_update Yes Session Yes @@ -28347,8 +28513,8 @@ *Default* `FALSE' - Originally intended to log less information to the binary log and - slow query log, if they have been activated. + Log less information to the binary log and slow query log, if they + have been activated. * `--log-slow-admin-statements' @@ -28562,11 +28728,11 @@ causing *Note `mysqld': mysqld. to swap to disk. `--memlock' works on systems that support the `mlockall()' system - call; this includes Solaris as well as most Linux distributions - that use a 2.4 or newer kernel. On Linux systems, you can tell - whether or not `mlockall()' (and thus this option) is supported by - checking to see whether or not it is defined in the system - `mman.h' file, like this: + call; this includes Solaris, most Linux distributions that use a + 2.4 or newer kernel, and perhaps other Unix systems. On Linux + systems, you can tell whether or not `mlockall()' (and thus this + option) is supported by checking to see whether or not it is + defined in the system `mman.h' file, like this: shell> grep mlockall /usr/include/sys/mman.h @@ -28577,10 +28743,14 @@ *Important*: - Using this option requires that you run the server as `root', + Use of this option may require you to run the server as `root', which, for reasons of security, is normally not a good idea. See *Note changing-mysql-user::. + On Linux and perhaps other systems, you can avoid the need to run + the server as `root' by changing the `limits.conf' file. See the + notes regarding the memlock limit in *Note large-page-support::. + You must not try to use this option on a system that does not support the `mlockall()' system call; if you do so, *Note `mysqld': mysqld. will very likely crash as soon as you try to @@ -29022,15 +29192,15 @@ *Variable Name* `secure_auth' *Variable Scope* Global *Dynamic Variable* Yes - *Permitted - Values - * - *Type* `boolean' - *Default* `FALSE' - Disallow authentication by clients that attempt to use accounts - that have old (pre-4.1) passwords. + This option causes the server to block connections by clients that + attempt to use accounts that have passwords stored in the old + (pre-4.1) format. Use it to prevent all use of passwords employing + the old format (and hence insecure communication over the network). + + Server startup fails with an error if this option is enabled and + the privilege tables are in pre-4.1 format. See *Note old-client::. * `--secure-file-priv=PATH' @@ -29541,11 +29711,12 @@ permitted. If you want to restrict the maximum value to which a variable can be -set at runtime with *Note `SET': set-option, you can define this by +set at runtime with *Note `SET': set-statement, you can define this by using the `--maximum-VAR_NAME=VALUE' command-line option. You can change the values of most system variables for a running server -with the *Note `SET': set-option. statement. See *Note set-option::. +with the *Note `SET': set-statement. statement. See *Note +set-statement::. *Note server-system-variables::, provides a full description for all variables, and additional information for setting them at server @@ -29562,7 +29733,7 @@ is configured. Each system variable has a default value. System variables can be set at server startup using options on the command line or in an option file. Most of them can be changed dynamically -while the server is running by means of the *Note `SET': set-option. +while the server is running by means of the *Note `SET': set-statement. statement, which enables you to modify operation of the server without having to stop and restart it. You can refer to system variable values in expressions. @@ -29764,7 +29935,6 @@ innodb_stats_methodYes Yes Yes Both Yes innodb_stats_on_metadataYes Yes Yes Global Yes innodb_stats_sample_pagesYes Yes Yes Global Yes -innodb-status-fileYes Yes Yes Global No innodb_strict_modeYes Yes Yes Both Yes innodb_support_xaYes Yes Yes Both Yes innodb_sync_spin_loopsYes Yes Yes Global Yes @@ -29877,6 +30047,14 @@ ndb-blob-write-batch-bytesYes Yes Yes Both Yes ndb_cache_check_timeYes Yes Yes Global Yes ndb-cluster-connection-poolYes Yes Yes Global No +ndb-deferred-constraintsYes Yes Yes +- _Variable_: Yes Both Yes +ndb_deferred_constraints +ndb_deferred_constraintsYes Yes Yes Both Yes +ndb_distributionYes Yes Yes Both Yes +ndb-distributionYes Yes Yes +- _Variable_: Yes Both Yes +ndb_distribution ndb_extra_loggingYes Yes Yes Global Yes ndb_force_send Yes Yes Yes Both Yes ndb_join_pushdown Yes Global No @@ -29886,6 +30064,7 @@ ndb_log_bin Yes Yes Both Yes ndb_log_binlog_indexYes Yes Global Yes ndb_log_empty_epochsYes Yes Yes Global Yes +ndb-log-empty-epochsYes Yes Yes Global Yes *Note Yes Global No ndb_log_orig: mysql-cluster-replication-schema. @@ -29953,7 +30132,7 @@ port Yes Yes Yes Global No preload_buffer_sizeYes Yes Yes Both Yes profiling Yes Both Yes -profiling_history_size Yes Both Yes +profiling_history_sizeYes Yes Yes Both Yes protocol_version Yes Global No proxy_user Yes Session No pseudo_thread_id Yes Session Yes @@ -30047,8 +30226,8 @@ sort_buffer_sizeYes Yes Yes Both Yes sql_auto_is_null Yes Both Yes sql_big_selects Yes Both Yes -sql_big_tables Yes Session Yes -sql_buffer_result Yes Session Yes +sql_big_tables Yes Both Yes +sql_buffer_result Yes Both Yes sql_log_bin Yes Both Yes sql_log_off Yes Both Yes sql_log_update Yes Session Yes @@ -30140,7 +30319,7 @@ Some of the following variable descriptions refer to `enabling' or `disabling' a variable. These variables can be enabled with the *Note -`SET': set-option. statement by setting them to `ON' or `1', or +`SET': set-statement. statement by setting them to `ON' or `1', or disabled by setting them to `OFF' or `0'. However, before MySQL 5.5.10, to set such a variable on the command line or in an option file, you must set it to `1' or `0'; setting it to `ON' or `OFF' will not work. @@ -32809,6 +32988,10 @@ limit the size of internal in-memory tables. See *Note internal-temporary-tables::. + `max_heap_table_size' is not replicated. See *Note + replication-features-memory::, and *Note + replication-features-variables::, for more information. + * `max_insert_delayed_threads' Options for max_insert_delayed_threads *Variable Name* `max_insert_delayed_threads' @@ -33679,7 +33862,7 @@ * `one_shot' This is not a variable, but it can be used when setting some - variables. It is described in *Note set-option::. + variables. It is described in *Note set-statement::. * `open_files_limit' @@ -34310,18 +34493,18 @@ 2147479552' - Each thread that does a sequential scan allocates a buffer of this - size (in bytes) for each table it scans. If you do many sequential - scans, you might want to increase this value, which defaults to - 131072. The value of this variable should be a multiple of 4KB. If - it is set to a value that is not a multiple of 4KB, its value will - be rounded down to the nearest multiple of 4KB. + Each thread that does a sequential scan for a `MyISAM' table + allocates a buffer of this size (in bytes) for each table it + scans. If you do many sequential scans, you might want to increase + this value, which defaults to 131072. The value of this variable + should be a multiple of 4KB. If it is set to a value that is not a + multiple of 4KB, its value will be rounded down to the nearest + multiple of 4KB. The maximum permissible setting for `read_buffer_size' is 2GB. - `read_buffer_size' and `read_rnd_buffer_size' are not specific to - any storage engine and apply in a general manner for optimization. - See *Note memory-use::, for example. + For more information about memory use during different operations, + see *Note memory-use::. * `read_only' @@ -34416,20 +34599,19 @@ 4294967295' - When reading rows in sorted order following a key-sorting - operation, the rows are read through this buffer to avoid disk - seeks. See *Note order-by-optimization::. Setting the variable to - a large value can improve `ORDER BY' performance by a lot. - However, this is a buffer allocated for each client, so you should - not set the global variable to a large value. Instead, change the - session variable only from within those clients that need to run - large queries. + When reading rows from a `MyISAM' table in sorted order following + a key-sorting operation, the rows are read through this buffer to + avoid disk seeks. See *Note order-by-optimization::. Setting the + variable to a large value can improve `ORDER BY' performance by a + lot. However, this is a buffer allocated for each client, so you + should not set the global variable to a large value. Instead, + change the session variable only from within those clients that + need to run large queries. The maximum permissible setting for `read_rnd_buffer_size' is 2GB. - `read_buffer_size' and `read_rnd_buffer_size' are not specific to - any storage engine and apply in a general manner for optimization. - See *Note memory-use::, for example. + For more information about memory use during different operations, + see *Note memory-use::. * `relay_log_purge' @@ -34530,9 +34712,10 @@ *Dynamic Variable* No *Permitted Values - * + (>= + 5.5.23)* *Type* `numeric' - *Default* `3306' + *Default* `0' The value of the `--report-port' option. @@ -34703,23 +34886,16 @@ *Variable Name* `secure_auth' *Variable Scope* Global *Dynamic Variable* Yes - *Permitted - Values - * - *Type* `boolean' - *Default* `FALSE' - If the MySQL server has been started with the `--secure-auth' - option, it blocks connections from all accounts that have - passwords stored in the old (pre-4.1) format. In that case, the - value of this variable is `ON', otherwise it is `OFF'. - - You should enable this option if you want to prevent all use of - passwords employing the old format (and hence insecure - communication over the network). + If this variable is enabled, the server blocks connections by + clients that attempt to use accounts that have passwords stored in + the old (pre-4.1) format. - Server startup fails with an error if this option is enabled and + Enable this variable to prevent all use of passwords employing the + old format (and hence insecure communication over the network). + + Server startup fails with an error if this variable is enabled and the privilege tables are in pre-4.1 format. See *Note old-client::. * `secure_file_priv' @@ -35046,7 +35222,8 @@ * `sql_buffer_result' Options for sql_buffer_result *Variable Name* `sql_buffer_result' - *Variable Scope* Session + *Variable Scope* Global, + Session *Dynamic Variable* Yes *Permitted Values @@ -36215,9 +36392,7 @@ The number of seconds the server waits for activity on a - noninteractive connection before closing it. This timeout applies - only to TCP/IP and Unix socket file connections, not to - connections made using named pipes, or shared memory. + noninteractive connection before closing it. On thread startup, the session `wait_timeout' value is initialized from the global `wait_timeout' value or from the global @@ -36248,7 +36423,7 @@ of these variables. Each system variable has a default value. System variables can be set at server startup using options on the command line or in an option file. Most of them can be changed dynamically -while the server is running by means of the *Note `SET': set-option. +while the server is running by means of the *Note `SET': set-statement. statement, which enables you to modify operation of the server without having to stop and restart it. You can refer to system variable values in expressions. @@ -36293,17 +36468,17 @@ equivalent, as are `1G' and `1g'. If you want to restrict the maximum value to which a system variable -can be set at runtime with the *Note `SET': set-option. statement, you -can specify this maximum by using an option of the form +can be set at runtime with the *Note `SET': set-statement. statement, +you can specify this maximum by using an option of the form `--maximum-VAR_NAME=VALUE' at server startup. For example, to prevent the value of `query_cache_size' from being increased to more than 32MB at runtime, use the option `--maximum-query_cache_size=32M'. Many system variables are dynamic and can be changed while the server -runs by using the *Note `SET': set-option. statement. For a list, see -*Note dynamic-system-variables::. To change a system variable with -*Note `SET': set-option, refer to it as VAR_NAME, optionally preceded -by a modifier: +runs by using the *Note `SET': set-statement. statement. For a list, +see *Note dynamic-system-variables::. To change a system variable with +*Note `SET': set-statement, refer to it as VAR_NAME, optionally +preceded by a modifier: * To indicate explicitly that a variable is a global variable, precede its name by `GLOBAL' or `@@global.'. The `SUPER' privilege @@ -36317,10 +36492,10 @@ * `LOCAL' and `@@local.' are synonyms for `SESSION' and `@@session.'. - * If no modifier is present, *Note `SET': set-option. changes the - session variable. + * If no modifier is present, *Note `SET': set-statement. changes + the session variable. -A *Note `SET': set-option. statement can contain multiple variable +A *Note `SET': set-statement. statement can contain multiple variable assignments, separated by commas. If you set several system variables, the most recent `GLOBAL' or `SESSION' modifier in the statement is used for following variables that have no modifier specified. @@ -36348,12 +36523,12 @@ variable only for clients that connect after the change. The global variable change does not affect the session variable for any client that is currently connected (not even that of the client that issues the -*Note `SET GLOBAL': set-option. statement). +*Note `SET GLOBAL': set-statement. statement). To prevent incorrect usage, MySQL produces an error if you use *Note -`SET GLOBAL': set-option. with a variable that can only be used with -*Note `SET SESSION': set-option. or if you do not specify `GLOBAL' (or -`@@global.') when setting a global variable. +`SET GLOBAL': set-statement. with a variable that can only be used with +*Note `SET SESSION': set-statement. or if you do not specify `GLOBAL' +(or `@@global.') when setting a global variable. To set a `SESSION' variable to the `GLOBAL' value or a `GLOBAL' value to the compiled-in MySQL default value, use the `DEFAULT' keyword. For @@ -36387,8 +36562,8 @@ Suffixes for specifying a value multiplier can be used when setting a variable at server startup, but not to set the value with *Note `SET': -set-option. at runtime. On the other hand, with *Note `SET': -set-option. you can assign a variable's value using an expression, +set-statement. at runtime. On the other hand, with *Note `SET': +set-statement. you can assign a variable's value using an expression, which is not true when you set a variable at server startup. For example, the first of the following lines is legal at server startup, but the second is not: @@ -36404,12 +36579,12 @@ *Note*: -Some system variables can be enabled with the *Note `SET': set-option. -statement by setting them to `ON' or `1', or disabled by setting them to -`OFF' or `0'. However, to set such a variable on the command line or in -an option file, you must set it to `1' or `0'; setting it to `ON' or -`OFF' will not work. For example, on the command line, -`--delay_key_write=1' works but `--delay_key_write=ON' does not. +Some system variables can be enabled with the *Note `SET': +set-statement. statement by setting them to `ON' or `1', or disabled +by setting them to `OFF' or `0'. However, to set such a variable on the +command line or in an option file, you must set it to `1' or `0'; +setting it to `ON' or `OFF' will not work. For example, on the command +line, `--delay_key_write=1' works but `--delay_key_write=ON' does not. To display system variable names and values, use the *Note `SHOW VARIABLES': show-variables. statement: @@ -36619,14 +36794,14 @@ ................................ Many server system variables are dynamic and can be set at runtime -using *Note `SET GLOBAL': set-option. or *Note `SET SESSION': -set-option. You can also obtain their values using *Note `SELECT': +using *Note `SET GLOBAL': set-statement. or *Note `SET SESSION': +set-statement. You can also obtain their values using *Note `SELECT': select. See *Note using-system-variables::. The following table shows the full list of all dynamic system variables. The last column indicates for each variable whether `GLOBAL' or `SESSION' (or both) apply. The table also lists session options that -can be set with the *Note `SET': set-option. statement. *Note +can be set with the *Note `SET': set-statement. statement. *Note server-system-variables::, discusses these options. Variables that have a type of `string' take a string value. Variables @@ -36827,6 +37002,14 @@ `ndb_blob_write_batch_bytes' numeric `GLOBAL' | `SESSION' `ndb_cache_check_time' numeric `GLOBAL' +`ndb_deferred_constraints' boolean `GLOBAL' | + `SESSION' +`ndb_deferred_constraints' boolean `GLOBAL' | + `SESSION' +`ndb_distribution={KEYHASH|LINHASH}'enumeration `GLOBAL' | + `SESSION' +`ndb_distribution' enumeration `GLOBAL' | + `SESSION' `ndb_extra_logging' numeric `GLOBAL' `ndb_force_send' boolean `GLOBAL' | `SESSION' @@ -36834,6 +37017,7 @@ `SESSION' `ndb_log_binlog_index' boolean `GLOBAL' `ndb_log_empty_epochs' boolean `GLOBAL' +`ndb_log_empty_epochs' boolean `GLOBAL' `ndb_log_update_as_write' boolean `GLOBAL' `ndb_log_updated_only' boolean `GLOBAL' `ndb_optimization_delay' numeric `GLOBAL' @@ -36924,8 +37108,10 @@ `SESSION' `sql_big_selects' boolean `GLOBAL' | `SESSION' -`sql_big_tables' boolean `SESSION' -`sql_buffer_result' boolean `SESSION' +`sql_big_tables' boolean `GLOBAL' | + `SESSION' +`sql_buffer_result' boolean `GLOBAL' | + `SESSION' `sql_log_bin' boolean `GLOBAL' | `SESSION' `sql_log_off' boolean `GLOBAL' | @@ -39605,9 +39791,9 @@ threads. That is, each one is marked as killed and exits when it next checks its state. - If the server is a slave replication server, it stops the the I/O - and SQL threads, if they are active, before marking client threads - as killed. The SQL thread is permitted to finish its current + If the server is a slave replication server, it stops the I/O and + SQL threads, if they are active, before marking client threads as + killed. The SQL thread is permitted to finish its current statement (to avoid causing replication problems), and then stops. If the SQL thread was in the middle of a transaction at this point, the transaction is rolled back. @@ -39656,8 +39842,8 @@ replication) Relay log Data changes received from a replication master server -Slow query log All queries that took more than `long_query_time' - seconds to execute or did not use indexes +Slow query log Queries that took more than `long_query_time' + seconds to execute By default, no logs are enabled. The following log-specific sections provide information about the server options that enable logging. @@ -39697,10 +39883,10 @@ -------------------------------------------------------------------- MySQL Server provides flexible control over the destination of output -to the general query log and the slow query log. Possible destinations -for log entries are log files or the `general_log' and `slow_log' -tables in the `mysql' database. If logging is enabled, either or both -destinations can be selected. +to the general query log and the slow query log, if those logs are +enabled. Possible destinations for log entries are log files or the +`general_log' and `slow_log' tables in the `mysql' database. Either or +both destinations can be selected. Currently, logging to tables incurs significantly more server overhead than logging to files. If you enable the general log or slow query log @@ -39708,8 +39894,8 @@ logging. *Log control at server startup.* The `--log-output' option specifies -the destination for log output, if logging is enabled. This option does -not in itself enable the logs. Its syntax is `--log-output[=VALUE,...]': +the destination for log output. This option does not in itself enable +the logs. Its syntax is `--log-output[=VALUE,...]': * If `--log-output' is given with a value, the value should be a comma-separated list of one or more of the words `TABLE' (log to @@ -39720,38 +39906,37 @@ * If `--log-output' is omitted or given without a value, the default logging destination is `FILE'. -The `general_log' system variable, if given, enables logging to the -general query log for the selected log destinations. If specified at -server startup, `general_log' takes an optional argument of 1 or 0 to -enable or disable the log. To specify a file name other than the -default for file logging, set the `general_log_file' variable. -Similarly, the `slow_query_log' variable, if given, enables logging to -the slow query log for the selected destinations and setting -`slow_query_log_file' specifies a file name for file logging. If either -log is enabled, the server opens the corresponding log file and writes -startup messages to it. However, further logging of queries to the file -does not occur unless the `FILE' log destination is selected. +The `general_log' system variable controls logging to the general query +log for the selected log destinations. If specified at server startup, +`general_log' takes an optional argument of 1 or 0 to enable or disable +the log. To specify a file name other than the default for file +logging, set the `general_log_file' variable. Similarly, the +`slow_query_log' variable controls logging to the slow query log for +the selected destinations and setting `slow_query_log_file' specifies a +file name for file logging. If either log is enabled, the server opens +the corresponding log file and writes startup messages to it. However, +further logging of queries to the file does not occur unless the `FILE' +log destination is selected. Examples: * To write general query log entries to the log table and the log file, use `--log-output=TABLE,FILE' to select both log - destinations and the `--general_log' option to enable the general - query log. + destinations and `--general_log' to enable the general query log. * To write general and slow query log entries only to the log tables, use `--log-output=TABLE' to select tables as the log - destination and the `--general_log' and `--slow_query_log' options - to enable both logs. + destination and `--general_log' and `--slow_query_log' to enable + both logs. * To write slow query log entries only to the log file, use - `--log-output=FILE' to select files as the log destination and the - `--slow_query_log' option to enable the slow query log. (In this - case, because the default log destination is `FILE', you could - omit the `--log-output' option.) + `--log-output=FILE' to select files as the log destination and + `--slow_query_log' to enable the slow query log. (In this case, + because the default log destination is `FILE', you could omit the + `--log-output' option.) -*Log control at runtime.* Several system variables are associated with -log tables and files and enable runtime control over logging: +*Log control at runtime.* The system variables associated with log +tables and files enable runtime control over logging: * The global `log_output' system variable indicates the current logging destination. It can be modified at runtime to change the @@ -39767,8 +39952,9 @@ files. You can set these variables at server startup or at runtime to change the names of the log files. - * The session `sql_log_off' variable can be set to `ON' or `OFF' to - disable or enable general query logging for the current connection. + * To disable or enable general query logging for the current + connection, set the session `sql_log_off' variable to `ON' or + `OFF'. The use of tables for log output offers the following benefits: @@ -39831,7 +40017,8 @@ rotation, for example) using the following strategy: USE mysql; - CREATE TABLE IF NOT EXISTS general_log2 LIKE general_log; + DROP TABLE IF EXISTS general_log2; + CREATE TABLE general_log2 LIKE general_log; RENAME TABLE general_log TO general_log_backup, general_log2 TO general_log; * As of MySQL 5.5.7, *Note `CHECK TABLE': check-table. is a valid @@ -39971,14 +40158,14 @@ released. (Also, the query log contains all statements, whereas the binary log does not contain statements that only select data.) -By default, the general query log is disabled. Use -`--general_log[={0|1}]' to specify the initial general query log state -explicitly. With no argument or an argument of 1, `--general_log' -enables the log. With an argument of 0, this option disables the log. -You can use `--general_log_file=FILE_NAME' to specify a log file name. -You can also use `--log-output' to specify the log destination (as -described in *Note log-destinations::). The older options to enable -the general query log, `--log' and `-l', are deprecated. +By default, the general query log is disabled. To specify the initial +general query log state explicitly, use `--general_log[={0|1}]'. With no +argument or an argument of 1, `--general_log' enables the log. With an +argument of 0, this option disables the log. To specify a log file +name, use `--general_log_file=FILE_NAME'. To specify the log +destination, use `--log-output' (as described in *Note +log-destinations::). The older options to enable the general query log, +`--log' and `-l', are deprecated. If you specify no name for the general query log file, the default name is `HOST_NAME.log'. The server creates the file in the data directory @@ -39996,9 +40183,9 @@ system variable. If you enable the log, the server opens the log file and writes startup messages to it. However, further logging of queries to the file does not occur unless the `FILE' log destination is -selected. If the destination is `NONE', no queries are written even if -the general log is enabled. Setting the log file name has no effect on -logging if the log destination value does not contain `FILE'. +selected. If the destination is `NONE', the server writes no queries +even if the general log is enabled. Setting the log file name has no +effect on logging if the log destination value does not contain `FILE'. Server restarts and log flushing do not cause a new general query log file to be generated (although flushing closes and reopens it). You can @@ -40128,6 +40315,18 @@ `--replicate-ignore-db' options. For information about how this is done, see *Note replication-rules-db-options::. +If you are replicating from a MySQL Cluster to a standalone MySQL +Server, you should be aware that the the *Note `NDB': mysql-cluster. +storage engine uses default values for some binary logging options +(including options specific to `NDB' such as +`--ndb-log-update-as-write') that differ from those used by other +storage engines. If not corrected for, these differences can lead to +divergence of the master's and slave's binary logs. For more +information, see *Note mysql-cluster-replication-ndb-to-non-ndb::. In +particular, if you are using a nontransactional storage engine such as +*Note `MyISAM': myisam-storage-engine. on the slave, see *Note +mysql-cluster-replication-ndb-to-nontransactional::. + A replication slave server by default does not write to its own binary log any data modifications that are received from the replication master. To log these modifications, start the slave with the @@ -40207,7 +40406,7 @@ If you are using the binary log and row based logging, concurrent inserts are converted to normal inserts for `CREATE ... SELECT' or -*Note `INSERT ... SELECT': insert-select. statement. This is done to +*Note `INSERT ... SELECT': insert-select. statements. This is done to ensure that you can re-create an exact copy of your tables by applying the log during a backup operation. If you are using statement-based logging, the original statement is written to the log. @@ -40263,10 +40462,9 @@ case, this binary log is not correct and replication should be restarted from a fresh snapshot of the master's data. -For MySQL 5.1.20 and later (and MySQL 5.0.46 and later for backward -compatibility), the session values of the following system variables -are written to the binary log and honored by the replication slave when -parsing the binary log: +The session values of the following system variables are written to the +binary log and honored by the replication slave when parsing the binary +log: * `sql_mode' (except that the `NO_DIR_IN_CREATE' mode is not replicated; see *Note replication-features-variables::) @@ -40291,9 +40489,9 @@ 6.2.4.1 Binary Logging Formats .............................. -A number of different logging formats are used to record information in -the binary log. The exact format employed depends on the version of -MySQL being used. There are three logging formats: +The server uses several logging formats to record information in the +binary log. The exact format employed depends on the version of MySQL +being used. There are three logging formats: * Replication capabilities in MySQL originally were based on propagation of SQL statements from master to slave. This is called @@ -40312,7 +40510,7 @@ explicitly by starting *Note `mysqld': mysqld. with the option `--binlog-format=MIXED'. -In MySQL 5.5, the default binary logging format is statement based. +In MySQL 5.5, the default binary logging format is `STATEMENT'. The logging format can also be set or limited by the storage engine being used. This helps to eliminate issues when replicating certain @@ -40336,18 +40534,18 @@ 6.2.4.2 Setting The Binary Log Format ..................................... -In MySQL 5.5, the default binary logging format is statement based. - You can select the binary logging format explicitly by starting the MySQL server with `--binlog-format=TYPE'. The supported values for TYPE are: - * `STATEMENT' causes logging to be statement-based. + * `STATEMENT' causes logging to be statement based. - * `ROW' causes logging to be row-based. + * `ROW' causes logging to be row based. * `MIXED' causes logging to use mixed format. +In MySQL 5.5, the default binary logging format is `STATEMENT'. + Exception For all MySQL Cluster releases using the *Note `NDBCLUSTER': @@ -40369,6 +40567,19 @@ mysql> SET SESSION binlog_format = 'ROW'; mysql> SET SESSION binlog_format = 'MIXED'; +*Note*: + +Each MySQL Server can set its own and only its own binary logging +format (true whether `binlog_format' is set with global or session +scope). This means that changing the logging format on a replication +master does not cause a slave to change its logging format to match. +(When using `STATEMENT' mode, the `binlog_format' system variable is +not replicated; when using `MIXED' or `ROW' logging mode, it is +replicated but is ignored by the slave.) Changing the binary logging +format on the master while replication is ongoing, or without also +changing it on the slave can thus cause unexpected results, or even +cause replication to fail altogether. + To change the global or session `binlog_format' value, you must have the `SUPER' privilege. @@ -40439,8 +40650,8 @@ 6.2.4.3 Mixed Binary Logging Format ................................... -When running in `MIXED' logging format, automatic switching from -statement-based to row-based logging takes place under the following +When running in `MIXED' logging format, the server automatically +switches from statement-based to row-based logging under the following conditions: * When a DML statement updates an *Note `NDBCLUSTER': mysql-cluster. @@ -40591,7 +40802,8 @@ storage engine (statement capable, row capable, both, or neither). Statements may be logged with or without a warning; failed statements are not logged, but generate errors in the log. This is shown in the -following decision table. +following decision table, where *SLC* stands for `statement-logging +capable' and *RLC* stands for `row-logging capable'. ConditionAction Type `binlog_format' SLC RLC Error / Logged as @@ -40940,14 +41152,14 @@ after it has been executed and after all locks have been released, so log order might differ from execution order. -By default, the slow query log is disabled. Use -`--slow_query_log[={0|1}]' to specify the initial slow query log state -explicitly. With no argument or an argument of 1, `--slow_query_log' -enables the log. With an argument of 0, this option disables the log. -You can use `--slow_query_log_file=FILE_NAME' to specify a log file -name. You can also use `--log-output' to specify the log destination -(as described in *Note log-destinations::). The older option to enable -the slow query log file, `--log-slow-queries', is deprecated. +By default, the slow query log is disabled. To specify the initial slow +query log state explicitly, use `--slow_query_log[={0|1}]'. With no +argument or an argument of 1, `--slow_query_log' enables the log. With +an argument of 0, this option disables the log. To specify a log file +name, use `--slow_query_log_file=FILE_NAME'. To specify the log +destination, use `--log-output' (as described in *Note +log-destinations::). The older option to enable the slow query log file, +`--log-slow-queries', is deprecated. If you specify no name for the slow query log file, the default name is `HOST_NAME-slow.log'. The server creates the file in the data @@ -40966,18 +41178,22 @@ system variable. If you enable the log, the server opens the log file and writes startup messages to it. However, further logging of queries to the file does not occur unless the `FILE' log destination is -selected. If the destination is `NONE', no queries are written even if -the slow query log is enabled. Setting the log file name has no effect -on logging if the log destination value does not contain `FILE'. +selected. If the destination is `NONE', the server writes no queries +even if the slow query log is enabled. Setting the log file name has no +effect on logging if the log destination value does not contain `FILE'. + +The server writes less information to the slow query log (and binary +log) if you use the `--log-short-format' option. To include slow administrative statements such as *Note `OPTIMIZE TABLE': optimize-table, *Note `ANALYZE TABLE': analyze-table, and *Note `ALTER TABLE': alter-table. in the statements written to the slow query log, enable the `log_slow_admin_statements' system variable. -To include queries that do not use indexes in the statements written to -the slow query log, enable the `log_queries_not_using_indexes' system -variable. +To include queries that do not use indexes for row lookups in the +statements written to the slow query log, enable the +`log_queries_not_using_indexes' system variable. When such queries are +logged, the slow query log may grow quickly. The server uses the controlling parameters in the following order to determine whether to write a query to the slow query log: @@ -40986,8 +41202,8 @@ `log_slow_admin_statements' must be enabled. 2. The query must have taken at least `long_query_time' seconds, or - `log_queries_not_using_indexes' must be enabled and the query uses - no indexes. + `log_queries_not_using_indexes' must be enabled and the query used + no indexes for row lookups. 3. The query must have examined at least `min_examined_row_limit' rows. @@ -41016,10 +41232,10 @@ 6.2.6 Server Log Maintenance ---------------------------- -MySQL Server can create a number of different log files to help you see -what activity is taking place. See *Note server-logs::. However, you -must clean up these files regularly to ensure that the logs do not take -up too much disk space. +As described in *Note server-logs::, MySQL Server can create several +different log files to help you see what activity is taking place. +However, you must clean up these files regularly to ensure that the +logs do not take up too much disk space. When using MySQL with logging enabled, you may want to back up and remove old log files from time to time and tell MySQL to start logging @@ -41027,10 +41243,10 @@ On a Linux (Red Hat) installation, you can use the `mysql-log-rotate' script for this. If you installed MySQL from an RPM distribution, this -script should have been installed automatically. You should be careful -with this script if you are using the binary log for replication. You -should not remove binary logs until you are certain that their contents -have been processed by all slaves. +script should have been installed automatically. Be careful with this +script if you are using the binary log for replication. You should not +remove binary logs until you are certain that their contents have been +processed by all slaves. On other systems, you must install a short script yourself that you start from `cron' (or its equivalent) for handling log files. @@ -41076,11 +41292,11 @@ The server creates a new binary log file when you flush the logs. However, it just closes and reopens the general and slow query log -files. To cause new files to be created on Unix, rename the current -logs before flushing them. At flush time, the server opens new logs -with the original names. For example, if the general and slow query -logs are named `mysql.log' and `mysql-slow.log', you can use a series of -commands like this: +files. To cause new files to be created on Unix, rename the current log +files before flushing them. At flush time, the server opens new log +files with the original names. For example, if the general and slow +query log files are named `mysql.log' and `mysql-slow.log', you can use +a series of commands like this: shell> cd MYSQL-DATA-DIRECTORY shell> mv mysql.log mysql.old @@ -42391,6 +42607,7 @@ `CREATE TABLESPACE' `Create_tablespace_priv' server administration `CREATE USER' `Create_user_priv' server administration `PROCESS' `Process_priv' server administration +`PROXY' see `proxies_priv' table server administration `RELOAD' `Reload_priv' server administration `REPLICATION CLIENT' `Repl_client_priv' server administration `REPLICATION SLAVE' `Repl_slave_priv' server administration @@ -42464,7 +42681,7 @@ privilege for the `mysql' database to a user, that user can drop the database in which the MySQL access privileges are stored._ - * The `EVENT' privilege is required to create, alter, or drop + * The `EVENT' privilege is required to create, alter, drop, or see events for the Event Scheduler. * The `EXECUTE' privilege is required to execute stored routines @@ -42575,7 +42792,7 @@ `mysqladmin kill': mysqladmin. to kill threads belonging to other accounts (you can always kill your own threads), *Note `PURGE BINARY LOGS': purge-binary-logs, configuration changes using *Note - `SET GLOBAL': set-option. to modify global system variables, the + `SET GLOBAL': set-statement. to modify global system variables, the *Note `mysqladmin debug': mysqladmin. command, enabling or disabling logging, performing updates even if the `read_only' system variable is enabled, starting and stopping replication on @@ -42832,6 +43049,11 @@ uses it to authenticate connection attempts for the account. Whether the plugin uses the value in the `Password' column is up to the plugin. +Prior to MySQL 5.5.11, the length of the `plugin' column was 60 +characters. This was increased to 64 characters in MySQL 5.5.11 for +compatibility with the `mysql.plugin' table's `name' column. (Bug +#11766610, Bug #59752) + During the second stage of access control, the server performs request verification to make sure that each client has sufficient privileges for each request that it issues. In addition to the `user', `db', and @@ -45659,7 +45881,7 @@ To set this up, create a proxy account for Windows users to connect to, and configure this account so that users and groups map to the appropriate MySQL accounts (`local_wlad', `local_dev', `local_admin'). -In addtion, grant the MySQL accounts the privileges appropriate to the +In addition, grant the MySQL accounts the privileges appropriate to the operations they need to perform. The following instructions use `win_proxy' as the proxy account, and `local_wlad', `local_dev', and `local_admin' as the proxied accounts. @@ -45708,6 +45930,10 @@ instructions. For information about the default proxy user, see *Note proxy-users::. +To use the Windows authentication plugin with Connector/Net connection +strings in Connection/Net 6.4.4 and higher, see *Note +connector-net-programming-authentication-windows-native::. + Additional control over the Windows authentication plugin is provided by the `authentication_windows_use_principal_name' and `authentication_windows_log_level' system variables. See *Note @@ -46053,7 +46279,7 @@ host. If you set up a default proxy user, take care to also check for accounts with `'%'' in the host part, because that also matches any host, but has precedence over `''' by the rules that the server uses to -sort account rows interally (see *Note connection-access::). +sort account rows internally (see *Note connection-access::). Suppose that a MySQL installation includes these two accounts: @@ -47276,9 +47502,9 @@ For the following instructions, suppose that you want to run the *Note `mysqld': mysqld. server from two different versions of MySQL that are -installed at `C:\mysql-5.1.55' and `C:\mysql-5.5.20', respectively. +installed at `C:\mysql-5.1.55' and `C:\mysql-5.5.23', respectively. (This might be the case if you are running 5.1.55 as your production -server, but also want to conduct tests using 5.5.20.) +server, but also want to conduct tests using 5.5.23.) To install MySQL as a Windows service, use the `--install' or `--install-manual' option. For information about these options, see @@ -47293,9 +47519,9 @@ standard option files. To do this, use a different service name for each server. Suppose that you want to run the 5.1.55 *Note `mysqld': mysqld. using the service name of `mysqld1' and the - 5.5.20 *Note `mysqld': mysqld. using the service name `mysqld2'. + 5.5.23 *Note `mysqld': mysqld. using the service name `mysqld2'. In this case, you can use the `[mysqld1]' group for 5.1.55 and the - `[mysqld2]' group for 5.5.20. For example, you can set up + `[mysqld2]' group for 5.5.23. For example, you can set up `C:\my.cnf' like this: # options for mysqld1 service @@ -47307,7 +47533,7 @@ # options for mysqld2 service [mysqld2] - basedir = C:/mysql-5.5.20 + basedir = C:/mysql-5.5.23 port = 3308 enable-named-pipe socket = mypipe2 @@ -47317,7 +47543,7 @@ for each service: C:\> C:\mysql-5.1.55\bin\mysqld --install mysqld1 - C:\> C:\mysql-5.5.20\bin\mysqld --install mysqld2 + C:\> C:\mysql-5.5.23\bin\mysqld --install mysqld2 To start the services, use the services manager, or use `NET START' with the appropriate service names: @@ -47346,11 +47572,11 @@ enable-named-pipe socket = mypipe1 - For the 5.5.20 *Note `mysqld': mysqld, create a file + For the 5.5.23 *Note `mysqld': mysqld, create a file `C:\my-opts2.cnf' that looks like this: [mysqld] - basedir = C:/mysql-5.5.20 + basedir = C:/mysql-5.5.23 port = 3308 enable-named-pipe socket = mypipe2 @@ -47360,7 +47586,7 @@ C:\> C:\mysql-5.1.55\bin\mysqld --install mysqld1 --defaults-file=C:\my-opts1.cnf - C:\> C:\mysql-5.5.20\bin\mysqld --install mysqld2 + C:\> C:\mysql-5.5.23\bin\mysqld --install mysqld2 --defaults-file=C:\my-opts2.cnf When you install a MySQL server as a service and use a @@ -47388,12 +47614,12 @@ Assume that an existing 5.1 server is configured for the default TCP/IP port number (3306) and Unix socket file (`/tmp/mysql.sock'). To -configure a new 5.5.20 server to have different operating parameters, +configure a new 5.5.23 server to have different operating parameters, use a `CMake' command something like this: shell> cmake . -DMYSQL_TCP_PORT=PORT_NUMBER \ -DMYSQL_UNIX_ADDR=FILE_NAME \ - -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.5.20 + -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.5.23 Here, PORT_NUMBER and FILE_NAME must be different from the default TCP/IP port number and Unix socket file path name, and the @@ -48719,7 +48945,7 @@ You can use the network probes to monitor the time spent reading from and writing to network clients during execution. The following D script -provides an example of this. Both the cumlative time for the read or +provides an example of this. Both the cumulative time for the read or write is calculated, and the number of bytes. Note that the dynamic variable size has been increased (using the `dynvarsize' option) to cope with the rapid firing of the individual probes for the network @@ -49196,25 +49422,15 @@ * Making a Hot Backup with MySQL Enterprise Backup * Customers of MySQL Enterprise Edition can use the MySQL Enterprise -Backup -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_mysql_enterprise_backup) -product to do physical -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_physical) -backups of entire instances or selected databases, tables, or both. -This product includes features for incremental -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_incremental_backup) -and compressed -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_compressed_backup) -backups. Backing up the physical database files makes restore much -faster than logical techniques such as the `mysqldump' command. -`InnoDB' tables are copied using a hot backup -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_hot_backup) +Backup product to do physical backups of entire instances or selected +databases, tables, or both. This product includes features for +incremental and compressed backups. Backing up the physical database +files makes restore much faster than logical techniques such as the +`mysqldump' command. `InnoDB' tables are copied using a hot backup mechanism. (Ideally, the `InnoDB' tables should represent a substantial majority of the data.) Tables from other storage engines -are copied using a warm backup -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_warm_backup) -mechanism. For an overview of the MySQL Enterprise Backup product, see -*Note mysql-enterprise-backup::. +are copied using a warm backup mechanism. For an overview of the MySQL +Enterprise Backup product, see *Note mysql-enterprise-backup::. * Making Backups by Copying Table Files * @@ -49421,13 +49637,11 @@ To be useful, backups must be scheduled regularly. A full backup (a snapshot of the data at a point in time) can be done in MySQL with several tools. For example, *Note MySQL Enterprise Backup: -mysql-enterprise-backup. can perform a physical backup -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_physical_backup) -of an entire instance, with optimizations to minimize overhead and -avoid disruption when backing up `InnoDB' data files; *Note -`mysqldump': mysqldump. provides online logical backup -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_logical_backup). -This discussion uses *Note `mysqldump': mysqldump. +mysql-enterprise-backup. can perform a physical backup of an entire +instance, with optimizations to minimize overhead and avoid disruption +when backing up `InnoDB' data files; *Note `mysqldump': mysqldump. +provides online logical backup. This discussion uses *Note `mysqldump': +mysqldump. Assume that we make a full backup of all our `InnoDB' tables in all databases using the following command on Sunday at 1 p.m., when load is @@ -50832,10 +51046,8 @@ Any database application eventually hits hardware limits as the database becomes more and more busy. A DBA must evaluate whether it is possible to tune the application or reconfigure the server to avoid -these bottlenecks -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_bottleneck), -or whether more hardware resources are required. System bottlenecks -typically arise from these sources: +these bottlenecks, or whether more hardware resources are required. +System bottlenecks typically arise from these sources: * Disk seeks. It takes time for the disk to find a piece of data. With modern disks, the mean time for this is usually lower than @@ -51165,17 +51377,15 @@ 8.2.1.4 How to Avoid Full Table Scans ..................................... -Frequently, a full table scan -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_full_table_scan) -is a danger sign that a query can be speeded up significantly. For -tables with more than a few rows, consider redesigning the query by -adding an index for one or more of the columns tested in the `WHERE' -clause. Put extra effort into avoiding table scans for queries that -perform joins or reference foreign keys. If the nature of the data -means there is no way to avoid reading all the rows, then it might not -be practical to make the query faster, or making it faster might -involve extensive restructuring of your tables that is beyond the scope -of this section. +Frequently, a full table scan is a danger sign that a query can be +speeded up significantly. For tables with more than a few rows, consider +redesigning the query by adding an index for one or more of the columns +tested in the `WHERE' clause. Put extra effort into avoiding table +scans for queries that perform joins or reference foreign keys. If the +nature of the data means there is no way to avoid reading all the rows, +then it might not be practical to make the query faster, or making it +faster might involve extensive restructuring of your tables that is +beyond the scope of this section. The output from *Note `EXPLAIN': explain. shows `ALL' in the `type' column when MySQL uses a table scan to resolve a query. This usually @@ -51835,9 +52045,7 @@ * To eliminate rows from consideration. If there is a choice between multiple indexes, MySQL normally uses the index that finds the - smallest number of rows (the most selective - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_selectivity) - index). + smallest number of rows (the most selective index). * To retrieve rows from other tables when performing joins. MySQL can use indexes on columns more efficiently if they are declared @@ -51874,11 +52082,10 @@ * In some cases, a query can be optimized to retrieve values without consulting the data rows. (An index that provides all the - necessary results for a query is called a covering index - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_covering_index).) - If a query uses only columns from a table that are numeric and - that form a leftmost prefix for some key, the selected values can - be retrieved from the index tree for greater speed: + necessary results for a query is called a covering index.) If a + query uses only columns from a table that are numeric and that + form a leftmost prefix for some key, the selected values can be + retrieved from the index tree for greater speed: SELECT KEY_PART3 FROM TBL_NAME WHERE KEY_PART1=1 @@ -52018,8 +52225,8 @@ column: SELECT * FROM TBL_NAME - WHERE HASH_COL=MD5(CONCAT(COL1,COL2)) - AND COL1='CONSTANT' AND COL2='CONSTANT'; + WHERE HASH_COL=MD5(CONCAT(VAL1,VAL2)) + AND COL1=VAL1 AND COL2=VAL2; Suppose that a table has the following specification: @@ -52033,9 +52240,11 @@ The `name' index is an index over the `last_name' and `first_name' columns. The index can be used for lookups in queries that specify -values in a known range for `last_name', or for both `last_name' and -`first_name'. Therefore, the `name' index is used for lookups in the -following queries: +values in a known range for combinations of `last_name' and `first_name' +values. It can also be used for queries that specify just a `last_name' +value because that column is a leftmost prefix of the index (see *Note +multiple-column-indexes::). Therefore, the `name' index is used for +lookups in the following queries: SELECT * FROM test WHERE last_name='Widenius'; @@ -52415,7 +52624,7 @@ form, specify `ROW_FORMAT=COMPRESSED' when creating `InnoDB' tables, or run the *Note `myisampack': myisampack. command on an existing `MyISAM' table. (`InnoDB' tables compressed tables are - readable and writeable, while `MyISAM' compressed tables are + readable and writable, while `MyISAM' compressed tables are read-only.) * For `MyISAM' tables, if you do not have any variable-length columns @@ -52579,8 +52788,7 @@ the BLOB-specific table on a different storage device or even a separate database instance. For example, to retrieve a BLOB might require a large sequential disk read that is better suited to a - traditional hard drive than to an SSD device - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_ssd). + traditional hard drive than to an SSD device. * See *Note optimize-character:: for reasons why a binary `VARCHAR' column is sometimes preferable to an equivalent BLOB column. @@ -52952,11 +53160,9 @@ * When a long-running transaction modifies a table, queries against that table from other transactions do not make use of the covering - index - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_covering_index) - technique. Queries that normally could retrieve all the result - columns from a secondary index, instead look up the appropriate - values from the table data. + index technique. Queries that normally could retrieve all the + result columns from a secondary index, instead look up the + appropriate values from the table data.  File: manual.info, Node: optimizing-innodb-logging, Next: optimizing-innodb-bulk-data-loading, Prev: optimizing-innodb-transaction-management, Up: optimizing-innodb @@ -53053,13 +53259,10 @@ tested columns or columns with only a few different values might not be helpful for any queries. If you have many queries for the same table, testing different combinations of columns, try to - create a small number of concatenated indexes - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_concatenated_index) - rather than a large number of single-column indexes. If an index - contains all the columns needed for the result set (known as a - covering index - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_covering_index)), - the query might be able to avoid reading the table data at all. + create a small number of concatenated indexes rather than a large + number of single-column indexes. If an index contains all the + columns needed for the result set (known as a covering index), the + query might be able to avoid reading the table data at all. * If an indexed column cannot contain any `NULL' values, declare it as `NOT NULL' when you create the table. The optimizer can better @@ -53121,8 +53324,8 @@ Specify the size of the buffer pool with the `innodb_buffer_pool_size' option. This memory area is important enough that busy databases often specify a size approximately 80% - of the amount of of physical memory. For more information, see - *Note innodb-buffer-pool::. + of the amount of physical memory. For more information, see *Note + innodb-buffer-pool::. * In some versions of GNU/Linux and Unix, flushing files to disk with the Unix `fsync()' call (which `InnoDB' uses by default) and @@ -53253,10 +53456,8 @@ dramatically improves scalability for the busiest databases. See *Note innodb-multiple-rollback-segments::. Although this feature does not require any action during day-to-day operation, you must - perform a slow shutdown - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_slow_shutdown) - during or after upgrading the database to MySQL 5.5 to enable the - higher limit. + perform a slow shutdown during or after upgrading the database to + MySQL 5.5 to enable the higher limit. * Moving purge operations (a type of garbage collection) into a background thread. See *Note innodb-improved-purge-scheduling::. To @@ -53281,15 +53482,14 @@ 8.5.9 Optimizing `InnoDB' for Systems with Many Tables ------------------------------------------------------ - * `InnoDB' computes index cardinality - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_cardinality) - values for a table the first time that table is accessed after - startup, instead of storing such values in the table. This step - can take significant time on systems that partition the data into - many tables. Since this overhead only applies to the initial table - open operation, to `warm up' a table for later use, access it - immediately after startup by issuing a statement such as `SELECT 1 - FROM TBL_NAME LIMIT 1'. + * `InnoDB' computes index cardinality values for a table the first + time that table is accessed after startup, instead of storing such + values in the table. This step can take significant time on + systems that partition the data into many tables. Since this + overhead only applies to the initial table open operation, to + `warm up' a table for later use, access it immediately after + startup by issuing a statement such as `SELECT 1 FROM TBL_NAME + LIMIT 1'.  File: manual.info, Node: optimizing-myisam, Next: optimizing-memory-tables, Prev: optimizing-innodb, Up: optimization @@ -53903,10 +54103,12 @@ `possible_keys' column, use `FORCE INDEX', `USE INDEX', or `IGNORE INDEX' in your query. See *Note index-hints::. - For `MyISAM' tables, running *Note `ANALYZE TABLE': analyze-table. - helps the optimizer choose better indexes. For `MyISAM' tables, - *Note `myisamchk --analyze': myisamchk. does the same. See *Note - analyze-table::, and *Note myisam-table-maintenance::. + For `MyISAM' and `NDB' tables, running *Note `ANALYZE TABLE': + analyze-table. helps the optimizer choose better indexes. For + `NDB' tables, this also improves performance of distributed + pushed-down joins. For `MyISAM' tables, *Note `myisamchk + --analyze': myisamchk. does the same as *Note `ANALYZE TABLE': + analyze-table. See *Note myisam-table-maintenance::. * `key_len' @@ -54689,11 +54891,10 @@ ------------------------------ *Note `InnoDB': innodb-storage-engine. maintains a storage area called -the buffer pool -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_buffer_pool) -for caching data and indexes in memory. Knowing how the `InnoDB' buffer -pool works, and taking advantage of it to keep frequently accessed data -in memory, is an important aspect of MySQL tuning. +the buffer pool for caching data and indexes in memory. Knowing how the +`InnoDB' buffer pool works, and taking advantage of it to keep +frequently accessed data in memory, is an important aspect of MySQL +tuning. * Guidelines * @@ -54733,8 +54934,7 @@ This algorithm keeps blocks that are heavily used by queries in the new sublist. The old sublist contains less-used blocks; these blocks are -candidates for eviction -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_eviction). +candidates for eviction. The LRU algorithm operates as follows by default: @@ -54747,9 +54947,7 @@ buffer pool, it initially inserts it at the midpoint (the head of the old sublist). A block can be read in because it is required for a user-specified operation such as an SQL query, or as part of - a read-ahead - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_read_ahead) - operation performed automatically by `InnoDB'. + a read-ahead operation performed automatically by `InnoDB'. * Accessing to a block in the old sublist makes it `young', moving it to the head of the buffer pool (the head of the new sublist). @@ -55029,7 +55227,7 @@ The key cache referred to in a *Note `CACHE INDEX': cache-index. statement can be created by setting its size with a *Note `SET GLOBAL': -set-option. parameter setting statement or by using server startup +set-statement. parameter setting statement or by using server startup options. For example: mysql> SET GLOBAL keycache1.key_buffer_size=128*1024; @@ -55602,7 +55800,7 @@ mysql> SET SESSION query_cache_type = OFF; If you set `query_cache_type' at server startup (rather than at runtime -with a *Note `SET': set-option. statement), only the numeric values +with a *Note `SET': set-statement. statement), only the numeric values are permitted. To control the maximum size of individual query results that can be @@ -55616,7 +55814,7 @@ *Note*: You can set the maximum size that can be specified for the query cache -at run time with the *Note `SET': set-option. statement by using the +at run time with the *Note `SET': set-statement. statement by using the `--maximum-query_cache_size=32M' option on the command line or in the configuration file. @@ -57856,7 +58054,7 @@ complete within 100ms even when the server is loaded, and the remaining statements take between 100ms and 2 hours fairly evenly spread. In this case, it would make sense to set `thread_pool_stall_limit' to 10 -(meaining 100ms). The default value of 60ms is okay for servers that +(meaning 100ms). The default value of 60ms is okay for servers that primarily execute very simple statements. The `thread_pool_stall_limit' parameter can be changed at runtime to @@ -58151,7 +58349,7 @@ * `Time' indicates how long the thread has been in its current state. The thread's notion of the current time may be altered in some cases: The thread can change the time with *Note `SET - TIMESTAMP = VALUE': set-option. For a thread running on a slave + TIMESTAMP = VALUE': set-statement. For a thread running on a slave that is processing events from the master, the thread time is set to the time found in the events and thus reflects current time on the master and not the slave. @@ -61572,7 +61770,7 @@ * *Note date-and-time-types:: -* Standard SQL and ODBC Date and Time Literals * +Standard SQL and ODBC Date and Time Literals Standard SQL permits temporal literals to be specified using a type keyword and a string. The space between the keyword and string is @@ -61593,7 +61791,7 @@ constructions produces the string value `'STR'', with a type of *Note `VARCHAR': char. -* String and Numeric Literals in Date and Time Context * +String and Numeric Literals in Date and Time Context MySQL recognizes *Note `DATE': datetime. values in these formats: @@ -62206,13 +62404,13 @@ corresponding file system objects when it creates database directories or table files: - * Basic Latin letters (`a..zA..Z') and digits (`0..9') are encoded - as is. Consequently, their case sensitivity directly depends on - file system features. + * Basic Latin letters (`a..zA..Z'), digits (`0..9') and underscore + (`_') are encoded as is. Consequently, their case sensitivity + directly depends on file system features. * All other national letters from alphabets that have uppercase/lowercase mapping are encoded as shown in the following - table. + table. Values in the Code Range column are UCS-2 values. Code Range Pattern Number Used Unused Blocks 00C0..017F [@][0..4][g..z]5*20= 100 97 3 Latin-1 @@ -62224,7 +62422,7 @@ Supplement 0530..058F [@][g..z][7..8]20*2= 40 38 2 Armenian 2160..217F [@][g..z][9]20*1= 20 16 4 Number Forms - 0180..02AF [@][g..z][a..k]28*11=220 203 17 Latin Extended-B + 0180..02AF [@][g..z][a..k]20*11=220 203 17 Latin Extended-B + IPA Extensions 1E00..1EFF [@][g..z][l..r]20*7= 140 136 4 Latin Extended Additional @@ -62248,10 +62446,10 @@ letters (as in Greek Extended), the leftmost letter character stands for lettercase. All other letter bytes must be in lowercase. - * All nonletter characters, as well as letters from alphabets that - do not have uppercase/lowercase mapping (such as Hebrew) are - encoded using hexadecimal representation using lowercase letters - for hex digits `a..f': + * All nonletter characters except underscore (`_'), as well as + letters from alphabets that do not have uppercase/lowercase + mapping (such as Hebrew) are encoded using hexadecimal + representation using lowercase letters for hex digits `a..f': 0x003F -> @003f 0xFFFF -> @ffff @@ -62598,6 +62796,8 @@ between versions, see Reserved Words in MySQL 5.5 (http://dev.mysql.com/doc/mysqld-version-reference/en/mysqld-version-reference-reservedwords-5-5.html). +*Reserved Words in MySQL 5.5.22* + `ACCESSIBLE' `ADD' `ALL' `ALTER' `ANALYZE' `AND' `AS' `ASC' `ASENSITIVE' @@ -62675,7 +62875,7 @@ `WRITE' `XOR' `YEAR_MONTH' `ZEROFILL' -The following are new reserved words in MySQL 5.5: +*New Reserved Words in MySQL 5.5* `GENERAL' `IGNORE_SERVER_IDS' `MASTER_HEARTBEAT_PERIOD' `MAXVALUE' `RESIGNAL' `SIGNAL' @@ -62723,17 +62923,17 @@ User variable names are not case sensitive in MySQL 5.0 and up. One way to set a user-defined variable is by issuing a *Note `SET': -set-option. statement: +set-statement. statement: SET @VAR_NAME = EXPR [, @VAR_NAME = EXPR] ... -For *Note `SET': set-option, either `=' or `:=' can be used as the +For *Note `SET': set-statement, either `=' or `:=' can be used as the assignment operator. You can also assign a value to a user variable in statements other than -*Note `SET': set-option. In this case, the assignment operator must be -`:=' and not `=' because the latter is treated as the comparison -operator `=' in non-*Note `SET': set-option. statements: +*Note `SET': set-statement. In this case, the assignment operator must +be `:=' and not `=' because the latter is treated as the comparison +operator `=' in non-*Note `SET': set-statement. statements: mysql> SET @t1=1, @t2=2, @t3:=4; mysql> SELECT @t1, @t2, @t3, @t4 := @t1+@t2+@t3; @@ -64046,7 +64246,7 @@ An implication of this difference is that if your environment is configured to use a non-`latin1' locale, MySQL client programs will use a different connection character set than previously, as though you had -issued an implicit *Note `SET NAMES': set-option. statement. If the +issued an implicit *Note `SET NAMES': set-statement. statement. If the previous behavior is required, start the client with the `--default-character-set=latin1' option. @@ -64287,8 +64487,8 @@ Clients can set `character_set_results' to control the character set in which they receive error messages. The variable can be set directly, -or indirectly by means such as *Note `SET NAMES': set-option. For more -information about `character_set_results', see *Note +or indirectly by means such as *Note `SET NAMES': set-statement. For +more information about `character_set_results', see *Note charset-connection::. Prior to MySQL 5.5, the server constructs error messages and returns @@ -65886,8 +66086,8 @@ NAMES' sets the `character_set_results' and other related system variables. (See *Note charset-connection::.) Alternatively, a client program can perform the conversion after receiving the result from the -server. It is more efficient for the client perform the conversion, but -this option is not always available for all clients. +server. It is more efficient for the client to perform the conversion, +but this option is not always available for all clients. If `character_set_results' is set to `NULL', no conversion is performed and the server returns metadata using its original character set (the @@ -66916,50 +67116,47 @@ locations: * It tries to find the file in a directory constructed from two - parts, the value of `--lc-messages-dir' and the value of - `--lc-messages' converted to a language name. Suppose that you - start the server using this command: + system variable values, `lc_messages_dir' and `lc_messages', with + the latter converted to a language name. Suppose that you start the + server using this command: - shell> mysqld --lc-messages-dir=/usr/share/mysql --lc-messages=fr_FR + shell> mysqld --lc_messages_dir=/usr/share/mysql --lc_messages=fr_FR In this case, *Note `mysqld': mysqld. maps the locale `fr_FR' to the language `french' and looks for the error file in the `/usr/share/mysql/french' directory. * If the message file cannot be found in the directory constructed - as just described, the server ignores the `--lc-messages' value - and uses only the `--lc-messages-dir' value as the location in - which to look. - -The `--lc-messages-dir' and `--lc-messages' options are accompanied by -the `lc_messages_dir' and `lc_messages' system variables. -`lc_messages_dir' has only a global value and is read only. -`lc_messages' has global and session values and can be modified at -runtime, so the error message language can be changed while the server -is running, and individual clients each can have a different error -message language by changing their session `lc_messages' value to a -different locale name. For example, if the server is using the `fr_FR' -locale for error messages, a client that wants error messages in -English can execute this statement: + as just described, the server ignores the `lc_messages' value and + uses only the `lc_messages_dir' value as the location in which to + look. + +The `lc_messages_dir' system variable has only a global value and is +read only. `lc_messages' has global and session values and can be +modified at runtime, so the error message language can be changed while +the server is running, and individual clients each can have a different +error message language by changing their session `lc_messages' value to +a different locale name. For example, if the server is using the +`fr_FR' locale for error messages, a client can execute this statement +to receive error messages in English: mysql> SET lc_messages = 'en_US'; -Before MySQL 5.5, the `--lc-messages-dir' and `--lc-messages' options -(and accompanying system variables) were unavailable. To start *Note -`mysqld': mysqld. with a particular language for error messages, the -`--language' or `-L' option were used. The option value can be a -language name or the full path to the error message file. For example: +Before MySQL 5.5, the `lc_messages_dir' and `lc_messages' system +variables were unavailable. To start *Note `mysqld': mysqld. with a +particular language for error messages, the `--language' or `-L' option +were used. The option value can be a language name or the full path to +the error message file. For example: - shell> mysqld --language=swedish + shell> mysqld --language=french Or: - shell> mysqld --language=/usr/local/share/swedish + shell> mysqld --language=/usr/local/share/french -The language name should be specified in lowercase. +Specify the language name in lowercase. -From MySQL 5.5 on, `--language' is treated as an alias for -`--lc-messages-dir'. +MySQL 5.5 treats `--language' as an alias for `lc_messages_dir'. By default, the language files are located in the `share/mysql/LANGUAGE' directory under the MySQL base directory. @@ -67424,7 +67621,7 @@ A many-characters-to-many-weights mapping is also possible (this is contraction with expansion), but is not supported by MySQL. -For implementation instructions, for a non-UCA colluation, see *Note +For implementation instructions, for a non-UCA collation, see *Note adding-character-set::. For a UCA collation, see *Note adding-collation-unicode-uca::. @@ -68415,7 +68612,7 @@ data types, such as the permissible formats in which you can specify values. -MySQL also supports extensions for handing spatial data. For +MySQL also supports extensions for handling spatial data. For information about these data types, see *Note spatial-extensions::. Data type descriptions use these conventions: @@ -68744,20 +68941,18 @@ representing `'0000-00-00 00:00:00'', the `zero' *Note `TIMESTAMP': datetime. value. - MySQL displays *Note `TIMESTAMP': datetime. values in - `'YYYY-MM-DD HH:MM:SS'' format. To convert the value to a number, - add `+0'. - - A *Note `TIMESTAMP': datetime. column is useful for recording the - date and time of an *Note `INSERT': insert. or *Note `UPDATE': - update. operation. By default, the first *Note `TIMESTAMP': - datetime. column in a table is automatically set to the date and - time of the most recent operation if you do not assign it a value - yourself. You can also set any *Note `TIMESTAMP': datetime. column - to the current date and time by assigning it a `NULL' value. The - automatic initialization and update properties can be specified - using `DEFAULT' and `ON UPDATE' clauses, are described in *Note - timestamp::. + Unless specified otherwise, the first *Note `TIMESTAMP': datetime. + column in a table is defined to be automatically set to the date + and time of the most recent modification if not explicitly + assigned a value. This makes *Note `TIMESTAMP': datetime. useful + for recording the timestamp of an *Note `INSERT': insert. or *Note + `UPDATE': update. operation. You can also set any *Note + `TIMESTAMP': datetime. column to the current date and time by + assigning it a `NULL' value, unless it has been defined with the + `NULL' attribute to permit `NULL' values. The automatic + initialization and updating to the current date and time can be + specified using `DEFAULT' and `ON UPDATE' clauses, are described in + *Note timestamp-initialization::. *Note*: @@ -68783,7 +68978,7 @@ columns using either strings or numbers. The `SUM()' and `AVG()' aggregate functions do not work with temporal -values. (They convert the values to numbers, which loses the part after +values. (They convert the values to numbers, losing everything after the first nonnumeric character.) To work around this problem, convert to numeric units, perform the aggregate operation, and convert back to a temporal value. Examples: @@ -68791,6 +68986,17 @@ SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(TIME_COL))) FROM TBL_NAME; SELECT FROM_DAYS(SUM(TO_DAYS(DATE_COL))) FROM TBL_NAME; +*Note*: + +The MySQL server can be run with the `MAXDB' SQL mode enabled. In this +case, *Note `TIMESTAMP': datetime. is identical with *Note `DATETIME': +datetime. If this mode is enabled at the time that a table is created, +*Note `TIMESTAMP': datetime. columns are created as *Note `DATETIME': +datetime. columns. As a result, such columns use *Note `DATETIME': +datetime. display format, have the same range of values, and there is +no automatic initialization or updating to the current date and time. +See *Note server-sql-mode::. +  File: manual.info, Node: string-type-overview, Next: data-type-defaults, Prev: date-and-time-type-overview, Up: data-type-overview @@ -69064,7 +69270,8 @@ for example, that you cannot set the default for a date column to be the value of a function such as `NOW()' or `CURRENT_DATE'. The exception is that you can specify `CURRENT_TIMESTAMP' as the default -for a *Note `TIMESTAMP': datetime. column. See *Note timestamp::. +for a *Note `TIMESTAMP': datetime. column. See *Note +timestamp-initialization::. *Note `BLOB': blob. and *Note `TEXT': blob. columns cannot be assigned a default value. @@ -69083,21 +69290,21 @@ implicit default value. To prevent this, include an explicit `NOT NULL' in the definition of any `PRIMARY KEY' column. -For data entry for a `NOT NULL' column that has no explicit `DEFAULT' +For data entry into a `NOT NULL' column that has no explicit `DEFAULT' clause, if an *Note `INSERT': insert. or *Note `REPLACE': replace. statement includes no value for the column, or an *Note `UPDATE': update. statement sets the column to `NULL', MySQL handles the column according to the SQL mode in effect at the time: - * If strict SQL mode is not enabled, MySQL sets the column to the - implicit default value for the column data type. - - * If strict mode is enabled, an error occurs for transactional + * If strict SQL mode is enabled, an error occurs for transactional tables and the statement is rolled back. For nontransactional tables, an error occurs, but if this happens for the second or subsequent row of a multiple-row statement, the preceding rows will have been inserted. + * If strict mode is not enabled, MySQL sets the column to the + implicit default value for the column data type. + Suppose that a table `t' is defined as follows: CREATE TABLE t (i INT NOT NULL); @@ -69513,6 +69720,7 @@ * datetime:: The `DATE', `DATETIME', and `TIMESTAMP' Types * time:: The `TIME' Type * year:: The `YEAR' Type +* timestamp-initialization:: Automatic Initialization and Updating for `TIMESTAMP' * fractional-seconds:: Fractional Seconds in Time Values * date-and-time-type-conversion:: Conversion Between Date and Time Types * two-digit-years:: Two-Digit Years in Dates @@ -69618,13 +69826,14 @@ 11.3.1 The `DATE', `DATETIME', and `TIMESTAMP' Types ---------------------------------------------------- -* Menu: - -* timestamp:: `TIMESTAMP' Properties - The *Note `DATE': datetime, *Note `DATETIME': datetime, and *Note `TIMESTAMP': datetime. types are related. This section describes their -characteristics, how they are similar, and how they differ. +characteristics, how they are similar, and how they differ. MySQL +recognizes *Note `DATE': datetime, *Note `DATETIME': datetime, and +*Note `TIMESTAMP': datetime. values in several formats, described in +*Note date-and-time-literals::. For the *Note `DATE': datetime. and +*Note `DATETIME': datetime. range descriptions, `supported' means that +although earlier values might work, there is no guarantee. The *Note `DATE': datetime. type is used for values with a date part but no time part. MySQL retrieves and displays *Note `DATE': datetime. @@ -69636,30 +69845,40 @@ `DATETIME': datetime. values in `'YYYY-MM-DD HH:MM:SS'' format. The supported range is `'1000-01-01 00:00:00'' to `'9999-12-31 23:59:59''. -For the *Note `DATE': datetime. and *Note `DATETIME': datetime. range -descriptions, `supported' means that although earlier values might -work, there is no guarantee. - The *Note `TIMESTAMP': datetime. data type is used for values that contain both date and time parts. *Note `TIMESTAMP': datetime. has a range of `'1970-01-01 00:00:01'' UTC to `'2038-01-19 03:14:07'' UTC. -Its properties are described in more detail in *Note timestamp::. -MySQL recognizes *Note `DATE': datetime, *Note `DATETIME': datetime, and -*Note `TIMESTAMP': datetime. values in several formats, described in -*Note date-and-time-literals::. A *Note `DATETIME': datetime. or *Note -`TIMESTAMP': datetime. value can include a trailing fractional seconds -part in up to microseconds (6 digits) precision. Although this -fractional part is recognized, it is discarded from values stored into -*Note `DATETIME': datetime. or *Note `TIMESTAMP': datetime. columns. For -information about fractional seconds support in MySQL, see *Note -fractional-seconds::. +MySQL converts *Note `TIMESTAMP': datetime. values from the current +time zone to UTC for storage, and back from UTC to the current time +zone for retrieval. (This does not occur for other types such as *Note +`DATETIME': datetime.) By default, the current time zone for each +connection is the server's time. The time zone can be set on a +per-connection basis. As long as the time zone setting remains +constant, you get back the same value you store. If you store a *Note +`TIMESTAMP': datetime. value, and then change the time zone and +retrieve the value, the retrieved value is different from the value you +stored. This occurs because the same time zone was not used for +conversion in both directions. The current time zone is available as +the value of the `time_zone' system variable. For more information, see +*Note time-zone-support::. + +The *Note `TIMESTAMP': datetime. data type offers automatic +initialization and updating to the current date and time. For more +information, see *Note timestamp-initialization::. + +A *Note `DATETIME': datetime. or *Note `TIMESTAMP': datetime. value can +include a trailing fractional seconds part in up to microseconds (6 +digits) precision. Although this fractional part is recognized, it is +discarded from values stored into *Note `DATETIME': datetime. or *Note +`TIMESTAMP': datetime. columns. For information about fractional +seconds support in MySQL, see *Note fractional-seconds::. Illegal *Note `DATE': datetime, *Note `DATETIME': datetime, or *Note `TIMESTAMP': datetime. values are converted to the `zero' value of the appropriate type (`'0000-00-00'' or `'0000-00-00 00:00:00''). -Be aware of certain problems when specifying date values: +Be aware of certain properties of date value interpretation in MySQL: * MySQL permits a `relaxed' format for values specified as strings, in which any punctuation character may be used as the delimiter @@ -69693,212 +69912,6 @@ See also *Note two-digit-years::. - -File: manual.info, Node: timestamp, Prev: datetime, Up: datetime - -11.3.1.1 `TIMESTAMP' Properties -............................... - -*Note `TIMESTAMP': datetime. columns are displayed using the same -format as *Note `DATETIME': datetime. columns, `'YYYY-MM-DD HH:MM:SS''. - -*Note*: - -In older versions of MySQL (prior to 4.1), the properties of the *Note -`TIMESTAMP': datetime. data type differed significantly in several ways -from what is described in this section (see the `MySQL 3.23, 4.0, 4.1 -Reference Manual' for details); these include syntax extensions which -are deprecated in MySQL 5.1, and no longer supported in MySQL 5.5. This -has implications for performing a dump and restore or replicating -between MySQL Server versions. If you are using columns that are -defined using the old *Note `TIMESTAMP(N)': datetime. syntax, see *Note -upgrading-from-previous-series::, prior to upgrading to MySQL 5.5. - -*Note `TIMESTAMP': datetime. values are converted from the current time -zone to UTC for storage, and converted back from UTC to the current -time zone for retrieval. (This does not occur for other types such as -*Note `DATETIME': datetime.) By default, the current time zone for each -connection is the server's time. The time zone can be set on a -per-connection basis. As long as the time zone setting remains -constant, you get back the same value you store. If you store a *Note -`TIMESTAMP': datetime. value, and then change the time zone and -retrieve the value, the retrieved value is different from the value you -stored. This occurs because the same time zone was not used for -conversion in both directions. The current time zone is available as -the value of the `time_zone' system variable. For more information, see -*Note time-zone-support::. - -The *Note `TIMESTAMP': datetime. data type offers automatic -initialization and updating. You can choose whether to use these -properties and which column should have them: - - * For one *Note `TIMESTAMP': datetime. column in a table, you can - assign the current timestamp as the default value and the - auto-update value. The current timestamp can be the default value - for initializing the column, for the auto-update value, or both. - However, it is not possible to have the current timestamp be the - default value for one column and the auto-update value for another - column. - - * Any *Note `TIMESTAMP': datetime. column in a table can be used as - the one that is initialized to the current date and time, or - updated automatically. This need not be the first *Note - `TIMESTAMP': datetime. column. - - * The auto-update *Note `TIMESTAMP': datetime. column, if there is - one, is automatically updated to the current timestamp when the - value of any other column in the row is changed from its current - value. If all other columns are set to their current values, the - *Note `TIMESTAMP': datetime. column does not change. Automatic - updating does not apply if the *Note `TIMESTAMP': datetime. column - is explicitly assigned a value other than `NULL'. - - * If a `DEFAULT' value is specified for the first *Note `TIMESTAMP': - datetime. column in a table, it is not ignored. The default can be - `CURRENT_TIMESTAMP' or a constant date and time value. - - * In a *Note `CREATE TABLE': create-table. statement, the first - *Note `TIMESTAMP': datetime. column can be declared in any of the - following ways: - - * With both `DEFAULT CURRENT_TIMESTAMP' and `ON UPDATE - CURRENT_TIMESTAMP' clauses, the column has the current - timestamp for its default value, and is automatically updated. - - * With neither `DEFAULT' nor `ON UPDATE' clauses, it is the same - as `DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'. - - * With a `DEFAULT CURRENT_TIMESTAMP' clause and no `ON UPDATE' - clause, the column has the current timestamp for its default - value but is not automatically updated. - - * With no `DEFAULT' clause and with an `ON UPDATE - CURRENT_TIMESTAMP' clause, the column has a default of 0 and - is automatically updated. - - * With a constant `DEFAULT' value, the column has the given - default and is not automatically initialized to the current - timestamp. If the column also has an `ON UPDATE - CURRENT_TIMESTAMP' clause, it is automatically updated; - otherwise, it has a constant default and is not automatically - updated. - - In other words, you can use the current timestamp for both the - initial value and the auto-update value, or either one, or - neither. (For example, you can specify `ON UPDATE' to enable - auto-update without also having the column auto-initialized.) The - following column definitions demonstrate each possibility: - - * Auto-initialization and auto-update: - - COL_NAME TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP - - * Auto-initialization only: - - COL_NAME TIMESTAMP DEFAULT CURRENT_TIMESTAMP - - * Auto-update only: - - COL_NAME TIMESTAMP DEFAULT 0 ON UPDATE CURRENT_TIMESTAMP - - * Neither: - - COL_NAME TIMESTAMP DEFAULT 0 - - * To specify automatic default or updating for a *Note `TIMESTAMP': - datetime. column other than the first one, you must suppress the - automatic initialization and update behaviors for the first *Note - `TIMESTAMP': datetime. column by explicitly assigning it a constant - `DEFAULT' value (for example, `DEFAULT 0' or `DEFAULT '2003-01-01 - 00:00:00''). Then, for the other *Note `TIMESTAMP': datetime. - column, the rules are the same as for the first *Note `TIMESTAMP': - datetime. column, except that if you omit both of the `DEFAULT' - and `ON UPDATE' clauses, no automatic initialization or updating - occurs. - - Example: - - CREATE TABLE t ( - ts1 TIMESTAMP DEFAULT 0, - ts2 TIMESTAMP DEFAULT CURRENT_TIMESTAMP - ON UPDATE CURRENT_TIMESTAMP); - - * `CURRENT_TIMESTAMP' or any of its synonyms (`CURRENT_TIMESTAMP()', - `NOW()', `LOCALTIME', `LOCALTIME()', `LOCALTIMESTAMP', or - `LOCALTIMESTAMP()') can be used in the `DEFAULT' and `ON UPDATE' - clauses. They all mean `the current timestamp.' `UTC_TIMESTAMP' is - not permitted. Its range of values does not align with those of - the *Note `TIMESTAMP': datetime. column except when the current - time zone is `UTC'. - - * The order of the `DEFAULT' and `ON UPDATE' clauses does not - matter. If both `DEFAULT' and `ON UPDATE' are specified for a - *Note `TIMESTAMP': datetime. column, either can precede the other. - For example, these statements are equivalent: - - CREATE TABLE t (ts TIMESTAMP); - CREATE TABLE t (ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP - ON UPDATE CURRENT_TIMESTAMP); - CREATE TABLE t (ts TIMESTAMP ON UPDATE CURRENT_TIMESTAMP - DEFAULT CURRENT_TIMESTAMP); - -*Note*: - -The examples that use `DEFAULT 0' will not work if the `NO_ZERO_DATE' -SQL mode is enabled because that mode causes `zero' date values -(specified as `0', `'0000-00-00', or `'0000-00-00 00:00:00'') to be -rejected. Be aware that the `TRADITIONAL' SQL mode includes -`NO_ZERO_DATE'. - -*Note `TIMESTAMP': datetime. columns are `NOT NULL' by default, cannot -contain `NULL' values, and assigning `NULL' assigns the current -timestamp. However, a *Note `TIMESTAMP': datetime. column can be -permitted to contain `NULL' by declaring it with the `NULL' attribute. -In this case, the default value also becomes `NULL' unless overridden -with a `DEFAULT' clause that specifies a different default value. -`DEFAULT NULL' can be used to explicitly specify `NULL' as the default -value. (For a *Note `TIMESTAMP': datetime. column not declared with the -`NULL' attribute, `DEFAULT NULL' is illegal.) If a *Note `TIMESTAMP': -datetime. column permits `NULL' values, assigning `NULL' sets it to -`NULL', not to the current timestamp. - -The following table contains several *Note `TIMESTAMP': datetime. -columns that permit `NULL' values: - - CREATE TABLE t - ( - ts1 TIMESTAMP NULL DEFAULT NULL, - ts2 TIMESTAMP NULL DEFAULT 0, - ts3 TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP - ); - -Note that a *Note `TIMESTAMP': datetime. column that permits `NULL' -values will _not_ take on the current timestamp except under one of the -following conditions: - - * Its default value is defined as `CURRENT_TIMESTAMP' - - * `NOW()' or `CURRENT_TIMESTAMP' is inserted into the column - -In other words, a *Note `TIMESTAMP': datetime. column defined as -`NULL' will auto-initialize only if it is created using a definition -such as the following: - - CREATE TABLE t (ts TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP); - -Otherwise--that is, if the *Note `TIMESTAMP': datetime. column is -defined to permit `NULL' values but not using `DEFAULT -CURRENT_TIMESTAMP', as shown here... - - CREATE TABLE t1 (ts TIMESTAMP NULL DEFAULT NULL); - CREATE TABLE t2 (ts TIMESTAMP NULL DEFAULT '0000-00-00 00:00:00'); - -...then you must explicitly insert a value corresponding to the current -date and time. For example: - - INSERT INTO t1 VALUES (NOW()); - INSERT INTO t2 VALUES (CURRENT_TIMESTAMP); - *Note*: The MySQL server can be run with the `MAXDB' SQL mode enabled. In this @@ -69957,7 +69970,7 @@ server-sql-mode::.  -File: manual.info, Node: year, Next: fractional-seconds, Prev: time, Up: date-and-time-types +File: manual.info, Node: year, Next: timestamp-initialization, Prev: time, Up: date-and-time-types 11.3.3 The `YEAR' Type ---------------------- @@ -70001,9 +70014,204 @@ See also *Note two-digit-years::.  -File: manual.info, Node: fractional-seconds, Next: date-and-time-type-conversion, Prev: year, Up: date-and-time-types +File: manual.info, Node: timestamp-initialization, Next: fractional-seconds, Prev: year, Up: date-and-time-types + +11.3.4 Automatic Initialization and Updating for `TIMESTAMP' +------------------------------------------------------------ + +*Note*: + +In older versions of MySQL (prior to 4.1), the properties of the *Note +`TIMESTAMP': datetime. data type differed significantly in several ways +from what is described in this section (see the `MySQL 3.23, 4.0, 4.1 +Reference Manual' for details); these include syntax extensions which +are deprecated in MySQL 5.1, and no longer supported in MySQL 5.5. This +has implications for performing a dump and restore or replicating +between MySQL Server versions. If you are using columns that are defined +using the old *Note `TIMESTAMP(N)': datetime. syntax, see *Note +upgrading-from-previous-series::, prior to upgrading to MySQL 5.5. + +The *Note `TIMESTAMP': datetime. data type offers automatic +initialization and updating to the current date and time (that is, the +current timestamp). You can choose whether to use these properties and +which column should have them. + +For one *Note `TIMESTAMP': datetime. column in a table, you can assign +the current timestamp as the default value and the auto-update value. +The current timestamp can be the default value for initializing the +column, for the auto-update value, or both. It is not possible to have +the current timestamp be the default value for one column and the +auto-update value for another column. + +The auto-initialized *Note `TIMESTAMP': datetime. column, if there is +one, is set to the current timestamp for inserted rows that specify no +value for the column. + +The auto-updated *Note `TIMESTAMP': datetime. column, if there is one, +is automatically updated to the current timestamp when the value of any +other column in the row is changed from its current value. The +auto-updated column remains unchanged if all other columns are set to +their current values. To prevent the auto-updated column from updating +when other columns change, explicitly assign it the value it should have +(for example, set it to its current value). To update the auto-updated +column even when other columns do not change, explicitly set it to the +value it should have (for example, set it to `CURRENT_TIMESTAMP'). + +In addition, you can initialize or update any *Note `TIMESTAMP': +datetime. column to the current date and time by assigning it a `NULL' +value, unless it has been defined with the `NULL' attribute to permit +`NULL' values. + +In a *Note `CREATE TABLE': create-table. statement, the first *Note +`TIMESTAMP': datetime. column in a table can be declared in any of the +following ways: + + * With both `DEFAULT CURRENT_TIMESTAMP' and `ON UPDATE + CURRENT_TIMESTAMP' clauses, the column has the current timestamp + for its default value and is automatically updated to the current + timestamp. + + * With neither `DEFAULT CURRENT_TIMESTAMP' nor `ON UPDATE + CURRENT_TIMESTAMP' clauses, it is the same as specifying both + `DEFAULT CURRENT_TIMESTAMP' and `ON UPDATE CURRENT_TIMESTAMP'. + + * With a `DEFAULT CURRENT_TIMESTAMP' clause but no `ON UPDATE + CURRENT_TIMESTAMP' clause, the column has the current timestamp + for its default value but is not automatically updated to the + current timestamp. + + * With an `ON UPDATE CURRENT_TIMESTAMP' clause but no `DEFAULT' + clause, the column is automatically updated to the current + timestamp but does not have the current timestamp for its default + value. + + * With a constant `DEFAULT' value, the column has the given default + and is not automatically initialized to the current timestamp. If + the column also has an `ON UPDATE CURRENT_TIMESTAMP' clause, it is + automatically updated; otherwise, it is not. + +In the `DEFAULT' and `ON UPDATE' clauses, any of the synonyms for +`CURRENT_TIMESTAMP' have the same meaning as `CURRENT_TIMESTAMP'. +These are `CURRENT_TIMESTAMP()', `NOW()', `LOCALTIME', `LOCALTIME()', +`LOCALTIMESTAMP', and `LOCALTIMESTAMP()'. `UTC_TIMESTAMP' is not +permitted. Its range of values does not align with those of the *Note +`TIMESTAMP': datetime. column except when the current time zone is +`UTC'. + +As the preceding descriptions indicate, you can use the current +timestamp for both the default and auto-update values, for one but not +the other, or for neither. The following column definitions demonstrate +each possibility: + + * Auto-initialization and auto-update: + + COL_NAME TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP + + * Auto-initialization only: + + COL_NAME TIMESTAMP DEFAULT CURRENT_TIMESTAMP + + * Auto-update only: + + COL_NAME TIMESTAMP DEFAULT 0 ON UPDATE CURRENT_TIMESTAMP + + * Neither: + + COL_NAME TIMESTAMP DEFAULT 0 + +The order of the `DEFAULT' and `ON UPDATE' clauses does not matter. If +both are present in a column definition, either can occur first. For +example, these statements are equivalent: + + CREATE TABLE t (ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP + ON UPDATE CURRENT_TIMESTAMP); + CREATE TABLE t (ts TIMESTAMP ON UPDATE CURRENT_TIMESTAMP + DEFAULT CURRENT_TIMESTAMP); + +Any *Note `TIMESTAMP': datetime. column in a table can be the one that +is automatically initialized or updated to the current date and time. +This need not be the first *Note `TIMESTAMP': datetime. column. +However, to specify automatic initialization or updating for a *Note +`TIMESTAMP': datetime. column other than the first one, you must +suppress the automatic properties for the first *Note `TIMESTAMP': +datetime. column by explicitly assigning it a constant `DEFAULT' value +(for example, `DEFAULT 0' or `DEFAULT '2003-01-01 00:00:00''). Then, +for the other *Note `TIMESTAMP': datetime. column, the rules for the +automatic `DEFAULT' and `ON UPDATE' clauses are the same as for the +first *Note `TIMESTAMP': datetime. column, except that if you omit both +clauses, no automatic initialization or updating occurs. + +Example: + + CREATE TABLE t ( + ts1 TIMESTAMP DEFAULT 0, + ts2 TIMESTAMP DEFAULT CURRENT_TIMESTAMP + ON UPDATE CURRENT_TIMESTAMP); + +*Note*: + +The following examples that use `DEFAULT 0' do not work if the +`NO_ZERO_DATE' SQL mode is enabled because that mode causes `zero' date +values (specified as `0', `'0000-00-00', or `'0000-00-00 00:00:00'') to +be rejected. Be aware that the `TRADITIONAL' SQL mode includes +`NO_ZERO_DATE'. + +By default, *Note `TIMESTAMP': datetime. columns are `NOT NULL', cannot +contain `NULL' values, and assigning `NULL' assigns the current +timestamp. To permit a *Note `TIMESTAMP': datetime. column to contain +`NULL', explicitly declare it with the `NULL' attribute. In this case, +the default value also becomes `NULL' unless overridden with a +`DEFAULT' clause that specifies a different default value. `DEFAULT +NULL' can be used to explicitly specify `NULL' as the default value. +(For a *Note `TIMESTAMP': datetime. column not declared with the +`NULL' attribute, `DEFAULT NULL' is illegal.) If a *Note `TIMESTAMP': +datetime. column permits `NULL' values, assigning `NULL' sets it to +`NULL', not to the current timestamp. + +The following table contains several *Note `TIMESTAMP': datetime. +columns that permit `NULL' values: + + CREATE TABLE t + ( + ts1 TIMESTAMP NULL DEFAULT NULL, + ts2 TIMESTAMP NULL DEFAULT 0, + ts3 TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP + ); + +Note that a *Note `TIMESTAMP': datetime. column that permits `NULL' +values will _not_ take on the current timestamp except under one of the +following conditions: + + * Its default value is defined as `CURRENT_TIMESTAMP' + + * `CURRENT_TIMESTAMP' or any of its synonyms such as `NOW()' is + inserted into the column + +In other words, a *Note `TIMESTAMP': datetime. column defined to +permit `NULL' values auto-initializes only if its definition includes +`DEFAULT CURRENT_TIMESTAMP': + + CREATE TABLE t (ts TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP); + +If the *Note `TIMESTAMP': datetime. column permits `NULL' values but +does not use `DEFAULT CURRENT_TIMESTAMP', you must explicitly insert a +value corresponding to the current date and time. Suppose that tables +`t1' and `t2' have these definitions: + + CREATE TABLE t1 (ts TIMESTAMP NULL DEFAULT NULL); + CREATE TABLE t2 (ts TIMESTAMP NULL DEFAULT '0000-00-00 00:00:00'); + +To set the *Note `TIMESTAMP': datetime. column in either table to the +current timestamp at insert time, explicitly assign it that value. For +example: + + INSERT INTO t1 VALUES (NOW()); + INSERT INTO t2 VALUES (CURRENT_TIMESTAMP); + + +File: manual.info, Node: fractional-seconds, Next: date-and-time-type-conversion, Prev: timestamp-initialization, Up: date-and-time-types -11.3.4 Fractional Seconds in Time Values +11.3.5 Fractional Seconds in Time Values ---------------------------------------- A trailing fractional seconds part is permissible for temporal values @@ -70023,7 +70231,7 @@  File: manual.info, Node: date-and-time-type-conversion, Next: two-digit-years, Prev: fractional-seconds, Up: date-and-time-types -11.3.5 Conversion Between Date and Time Types +11.3.6 Conversion Between Date and Time Types --------------------------------------------- To some extent, you can convert a value from one temporal type to @@ -70096,7 +70304,7 @@  File: manual.info, Node: two-digit-years, Prev: date-and-time-type-conversion, Up: date-and-time-types -11.3.6 Two-Digit Years in Dates +11.3.7 Two-Digit Years in Dates ------------------------------- Date values with two-digit years are ambiguous because the century is @@ -70370,67 +70578,62 @@ 11.4.3 The `BLOB' and `TEXT' Types ---------------------------------- -A *Note `BLOB': blob. is a binary large object that can hold a variable -amount of data. The four *Note `BLOB': blob. types are *Note -`TINYBLOB': blob, *Note `BLOB': blob, *Note `MEDIUMBLOB': blob, and -*Note `LONGBLOB': blob. These differ only in the maximum length of the -values they can hold. The four *Note `TEXT': blob. types are *Note -`TINYTEXT': blob, *Note `TEXT': blob, *Note `MEDIUMTEXT': blob, and -*Note `LONGTEXT': blob. These correspond to the four *Note `BLOB': -blob. types and have the same maximum lengths and storage requirements. -See *Note storage-requirements::. - -*Note `BLOB': blob. values are treated as binary strings (byte -strings). They have no character set, and sorting and comparison are -based on the numeric values of the bytes in column values. *Note -`TEXT': blob. values are treated as nonbinary strings (character -strings). They have a character set, and values are sorted and compared -based on the collation of the character set. +A `BLOB' is a binary large object that can hold a variable amount of +data. The four `BLOB' types are `TINYBLOB', `BLOB', `MEDIUMBLOB', and +`LONGBLOB'. These differ only in the maximum length of the values they +can hold. The four `TEXT' types are `TINYTEXT', `TEXT', `MEDIUMTEXT', +and `LONGTEXT'. These correspond to the four `BLOB' types and have the +same maximum lengths and storage requirements. See *Note +storage-requirements::. + +`BLOB' values are treated as binary strings (byte strings). They have +no character set, and sorting and comparison are based on the numeric +values of the bytes in column values. `TEXT' values are treated as +nonbinary strings (character strings). They have a character set, and +values are sorted and compared based on the collation of the character +set. -If strict SQL mode is not enabled and you assign a value to a *Note -`BLOB': blob. or *Note `TEXT': blob. column that exceeds the column's -maximum length, the value is truncated to fit and a warning is -generated. For truncation of nonspace characters, you can cause an -error to occur (rather than a warning) and suppress insertion of the -value by using strict SQL mode. See *Note server-sql-mode::. +If strict SQL mode is not enabled and you assign a value to a `BLOB' or +`TEXT' column that exceeds the column's maximum length, the value is +truncated to fit and a warning is generated. For truncation of nonspace +characters, you can cause an error to occur (rather than a warning) and +suppress insertion of the value by using strict SQL mode. See *Note +server-sql-mode::. Truncation of excess trailing spaces from values to be inserted into *Note `TEXT': blob. columns always generates a warning, regardless of the SQL mode. -If a *Note `TEXT': blob. column is indexed, index entry comparisons are -space-padded at the end. This means that, if the index requires unique -values, duplicate-key errors will occur for values that differ only in -the number of trailing spaces. For example, if a table contains `'a'', -an attempt to store `'a '' causes a duplicate-key error. This is not -true for *Note `BLOB': blob. columns. - -In most respects, you can regard a *Note `BLOB': blob. column as a -*Note `VARBINARY': binary-varbinary. column that can be as large as you -like. Similarly, you can regard a *Note `TEXT': blob. column as a *Note -`VARCHAR': char. column. *Note `BLOB': blob. and *Note `TEXT': blob. -differ from *Note `VARBINARY': binary-varbinary. and *Note `VARCHAR': -char. in the following ways: - - * For indexes on *Note `BLOB': blob. and *Note `TEXT': blob. - columns, you must specify an index prefix length. For *Note - `CHAR': char. and *Note `VARCHAR': char, a prefix length is - optional. See *Note column-indexes::. - - * *Note `BLOB': blob. and *Note `TEXT': blob. columns cannot have - `DEFAULT' values. - -If you use the `BINARY' attribute with a *Note `TEXT': blob. data type, -the column is assigned the binary collation of the column character set. +If a `TEXT' column is indexed, index entry comparisons are space-padded +at the end. This means that, if the index requires unique values, +duplicate-key errors will occur for values that differ only in the +number of trailing spaces. For example, if a table contains `'a'', an +attempt to store `'a '' causes a duplicate-key error. This is not true +for `BLOB' columns. + +In most respects, you can regard a `BLOB' column as a *Note +`VARBINARY': binary-varbinary. column that can be as large as you like. +Similarly, you can regard a `TEXT' column as a *Note `VARCHAR': char. +column. `BLOB' and `TEXT' differ from *Note `VARBINARY': +binary-varbinary. and *Note `VARCHAR': char. in the following ways: + + * For indexes on `BLOB' and `TEXT' columns, you must specify an index + prefix length. For *Note `CHAR': char. and *Note `VARCHAR': char, + a prefix length is optional. See *Note column-indexes::. + + * `BLOB' and `TEXT' columns cannot have `DEFAULT' values. + +If you use the `BINARY' attribute with a `TEXT' data type, the column +is assigned the binary collation of the column character set. -`LONG' and `LONG VARCHAR' map to the *Note `MEDIUMTEXT': blob. data -type. This is a compatibility feature. +`LONG' and `LONG VARCHAR' map to the `MEDIUMTEXT' data type. This is a +compatibility feature. -MySQL Connector/ODBC defines *Note `BLOB': blob. values as -`LONGVARBINARY' and *Note `TEXT': blob. values as `LONGVARCHAR'. +MySQL Connector/ODBC defines `BLOB' values as `LONGVARBINARY' and `TEXT' +values as `LONGVARCHAR'. -Because *Note `BLOB': blob. and *Note `TEXT': blob. values can be -extremely long, you might encounter some constraints in using them: +Because `BLOB' and `TEXT' values can be extremely long, you might +encounter some constraints in using them: * Only the first `max_sort_length' bytes of the column are used when sorting. The default value of `max_sort_length' is 1024. You can @@ -70443,53 +70646,51 @@ mysql> SELECT id, comment FROM t -> ORDER BY comment; - Another way to use `GROUP BY' or `ORDER BY' on a *Note `BLOB': - blob. or *Note `TEXT': blob. column containing long values when - you want more than `max_sort_length' bytes to be significant is to - convert the column value into a fixed-length object. The standard - way to do this is with the `SUBSTRING()' function. For example, - the following statement causes 2000 bytes of the `comment' column - to be taken into account for sorting: + Another way to use `GROUP BY' or `ORDER BY' on a `BLOB' or `TEXT' + column containing long values when you want more than + `max_sort_length' bytes to be significant is to convert the column + value into a fixed-length object. The standard way to do this is + with the `SUBSTRING()' function. For example, the following + statement causes 2000 bytes of the `comment' column to be taken + into account for sorting: mysql> SELECT id, SUBSTRING(comment,1,2000) FROM t -> ORDER BY SUBSTRING(comment,1,2000); - * Instances of *Note `BLOB': blob. or *Note `TEXT': blob. columns in - the result of a query that is processed using a temporary table - causes the server to use a table on disk rather than in memory - because the `MEMORY' storage engine does not support those data - types (see *Note internal-temporary-tables::). Use of disk incurs - a performance penalty, so include *Note `BLOB': blob. or *Note - `TEXT': blob. columns in the query result only if they are really - needed. For example, avoid using *Note `SELECT *': select, which - selects all columns. - - * The maximum size of a *Note `BLOB': blob. or *Note `TEXT': blob. - object is determined by its type, but the largest value you - actually can transmit between the client and server is determined - by the amount of available memory and the size of the - communications buffers. You can change the message buffer size by - changing the value of the `max_allowed_packet' variable, but you - must do so for both the server and your client program. For - example, both *Note `mysql': mysql. and *Note `mysqldump': - mysqldump. enable you to change the client-side - `max_allowed_packet' value. See *Note server-parameters::, *Note - mysql::, and *Note mysqldump::. You may also want to compare the - packet sizes and the size of the data objects you are storing with - the storage requirements, see *Note storage-requirements:: - -Each *Note `BLOB': blob. or *Note `TEXT': blob. value is represented -internally by a separately allocated object. This is in contrast to all -other data types, for which storage is allocated once per column when -the table is opened. + * Instances of `BLOB' or `TEXT' columns in the result of a query + that is processed using a temporary table causes the server to use + a table on disk rather than in memory because the `MEMORY' storage + engine does not support those data types (see *Note + internal-temporary-tables::). Use of disk incurs a performance + penalty, so include `BLOB' or `TEXT' columns in the query result + only if they are really needed. For example, avoid using *Note + `SELECT *': select, which selects all columns. + + * The maximum size of a `BLOB' or `TEXT' object is determined by its + type, but the largest value you actually can transmit between the + client and server is determined by the amount of available memory + and the size of the communications buffers. You can change the + message buffer size by changing the value of the + `max_allowed_packet' variable, but you must do so for both the + server and your client program. For example, both *Note `mysql': + mysql. and *Note `mysqldump': mysqldump. enable you to change the + client-side `max_allowed_packet' value. See *Note + server-parameters::, *Note mysql::, and *Note mysqldump::. You + may also want to compare the packet sizes and the size of the data + objects you are storing with the storage requirements, see *Note + storage-requirements:: + +Each `BLOB' or `TEXT' value is represented internally by a separately +allocated object. This is in contrast to all other data types, for +which storage is allocated once per column when the table is opened. In some cases, it may be desirable to store binary data such as media -files in *Note `BLOB': blob. or *Note `TEXT': blob. columns. You may -find MySQL's string handling functions useful for working with such -data. See *Note string-functions::. For security and other reasons, it -is usually preferable to do so using application code rather than -giving application users the `FILE' privilege. You can discuss -specifics for various languages and platforms in the MySQL Forums +files in `BLOB' or `TEXT' columns. You may find MySQL's string handling +functions useful for working with such data. See *Note +string-functions::. For security and other reasons, it is usually +preferable to do so using application code rather than giving +application users the `FILE' privilege. You can discuss specifics for +various languages and platforms in the MySQL Forums (`http://forums.mysql.com/').  @@ -71174,7 +71375,7 @@ the `ORDER BY' or `HAVING' clauses of *Note `SELECT': select. statements, in the `WHERE' clause of a *Note `SELECT': select, *Note `DELETE': delete, or *Note `UPDATE': update. statement, or in *Note -`SET': set-option. statements. Expressions can be written using +`SET': set-statement. statements. Expressions can be written using literal values, column values, `NULL', built-in functions, stored functions, user-defined functions, and operators. This chapter describes the functions and operators that are permitted for writing @@ -71226,13 +71427,6 @@ 12.1 Function and Operator Reference ==================================== -*Note*: - -This table is part of an ongoing process to expand and simplify the -information provided on these elements. Further improvements to the -table, and corresponding descriptions will be applied over the coming -months. - *Functions/Operators* Name Description @@ -71246,8 +71440,8 @@ `ASCII()' Return numeric value of left-most character `ASIN()' Return the arc sine `=' Assign a value (as part of a *Note `SET': - set-option. statement, or as part of the - `SET' clause in an *Note `UPDATE': + set-statement. statement, or as part of + the `SET' clause in an *Note `UPDATE': update. statement) `:=' Assign a value `ATAN2()', `ATAN()' Return the arc tangent of the two arguments @@ -71742,7 +71936,7 @@ to string produces a value that has a character set and collation determined by the `character_set_connection' and `collation_connection' system variables. (These variables commonly are set with *Note `SET -NAMES': set-option. For information about connection character sets, +NAMES': set-statement. For information about connection character sets, see *Note charset-connection::.) This change means that such a conversion results in a character @@ -71794,8 +71988,8 @@ Name Description `AND', `&&' Logical AND `=' Assign a value (as part of a *Note `SET': - set-option. statement, or as part of the - `SET' clause in an *Note `UPDATE': + set-statement. statement, or as part of + the `SET' clause in an *Note `UPDATE': update. statement) `:=' Assign a value `BETWEEN ... AND ... ' Check whether a value is within a range of @@ -71871,8 +72065,8 @@ comparison operator, it has the same precedence as `<=>', `>=', `>', `<=', `<', `<>', `!=', `IS', `LIKE', `REGEXP', and `IN'. When used as an assignment operator, it has the same precedence as `:='. *Note -set-option::, and *Note user-variables::, explain how MySQL determines -which interpretation of `=' should apply. +set-statement::, and *Note user-variables::, explain how MySQL +determines which interpretation of `=' should apply. The meaning of some operators depends on the SQL mode: @@ -72378,8 +72572,8 @@ Name Description `=' Assign a value (as part of a *Note `SET': - set-option. statement, or as part of the - `SET' clause in an *Note `UPDATE': + set-statement. statement, or as part of + the `SET' clause in an *Note `UPDATE': update. statement) `:=' Assign a value @@ -72391,12 +72585,12 @@ storing a value, or any legal expression that yields a scalar value, including the result of a query (provided that this value is a scalar value). You can perform multiple assignments in the - same *Note `SET': set-option. statement. You can perform multiple - assignments in the same statement- + same *Note `SET': set-statement. statement. You can perform + multiple assignments in the same statement- Unlike `=', the `:=' operator is never interpreted as a comparison operator. This means you can use `:=' in any valid SQL statement - (not just in *Note `SET': set-option. statements) to assign a + (not just in *Note `SET': set-statement. statements) to assign a value to a variable. mysql> SELECT @var1, @var2; @@ -72443,16 +72637,16 @@ This operator is used to perform value assignments in two cases, described in the next two paragraphs. - Within a *Note `SET': set-option. statement, `=' is treated as an - assignment operator that causes the user variable on the left hand - side of the operator to take on the value to its right. (In other - words, when used in a *Note `SET': set-option. statement, `=' is - treated identically to `:='.) The value on the right hand side - may be a literal value, another variable storing a value, or any - legal expression that yields a scalar value, including the result - of a query (provided that this value is a scalar value). You can - perform multiple assignments in the same *Note `SET': set-option. - statement. + Within a *Note `SET': set-statement. statement, `=' is treated as + an assignment operator that causes the user variable on the left + hand side of the operator to take on the value to its right. (In + other words, when used in a *Note `SET': set-statement. + statement, `=' is treated identically to `:='.) The value on the + right hand side may be a literal value, another variable storing a + value, or any legal expression that yields a scalar value, + including the result of a query (provided that this value is a + scalar value). You can perform multiple assignments in the same + *Note `SET': set-statement. statement. In the `SET' clause of an *Note `UPDATE': update. statement, `=' also acts as an assignment operator; in this case, however, it @@ -72475,8 +72669,8 @@ mysql> SELECT @var1, @var2; -> 1, 1 - For more information, see *Note set-option::, *Note update::, and - *Note subqueries::. + For more information, see *Note set-statement::, *Note update::, + and *Note subqueries::.  File: manual.info, Node: control-flow-functions, Next: string-functions, Prev: non-typed-operators, Up: functions @@ -74861,6 +75055,18 @@ mysql> SELECT DAYNAME('2006-05-00'); -> NULL +*Note*: + +From MySQL 5.5.16 to 5.5.20, a change in handling of a date-related +assertion caused several functions to become more strict when passed a +`DATE()' function value as their argument and reject incomplete dates +with a day part of zero. These functions are affected: `CONVERT_TZ()', +`DATE_ADD()', `DATE_SUB()', `DAYOFYEAR()', `LAST_DAY()', +`TIMESTAMPDIFF()', `TO_DAYS()', `TO_SECONDS()', `WEEK()', `WEEKDAY()', +`WEEKOFYEAR()', `YEARWEEK()'. Because this changes date-handling +behavior in General Availability-status series MySQL 5.5, the change +was reverted in 5.5.21. + * `ADDDATE(DATE,INTERVAL EXPR UNIT)', `ADDDATE(EXPR,DAYS)' When invoked with the `INTERVAL' form of the second argument, @@ -75674,6 +75880,11 @@ EXPR1 and EXPR2 are time or date-and-time expressions, but both must be of the same type. + The result returned by `TIMEDIFF()' is limited to the range + allowed for *Note `TIME': time. values. Alternatively, you can use + either of the functions `TIMESTAMPDIFF()' and `UNIX_TIMESTAMP()', + both of which return integers. + mysql> SELECT TIMEDIFF('2000:01:01 00:00:00', -> '2000:01:01 00:00:00.000001'); -> '-00:00:00.000001' @@ -78866,7 +79077,8 @@ * `LAST_INSERT_ID()', `LAST_INSERT_ID(EXPR)' - `LAST_INSERT_ID()' (with no argument) returns the _first_ + `LAST_INSERT_ID()' (with no argument) returns a *Note `BIGINT': + numeric-types. (64-bit) value representing the _first_ automatically generated value _successfully_ inserted for an `AUTO_INCREMENT' column as a result of the most recently executed *Note `INSERT': insert. statement. The value of @@ -79034,7 +79246,8 @@ updated after *Note `INSERT': insert. and *Note `UPDATE': update. statements, so you cannot use the C API function to retrieve the value for `LAST_INSERT_ID(EXPR)' after executing other SQL - statements like *Note `SELECT': select. or *Note `SET': set-option. + statements like *Note `SELECT': select. or *Note `SET': + set-statement. * `ROW_COUNT()' @@ -79155,7 +79368,7 @@ function when `binlog_format' is set to `STATEMENT'. (Bug #47995) mysql> SELECT VERSION(); - -> '5.5.20-standard' + -> '5.5.23-standard'  File: manual.info, Node: miscellaneous-functions, Next: group-by-functions-and-modifiers, Prev: information-functions, Up: functions @@ -79544,9 +79757,9 @@ The `SUM()' and `AVG()' aggregate functions do not work with temporal values. (They convert the values to numbers, losing everything after -the first nonnumeric character.) To work around this problem, you can -convert to numeric units, perform the aggregate operation, and convert -back to a temporal value. Examples: +the first nonnumeric character.) To work around this problem, convert +to numeric units, perform the aggregate operation, and convert back to +a temporal value. Examples: SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(TIME_COL))) FROM TBL_NAME; SELECT FROM_DAYS(SUM(TO_DAYS(DATE_COL))) FROM TBL_NAME; @@ -81313,9 +81526,9 @@ * `GeometryType(G)' - Returns as a string the name of the geometry type of which the - geometry instance G is a member. The name corresponds to one of - the instantiable `Geometry' subclasses. + Returns as a binary string the name of the geometry type of which + the geometry instance G is a member. The name corresponds to one + of the instantiable `Geometry' subclasses. mysql> SELECT GeometryType(GeomFromText('POINT(1 1)')); +------------------------------------------+ @@ -82407,7 +82620,7 @@ * If strict mode is enabled, an overflow error occurs. -Underflow is not detected, so underflow handing is undefined. +Underflow is not detected, so underflow handling is undefined. By default, division by zero produces a result of `NULL' and no warning. With the `ERROR_FOR_DIVISION_BY_ZERO' SQL mode enabled, MySQL @@ -82803,7 +83016,7 @@ * alter-view:: `ALTER VIEW' Syntax * create-database:: `CREATE DATABASE' Syntax * create-event:: `CREATE EVENT' Syntax -* create-function:: The `CREATE FUNCTION' Statement +* create-function:: `CREATE FUNCTION' Syntax * create-index:: `CREATE INDEX' Syntax * create-logfile-group:: `CREATE LOGFILE GROUP' Syntax * create-procedure:: `CREATE PROCEDURE' and `CREATE FUNCTION' Syntax @@ -82966,7 +83179,7 @@ changes the schedule for the event such that it executes once, one day after this *Note `ALTER EVENT': alter-event. statement is run. - ALTER TABLE myevent + ALTER EVENT myevent ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 DAY DO @@ -83304,6 +83517,8 @@ For information on troubleshooting *Note `ALTER TABLE': alter-table, see *Note alter-table-problems::. +* Storage, Performance, and Concurrency Considerations * + In most cases, *Note `ALTER TABLE': alter-table. makes a temporary copy of the original table. MySQL waits for other operations that are modifying the table, then proceeds. It incorporates the alteration into @@ -83384,6 +83599,8 @@ copying and without blocking concurrent DML actions for most of their duration. See *Note alter-table-online-operations::. +* Usage Notes * + * To use *Note `ALTER TABLE': alter-table, you need `ALTER', `CREATE', and `INSERT' privileges for the table. Renaming a table requires `ALTER' and `DROP' on the old table, `ALTER', `CREATE', @@ -83466,9 +83683,9 @@ ALTER TABLE t1 CHANGE a b INTEGER; - If you want to change a column's type but not the name, `CHANGE' - syntax still requires an old and new column name, even if they are - the same. For example: + To change a column's type but not the name, `CHANGE' syntax still + requires an old and new column name, even if they are the same. + For example: ALTER TABLE t1 CHANGE b b BIGINT NOT NULL; @@ -83938,8 +84155,8 @@ added new MySQL Cluster data nodes online to an existing MySQL Cluster, you wish to redistribute existing MySQL Cluster table data to the new data nodes. In such cases, you - should invoke the satement with the `ONLINE' option; in other - words, as shown here: + should invoke the statement with the `ONLINE' option; in + other words, as shown here: ALTER ONLINE TABLE TABLE REORGANIZE PARTITION; @@ -84937,8 +85154,8 @@  File: manual.info, Node: create-function, Next: create-index, Prev: create-event, Up: sql-syntax-data-definition -13.1.12 The `CREATE FUNCTION' Statement ---------------------------------------- +13.1.12 `CREATE FUNCTION' Syntax +-------------------------------- The *Note `CREATE FUNCTION': create-function. statement is used to create stored functions and user-defined functions (UDFs): @@ -84986,8 +85203,8 @@ indexes to existing tables. A column list of the form `(col1,col2,...)' creates a multiple-column -index. Index values are formed by concatenating the values of the given -columns. +index. Index key values are formed by concatenating the values of the +given columns. Indexes can be created that use only the leading part of column values, using `COL_NAME(LENGTH)' syntax to specify an index prefix length: @@ -85263,10 +85480,40 @@ The minimum permitted value for `INITIAL_SIZE' is `1M'. -The `ENGINE' parameter determines the storage engine to be used by this +The `ENGINE' option determines the storage engine to be used by this log file group, with ENGINE_NAME being the name of the storage engine. -In MySQL 5.5, ENGINE_NAME must be one of the values *Note `NDB': -mysql-cluster. or *Note `NDBCLUSTER': mysql-cluster. +In MySQL 5.5, this must be *Note `NDB': mysql-cluster. (or *Note +`NDBCLUSTER': mysql-cluster.). If `ENGINE' is not set, MySQL tries to +use the engine specified by the `default_storage_engine' server system +variable (formerly `storage_engine'). In any case, if the engine is not +specified as *Note `NDB': mysql-cluster. or *Note `NDBCLUSTER': +mysql-cluster, the `CREATE LOGFILE GROUP' statement appears to succeed +but actually fails to create the log file group, as shown here: + + mysql> CREATE LOGFILE GROUP lg1 + -> ADD UNDOFILE 'undo.dat' INITIAL_SIZE = 10M; + Query OK, 0 rows affected, 1 warning (0.00 sec) + + mysql> SHOW WARNINGS; + +-------+------+------------------------------------------------------------------------------------------------+ + | Level | Code | Message | + +-------+------+------------------------------------------------------------------------------------------------+ + | Error | 1478 | `Table storage engine 'InnoDB' does not support the create option 'TABLESPACE or LOGFILE GROUP'' | + +-------+------+------------------------------------------------------------------------------------------------+ + 1 row in set (0.00 sec) + + mysql> DROP LOGFILE GROUP lg1 ENGINE = NDB; + `ERROR 1529 (HY000): Failed to drop LOGFILE GROUP' + + mysql> CREATE LOGFILE GROUP lg1 + -> ADD UNDOFILE 'undo.dat' INITIAL_SIZE = 10M + -> ENGINE = NDB; + Query OK, 0 rows affected (2.97 sec) + +The fact that the `CREATE LOGFILE GROUP' statement does not actually +return an error when a non-`NDB' storage engine is named, but rather +appears to succeed, is a known issue which we hope to address in a +future release of MySQL Cluster. REDO_BUFFER_SIZE, `NODEGROUP', `WAIT', and `COMMENT' are parsed but ignored, and so have no effect in MySQL 5.5. These options are intended @@ -86063,7 +86310,8 @@ cannot set the default for a date column to be the value of a function such as `NOW()' or `CURRENT_DATE'. The exception is that you can specify `CURRENT_TIMESTAMP' as the default for a *Note - `TIMESTAMP': datetime. column. See *Note timestamp::. + `TIMESTAMP': datetime. column. See *Note + timestamp-initialization::. If a column definition includes no explicit `DEFAULT' value, MySQL determines the default value as described in *Note @@ -89511,8 +89759,8 @@ IGNORE ... SELECT': insert-select. statements are flagged as unsafe for statement-based replication. With this change, such statements produce a warning in the log when using statement-based mode and are logged -using the row-based format when using `MIXED' mode. (Bug#11758262, -Bug#50439) +using the row-based format when using `MIXED' mode. (Bug #11758262, Bug +#50439) See also *Note replication-sbr-rbr::. @@ -92149,9 +92397,6 @@ USE INDEX (index1) WHERE ... IN BOOLEAN MODE ... ; -Index hints are accepted but ignored for *Note `UPDATE': update. -statements. -  File: manual.info, Node: union, Prev: index-hints, Up: select @@ -92357,7 +92602,7 @@ One restriction is that a subquery's outer statement must be one of: *Note `SELECT': select, *Note `INSERT': insert, *Note `UPDATE': update, -*Note `DELETE': delete, *Note `SET': set-option, or *Note `DO': do. +*Note `DELETE': delete, *Note `SET': set-statement, or *Note `DO': do. Another restriction is that currently you cannot modify a table and select from the same table in a subquery. This applies to statements such as *Note `DELETE': delete, *Note `INSERT': insert, *Note @@ -93187,8 +93432,8 @@ rows are updated determines which rows are ignored.) With this change, such statements produce a warning in the log when using statement-based mode and are logged using the row-based format when using `MIXED' mode. -(Bug#11758262, Bug#50439) See *Note replication-rbr-safe-unsafe::, for -more information. +(Bug #11758262, Bug #50439) See *Note replication-rbr-safe-unsafe::, +for more information. If you access a column from the table to be updated in an expression, *Note `UPDATE': update. uses the current value of the column. For @@ -94166,10 +94411,12 @@ `InnoDB' supports each of the transaction isolation levels described here using different locking strategies. The default level is -`REPEATABLE READ'. For additional information about `InnoDB' -record-level locks and how it uses them to execute various types of -statements, see *Note innodb-record-level-locks::, and *Note -innodb-locks-set::. +`REPEATABLE READ'. For full information about how these isolation +levels work with `InnoDB' transactions, see *Note +innodb-transaction-model::. In particular, for additional information +about `InnoDB' record-level locks and how it uses them to execute +various types of statements, see *Note innodb-record-level-locks:: and +*Note innodb-locks-set::. The following list describes how MySQL supports the different transaction levels: @@ -94830,6 +95077,16 @@ * `MASTER_USER' and `MASTER_PASSWORD' are the user name and password of the account to use for connecting to the master. + In MySQL 5.5.20 and later, `MASTER_USER' cannot be made empty; + setting `MASTER_USER = ''' or leaving it unset when setting a + value for for `MASTER_PASSWORD' causes an error (Bug #13427949). + + Currently, a password used for a replication slave account can + exceed 32 characters, but any characters in excess of this number + are truncated. This is not due to any limit imposed by the MySQL + Server but rather one that is specific to MySQL Replication. (See + Bug #43439, for more information.) + The text of a running *Note `CHANGE MASTER TO': change-master-to. statement, including values for `MASTER_USER' and `MASTER_PASSWORD', can be seen in the output of a concurrent *Note @@ -95054,7 +95311,7 @@ reset-slave. In MySQL 5.5.16 and later, you can use `RESET SLAVE ALL' to reset these -connection parameters (Bug#11809016). Connection parameters are also +connection parameters (Bug #11809016). Connection parameters are also reset if the slave *Note `mysqld': mysqld. is shut down. If the slave SQL thread was in the middle of replicating temporary @@ -95730,8 +95987,8 @@ declare-local-variable. statement, as described in *Note declare-local-variable::. - * Variables can be set directly with the *Note `SET': set-option. - statement. See *Note set-option::. + * Variables can be set directly with the *Note `SET': set-statement. + statement. See *Note set-statement::. * Results from queries can be retrieved into local variables using *Note `SELECT ... INTO VAR_LIST': select-into. or by opening a @@ -96440,7 +96697,7 @@ | SQLEXCEPTION The *Note `DECLARE ... HANDLER': declare-handler. statement specifies a -handler that may deal with one or more conditions. If one of these +handler that deals with one or more conditions. If one of these conditions occurs, the specified STATEMENT executes. STATEMENT can be a simple statement such as `SET VAR_NAME = VALUE', or a compound statement written using `BEGIN' and `END' (see *Note begin-end::). @@ -96490,13 +96747,13 @@ do not begin with `'00'', `'01'', or `'02''. If a condition occurs for which no handler has been declared, the -action taken depends on the class of the condition: +action taken depends on the condition class: * For `SQLEXCEPTION' conditions, the stored program terminates at the statement that raised the condition, as if there were an `EXIT' handler. If the program was called by another stored program, the - caller handles the condition using the handler selection rules - applied to its own handlers. + calling program handles the condition using the handler selection + rules applied to its own handlers. * For `SQLWARNING' conditions, the program continues executing, as if there were a `CONTINUE' handler. @@ -96505,8 +96762,8 @@ the action is `CONTINUE'. If it was raised by *Note `SIGNAL': signal. or *Note `RESIGNAL': resignal, the action is `EXIT'. -The following example associates a handler with SQLSTATE value -`'23000'', which occurs for a duplicate-key error: +The following example uses a handler for `SQLSTATE '23000'', which +occurs for a duplicate-key error: mysql> CREATE TABLE test.t (s1 INT, PRIMARY KEY (s1)); Query OK, 0 rows affected (0.00 sec) @@ -96563,7 +96820,7 @@ BEGIN DECLARE CONTINUE HANDLER FOR SQLWARNING BEGIN - ITERATE retry; # illegal + ITERATE retry; # illegal END; IF i < 0 THEN LEAVE retry; # legal @@ -96707,17 +96964,6 @@ * A condition area contains condition information items, such as the `SQLSTATE' value, `MYSQL_ERRNO', or `MESSAGE_TEXT'. -There is a stack of diagnostics areas. When a handler takes control, it -pushes the top of the stack, so there are two diagnostics areas during -handler execution: - - * The current diagnostics area, which starts as a copy of the last - diagnostics area, but will be overwritten by the first procedure - statement in the handler. - - * The last diagnostics area, which has the condition areas that were - set up before the handler took control. - The maximum number of condition areas in a diagnostics area is determined by the value of the `max_error_count' system variable. @@ -97108,9 +97354,7 @@ If the *Note `SIGNAL': signal. statement uses a named condition, the condition must be declared in some scope that applies to the *Note `SIGNAL': signal. statement, and must be defined using an `SQLSTATE' -value, not a MySQL error number. - -Example: +value, not a MySQL error number. Example: CREATE PROCEDURE p (divisor INT) BEGIN @@ -97180,9 +97424,10 @@ 13.6.7.9 Signal Condition Information Items ........................................... -The following table lists the names of condition information items that -can be set in a *Note `SIGNAL': signal. statement. All items are -standard SQL except `MYSQL_ERRNO', which is a MySQL extension. +The following table lists the names of diagnostics area condition +information items that can be set in a *Note `SIGNAL': signal. (or +*Note `RESIGNAL': resignal.) statement. All items are standard SQL +except `MYSQL_ERRNO', which is a MySQL extension. Item Name Definition --------- ---------- @@ -97206,7 +97451,7 @@ A *Note `SIGNAL': signal. statement always specifies an `SQLSTATE' value, either directly, or indirectly by referring to a named condition -defined with an `SQLSTATE' value. The first two letters of an +defined with an `SQLSTATE' value. The first two characters of an `SQLSTATE' value are its class, and the class determines the default value for the condition information items: @@ -97330,7 +97575,7 @@ * account-management-sql:: Account Management Statements * table-maintenance-sql:: Table Maintenance Statements * plugin-sql:: Plugin and User-Defined Function Statements -* set-option:: `SET' Syntax +* set-statement:: `SET' Syntax * show:: `SHOW' Syntax * other-administrative-sql:: Other Administrative Statements @@ -97666,8 +97911,8 @@ such as *Note `CHANGE MASTER TO': change-master-to, *Note `KILL': kill, *Note `PURGE BINARY LOGS': purge-binary-logs, *Note - `SET GLOBAL': set-option, and *Note `mysqladmin - debug': mysqladmin. command + `SET GLOBAL': set-statement, and *Note + `mysqladmin debug': mysqladmin. command `TRIGGER' Enable trigger operations `UPDATE' Enable use of *Note `UPDATE': update. `USAGE' Synonym for `no privileges' @@ -97732,7 +97977,7 @@ GRANT ALL ON mydb.* TO 'someuser'@'somehost'; GRANT SELECT, INSERT ON mydb.* TO 'someuser'@'somehost'; -If you use `ON *' syntax (rather than `ON *.*' and you have selected a +If you use `ON *' syntax (rather than `ON *.*') and you have selected a default database, privileges are assigned at the database level for the default database. An error occurs if there is no default database. @@ -98333,6 +98578,15 @@ To see which account the server authenticated you as, invoke the `CURRENT_USER()' function. +If you are using MySQL Replication, you should be aware that, +currently, a password used by a replication slave as part of a *Note +`CHANGE MASTER TO': change-master-to. statement is effectively limited +to 32 characters in length; the password can be longer, but any +characters in excess of this number are truncated. This is not due to +any limit imposed by the MySQL Server generally, but rather is an issue +that is specific to MySQL Replication. (See Bug #43439, for more +information.) + For more information about setting passwords, see *Note assigning-passwords:: @@ -98600,7 +98854,7 @@ In MySQL 5.5, *Note `CHECKSUM TABLE': checksum-table. returns 0 for partitioned tables unless you include the `EXTENDED' option. This issue -is resolved in MySQL 5.6. (Bug#11933226, Bug#60681) +is resolved in MySQL 5.6. (Bug #11933226, Bug #60681) The checksum value depends on the table row format. If the row format changes, the checksum also changes. For example, the storage format for @@ -98850,7 +99104,7 @@ repair-table-speed::.  -File: manual.info, Node: plugin-sql, Next: set-option, Prev: table-maintenance-sql, Up: sql-syntax-server-administration +File: manual.info, Node: plugin-sql, Next: set-statement, Prev: table-maintenance-sql, Up: sql-syntax-server-administration 13.7.3 Plugin and User-Defined Function Statements -------------------------------------------------- @@ -99088,7 +99342,7 @@ server-plugin-loading::.  -File: manual.info, Node: set-option, Next: show, Prev: plugin-sql, Up: sql-syntax-server-administration +File: manual.info, Node: set-statement, Next: show, Prev: plugin-sql, Up: sql-syntax-server-administration 13.7.4 `SET' Syntax ------------------- @@ -99100,13 +99354,13 @@ | [GLOBAL | SESSION] SYSTEM_VAR_NAME = EXPR | [@@global. | @@session. | @@]SYSTEM_VAR_NAME = EXPR -The *Note `SET': set-option. statement assigns values to different +The *Note `SET': set-statement. statement assigns values to different types of variables that affect the operation of the server or your client. Older versions of MySQL employed `SET OPTION', but this syntax -is deprecated in favor of *Note `SET': set-option. without `OPTION'. +is deprecated in favor of *Note `SET': set-statement. without `OPTION'. -This section describes use of *Note `SET': set-option. for assigning -values to variables. The *Note `SET': set-option. statement can be +This section describes use of *Note `SET': set-statement. for assigning +values to variables. The *Note `SET': set-statement. statement can be used to assign values to these types of variables: * System variables. See *Note server-system-variables::. System @@ -99118,13 +99372,13 @@ * Stored procedure and function parameters, and stored program local variables. See *Note stored-program-variables::. -Some variants of *Note `SET': set-option. syntax are used in other +Some variants of *Note `SET': set-statement. syntax are used in other contexts: * `SET CHARACTER SET' and `SET NAMES' assign values to character set and collation variables associated with the connection to the - server. `SET ONESHOT' is used for replication. These variants are - described later in this section. + server. `SET ONE_SHOT' is used for replication. These variants + are described later in this section. * *Note `SET PASSWORD': set-password. assigns account passwords. See *Note set-password::. @@ -99133,7 +99387,7 @@ isolation level for transaction processing. See *Note set-transaction::. -The following discussion shows the different *Note `SET': set-option. +The following discussion shows the different *Note `SET': set-statement. syntaxes that you can use to set variables. The examples use the `=' assignment operator, but you can also use the `:=' assignment operator for this purpose. @@ -99143,10 +99397,10 @@ SET @VAR_NAME = EXPR; Many system variables are dynamic and can be changed while the server -runs by using the *Note `SET': set-option. statement. For a list, see -*Note dynamic-system-variables::. To change a system variable with -*Note `SET': set-option, refer to it as VAR_NAME, optionally preceded -by a modifier: +runs by using the *Note `SET': set-statement. statement. For a list, +see *Note dynamic-system-variables::. To change a system variable with +*Note `SET': set-statement, refer to it as VAR_NAME, optionally +preceded by a modifier: * To indicate explicitly that a variable is a global variable, precede its name by `GLOBAL' or `@@global.'. The `SUPER' privilege @@ -99160,10 +99414,10 @@ * `LOCAL' and `@@local.' are synonyms for `SESSION' and `@@session.'. - * If no modifier is present, *Note `SET': set-option. changes the - session variable. + * If no modifier is present, *Note `SET': set-statement. changes + the session variable. -A *Note `SET': set-option. statement can contain multiple variable +A *Note `SET': set-statement. statement can contain multiple variable assignments, separated by commas. For example, the statement can assign values to a user-defined variable and a system variable. If you set several system variables, the most recent `GLOBAL' or `SESSION' @@ -99193,12 +99447,12 @@ variable only for clients that connect after the change. The global variable change does not affect the session variable for any client that is currently connected (not even that of the client that issues the -*Note `SET GLOBAL': set-option. statement). +*Note `SET GLOBAL': set-statement. statement). To prevent incorrect usage, MySQL produces an error if you use *Note -`SET GLOBAL': set-option. with a variable that can only be used with -*Note `SET SESSION': set-option. or if you do not specify `GLOBAL' (or -`@@global.') when setting a global variable. +`SET GLOBAL': set-statement. with a variable that can only be used with +*Note `SET SESSION': set-statement. or if you do not specify `GLOBAL' +(or `@@global.') when setting a global variable. To set a `SESSION' variable to the `GLOBAL' value or a `GLOBAL' value to the compiled-in MySQL default value, use the `DEFAULT' keyword. For @@ -99232,8 +99486,8 @@ Suffixes for specifying a value multiplier can be used when setting a variable at server startup, but not to set the value with *Note `SET': -set-option. at runtime. On the other hand, with *Note `SET': -set-option. you can assign a variable's value using an expression, +set-statement. at runtime. On the other hand, with *Note `SET': +set-statement. you can assign a variable's value using an expression, which is not true when you set a variable at server startup. For example, the first of the following lines is legal at server startup, but the second is not: @@ -99250,8 +99504,8 @@ To display system variables names and values, use the *Note `SHOW VARIABLES': show-variables. statement. (See *Note show-variables::.) -The following list describes *Note `SET': set-option. options that have -nonstandard syntax (that is, options that are not set with `NAME = +The following list describes *Note `SET': set-statement. options that +have nonstandard syntax (that is, options that are not set with `NAME = VALUE' syntax). * `CHARACTER SET {CHARSET_NAME | DEFAULT}' @@ -99297,7 +99551,7 @@ `ONE_SHOT' is intended for use only with the permitted set of variables. It changes the variables as requested, but only for the - next non-*Note `SET': set-option. statement. After that, the + next non-*Note `SET': set-statement. statement. After that, the server resets all character set, collation, and time zone-related system variables to their previous values. Example: @@ -99322,7 +99576,7 @@ +--------------------------+-------------------+  -File: manual.info, Node: show, Next: other-administrative-sql, Prev: set-option, Up: sql-syntax-server-administration +File: manual.info, Node: show, Next: other-administrative-sql, Prev: set-statement, Up: sql-syntax-server-administration 13.7.5 `SHOW' Syntax -------------------- @@ -99754,8 +100008,10 @@ SHOW CREATE EVENT EVENT_NAME This statement displays the *Note `CREATE EVENT': create-event. -statement needed to re-create a given event. For example (using the -same event `e_daily' defined and then altered in *Note show-events::): +statement needed to re-create a given event. It requires the `EVENT' +privilege for the database from which the event is to be shown. For +example (using the same event `e_daily' defined and then altered in +*Note show-events::): mysql> SHOW CREATE EVENT test.e_daily\G *************************** 1. row *************************** @@ -100407,6 +100663,10 @@ SHOW EVENTS [{FROM | IN} SCHEMA_NAME] [LIKE 'PATTERN' | WHERE EXPR] +This statement displays information about Event Manager events. It +requires the `EVENT' privilege for the database from which the events +are to be shown. + In its simplest form, *Note `SHOW EVENTS': show-events. lists all of the events in the current schema: @@ -100589,7 +100849,7 @@ but *Note `SHOW GRANTS': show-grants. will not display them. *Note `SHOW GRANTS': show-grants. requires the `SELECT' privilege for -the `mysql' database. +the `mysql' database, except to see the privileges for the current user.  File: manual.info, Node: show-index, Next: show-master-status, Prev: show-grants, Up: show @@ -101361,6 +101621,10 @@ * `Port': The port the slave server is listening on. + In MySQL 5.5.23 and later, a zero in this column means that the + slave port (`--report-port') was not set. Prior to MySQL 5.5.23, + 3306 was used as the default in such cases (Bug #13333431). + * `Master_id': The unique server ID of the master server that the slave server is replicating from. @@ -101640,26 +101904,29 @@ to the master. In other words, _this column is useful only for fast networks_. - This time difference computation works even though the master and - slave do not have identical clocks (the clock difference is - computed when the slave I/O thread starts, and assumed to remain - constant from then on). `Seconds_Behind_Master' is `NULL' - (`unknown') if the slave SQL thread is not running, or if the - slave I/O thread is not running or not connected to master. For - example, if the slave I/O thread is running but is not connected - to the master and is sleeping for the number of seconds set by the - `MASTER_CONNECT_RETRY' option of the *Note `CHANGE MASTER TO': - change-master-to. statement (default 60) before attempting to - reconnect, the value is `NULL'. This is because the slave cannot - know what the master is doing, and so cannot say reliably how late - it is. - - The value of this field is based on the timestamps stored in - events, which are preserved through replication. This means that - if a master M1 is itself a slave of M0, any event from M1's binary - log that originates from M0's binary log has M0's timestamp for - that event. This enables MySQL to replicate *Note `TIMESTAMP': - datetime. successfully. However, the problem for + This time difference computation works even if the master and + slave do not have identical clock times, provided that the + difference, computed when the slave I/O thread starts, remains + constant from then on. Any changes--including NTP updates--can + lead to clock skews that can make calculation of + `Seconds_Behind_Master' less reliable. + + This field is `NULL' (undefined or unknown) if the slave SQL + thread is not running, or if the slave I/O thread is not running + or not connected to master. For example, if the slave I/O thread + is running but is not connected to the master and is sleeping for + the number of seconds given by the *Note `CHANGE MASTER TO': + change-master-to. statement or `--master-connect-retry' option + (default 60) before reconnecting, the value is `NULL'. This is + because the slave cannot know what the master is doing, and so + cannot say reliably how late it is. + + The value of `Seconds_Behind_Master' is based on the timestamps + stored in events, which are preserved through replication. This + means that if a master M1 is itself a slave of M0, any event from + M1's binary log that originates from M0's binary log has M0's + timestamp for that event. This enables MySQL to replicate *Note + `TIMESTAMP': datetime. successfully. However, the problem for `Seconds_Behind_Master' is that if M1 also receives direct updates from clients, the `Seconds_Behind_Master' value randomly fluctuates because sometimes the last event from M1 originates @@ -102105,8 +102372,9 @@ If the default system variable values are unsuitable, you can set them using command options when *Note `mysqld': mysqld. starts, and most -can be changed at runtime with the *Note `SET': set-option. statement. -See *Note using-system-variables::, and *Note set-option::. +can be changed at runtime with the *Note `SET': set-statement. +statement. See *Note using-system-variables::, and *Note +set-statement::. Partial output is shown here. The list of names and values may be different for your server. *Note server-system-variables::, describes @@ -102993,7 +103261,11 @@ 13.8.2 `EXPLAIN' Syntax ----------------------- - EXPLAIN [EXTENDED | PARTITIONS] SELECT SELECT_OPTIONS + EXPLAIN [EXPLAIN_TYPE] SELECT SELECT_OPTIONS + + EXPLAIN_TYPE: + EXTENDED + | PARTITIONS Or: @@ -103696,34 +103968,19 @@ MySQL. Starting with MySQL 5.5, it is the default MySQL storage engine. Key advantages of InnoDB include: - * Its design follows the ACID - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_acid) - model, with transactions - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_transaction) - featuring commit - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_commit), - rollback - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_rollback), - and crash-recovery - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_crash_recovery) - capabilities to protect user data. - - * Row-level locking - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_locking) - and Oracle-style consistent reads - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_consistent_read) - increase multi-user concurrency and performance. + * Its design follows the ACID model, with transactions featuring + commit, rollback, and crash-recovery capabilities to protect user + data. + + * Row-level locking and Oracle-style consistent reads increase + multi-user concurrency and performance. * `InnoDB' tables arrange your data on disk to optimize common - queries based on primary keys - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_primary_key). - Each `InnoDB' table has a primary key index called the clustered - index - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_clustered_index) - that organizes the data to minimize I/O for primary key lookups. + queries based on primary keys. Each `InnoDB' table has a primary + key index called the clustered index that organizes the data to + minimize I/O for primary key lookups. * To maintain data integrity, `InnoDB' also supports `FOREIGN KEY' - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_foreign_key) referential-integrity constraints. * You can freely mix `InnoDB' tables with tables from other MySQL @@ -104067,7 +104324,9 @@ lay out InnoDB data files, and how much memory to allocate for the InnoDB storage engine. You record these choices either by recording them in a configuration file that MySQL reads at startup, or by -specifying them as command-line options in a startup script. +specifying them as command-line options in a startup script. The full +list of options, descriptions, and allowed parameter values is at *Note +innodb-parameters::. * Overview of InnoDB Tablespace and Log Files * @@ -104391,12 +104650,10 @@ * error-creating-innodb:: Troubleshooting `InnoDB' I/O Problems By default, all InnoDB tables and indexes are stored in the system -tablespace -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_system_tablespace). -As an alternative, you can store each `InnoDB' table and its indexes in -its own file. This feature is called `multiple tablespaces' because -each table that is created when this setting is in effect has its own -tablespace. +tablespace. As an alternative, you can store each `InnoDB' table and +its indexes in its own file. This feature is called `multiple +tablespaces' because each table that is created when this setting is in +effect has its own tablespace. Using multiple tablespaces is useful in a number of situations: @@ -104412,9 +104669,7 @@ * Restoring backups of single tables quickly without interrupting the use of other `InnoDB' tables. - * Using compressed row format - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_compressed_row_format) - to compress table data. + * Using compressed row format to compress table data. * Reclaiming disk space when truncating a table. @@ -104726,10 +104981,8 @@ files. *Note innodb-configuration:: explains how to use these options. Many other options, that you might not use initially, help to tune `InnoDB' performance characteristics based on machine capacity and your -database workload -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_workload). -The performance-related options are explained in *Note -innodb-tuning-troubleshooting:: and *Note innodb-performance::. +database workload. The performance-related options are explained in +*Note innodb-tuning-troubleshooting:: and *Note innodb-performance::. *`InnoDB' Option/Variable Reference* @@ -104831,7 +105084,7 @@ innodb_stats_methodYes Yes Yes Both Yes innodb_stats_on_metadataYes Yes Yes Global Yes innodb_stats_sample_pagesYes Yes Yes Global Yes -innodb-status-fileYes Yes Yes Global No +innodb-status-fileYes Yes innodb_strict_modeYes Yes Yes Both Yes innodb_support_xaYes Yes Yes Both Yes innodb_sync_spin_loopsYes Yes Yes Global Yes @@ -104858,26 +105111,19 @@ *Variable Name* `ignore-builtin-innodb' *Variable Scope* Global *Dynamic Variable* No + *Deprecated* 5.2.22 *Permitted Values * *Type* `boolean' - This option causes the server to behave as if the built-in - `InnoDB' is not present. It has these effects: - - * Other *Note `InnoDB': innodb-storage-engine. options - (including `--innodb' and `--skip-innodb') will not be - recognized and should not be used. - - * The server will not start if the default storage engine is - set to *Note `InnoDB': innodb-storage-engine. Use - `--default-storage-engine' to set the default to some other - engine if necessary. - - * *Note `InnoDB': innodb-storage-engine. will not appear in the - output of *Note `SHOW ENGINES': show-engines. + In MySQL 5.1, this option caused the server to behave as if the + built-in `InnoDB' were not present, which enabled `InnoDB Plugin' + to be used instead. In MySQL 5.5, `InnoDB' is the default storage + engine and `InnoDB Plugin' is not used, so this option has no + effect. As of MySQL 5.5.22, it is deprecated and its use results + in a warning. * `--innodb[=VALUE]' @@ -104897,9 +105143,6 @@ Options for innodb-status-file *Command-Line `--innodb-status-file' Format* *Option-File Format* `innodb-status-file' - *Variable Name* `innodb-status-file' - *Variable Scope* Global - *Dynamic Variable* No *Permitted Values * @@ -104948,10 +105191,10 @@ *Default* `ON' - `InnoDB Plugin' 1.0.4 and up uses a heuristic to determine when to - flush dirty pages in the buffer cache. This heuristic is designed - to avoid bursts of I/O activity and is used when - `innodb_adaptive_flushing' is enabled (which is the default). + Specifies whether to dynamically adjust the rate of flushing dirty + pages in the `InnoDB' buffer pool based on the workload. Adjusting + the flush rate dynamically is intended to avoid bursts of I/O + activity. This setting is enabled by default. * `innodb_adaptive_hash_index' @@ -105368,19 +105611,12 @@ The `InnoDB' shutdown mode. If the value is 0, `InnoDB' does a - slow shutdown - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_slow_shutdown), - a full purge - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_purge) - and an insert buffer merge before shutting down. If the value is 1 - (the default), `InnoDB' skips these operations at shutdown, a - process known as a fast shutdown - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_fast_shutdown). + slow shutdown, a full purge and an insert buffer merge before + shutting down. If the value is 1 (the default), `InnoDB' skips + these operations at shutdown, a process known as a fast shutdown. If the value is 2, `InnoDB' flushes its logs and shuts down cold, as if MySQL had crashed; no committed transactions are lost, but - the crash recovery - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_crash_recovery) - operation makes the next startup take longer. + the crash recovery operation makes the next startup take longer. The slow shutdown can take minutes, or even hours in extreme cases where substantial amounts of data are still buffered. Use the @@ -105426,10 +105662,8 @@ innodb-storage-engine. tables. Currently, `Antelope' and `Barracuda' are supported. This applies only for tables that have their own tablespace, so for it to have an effect, - `innodb_file_per_table' must be enabled. The Barracuda - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_barracuda) - file format is required for certain InnoDB features such as table - compression. + `innodb_file_per_table' must be enabled. The Barracuda file format + is required for certain InnoDB features such as table compression. * `innodb_file_format_check' @@ -105477,6 +105711,12 @@ higher, `InnoDB' sets the value of `innodb_file_format_check' to the file format tag, which is the value seen at runtime. + *Note*: + + Despite the default value sometimes being displayed as `ON' or + `OFF', always use the numeric values 1 or 0 to turn this option on + or off in your configuration file or command line. + * `innodb_file_format_max' Options for innodb_file_format_max *Version Introduced* 5.5.5 @@ -105530,15 +105770,13 @@ If `innodb_file_per_table' is disabled (the default), `InnoDB' - creates tables in the system tablespace - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_system_tablespace). - If `innodb_file_per_table' is enabled, `InnoDB' creates each new - table using its own `.ibd' file - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_ibd_file) - for storing data and indexes, rather than in the system - tablespace. See *Note innodb-multiple-tablespaces:: for information - about the features, such as `InnoDB' table compression, that only - work for tables stored in separate tablespaces. + creates tables in the system tablespace. If + `innodb_file_per_table' is enabled, `InnoDB' creates each new table + using its own `.ibd' file for storing data and indexes, rather + than in the system tablespace. See *Note + innodb-multiple-tablespaces:: for information about the features, + such as `InnoDB' table compression, that only work for tables + stored in separate tablespaces. * `innodb_flush_log_at_trx_commit' @@ -105578,9 +105816,8 @@ a crash. With a value of 0, any *Note `mysqld': mysqld. process crash can erase the last second of transactions. With a value of 2, only an operating system crash or a power outage can erase the - last second of transactions. `InnoDB''s crash recovery - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_crash_recovery) - works regardless of the value. + last second of transactions. `InnoDB''s crash recovery works + regardless of the value. For the greatest possible durability and consistency in a replication setup using `InnoDB' with transactions, use @@ -105717,20 +105954,17 @@ An upper limit on the I/O activity performed by the `InnoDB' - background tasks, such as flushing pages from the buffer pool - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_buffer_pool) - and merging data from the insert buffer - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_insert_buffer). - The default value is 200. For busy systems capable of higher I/O - rates, you can set a higher value at server startup, to help the - server handle the background maintenance work associated with a - high rate of row changes. For systems with individual 5400 RPM or - 7200 RPM drives, you might lower the value to the former default - of `100'. + background tasks, such as flushing pages from the buffer pool and + merging data from the insert buffer. The default value is 200. For + busy systems capable of higher I/O rates, you can set a higher + value at server startup, to help the server handle the background + maintenance work associated with a high rate of row changes. For + systems with individual 5400 RPM or 7200 RPM drives, you might + lower the value to the former default of `100'. This parameter should be set to approximately the number of I/O - operations that the system can perform per second. The Ideally, - keep this setting as low as practical, but not so low that these + operations that the system can perform per second. Ideally, keep + this setting as low as practical, but not so low that these background activities fall behind. If the value is too high, data is removed from the buffer pool and insert buffer too quickly to provide significant benefit from the caching. @@ -105781,24 +106015,18 @@ Enable this option to allow index key prefixes longer than 767 bytes (up to 3072 bytes), for `InnoDB' tables that use the - `DYNAMIC - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_dynamic_row_format)' - and `COMPRESSED - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_compressed_row_format)' - row formats. (Creating such tables also requires the option values - `innodb_file_format=barracuda' and `innodb_file_per_table=true'.) - See *Note innodb-restrictions:: for the relevant maximums - associated with index key prefixes under various settings. - - For tables using the `REDUNDANT - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_redundant_row_format)' - and `COMPACT - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_compact_row_format)' - row formats, this option does not affect the allowed key prefix - length. It does introduce a new error possibility. When this - setting is enabled, attempting to create an index prefix with a - key length greater than 3072 for a `REDUNDANT' or `COMPACT' table - causes an error `ER_INDEX_COLUMN_TOO_LONG' (1727). + `DYNAMIC' and `COMPRESSED' row formats. (Creating such tables also + requires the option values `innodb_file_format=barracuda' and + `innodb_file_per_table=true'.) See *Note innodb-restrictions:: + for the relevant maximums associated with index key prefixes under + various settings. + + For tables using the `REDUNDANT' and `COMPACT' row formats, this + option does not affect the allowed key prefix length. It does + introduce a new error possibility. When this setting is enabled, + attempting to create an index prefix with a key length greater + than 3072 for a `REDUNDANT' or `COMPACT' table causes an error + `ER_INDEX_COLUMN_TOO_LONG' (1727). * `innodb_lock_wait_timeout' @@ -105834,13 +106062,11 @@ option. See also *Note innodb-error-handling::. You might decrease this value for highly interactive applications - or OLTP - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_oltp) - systems, to display user feedback quickly or put the update into a - queue for processing later. You might increase this value for - long-running back-end operations, such as a transform step in a - data warehouse that waits for other large insert or update - operations to finish. + or OLTP systems, to display user feedback quickly or put the + update into a queue for processing later. You might increase this + value for long-running back-end operations, such as a transform + step in a data warehouse that waits for other large insert or + update operations to finish. `innodb_lock_wait_timeout' applies to `InnoDB' row locks only. A MySQL table lock does not happen inside `InnoDB' and this timeout @@ -106115,11 +106341,10 @@ name' - The directory path to the `InnoDB' redo log - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_redo_log) - files. If you do not specify any `InnoDB' log variables, the - default is to create two 5MB files named `ib_logfile0' and - `ib_logfile1' in the MySQL data directory. + The directory path to the `InnoDB' redo log files. If you do not + specify any `InnoDB' log variables, the default is to create two + 5MB files named `ib_logfile0' and `ib_logfile1' in the MySQL data + directory. * `innodb_max_dirty_pages_pct' @@ -106178,9 +106403,7 @@ ((PURGE_LAG/`innodb_max_purge_lag')x10)-5 milliseconds. The delay is computed in the beginning of a purge batch, every ten seconds. The operations are not delayed if purge cannot run because of an - old consistent read - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_consistent_read) - view that could see the rows to be purged. + old consistent read view that could see the rows to be purged. A typical setting for a problematic workload might be 1 million, assuming that transactions are small, only 100 bytes in size, and @@ -106270,12 +106493,10 @@ 4294967295' - This variable is relevant only if you use multiple tablespaces - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_tablespace) - in `InnoDB'. It specifies the maximum number of `.ibd' files - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_ibd_file) - that `InnoDB' can keep open at one time. The minimum value is 10. - The default value is 300. + This variable is relevant only if you use multiple tablespaces in + `InnoDB'. It specifies the maximum number of `.ibd' files that + `InnoDB' can keep open at one time. The minimum value is 10. The + default value is 300. The file descriptors used for `.ibd' files are for `InnoDB' only. They are independent of those specified by the @@ -106452,11 +106673,10 @@ 128' - Defines how many of the rollback segments - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_rollback_segment) - in the system tablespace that InnoDB uses within a transaction. - You might reduce this value from its default of 128 if a smaller - number of rollback segments performs better for your workload. + Defines how many of the rollback segments in the system tablespace + that InnoDB uses within a transaction. You might reduce this value + from its default of 128 if a smaller number of rollback segments + performs better for your workload. * `innodb_spin_wait_delay' @@ -106761,11 +106981,19 @@ *Default* `ON' - If a problem with the asynchronous I/O subsystem in the OS - prevents `InnoDB' from starting, start the server with this - variable disabled (use `innodb_use_native_aio=0' in the option - file). This variable applies to Linux systems only, and cannot be - changed while the server is running. + Specifies whether to use the Linux asynchronous I/O subsystem. + This variable applies to Linux systems only, and cannot be changed + while the server is running. + + Normally, you do not need to touch this option, because it is + enabled by default. If a problem with the asynchronous I/O + subsystem in the OS prevents `InnoDB' from starting, start the + server with this variable disabled (use `innodb_use_native_aio=0' + in the option file). This option could also be turned off + automatically during startup, if `InnoDB' detects a potential + problem such as a combination of `tmpdir' location, `tmpfs' + filesystem, and Linux kernel that that does not support AIO on + `tmpfs'. This variable was added in MySQL 5.5.4. @@ -106906,17 +107134,15 @@ * Transactions in SQL * By default, each client that connects to the MySQL server begins with -autocommit -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_autocommit) -mode enabled, which automatically commits every SQL statement as you -execute it. To use multiple-statement transactions, you can switch -autocommit off with the SQL statement `SET autocommit = 0' and end each -transaction with either *Note `COMMIT': commit. or *Note `ROLLBACK': -commit. If you want to leave autocommit on, you can begin your -transactions within *Note `START TRANSACTION': commit. and end them with -*Note `COMMIT': commit. or *Note `ROLLBACK': commit. The following -example shows two transactions. The first is committed; the second is -rolled back. +autocommit mode enabled, which automatically commits every SQL +statement as you execute it. To use multiple-statement transactions, +you can switch autocommit off with the SQL statement `SET autocommit = +0' and end each transaction with either *Note `COMMIT': commit. or +*Note `ROLLBACK': commit. If you want to leave autocommit on, you can +begin your transactions within *Note `START TRANSACTION': commit. and +end them with *Note `COMMIT': commit. or *Note `ROLLBACK': commit. The +following example shows two transactions. The first is committed; the +second is rolled back. shell> mysql test @@ -106991,10 +107217,8 @@ SET unique_checks=1; For big tables, this saves disk I/O because `InnoDB' can use its insert -buffer -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_insert_buffer) -to write secondary index records as a batch. Be certain that the data -contains no duplicate keys. `unique_checks' permits but does not +buffer to write secondary index records as a batch. Be certain that the +data contains no duplicate keys. `unique_checks' permits but does not require storage engines to ignore duplicate keys. To get better control over the insertion process, you might insert big @@ -108080,16 +108304,11 @@ The key to safe database management is making regular backups. Depending on your data volume, number of MySQL servers, and database workload, you can use these techniques, alone or in combination: hot -backup -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_hot_backup) -with MySQL Enterprise Backup; cold backup -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_cold_backup) -by copying files while the MySQL server is shut down; physical backup -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_physical_backup) -for fast operation (especially for restore); logical backup -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_logical_backup) -with *Note `mysqldump': mysqldump. for smaller data volumes or to record -the structure of schema objects. +backup with MySQL Enterprise Backup; cold backup by copying files while +the MySQL server is shut down; physical backup for fast operation +(especially for restore); logical backup with *Note `mysqldump': +mysqldump. for smaller data volumes or to record the structure of +schema objects. * Hot Backups * @@ -108114,9 +108333,8 @@ innodb-storage-engine. to manage its tables. Use the following procedure: - 1. Do a slow shutdown - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_slow_shutdown) - of the MySQL server and make sure that it stops without errors. + 1. Do a slow shutdown of the MySQL server and make sure that it stops + without errors. 2. Copy all `InnoDB' data files (`ibdata' files and `.ibd' files) into a safe place. @@ -108323,16 +108541,15 @@ ............................. Making your log files very large may reduce disk I/O during -checkpointing -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_checkpoint). -It often makes sense to set the total size of the log files as large as -the buffer pool or even larger. Although in the past large log files -could make crash recovery take excessive time, starting with MySQL 5.5, -performance enhancements to crash recovery make it possible to use -large log files with fast startup after a crash. (Strictly speaking, -this performance improvement is available for MySQL 5.1 with the InnoDB -Plugin 1.0.7 and higher. It is with MySQL 5.5 and InnoDB 1.1 that this -improvement is available in the default InnoDB storage engine.) +checkpointing. It often makes sense to set the total size of the log +files as large as the buffer pool or even larger. Although in the past +large log files could make crash recovery take excessive time, starting +with MySQL 5.5, performance enhancements to crash recovery make it +possible to use large log files with fast startup after a crash. +(Strictly speaking, this performance improvement is available for MySQL +5.1 with the InnoDB Plugin 1.0.7 and higher. It is with MySQL 5.5 and +InnoDB 1.1 that this improvement is available in the default InnoDB +storage engine.) * How Checkpoint Processing Works * @@ -108413,11 +108630,8 @@ To implement a large-scale, busy, or highly reliable database application, to port substantial code from a different database system, or to push MySQL performance to the limits of the laws of physics, you -must understand the notions of transactions -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_transaction) -and locking -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_locking) as -they relate to the InnoDB storage engine. +must understand the notions of transactions and locking as they relate +to the InnoDB storage engine. In the `InnoDB' transaction model, the goal is to combine the best properties of a multi-versioning database with traditional two-phase @@ -108649,7 +108863,8 @@ updates are treated similarly. You can advance your timepoint by committing your transaction and then -doing another *Note `SELECT': select. +doing another *Note `SELECT': select. or *Note `START TRANSACTION WITH +CONSISTENT SNAPSHOT': commit. This is called _multi-versioned concurrency control_. @@ -108704,16 +108919,22 @@ transaction, rows in the new table are not visible because those rows did not exist when the transaction's snapshot was taken. -`InnoDB' uses a consistent read for select in clauses like *Note -`INSERT INTO ... SELECT': insert, *Note `UPDATE ... (SELECT)': update, -and *Note `CREATE TABLE ... SELECT': create-table. that do not specify -`FOR UPDATE' or `LOCK IN SHARE MODE' if the -`innodb_locks_unsafe_for_binlog' option is set and the isolation level -of the transaction is not set to `SERIALIZABLE'. Thus, no locks are set -on rows read from the selected table. Otherwise, `InnoDB' uses stronger -locks and the *Note `SELECT': select. part acts like `READ COMMITTED', -where each consistent read, even within the same transaction, sets and -reads its own fresh snapshot. +The type of read varies for selects in clauses like *Note `INSERT INTO +... SELECT': insert, *Note `UPDATE ... (SELECT)': update, and *Note +`CREATE TABLE ... SELECT': create-table. that do not specify `FOR +UPDATE' or `LOCK IN SHARE MODE': + + * By default, `InnoDB' uses stronger locks and the *Note `SELECT': + select. part acts like `READ COMMITTED', where each consistent + read, even within the same transaction, sets and reads its own + fresh snapshot. + + * To use a consistent read in such cases, enable the + `innodb_locks_unsafe_for_binlog' option and set the isolation + level of the transaction to `READ UNCOMMITTED', `READ COMMITTED', + or `REPEATABLE READ' (that is, anything other than + `SERIALIZABLE'). In this case, no locks are set on rows read from + the selected table.  File: manual.info, Node: innodb-locking-reads, Next: innodb-record-level-locks, Prev: innodb-consistent-read, Up: innodb-transaction-model @@ -109164,8 +109385,10 @@ *Note `SELECT': select. with shared next-key locks or as a consistent read, as for *Note `INSERT ... SELECT': insert-select. - For `REPLACE INTO T SELECT ... FROM S WHERE ...', `InnoDB' sets - shared next-key locks on rows from `S'. + When a `SELECT' is used in the constructs `REPLACE INTO t SELECT + ... FROM s WHERE ...' or `UPDATE t ... WHERE col IN (SELECT ... + FROM s ...)', `InnoDB' sets shared next-key locks on rows from + table `s'. * While initializing a previously specified `AUTO_INCREMENT' column on a table, `InnoDB' sets an exclusive lock on the end of the @@ -109334,12 +109557,11 @@ `InnoDB' is a multi-versioned storage engine: it keeps information about old versions of changed rows, to support transactional features such as concurrency and rollback. This information is stored in the -tablespace in a data structure called a rollback segment -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_rollback_segment) -(after an analogous data structure in Oracle). `InnoDB' uses the -information in the rollback segment to perform the undo operations -needed in a transaction rollback. It also uses the information to build -earlier versions of a row for a consistent read. +tablespace in a data structure called a rollback segment (after an +analogous data structure in Oracle). `InnoDB' uses the information in +the rollback segment to perform the undo operations needed in a +transaction rollback. It also uses the information to build earlier +versions of a row for a consistent read. * Internal Details of Multi-Versioning * @@ -109381,10 +109603,9 @@ removed from the database immediately when you delete it with an SQL statement. `InnoDB' only physically removes the corresponding row and its index records when it discards the update undo log record written -for the deletion. This removal operation is called a purge -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_purge), and -it is quite fast, usually taking the same order of time as the SQL -statement that did the deletion. +for the deletion. This removal operation is called a purge, and it is +quite fast, usually taking the same order of time as the SQL statement +that did the deletion. If you insert and delete rows in smallish batches at about the same rate in the table, the purge thread can start to lag behind and the @@ -109426,20 +109647,17 @@ ......................................... Every `InnoDB' table has a special index called the clustered index -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_clustered_index) where the data for the rows is stored. Typically, the clustered index -is synonymous with the primary key -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_primary_key). -To get the best performance from queries, inserts, and other database -operations, you must understand how InnoDB uses the clustered index to -optimize the most common lookup and DML operations for each table. +is synonymous with the primary key. To get the best performance from +queries, inserts, and other database operations, you must understand +how InnoDB uses the clustered index to optimize the most common lookup +and DML operations for each table. * If you define a `PRIMARY KEY' on your table, `InnoDB' uses it as the clustered index. Define a primary key for each table that you create. If there is no logical unique and non-null column or set - of columns, add a new auto-increment - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_auto_increment) - column, whose values are filled in automatically. + of columns, add a new auto-increment column, whose values are + filled in automatically. * If you do not define a `PRIMARY KEY' for your table, MySQL locates the first `UNIQUE' index where all the key columns are `NOT NULL' @@ -109465,12 +109683,10 @@ * How Secondary Indexes Relate to the Clustered Index * All indexes other than the clustered index are known as secondary -indexes -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_secondary_index). -In `InnoDB', each record in a secondary index contains the primary key -columns for the row, as well as the columns specified for the secondary -index. `InnoDB' uses this primary key value to search for the row in -the clustered index. +indexes. In `InnoDB', each record in a secondary index contains the +primary key columns for the row, as well as the columns specified for +the secondary index. `InnoDB' uses this primary key value to search +for the row in the clustered index. If the primary key is long, the secondary indexes use more space, so it is advantageous to have a short primary key. @@ -109527,14 +109743,11 @@ page is in the buffer pool. If that is the case, `InnoDB' applies the change directly to the index page. If the index page is not found in the buffer pool, `InnoDB' records the change in a special structure -known as the insert buffer -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_insert_buffer). -The insert buffer is kept small so that it fits entirely in the buffer -pool, and changes can be applied very quickly. This process is known as -change buffering -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_change_buffering). -(Formerly, it applied only to inserts and was called insert buffering. -The data structure is still called the insert buffer.) +known as the insert buffer. The insert buffer is kept small so that it +fits entirely in the buffer pool, and changes can be applied very +quickly. This process is known as change buffering. (Formerly, it +applied only to inserts and was called insert buffering. The data +structure is still called the insert buffer.) * Disk I/O for Flushing the Insert Buffer * @@ -109561,11 +109774,10 @@ 14.3.11.4 Adaptive Hash Indexes ............................... -The feature known as the adaptive hash index -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_adaptive_hash_index) -lets `InnoDB' perform more like an in-memory database on systems with -appropriate combinations of workload and ample memory for the buffer -pool, without sacrificing any transactional features or reliability. +The feature known as the adaptive hash index lets `InnoDB' perform more +like an in-memory database on systems with appropriate combinations of +workload and ample memory for the buffer pool, without sacrificing any +transactional features or reliability. If a table fits almost entirely in main memory, a hash index can speed up queries by enabling direct lookup of any element, turning the index @@ -109748,11 +109960,9 @@ * Doublewrite Buffer * `InnoDB' uses a novel file flush technique involving a structure called -the doublewrite buffer -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_doublewrite_buffer). -It adds safety to recovery following an operating system crash or a -power outage, and improves performance on most varieties of Unix by -reducing the need for `fsync()' operations. +the doublewrite buffer. It adds safety to recovery following an +operating system crash or a power outage, and improves performance on +most varieties of Unix by reducing the need for `fsync()' operations. Before writing pages to a data file, `InnoDB' first writes them to a contiguous tablespace area called the doublewrite buffer. Only after @@ -109769,12 +109979,11 @@ ............................... The data files that you define in the configuration file form the -`InnoDB' system tablespace -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_system_tablespace). -The files are logically concatenated to form the tablespace. There is -no striping in use. Currently, you cannot define where within the -tablespace your tables are allocated. However, in a newly created -tablespace, `InnoDB' allocates space starting from the first data file. +`InnoDB' system tablespace. The files are logically concatenated to +form the tablespace. There is no striping in use. Currently, you +cannot define where within the tablespace your tables are allocated. +However, in a newly created tablespace, `InnoDB' allocates space +starting from the first data file. To avoid the issues that come with storing all tables and indexes inside the system tablespace, you can turn on the @@ -110319,7 +110528,7 @@ LATEST FOREIGN KEY ERROR ------------------------ 030709 13:00:59 Transaction: - TRANSACTION 0 290328284, ACTIVE 0 sec, process no 3195, OS thread id 34831 + TRANSACTION 0 290328284, ACTIVE 0 sec, process no 3195 inserting 15 lock struct(s), heap size 2496, undo log entries 9 MySQL thread id 25, query id 4668733 localhost heikki update @@ -110343,7 +110552,7 @@ ------------------------ 030709 12:59:58 *** (1) TRANSACTION: - TRANSACTION 0 290252780, ACTIVE 1 sec, process no 3185, OS thread id 30733 + TRANSACTION 0 290252780, ACTIVE 1 sec, process no 3185 inserting LOCK WAIT 3 lock struct(s), heap size 320, undo log entries 146 MySQL thread id 21, query id 4553379 localhost heikki update @@ -110356,7 +110565,7 @@ Record lock, heap no 324 RECORD: info bits 0 0: len 7; hex 61613335383138; asc aa35818;; 1: *** (2) TRANSACTION: - TRANSACTION 0 290251546, ACTIVE 2 sec, process no 3190, OS thread id 32782 + TRANSACTION 0 290251546, ACTIVE 2 sec, process no 3190 inserting 130 lock struct(s), heap size 11584, undo log entries 437 MySQL thread id 23, query id 4554396 localhost heikki update @@ -110382,22 +110591,22 @@ History list length 20 Total number of lock structs in row lock hash table 70 LIST OF TRANSACTIONS FOR EACH SESSION: - ---TRANSACTION 0 0, not started, process no 3491, OS thread id 42002 + ---TRANSACTION 0 0, not started, process no 3491 MySQL thread id 32, query id 4668737 localhost heikki show innodb status - ---TRANSACTION 0 290328384, ACTIVE 0 sec, process no 3205, OS thread id + ---TRANSACTION 0 290328384, ACTIVE 0 sec, process no 3205 38929 inserting 1 lock struct(s), heap size 320 MySQL thread id 29, query id 4668736 localhost heikki update insert into speedc values (1519229,1, 'hgjhjgghggjgjgjgjgjggjgjgjgjgjgggjgjg jlhhgghggggghhjhghgggggghjhghghghghghhhhghghghjhhjghjghjkghjghjghjghjfhjfh - ---TRANSACTION 0 290328383, ACTIVE 0 sec, process no 3180, OS thread id + ---TRANSACTION 0 290328383, ACTIVE 0 sec, process no 3180 28684 committing 1 lock struct(s), heap size 320, undo log entries 1 MySQL thread id 19, query id 4668734 localhost heikki update insert into speedcm values (1603393,1, 'hgjhjgghggjgjgjgjgjggjgjgjgjgjgggjgj gjlhhgghggggghhjhghgggggghjhghghghghghhhhghghghjhhjghjghjkghjghjghjghjfhjf - ---TRANSACTION 0 290328327, ACTIVE 0 sec, process no 3200, OS thread id + ---TRANSACTION 0 290328327, ACTIVE 0 sec, process no 3200 36880 starting index read LOCK WAIT 2 lock struct(s), heap size 320 MySQL thread id 27, query id 4668644 localhost heikki Searching rows for @@ -110409,19 +110618,19 @@ Record lock, heap no 1 RECORD: info bits 0 0: len 9; hex 73757072656d756d00; asc supremum.;; ------------------ - ---TRANSACTION 0 290328284, ACTIVE 0 sec, process no 3195, OS thread id + ---TRANSACTION 0 290328284, ACTIVE 0 sec, process no 3195 34831 rollback of SQL statement ROLLING BACK 14 lock struct(s), heap size 2496, undo log entries 9 MySQL thread id 25, query id 4668733 localhost heikki update insert into ibtest11a (D, B, C) values (5, 'khDk' ,'khDk') - ---TRANSACTION 0 290327208, ACTIVE 1 sec, process no 3190, OS thread id + ---TRANSACTION 0 290327208, ACTIVE 1 sec, process no 3190 32782 58 lock struct(s), heap size 5504, undo log entries 159 MySQL thread id 23, query id 4668732 localhost heikki update REPLACE INTO alex1 VALUES(86, 46, 538,'aa95666','bb','c95666','d9486t', 'e200498f','g86814','h538',date_format('2001-04-03 12:54:22','%Y-%m-%d %H:%i'), - ---TRANSACTION 0 290323325, ACTIVE 3 sec, process no 3185, OS thread id + ---TRANSACTION 0 290323325, ACTIVE 3 sec, process no 3185 30733 inserting 4 lock struct(s), heap size 1024, undo log entries 165 MySQL thread id 21, query id 4668735 localhost heikki update @@ -110953,11 +111162,9 @@ ............................................................. Information about table definitions is stored both in the `.frm' files, -and in the InnoDB data dictionary -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_data_dictionary). -If you move `.frm' files around, or if the server crashes in the middle -of a data dictionary operation, these sources of information can become -inconsistent. +and in the InnoDB data dictionary. If you move `.frm' files around, or +if the server crashes in the middle of a data dictionary operation, +these sources of information can become inconsistent. * Problem with CREATE TABLE * @@ -111067,17 +111274,12 @@ * By default, an index key for a single-column index can be up to 767 bytes. The same length limit applies to any index key prefix. See *Note create-index::. For example, you might hit this limit - with a column prefix - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_column_prefix) - index of more than 255 characters on a `TEXT' or `VARCHAR' column, - assuming a UTF-8 character set and the maximum of 3 bytes for each - character. When the `innodb_large_prefix' configuration option is - enabled, this length limit is raised to 3072 bytes, for `InnoDB' - tables that use the `DYNAMIC - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_dynamic_row_format)' - and `COMPRESSED - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_compressed_row_format)' - row formats. + with a column prefix index of more than 255 characters on a `TEXT' + or `VARCHAR' column, assuming a UTF-8 character set and the + maximum of 3 bytes for each character. When the + `innodb_large_prefix' configuration option is enabled, this length + limit is raised to 3072 bytes, for `InnoDB' tables that use the + `DYNAMIC' and `COMPRESSED' row formats. When you attempt to specify an index prefix length longer than allowed, the length is silently reduced to the maximum length. @@ -111129,10 +111331,7 @@ is four billion database pages (64TB). This is also the maximum size for a table. - * The default database page size in `InnoDB' is 16KB. By recompiling - the code, you can set it to values ranging from 8KB to 64KB. You - must update the values of `UNIV_PAGE_SIZE' and - `UNIV_PAGE_SIZE_SHIFT' in the `univ.i' source file. + * The default database page size in `InnoDB' is 16KB. *Note*: @@ -111145,7 +111344,9 @@ A version of *Note `InnoDB': innodb-storage-engine. built for one page size cannot use data files or log files from a version built - for a different page size. + for a different page size. This limitation could affect restore or + downgrade operations using data from MySQL 5.6, which does support + page sizes other than 16KB. * Index Types * @@ -111368,8 +111569,7 @@ opening tables that are in an unknown format. However, the system tablespace may contain references to new-format tables that confuse the built-in InnoDB in MySQL 5.1 and earlier. These references are cleared -in a slow shutdown -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_slow_shutdown). +in a slow shutdown. With previous versions of InnoDB, no error would be returned until you try to access a table that is in a format `too new' for the software. @@ -111511,10 +111711,9 @@ * innodb-create-index-limitations:: Limitations of Fast Index Creation In MySQL 5.5 and higher, or in MySQL 5.1 with the InnoDB Plugin, -creating and dropping secondary indexes -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_secondary_index) -does not copy the contents of the entire table, making this operation -much more efficient than with prior releases. +creating and dropping secondary indexes does not copy the contents of +the entire table, making this operation much more efficient than with +prior releases.  File: manual.info, Node: innodb-create-index-overview, Next: innodb-create-index-examples, Prev: innodb-create-index, Up: innodb-create-index @@ -111523,26 +111722,22 @@ ........................................ With MySQL 5.5 and higher, or MySQL 5.1 with the InnoDB Plugin, -creating and dropping secondary indexes -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_secondary_index) -for InnoDB tables is much faster than before. Historically, adding or -dropping an index on a table with existing data could be very slow. The -*Note `CREATE INDEX': create-index. and *Note `DROP INDEX': drop-index. -statements worked by creating a new, empty table defined with the -requested set of indexes, then copying the existing rows to the new -table one-by-one, updating the indexes as the rows are inserted. After -all rows from the original table were copied, the old table was dropped -and the copy was renamed with the name of the original table. +creating and dropping secondary indexes for InnoDB tables is much +faster than before. Historically, adding or dropping an index on a +table with existing data could be very slow. The *Note `CREATE INDEX': +create-index. and *Note `DROP INDEX': drop-index. statements worked by +creating a new, empty table defined with the requested set of indexes, +then copying the existing rows to the new table one-by-one, updating +the indexes as the rows are inserted. After all rows from the original +table were copied, the old table was dropped and the copy was renamed +with the name of the original table. The performance speedup for fast index creation applies to secondary indexes, not to the primary key index. The rows of an InnoDB table are -stored in a clustered index -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_clustered_index) -organized based on the primary key -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_primary_key), -forming what some database systems call an `index-organized table'. -Because the table structure is so closely tied to the primary key, -redefining the primary key still requires copying the data. +stored in a clustered index organized based on the primary key, forming +what some database systems call an `index-organized table'. Because the +table structure is so closely tied to the primary key, redefining the +primary key still requires copying the data. This new mechanism also means that you can generally speed the overall process of creating and loading an indexed table by creating the table @@ -111700,12 +111895,8 @@ .......................................................... Although no data is lost if the server crashes while an *Note `ALTER -TABLE': alter-table. statement is executing, the crash recovery -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_crash_recovery) -process is different for clustered indexes -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_clustered_index) -and secondary indexes -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_secondary_index). +TABLE': alter-table. statement is executing, the crash recovery process +is different for clustered indexes and secondary indexes. If the server crashes while creating an InnoDB secondary index, upon recovery, MySQL drops any partially created indexes. You must re-run @@ -111822,7 +112013,6 @@ Because processors and cache memories have increased in speed more than disk storage devices, many workloads are I/O-bound. Data compression -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_compression) enables smaller database size, reduced I/O, and improved throughput, at the small cost of increased CPU utilization. Compression is especially valuable for read-intensive applications, on systems with enough RAM to @@ -111831,8 +112021,7 @@ An InnoDB table created with `ROW_FORMAT=COMPRESSED' can use a smaller page size on disk than the usual 16KB default. Smaller pages require less I/O to read from and write to disk, which is especially valuable -for SSD (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_ssd) -devices. +for SSD devices. The page size is specified through the `KEY_BLOCK_SIZE' parameter. The different page size means the table must be in its own `.ibd' file @@ -111855,10 +112044,8 @@ updates to the uncompressed page are also re-written back to the equivalent compressed page. You might need to size your buffer pool to accommodate the additional data of both compressed and uncompressed -pages, although the uncompressed pages are evicted -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_eviction) -from the buffer pool when space is needed, and then uncompressed again -on the next access. +pages, although the uncompressed pages are evicted from the buffer pool +when space is needed, and then uncompressed again on the next access.  File: manual.info, Node: innodb-compression-usage, Next: innodb-compression-tuning, Prev: innodb-compression-background, Up: innodb-compression @@ -111919,9 +112106,8 @@ Compressed tables are stored in a format that previous versions of InnoDB cannot process. To preserve downward compatibility of database -files, compression can be specified only when the Barracuda -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_barracuda) -data file format is enabled using the configuration parameter +files, compression can be specified only when the Barracuda data file +format is enabled using the configuration parameter `innodb_file_format'. Table compression is also not available for the InnoDB system @@ -111930,13 +112116,12 @@ information, and therefore is never compressed. Thus, compression applies only to tables (and indexes) stored in their own tablespaces. -To use compression, enable the file-per-table -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_file_per_table) -mode using the configuration parameter `innodb_file_per_table' and -enable the Barracuda disk file format using the parameter -`innodb_file_format'. If necessary, you can set these parameters in the -MySQL option file `my.cnf' or `my.ini', or with the `SET' statement -without shutting down the MySQL server. +To use compression, enable the file-per-table mode using the +configuration parameter `innodb_file_per_table' and enable the +Barracuda disk file format using the parameter `innodb_file_format'. If +necessary, you can set these parameters in the MySQL option file +`my.cnf' or `my.ini', or with the `SET' statement without shutting down +the MySQL server. Specifying `ROW_FORMAT=COMPRESSED' or `KEY_BLOCK_SIZE' in *Note `CREATE TABLE': create-table. or *Note `ALTER TABLE': alter-table. statements @@ -112117,10 +112302,9 @@ number of character string columns and where the data is read far more often than it is written. Because there are no guaranteed ways to predict whether or not compression benefits a particular situation, -always test with a specific workload -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_workload) -and data set running on a representative configuration. Consider the -following factors when deciding which tables to compress. +always test with a specific workload and data set running on a +representative configuration. Consider the following factors when +deciding which tables to compress. * Data Characteristics and Compression * @@ -112375,12 +112559,10 @@ * InnoDB Data Storage and Compression * All user data in InnoDB is stored in pages comprising a B-tree index -(the clustered index -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_clustered_index)). -In some other database systems, this type of index is called an -`index-organized table'. Each row in the index node contains the values -of the (user-specified or system-generated) primary key and all the -other columns of the table. +(the clustered index). In some other database systems, this type of +index is called an `index-organized table'. Each row in the index node +contains the values of the (user-specified or system-generated) primary +key and all the other columns of the table. Secondary indexes in InnoDB are also B-trees, containing pairs of values: the index key and a pointer to a row in the clustered index. @@ -112444,9 +112626,8 @@ In a clustered index, `BLOB', `VARCHAR' and `TEXT' columns that are not part of the primary key may be stored on separately allocated -(`overflow') pages. We call these off-page columns -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_off_page_column) -whose values are stored on singly-linked lists of overflow pages. +(`overflow') pages. We call these off-page columns whose values are +stored on singly-linked lists of overflow pages. For tables created in `ROW_FORMAT=DYNAMIC' or `ROW_FORMAT=COMPRESSED', the values of `BLOB', `TEXT' or `VARCHAR' columns may be stored fully @@ -112567,32 +112748,26 @@ innodb-compression::), and long variable-length columns stored off-page (see *Note innodb-row-format::) require data file formats that are not compatible with prior versions of InnoDB. These features both require -use of the new Barracuda -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_barracuda) -file format. +use of the new Barracuda file format. *Note*: -All other new features are compatible with the original Antelope -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_antelope) -file format and do not require the Barracuda file format. +All other new features are compatible with the original Antelope file +format and do not require the Barracuda file format. This section discusses how to specify the file format for new InnoDB tables, compatibility of different file formats between MySQL releases, -* Named File Formats * +Named File Formats InnoDB 1.1 has the idea of a named file format and a configuration parameter to enable the use of features that require use of that -format. The new file format is the Barracuda -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_barracuda) -format, and the original InnoDB file format is called Antelope -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_antelope). -Compressed tables and the new row format that stores long columns -`off-page' require the use of the Barracuda file format or newer. -Future versions of InnoDB may introduce a series of file formats, *Note -identified with the names of animals: innodb-file-format-future, in -ascending alphabetic order. +format. The new file format is the Barracuda format, and the original +InnoDB file format is called Antelope. Compressed tables and the new +row format that stores long columns `off-page' require the use of the +Barracuda file format or newer. Future versions of InnoDB may introduce +a series of file formats, *Note identified with the names of animals: +innodb-file-format-future, in ascending alphabetic order.  File: manual.info, Node: innodb-file-format-enabling, Next: innodb-file-format-compatibility, Prev: innodb-file-format, Up: innodb-file-format @@ -112603,15 +112778,12 @@ The configuration parameter `innodb_file_format' controls whether such statements as *Note `CREATE TABLE': create-table. and *Note `ALTER TABLE': alter-table. can be used to create tables that depend on -support for the Barracuda -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_barracuda) -file format. +support for the Barracuda file format. Although Oracle recommends using the Barracuda format for new tables -where practical, in MySQL 5.5 the default file format is still Antelope -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_antelope), -for maximum compatibility with replication configurations containing -different MySQL releases. +where practical, in MySQL 5.5 the default file format is still +Antelope, for maximum compatibility with replication configurations +containing different MySQL releases. The file format is a dynamic, global parameter that can be specified in the MySQL option file (`my.cnf' or `my.ini') or changed with the `SET @@ -112965,14 +113137,10 @@ ................................... The file format used by the standard built-in InnoDB in MySQL 5.1 is -the Antelope -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_antelope) -format. The file format introduced with InnoDB Plugin 1.0 is the -Barracuda -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_barracuda) -format. Although no new features have been announced that would require -additional new file formats, the InnoDB file format mechanism allows for -future enhancements. +the Antelope format. The file format introduced with InnoDB Plugin 1.0 +is the Barracuda format. Although no new features have been announced +that would require additional new file formats, the InnoDB file format +mechanism allows for future enhancements. For the sake of completeness, these are the file format names that might be used for future file formats: Antelope, Barracuda, Cheetah, @@ -112995,9 +113163,7 @@ * innodb-row-format-antelope:: Antelope File Format: `COMPACT' and `REDUNDANT' Row Formats This section discusses how certain InnoDB features, such as table -compression -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_compression) -and off-page storage of long columns, are controlled by the +compression and off-page storage of long columns, are controlled by the `ROW_FORMAT' clause of the `CREATE TABLE' statement. It discusses considerations for choosing the right row format and compatibility of row formats between MySQL releases. @@ -113015,12 +113181,7 @@ out updated values for the numeric and short string columns. All data in InnoDB is stored in database pages that make up a B-tree -index -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_b_tree) (the -clustered index -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_clustered_index) -organized according to the primary key -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_primary_key) +index (the clustered index organized according to the primary key columns). Table data and indexes both use this type of structure. The nodes of the index data structure contain the values of all the columns in that row (for the clustered index) or the index columns and the @@ -113028,21 +113189,16 @@ Variable-length columns are an exception to this rule. Columns such as `BLOB' and `VARCHAR' that are too long to fit on a B-tree page are -stored on separately allocated disk pages called overflow pages -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_overflow_page). -We call such columns off-page column -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_off_page_column). -The values of these columns are stored on singly-linked lists of -overflow pages, and each such column has its own list of one or more -overflow pages. In some cases, all or a prefix of the long column value -is stored in the B-tree, to avoid wasting storage and eliminating the -need to read a separate page. - -The Barracuda -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_barracuda) -file format provides a new option (`KEY_BLOCK_SIZE') to control how -much column data is stored in the clustered index, and how much is -placed on overflow pages. +stored on separately allocated disk pages called overflow pages. We call +such columns off-page column. The values of these columns are stored on +singly-linked lists of overflow pages, and each such column has its own +list of one or more overflow pages. In some cases, all or a prefix of +the long column value is stored in the B-tree, to avoid wasting storage +and eliminating the need to read a separate page. + +The Barracuda file format provides a new option (`KEY_BLOCK_SIZE') to +control how much column data is stored in the clustered index, and how +much is placed on overflow pages.  File: manual.info, Node: innodb-row-format-specification, Next: innodb-row-format-dynamic, Prev: innodb-row-format-overview, Up: innodb-row-format @@ -113093,12 +113249,10 @@ .................................................................... Early versions of InnoDB used an unnamed file format (now called -Antelope -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_antelope)) -for database files. With that format, tables were defined with -`ROW_FORMAT=COMPACT' (or `ROW_FORMAT=REDUNDANT') and InnoDB stored up to -the first 768 bytes of variable-length columns (such as `BLOB' and -`VARCHAR') in the index record within the B-tree node, with the +Antelope) for database files. With that format, tables were defined +with `ROW_FORMAT=COMPACT' (or `ROW_FORMAT=REDUNDANT') and InnoDB stored +up to the first 768 bytes of variable-length columns (such as `BLOB' +and `VARCHAR') in the index record within the B-tree node, with the remainder stored on the overflow pages. To preserve compatibility with those prior versions, tables created @@ -113215,13 +113369,7 @@ The InnoDB storage engine uses a so-called `buddy allocator' system to manage memory allocated to pages of various sizes, from 1KB to 16KB. Each row of the two tables described here corresponds to a single page -size, except for rows with `PAGE_SIZE<1024', which are implementation -artifacts. The smallest blocks (`PAGE_SIZE=64' or `PAGE_SIZE=128', -depending on the server platform) are used for keeping track of -compressed pages for which no uncompressed page has been allocated in -the buffer pool. Other blocks of `PAGE_SIZE<1024' should never be -allocated (`PAGES_USED=0'). They exist because the memory allocator -allocates smaller blocks by splitting bigger ones into halves. +size. These two tables have identical contents, but reading from *Note `INNODB_CMPMEM_RESET': innodb-information-schema-innodb_cmpmem. resets @@ -113264,13 +113412,7 @@ According to *Note `INNODB_CMPMEM': innodb-information-schema-innodb_cmpmem, there are 6169 compressed 8KB -pages in the buffer pool. The only other allocated block size is 64 -bytes. The smallest `PAGE_SIZE' in *Note `INNODB_CMPMEM': -innodb-information-schema-innodb_cmpmem. is used for block descriptors -of those compressed pages for which no uncompressed page exists in the -buffer pool. We see that there are 5910 such pages. Indirectly, we see -that 259 (6169-5910) compressed pages also exist in the buffer pool in -uncompressed form. +pages in the buffer pool. The following table shows the contents of `INFORMATION_SCHEMA.INNODB_CMPMEM' under light load. We can see that @@ -113285,10 +113427,6 @@ `(SUM(RELOCATION_TIME)=0)'. page size pages used pages free relocation ops relocation time -64 5910 0 2436 0 -128 0 1 0 0 -256 0 0 0 0 -512 0 1 0 0 1024 0 0 0 0 2048 0 1 0 0 4096 0 1 0 0 @@ -113779,25 +113917,18 @@ In MySQL and InnoDB, multiple threads of execution access shared data structures. InnoDB synchronizes these accesses with its own -implementation of mutexes -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_mutex) and -read/write locks -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_rw_lock). -InnoDB has historically protected the internal state of a read/write -lock with an InnoDB mutex. On Unix and Linux platforms, the internal -state of an InnoDB mutex is protected by a Pthreads -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_pthreads) -mutex, as in IEEE Std 1003.1c (POSIX.1c). +implementation of mutexes and read/write locks. InnoDB has historically +protected the internal state of a read/write lock with an InnoDB mutex. +On Unix and Linux platforms, the internal state of an InnoDB mutex is +protected by a Pthreads mutex, as in IEEE Std 1003.1c (POSIX.1c). On many platforms, there is a more efficient way to implement mutexes -and read/write locks. Atomic -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_atomic) -operations can often be used to synchronize the actions of multiple -threads more efficiently than Pthreads. Each operation to acquire or -release a lock can be done in fewer CPU instructions, and thus result in -less wasted time when threads are contending for access to shared data -structures. This in turn means greater scalability on multi-core -platforms. +and read/write locks. Atomic operations can often be used to +synchronize the actions of multiple threads more efficiently than +Pthreads. Each operation to acquire or release a lock can be done in +fewer CPU instructions, and thus result in less wasted time when +threads are contending for access to shared data structures. This in +turn means greater scalability on multi-core platforms. InnoDB implements mutexes and read/write locks with the built-in functions provided by the GNU Compiler Collection (GCC) for atomic @@ -113859,8 +113990,7 @@ performance and scalability. At that time, there were no memory allocator libraries tuned for multi-core CPUs. Therefore, InnoDB implemented its own memory allocator in the `mem' subsystem. This -allocator is guarded by a single mutex, which may become a bottleneck -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_bottleneck). +allocator is guarded by a single mutex, which may become a bottleneck. InnoDB also implements a wrapper interface around the system allocator (`malloc' and `free') that is likewise guarded by a single mutex. @@ -113919,18 +114049,13 @@ When `INSERT', `UPDATE', and `DELETE' operations are done to a table, often the values of indexed columns (particularly the values of secondary keys) are not in sorted order, requiring substantial I/O to -bring secondary indexes up to date. InnoDB has an insert buffer -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_insert_buffer) -that caches changes to secondary index entries when the relevant page -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_page) is not -in the buffer pool -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_buffer_pool), -thus avoiding I/O operations by not reading in the page from the disk. -The buffered changes are merged when the page is loaded to the buffer -pool, and the updated page is later flushed to disk using the normal -mechanism. The InnoDB main thread merges buffered changes when the -server is nearly idle, and during a slow shutdown -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_slow_shutdown). +bring secondary indexes up to date. InnoDB has an insert buffer that +caches changes to secondary index entries when the relevant page is not +in the buffer pool, thus avoiding I/O operations by not reading in the +page from the disk. The buffered changes are merged when the page is +loaded to the buffer pool, and the updated page is later flushed to +disk using the normal mechanism. The InnoDB main thread merges buffered +changes when the server is nearly idle, and during a slow shutdown. Because it can result in fewer disk reads and writes, this feature is most valuable for workloads that are I/O-bound, for example @@ -113996,10 +114121,7 @@ ........................................... If a table fits almost entirely in main memory, the fastest way to -perform queries on it is to use hash indexes -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_hash_index) -rather than B-tree -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_b_tree) +perform queries on it is to use hash indexes rather than B-tree lookups. MySQL monitors searches on each index defined for an InnoDB table. If it notices that certain index values are being accessed frequently, it automatically builds an in-memory hash table for that @@ -114009,15 +114131,13 @@ in the hash index. Hash indexes are built on demand for those pages of the index that are often accessed. -This adaptive hash index -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_adaptive_hash_index) -mechanism allows InnoDB to take advantage of large amounts of memory, -something typically done only by database systems specifically designed -for databases that reside entirely in memory. Normally, the automatic -building and use of adaptive hash indexes improves performance. -However, sometimes, the read/write lock that guards access to the -adaptive hash index may become a source of contention under heavy -workloads, such as multiple concurrent joins. +This adaptive hash index mechanism allows InnoDB to take advantage of +large amounts of memory, something typically done only by database +systems specifically designed for databases that reside entirely in +memory. Normally, the automatic building and use of adaptive hash +indexes improves performance. However, sometimes, the read/write lock +that guards access to the adaptive hash index may become a source of +contention under heavy workloads, such as multiple concurrent joins. You can monitor the use of the adaptive hash index and the contention for its use in the `SEMAPHORES' section of the output of the `SHOW @@ -114038,15 +114158,13 @@ 14.4.7.6 Changes Regarding Thread Concurrency ............................................. -InnoDB uses operating system threads -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_thread) to -process requests from user transactions. (Transactions may issue many -requests to InnoDB before they commit or roll back.) On modern operating -systems and servers with multi-core processors, where context switching -is efficient, most workloads run well without any limit on the number -of concurrent threads. Scalability improvements in MySQL 5.5 and up -reduce the need to limit the number of concurrently executing threads -inside InnoDB. +InnoDB uses operating system threads to process requests from user +transactions. (Transactions may issue many requests to InnoDB before +they commit or roll back.) On modern operating systems and servers with +multi-core processors, where context switching is efficient, most +workloads run well without any limit on the number of concurrent +threads. Scalability improvements in MySQL 5.5 and up reduce the need +to limit the number of concurrently executing threads inside InnoDB. In situations where it is helpful to minimize context switching between threads, InnoDB can use a number of techniques to limit the number of @@ -114123,13 +114241,10 @@ 14.4.7.7 Changes in the Read-Ahead Algorithm ............................................ -A read-ahead -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_read_ahead) -request is an I/O request to prefetch multiple pages in the buffer pool -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_buffer_pool) -asynchronously, in anticipation that these pages will be needed soon. -InnoDB uses or has used two read-ahead algorithms to improve I/O -performance: +A read-ahead request is an I/O request to prefetch multiple pages in the +buffer pool asynchronously, in anticipation that these pages will be +needed soon. InnoDB uses or has used two read-ahead algorithms to +improve I/O performance: _Linear_ read-ahead is based on the access pattern of the pages in the buffer pool, not just their number. You can control when InnoDB @@ -114182,17 +114297,16 @@ 14.4.7.8 Multiple Background I/O Threads ........................................ -InnoDB uses background threads -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_thread) to -service various types of I/O requests. You can configure the number of -background threads that service read and write I/O on data pages, using -the configuration parameters `innodb_read_io_threads' and -`innodb_write_io_threads'. These parameters signify the number of -background threads used for read and write requests respectively. They -are effective on all supported platforms. You can set the value of -these parameters in the MySQL option file (`my.cnf' or `my.ini'); you -cannot change them dynamically. The default value for these parameters -is `4' and the permissible values range from `1-64'. +InnoDB uses background threads to service various types of I/O +requests. You can configure the number of background threads that +service read and write I/O on data pages, using the configuration +parameters `innodb_read_io_threads' and `innodb_write_io_threads'. These +parameters signify the number of background threads used for read and +write requests respectively. They are effective on all supported +platforms. You can set the value of these parameters in the MySQL +option file (`my.cnf' or `my.ini'); you cannot change them dynamically. +The default value for these parameters is `4' and the permissible +values range from `1-64'. These parameters replace `innodb_file_io_threads' (http://dev.mysql.com/doc/refman/5.1/en/innodb-parameters.html#sysvar_innodb_file_io_threads) @@ -114204,14 +114318,13 @@ The purpose of this change is to make InnoDB more scalable on high end systems. Each background thread can handle up to 256 pending I/O -requests. A major source of background I/O is theread-ahead -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_read_ahead) -requests. InnoDB tries to balance the load of incoming requests in such -way that most of the background threads share work equally. InnoDB -also attempts to allocate read requests from the same extent to the -same thread to increase the chances of coalescing the requests -together. If you have a high end I/O subsystem and you see more than 64 -x `innodb_read_io_threads' pending read requests in `SHOW ENGINE INNODB +requests. A major source of background I/O is theread-ahead requests. +InnoDB tries to balance the load of incoming requests in such way that +most of the background threads share work equally. InnoDB also +attempts to allocate read requests from the same extent to the same +thread to increase the chances of coalescing the requests together. If +you have a high end I/O subsystem and you see more than 64 x +`innodb_read_io_threads' pending read requests in `SHOW ENGINE INNODB STATUS', you might gain by increasing the value of `innodb_read_io_threads'. @@ -114224,10 +114337,9 @@ 14.4.7.9 Asynchronous I/O on Linux .................................. -Starting in InnoDB 1.1 with MySQL 5.5, the asynchronous I/O -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_asynchronous_io) -capability that InnoDB has had on Windows systems is now available on -Linux systems. (Other Unix-like systems continue to use synchronous I/O +Starting in InnoDB 1.1 with MySQL 5.5, the asynchronous I/O capability +that InnoDB has had on Windows systems is now available on Linux +systems. (Other Unix-like systems continue to use synchronous I/O calls.) This feature improves the scalability of heavily I/O-bound systems, which typically show many pending reads/writes in the output of the command `SHOW ENGINE INNODB STATUS\G'. @@ -114254,18 +114366,13 @@ 14.4.7.10 Group Commit ...................... -InnoDB, like any other ACID -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_acid)-compliant -database engine, flushes the redo log -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_redo_log) of -a transaction before it is committed. Historically, InnoDB used group -commit -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_group_commit) -functionality to group multiple such flush requests together to avoid -one flush for each commit. With group commit, InnoDB issues a single -write to the log file to perform the commit action for multiple user -transactions that commit at about the same time, significantly -improving throughput. +InnoDB, like any other ACID-compliant database engine, flushes the redo +log of a transaction before it is committed. Historically, InnoDB used +group commit functionality to group multiple such flush requests +together to avoid one flush for each commit. With group commit, InnoDB +issues a single write to the log file to perform the commit action for +multiple user transactions that commit at about the same time, +significantly improving throughput. Group commit in InnoDB worked until MySQL 4.x, and works once again with MySQL 5.1 with the InnoDB Plugin, and MySQL 5.5 and higher. The @@ -114296,18 +114403,16 @@ 14.4.7.11 Controlling the Master Thread I/O Rate ................................................ -The master thread -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_master_thread) -in InnoDB is a thread that performs various tasks in the background. -Most of these tasks are I/O related, such as flushing dirty pages from -the buffer pool or writing changes from the insert buffer to the -appropriate secondary indexes. The master thread attempts to perform -these tasks in a way that does not adversely affect the normal working -of the server. It tries to estimate the free I/O bandwidth available -and tune its activities to take advantage of this free capacity. -Historically, InnoDB has used a hard coded value of 100 IOPs -(input/output operations per second) as the total I/O capacity of the -server. +The master thread in InnoDB is a thread that performs various tasks in +the background. Most of these tasks are I/O related, such as flushing +dirty pages from the buffer pool or writing changes from the insert +buffer to the appropriate secondary indexes. The master thread attempts +to perform these tasks in a way that does not adversely affect the +normal working of the server. It tries to estimate the free I/O +bandwidth available and tune its activities to take advantage of this +free capacity. Historically, InnoDB has used a hard coded value of 100 +IOPs (input/output operations per second) as the total I/O capacity of +the server. The parameter `innodb_io_capacity' indicates the overall I/O capacity available to InnoDB. This parameter should be set to approximately the @@ -114338,17 +114443,11 @@ 14.4.7.12 Controlling the Flushing Rate of Dirty Pages ...................................................... -InnoDB performs certain tasks in the background, including flushing -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_flush) of -dirty pages -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_dirty_page) -(those pages that have been changed but are not yet written to the -database files) from the buffer pool -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_buffer_pool), -a task performed by the master thread -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_master_thread). -Currently, InnoDB aggressively flushes buffer pool pages if the -percentage of dirty pages in the buffer pool exceeds +InnoDB performs certain tasks in the background, including flushing of +dirty pages (those pages that have been changed but are not yet written +to the database files) from the buffer pool, a task performed by the +master thread. Currently, InnoDB aggressively flushes buffer pool pages +if the percentage of dirty pages in the buffer pool exceeds `innodb_max_dirty_pages_pct'. InnoDB uses a new algorithm to estimate the required rate of flushing, @@ -114362,13 +114461,12 @@ InnoDB uses its log files in a circular fashion. Before reusing a portion of a log file, InnoDB flushes to disk all dirty buffer pool pages whose redo entries are contained in that portion of the log file, -a process known as a sharp checkpoint -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_sharp_checkpoint). -If a workload is write-intensive, it generates a lot of redo -information, all written to the log file. If all available space in the -log files is used up, a sharp checkpoint occurs, causing a temporary -reduction in throughput. This situation can happen even though -`innodb_max_dirty_pages_pct' is not reached. +a process known as a sharp checkpoint. If a workload is +write-intensive, it generates a lot of redo information, all written to +the log file. If all available space in the log files is used up, a +sharp checkpoint occurs, causing a temporary reduction in throughput. +This situation can happen even though `innodb_max_dirty_pages_pct' is +not reached. InnoDB uses a heuristic-based algorithm to avoid such a scenario, by measuring the number of dirty pages in the buffer pool and the rate at @@ -114399,12 +114497,8 @@ .......................................................... Synchronization inside InnoDB frequently involves the use of spin -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_spin) loops: -while waiting, InnoDB executes a tight loop of instructions repeatedly -to avoid having the InnoDB process -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_process) and -threads -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_thread) be +loops: while waiting, InnoDB executes a tight loop of instructions +repeatedly to avoid having the InnoDB process and threads be rescheduled by the operating system. If the spin loops are executed too quickly, system resources are wasted, imposing a performance penalty on transaction throughput. Most modern processors implement the `PAUSE' @@ -114428,19 +114522,16 @@ 14.4.7.14 Control of Spin Lock Polling ...................................... -Many InnoDB mutexes -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_mutex) and -rw-locks -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_rw_lock) are -reserved for a short time. On a multi-core system, it can be more -efficient for a thread to continuously check if it can acquire a mutex -or rw-lock for a while before sleeping. If the mutex or rw-lock becomes -available during this polling period, the thread can continue -immediately, in the same time slice. However, too-frequent polling by -multiple threads of a shared object can cause `cache ping pong', -different processors invalidating portions of each others' cache. -InnoDB minimizes this issue by waiting a random time between subsequent -polls. The delay is implemented as a busy loop. +Many InnoDB mutexes and rw-locks are reserved for a short time. On a +multi-core system, it can be more efficient for a thread to +continuously check if it can acquire a mutex or rw-lock for a while +before sleeping. If the mutex or rw-lock becomes available during this +polling period, the thread can continue immediately, in the same time +slice. However, too-frequent polling by multiple threads of a shared +object can cause `cache ping pong', different processors invalidating +portions of each others' cache. InnoDB minimizes this issue by waiting +a random time between subsequent polls. The delay is implemented as a +busy loop. You can control the maximum delay between testing a mutex or rw-lock using the parameter `innodb_spin_wait_delay'. The duration of the delay @@ -114468,17 +114559,12 @@ 14.4.7.15 Making Buffer Pool Scan Resistant ........................................... -Rather than using a strictly LRU -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_lru) -algorithm, InnoDB uses a technique to minimize the amount of data that -is brought into the buffer pool -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_buffer_pool) -and never accessed again. The goal is to make sure that frequently -accessed (`hot') pages remain in the buffer pool, even as read-ahead -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_read_ahead) -and full table scans -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_full_table_scan) -bring in new blocks that might or might not be accessed afterward. +Rather than using a strictly LRU algorithm, InnoDB uses a technique to +minimize the amount of data that is brought into the buffer pool and +never accessed again. The goal is to make sure that frequently accessed +(`hot') pages remain in the buffer pool, even as read-ahead and full +table scans bring in new blocks that might or might not be accessed +afterward. Newly read blocks are inserted into the middle of the list representing the buffer pool. of the LRU list. All newly read pages are inserted at @@ -114596,16 +114682,14 @@ 14.4.7.16 Improvements to Crash Recovery Performance .................................................... -A number of optimizations speed up certain steps of the recovery -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_crash_recovery) -that happens on the next startup after a crash. In particular, scanning -the redo log -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_redo_log) -and applying the redo log are faster than in MySQL 5.1 and earlier, due -to improved algorithms for memory management. You do not need to take -any actions to take advantage of this performance enhancement. If you -kept the size of your redo log files artificially low because recovery -took a long time, you can consider increasing the file size. +A number of optimizations speed up certain steps of the recovery that +happens on the next startup after a crash. In particular, scanning the +redo log and applying the redo log are faster than in MySQL 5.1 and +earlier, due to improved algorithms for memory management. You do not +need to take any actions to take advantage of this performance +enhancement. If you kept the size of your redo log files artificially +low because recovery took a long time, you can consider increasing the +file size. For more information about InnoDB recovery, see *Note innodb-recovery::. @@ -114654,16 +114738,12 @@ the `*_current_*' and `*_history_*' tables, see *Note performance-schema-waits-tables::. - * Mutexes - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_mutex) - in the `mutex_instances' table. (Mutexes and RW-locks related - to the `InnoDB' buffer pool are not included in this + * Mutexes in the `mutex_instances' table. (Mutexes and RW-locks + related to the `InnoDB' buffer pool are not included in this coverage; the same applies to the output of the `SHOW ENGINE INNODB MUTEX' command.) - * RW-locks - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_rw_lock) - in the `rwlock_instances' table. + * RW-locks in the `rwlock_instances' table. * RW-locks in the `rwlock_instances' table. @@ -114671,9 +114751,7 @@ `file_summary_by_event_name', and `file_summary_by_instance' tables. - * Threads - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_thread) - in the `PROCESSLIST' table. + * Threads in the `PROCESSLIST' table. * During performance testing, examine the performance data in the `events_waits_current' and `events_waits_history_long' tables. If @@ -114695,12 +114773,10 @@ ................................................................ This performance enhancement is primarily useful for people with a -large buffer pool -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_buffer_pool) -size, typically in the multi-gigabyte range. To take advantage of this -speedup, you must set the new `innodb_buffer_pool_instances' -configuration option, and you might also adjust the -`innodb_buffer_pool_size' value. +large buffer pool size, typically in the multi-gigabyte range. To take +advantage of this speedup, you must set the new +`innodb_buffer_pool_instances' configuration option, and you might also +adjust the `innodb_buffer_pool_size' value. When the InnoDB buffer pool is large, many data requests can be satisfied by retrieving from memory. You might encounter bottlenecks @@ -114731,14 +114807,10 @@ ............................................................ Starting in InnoDB 1.1 with MySQL 5.5, the limit on concurrent -transactions -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_transaction) -is greatly expanded, removing a bottleneck with the InnoDB rollback -segment -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_rollback_segment) -that affected high-capacity systems. The limit applies to concurrent -transactions that change any data; read-only transactions do not count -against that maximum. +transactions is greatly expanded, removing a bottleneck with the InnoDB +rollback segment that affected high-capacity systems. The limit applies +to concurrent transactions that change any data; read-only transactions +do not count against that maximum. The single rollback segment is now divided into 128 segments, each of which can support up to 1023 transactions that perform writes, for a @@ -114753,13 +114825,10 @@ To take advantage of this feature, you do not need to create any new database or tables, or reconfigure anything. You must do a slow -shutdown -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_slow_shutdown) -before upgrading from MySQL 5.1 or earlier, or some time afterward. -InnoDB makes the required changes inside the system tablespace -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_system_tablespace) -automatically, the first time you restart after performing a slow -shutdown. +shutdown before upgrading from MySQL 5.1 or earlier, or some time +afterward. InnoDB makes the required changes inside the system +tablespace automatically, the first time you restart after performing a +slow shutdown. For more information about performance of InnoDB under high transactional load, see *Note @@ -114771,14 +114840,11 @@ 14.4.7.20 Better Scalability with Improved Purge Scheduling ........................................................... -Starting in InnoDB 1.1 with MySQL 5.5, the purge -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_purge) -operations (a type of garbage collection) that InnoDB performs -automatically can be done in a separate thread, rather than as part of -the master thread -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_master_thread). -This change improves scalability, because the main database operations -run independently from maintenance work happening in the background. +Starting in InnoDB 1.1 with MySQL 5.5, the purge operations (a type of +garbage collection) that InnoDB performs automatically can be done in a +separate thread, rather than as part of the master thread. This change +improves scalability, because the main database operations run +independently from maintenance work happening in the background. To enable this feature, set the configuration option `innodb_purge_threads=1', as opposed to the default of 0, which @@ -114806,18 +114872,13 @@ performance experts who delve into the InnoDB source code, or interpret reports with keywords such as `mutex' and `log_sys'. -The mutex -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_mutex) known -as the log sys mutex has historically done double duty, controlling -access to internal data structures related to log records and the LSN -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_lsn), as -well as pages in the buffer pool -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_buffer_pool) -that are changed when a mini-transaction -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_mini_transaction) -is committed. Starting in InnoDB 1.1 with MySQL 5.5, these two kinds of -operations are protected by separate mutexes, with a new `log_buf' -mutex controlling writes to buffer pool pages due to mini-transactions. +The mutex known as the log sys mutex has historically done double duty, +controlling access to internal data structures related to log records +and the LSN, as well as pages in the buffer pool that are changed when a +mini-transaction is committed. Starting in InnoDB 1.1 with MySQL 5.5, +these two kinds of operations are protected by separate mutexes, with a +new `log_buf' mutex controlling writes to buffer pool pages due to +mini-transactions. For performance considerations for InnoDB locking operations, see *Note locking-issues::. @@ -114829,15 +114890,11 @@ ................................... Starting with InnoDB 1.1 with MySQL 5.5, concurrent access to the -buffer pool -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_buffer_pool) -is faster. Operations involving the flush list -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_flush_list), -a data structure related to the buffer pool, are now controlled by a -separate mutex -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_mutex) and -do not block access to the buffer pool. You do not need to configure -anything to take advantage of this speedup; it is fully automatic. +buffer pool is faster. Operations involving the flush list, a data +structure related to the buffer pool, are now controlled by a separate +mutex and do not block access to the buffer pool. You do not need to +configure anything to take advantage of this speedup; it is fully +automatic. For more information about the InnoDB buffer pool, see *Note innodb-buffer-pool::. @@ -114861,16 +114918,15 @@ This chapter describes several recently added InnoDB features that offer new flexibility and improve ease of use, reliability and -performance. The Barracuda -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_barracuda) -file format improves efficiency for storing large variable-length -columns, and enables table compression. Configuration options that once -were unchangeable after startup, are now flexible and can be changed -dynamically. Some improvements are automatic, such as faster and more -efficient `TRUNCATE TABLE'. Others allow you the flexibility to control -InnoDB behavior; for example, you can control whether certain problems -cause errors or just warnings. And informational messages and error -reporting continue to be made more user-friendly. +performance. The Barracuda file format improves efficiency for storing +large variable-length columns, and enables table compression. +Configuration options that once were unchangeable after startup, are +now flexible and can be changed dynamically. Some improvements are +automatic, such as faster and more efficient `TRUNCATE TABLE'. Others +allow you the flexibility to control InnoDB behavior; for example, you +can control whether certain problems cause errors or just warnings. And +informational messages and error reporting continue to be made more +user-friendly.  File: manual.info, Node: innodb-other-changes-file-formats, Next: innodb-other-changes-dynamic-parameters, Prev: innodb-other-changes, Up: innodb-other-changes @@ -114882,11 +114938,9 @@ upgrade and downgrade situations, or heterogeneous systems running different levels of MySQL. Many important InnoDB features, such as table compression and the `DYNAMIC' row format for more efficient BLOB -storage, require creating tables in the Barracuda -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_barracuda) -file format. The original file format, which previously didn't have a -name, is known now as Antelope -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_antelope). +storage, require creating tables in the Barracuda file format. The +original file format, which previously didn't have a name, is known now +as Antelope. To create new tables that take advantage of the Barracuda features, enable that file format using the configuration parameter @@ -114933,16 +114987,11 @@ Since MySQL version 4.1, InnoDB has provided two alternatives for how tables are stored on disk. You can create a new table and its indexes -in the shared system tablespace -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_system_tablespace), -physically stored in the ibdata files -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_ibdata_file). +in the shared system tablespace, physically stored in the ibdata files. Or, you can store a new table and its indexes in a separate tablespace -(a .ibd file -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_ibd_file)). -The storage layout for each InnoDB table is determined by the the -configuration parameter `innodb_file_per_table' at the time the table -is created. +(a .ibd file). The storage layout for each InnoDB table is determined +by the configuration parameter `innodb_file_per_table' at the time the +table is created. In MySQL 5.5 and higher, the configuration parameter `innodb_file_per_table' is dynamic, and can be set `ON' or `OFF' using @@ -114956,15 +115005,13 @@ all connections. Tables created when `innodb_file_per_table' is enabled can use the -Barracuda -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_barracuda) -file format, and `TRUNCATE' returns the disk space for those tables to -the operating system. The Barracuda file format in turn enables -features such as table compression and the `DYNAMIC' row format. Tables -created when `innodb_file_per_table' is off cannot use these features. -To take advantage of those features for an existing table, you can turn -on the file-per-table setting and run `ALTER TABLE T ENGINE=INNODB' for -that table. +Barracuda file format, and `TRUNCATE' returns the disk space for those +tables to the operating system. The Barracuda file format in turn +enables features such as table compression and the `DYNAMIC' row +format. Tables created when `innodb_file_per_table' is off cannot use +these features. To take advantage of those features for an existing +table, you can turn on the file-per-table setting and run `ALTER TABLE +T ENGINE=INNODB' for that table. When you redefine the primary key for an InnoDB table, the table is re-created using the current settings for `innodb_file_per_table' and @@ -115027,9 +115074,8 @@ As described in *Note innodb-performance-adaptive_hash_index::, it may be desirable, depending on your workload, to dynamically enable or -disable the adaptive hash indexing -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_adaptive_hash_index) -scheme InnoDB uses to improve query performance. +disable the adaptive hash indexing scheme InnoDB uses to improve query +performance. The start-up option `innodb_adaptive_hash_index' allows the adaptive hash index to be disabled. It is enabled by default. You can modify @@ -115048,22 +115094,15 @@ 14.4.8.7 `TRUNCATE TABLE' Reclaims Space ........................................ -When you truncate -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_truncate) a -table that is stored in a `.ibd -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_ibd_file)' -file of its own (because `innodb_file_per_table' was enabled when the -table was created), and if the table is not referenced in a `FOREIGN -KEY' constraint, the table is dropped and re-created in a new `.ibd' -file. This operation is much faster than deleting the rows one by one. -The operating system can reuse the disk space, in contrast to tables -within the InnoDB system tablespace -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_system_tablespace), -where only InnoDB can use the space after they are truncated. Physical -backups -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_physical_backup) -can also be smaller, without big blocks of unused space in the middle -of the system tablespace. +When you truncate a table that is stored in a `.ibd' file of its own +(because `innodb_file_per_table' was enabled when the table was +created), and if the table is not referenced in a `FOREIGN KEY' +constraint, the table is dropped and re-created in a new `.ibd' file. +This operation is much faster than deleting the rows one by one. The +operating system can reuse the disk space, in contrast to tables within +the InnoDB system tablespace, where only InnoDB can use the space after +they are truncated. Physical backups can also be smaller, without big +blocks of unused space in the middle of the system tablespace. Previous versions of InnoDB would re-use the existing `.ibd' file, thus releasing the space only to InnoDB for storage management, but not to @@ -115080,8 +115119,7 @@ and other tables, the truncate operation fails. This is a change to the previous behavior, which would transform the `TRUNCATE' operation to a `DELETE' operation that removed all the rows and triggered `ON DELETE' -operations on child tables -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_child_table). +operations on child tables.  File: manual.info, Node: innodb-other-changes-strict-mode, Next: innodb-other-changes-statistics-estimation, Prev: innodb-other-changes-truncate, Up: innodb-other-changes @@ -115091,16 +115129,15 @@ To guard against ignored typos and syntax errors in SQL, or other unintended consequences of various combinations of operational modes -and SQL statements, InnoDB provides a strict mode -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_strict_mode) -of operations. In this mode, InnoDB raises error conditions in certain -cases, rather than issuing a warning and processing the specified -statement (perhaps with unintended behavior). This is analogous to -`sql_mode' in MySQL, which controls what SQL syntax MySQL accepts, and -determines whether it silently ignores errors, or validates input -syntax and data values. Since strict mode is relatively new, some -statements that execute without errors with earlier versions of MySQL -might generate errors unless you disable strict mode. +and SQL statements, InnoDB provides a strict mode of operations. In +this mode, InnoDB raises error conditions in certain cases, rather than +issuing a warning and processing the specified statement (perhaps with +unintended behavior). This is analogous to `sql_mode' in MySQL, which +controls what SQL syntax MySQL accepts, and determines whether it +silently ignores errors, or validates input syntax and data values. +Since strict mode is relatively new, some statements that execute +without errors with earlier versions of MySQL might generate errors +unless you disable strict mode. The setting of InnoDB strict mode affects the handling of syntax errors on the *Note `CREATE TABLE': create-table, *Note `ALTER TABLE': @@ -115139,13 +115176,9 @@ The MySQL query optimizer uses estimated statistics about key distributions to choose the indexes for an execution plan, based on the -relative selectivity -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_selectivity) -of the index. Certain operations cause InnoDB to sample random pages -from each index on a table to estimate the cardinality -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_cardinality) -of the index. (This technique is known as random dives -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_random_dive).) +relative selectivity of the index. Certain operations cause InnoDB to +sample random pages from each index on a table to estimate the +cardinality of the index. (This technique is known as random dives.) These operations include the *Note `ANALYZE TABLE': analyze-table. statement, the *Note `SHOW TABLE STATUS': show-table-status. statement, and accessing the table for the first time after a restart. @@ -115157,10 +115190,8 @@ was always 8, which could be insufficient to produce an accurate estimate, leading to poor index choices by the query optimizer. This technique is especially important for large tables and tables used in -joins (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_join). -Unnecessary full table scans -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_full_table_scan) -for such tables can be a substantial performance issue. +joins. Unnecessary full table scans for such tables can be a +substantial performance issue. You can set the global parameter `innodb_stats_sample_pages', at run time. The default value for this parameter is 8, preserving the same @@ -115219,15 +115250,12 @@ ..................................................... For optimal performance with DML statements, InnoDB requires an index -to exist on foreign key -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_foreign_key) -columns, so that `UPDATE' and `DELETE' operations on a parent table -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_parent_table) -can easily check whether corresponding rows exist in the child table -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_child_table). -MySQL creates or drops such indexes automatically when needed, as a -side-effect of *Note `CREATE TABLE': create-table, *Note `CREATE -INDEX': create-index, and *Note `ALTER TABLE': alter-table. statements. +to exist on foreign key columns, so that `UPDATE' and `DELETE' +operations on a parent table can easily check whether corresponding +rows exist in the child table. MySQL creates or drops such indexes +automatically when needed, as a side-effect of *Note `CREATE TABLE': +create-table, *Note `CREATE INDEX': create-index, and *Note `ALTER +TABLE': alter-table. statements. When you drop an index, InnoDB checks whether the index is not used for checking a foreign key constraint. It is still OK to drop the index if @@ -115247,15 +115275,14 @@ A similar change in error reporting applies to an attempt to drop the primary key index. For tables without an explicit `PRIMARY KEY', InnoDB -creates an implicit clustered index -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_clustered_index) -using the first columns of the table that are declared `UNIQUE' and -`NOT NULL'. When you drop such an index, InnoDB automatically copies -the table and rebuilds the index using a different `UNIQUE NOT NULL' -group of columns or a system-generated key. Since this operation -changes the primary key, it uses the slow method of copying the table -and re-creating the index, rather than the Fast Index Creation -technique from *Note innodb-create-index-implementation::. +creates an implicit clustered index using the first columns of the +table that are declared `UNIQUE' and `NOT NULL'. When you drop such an +index, InnoDB automatically copies the table and rebuilds the index +using a different `UNIQUE NOT NULL' group of columns or a +system-generated key. Since this operation changes the primary key, it +uses the slow method of copying the table and re-creating the index, +rather than the Fast Index Creation technique from *Note +innodb-create-index-implementation::. Previously, an attempt to drop an implicit clustered index (the first `UNIQUE NOT NULL' index) failed if the table did not contain a `PRIMARY @@ -115270,25 +115297,18 @@ ........................................................... The statement `SHOW ENGINE INNODB MUTEX' displays information about -InnoDB mutexes -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_mutex) and -rw-locks -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_rw_lock). -Although this information is useful for tuning on multi-core systems, -the amount of output can be overwhelming on systems with a big buffer -pool -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_buffer_pool). -There is one mutex and one rw-lock in each 16K buffer pool block, and -there are 65,536 blocks per gigabyte. It is unlikely that a single block -mutex or rw-lock from the buffer pool could become a performance -bottleneck. +InnoDB mutexes and rw-locks. Although this information is useful for +tuning on multi-core systems, the amount of output can be overwhelming +on systems with a big buffer pool. There is one mutex and one rw-lock +in each 16K buffer pool block, and there are 65,536 blocks per +gigabyte. It is unlikely that a single block mutex or rw-lock from the +buffer pool could become a performance bottleneck. `SHOW ENGINE INNODB MUTEX' now skips the mutexes and rw-locks of buffer pool blocks. It also does not list any mutexes or rw-locks that have never been waited on (`os_waits=0'). Thus, `SHOW ENGINE INNODB MUTEX' only displays information about mutexes and rw-locks outside of the -buffer pool that have caused at least one OS-level wait -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_wait). +buffer pool that have caused at least one OS-level wait.  File: manual.info, Node: innodb-other-changes-readahead-counters, Prev: innodb-other-changes-show-mutex, Up: innodb-other-changes @@ -115306,12 +115326,10 @@ `SHOW ENGINE INNODB STATUS' output displays the global status variables `Innodb_buffer_pool_read_ahead' and `Innodb_buffer_pool_read_ahead_evicted'. These variables indicate the -number of pages brought into the buffer pool -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_buffer_pool) -by read-ahead requests, and the number of such pages evicted -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_eviction) -from the buffer pool without ever being accessed respectively. These -counters provide global values since the last server restart. +number of pages brought into the buffer pool by read-ahead requests, +and the number of such pages evicted from the buffer pool without ever +being accessed respectively. These counters provide global values since +the last server restart. `SHOW ENGINE INNODB INNODB STATUS' also shows the rate at which the read-ahead pages are read in and the rate at which such pages are @@ -115461,12 +115479,12 @@ Implement Performance Schema in InnoDB. Objects in four different modules in InnoDB have been performance instrumented, these modules -are: mutexes, rwlocks, file I/O, and threads We mostly preserved the +are: mutexes, rwlocks, file I/O, and threads. We mostly preserved the existing APIs, but APIs would point to instrumented function wrappers if performance schema is defined. There are 4 different defines that -controls the instrumentation of each module. The feature is off by -default, and will be compiled in with special build option, and requre -configure option to turn it on when server boots. +control the instrumentation of each module. The feature is off by +default, and will be compiled in with a special build option, and +require a configure option to turn it on when the server boots. Implement the buf_pool_watch for DeleteBuffering in the page hash table. This serves two purposes. It allows multiple watches to be set @@ -115760,11 +115778,8 @@ checking when opening a database. The default value is `innodb-file-format-check=1', with `innodb_file_format_max' set to the highest format that is used in the database (either Barracuda - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_barracuda) - or Antelope - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_antelope)). - See *Note innodb-file-format-compatibility-checking:: for more - information. + or Antelope). See *Note innodb-file-format-compatibility-checking:: + for more information. * *`innodb_io_capacity'* @@ -119482,9 +119497,8 @@ of resources on one or more systems within a cluster. In this context a resource includes MySQL, the file systems on which the MySQL data is being stored and, if you are using DRBD, the DRBD device being used for -the file system. Heartbeat also manages a virtual IP address, and the -virtual IP address should be used for all communication to the MySQL -instance. +the file system. Heartbeat also manages a virtual IP address; use this +virtual IP address for all communication to the MySQL instance. A cluster within the context of Heartbeat is defined as two computers notionally providing the same service. By definition, each computer in @@ -119695,7 +119709,7 @@ #!/bin/bash # - # This script is inteded to be used as resource script by heartbeat + # This script is intended to be used as resource script by heartbeat # # Mar 2006 by Monty Taylor # @@ -120159,13 +120173,12 @@ file system contents, transfer the snapshot to another machine, and extract the snapshot to recreate the file system. You can create a snapshot at any time, and you can create as many snapshots as you like. -By continually creating, transferring and restoring snapshots, you can +By continually creating, transferring, and restoring snapshots, you can provide synchronization between one or more machines in a fashion similar to DRBD. -To understand the replication solution within ZFS, you must first -understand the ZFS environment. Below is a simple Solaris system -running with a single ZFS pool, mounted at `/scratchpool': +The following example shows a simple Solaris system running with a +single ZFS pool, mounted at `/scratchpool': Filesystem size used avail capacity Mounted on /dev/dsk/c0d0s0 4.6G 3.7G 886M 82% / @@ -120193,8 +120206,8 @@ drwxr-xr-x 14 root sys 16 Nov 5 09:56 SUNWspro/ drwxrwxrwx 19 1000 1000 40 Nov 6 19:16 emacs-22.1/ -To create a snapshot of the file system, you use `zfs snapshot', and -then specify the pool and the snapshot name: +To create a snapshot of the file system, you use `zfs snapshot', +specifying the pool and the snapshot name: root-shell> zfs snapshot scratchpool@snap1 @@ -120209,19 +120222,19 @@ and the space required to keep them varies as time goes on because of the way the snapshots are created. The initial creation of a snapshot is very quick, because instead of taking an entire copy of the data and -metadata required to hold the entire snapshot, ZFS merely records the +metadata required to hold the entire snapshot, ZFS records only the point in time and metadata of when the snapshot was created. As more changes to the original file system are made, the size of the snapshot increases because more space is required to keep the record of -the old blocks. Furthermore, if you create lots of snapshots, say one -per day, and then delete the snapshots from earlier in the week, the -size of the newer snapshots may also increase, as the changes that make -up the newer state have to be included in the more recent snapshots, -rather than being spread over the seven snapshots that make up the week. +the old blocks. If you create lots of snapshots, say one per day, and +then delete the snapshots from earlier in the week, the size of the +newer snapshots might also increase, as the changes that make up the +newer state have to be included in the more recent snapshots, rather +than being spread over the seven snapshots that make up the week. -The only issue, from a backup perspective, is that snapshots exist -within the confines of the original file system. To get the snapshot +You cannot directly back up the snapshots because they exist within the +file system metadata rather than as regular files. To get the snapshot into a format that you can copy to another file system, tape, and so on, you use the `zfs send' command to create a stream version of the snapshot. @@ -120252,20 +120265,22 @@ use them to replicate information from one system to another by combining `zfs send', `ssh', and `zfs recv'. -For example, if a snapshot of the `scratchpool' file system has been -created and this needs to be copied to a new system or file system -called `slavepool'. You would use the following command, combining the -snapshot of `scratchpool', the transmission to the slave machine (using -`ssh'), and the recovery of the snapshot on the slave using `zfs recv': - - root-shell> zfs send scratchpool@snap1 |ssh mc@slave pfexec zfs recv -F slavepool - -The first part, `zfs send scratchpool@snap1', streams the snapshot, the -second, `ssh mc@slave', and the third, `pfexec zfs recv -F slavepool', -receives the streamed snapshot data and writes it to slavepool. In this -instance, I've specified the `-F' option which forces the snapshot data -to be applied, and is therefore destructive. This is fine, as I'm -creating the first version of my replicated file system. +For example, to copy a snapshot of the `scratchpool' file system to a +new file system called `slavepool' on a new server, you would use the +following command. This sequence combines the snapshot of +`scratchpool', the transmission to the slave machine (using `ssh' with +login credentials), and the recovery of the snapshot on the slave using +`zfs recv': + + root-shell> zfs send scratchpool@snap1 |ssh ID@HOST pfexec zfs recv -F slavepool + +The first part of the pipeline, `zfs send scratchpool@snap1', streams +the snapshot. The `ssh' command, and the command that it executes on +the other server, `pfexec zfs recv -F slavepool', receives the streamed +snapshot data and writes it to slavepool. In this instance, I've +specified the `-F' option which forces the snapshot data to be applied, +and is therefore destructive. This is fine, as I'm creating the first +version of my replicated file system. On the slave machine, the replicated file system contains the exact same content: @@ -120284,17 +120299,16 @@ of `zfs send' to send the changes between the two snapshots to the slave machine again: - root-shell> zfs send -i scratchpool@snapshot1 scratchpool@snapshot2 |ssh mc@192.168.0.93 pfexec zfs recv slavepool + root-shell> zfs send -i scratchpool@snapshot1 scratchpool@snapshot2 |ssh ID@HOST pfexec zfs recv slavepool -Without further modification, this operation fails, because the file -system on the slave machine can currently be modified, and you can't -apply the incremental changes to a destination file system that has -changed. It is the metadata that has changed. The metadata about the -file system, like the last time it was accessed - in this case, it is -our `ls' that caused the problem. +This operation only succeeds if the file system on the slave machine +has not been modified at all. You cannot apply the incremental changes +to a destination file system that has changed. In the example above, +the `ls' command would cause problems by changing the metadata, such as +the last access time for files or directories. -To prevent changes on the slave file system, you must set the file -system on the slave to be read-only: +To prevent changes on the slave file system, set the file system on the +slave to be read-only: root-shell> zfs set readonly=on slavepool @@ -120305,10 +120319,10 @@ In essence, the slave file system is nothing but a static copy of the original file system. However, even when configured to to be read-only, -a file system can have snapshots applied to it. Now the file system is -read only, re-run the initial copy: +a file system can have snapshots applied to it. With the file system +set to read only, re-run the initial copy: - root-shell> zfs send scratchpool@snap1 |ssh mc@slave pfexec zfs recv -F slavepool + root-shell> zfs send scratchpool@snap1 |ssh ID@HOST pfexec zfs recv -F slavepool Now you can make changes to the original file system and replicate them to the slave. @@ -120325,13 +120339,13 @@ `/scratchpool/mysql-data' as the data directory, and now you can initialize the tables: - root-shell> mysql_install_db --defaults-file=/etc/mysql/5.0/my.cnf --user=mysql + root-shell> mysql_install_db --defaults-file=/etc/mysql/5.5/my.cnf --user=mysql To synchronize the initial information, perform a new snapshot and then send an incremental snapshot to the slave using `zfs send': root-shell> zfs snapshot scratchpool@snap2 - root-shell> zfs send -i scratchpool@snap1 scratchpool@snap2|ssh mc@192.168.0.93 pfexec zfs recv slavepool + root-shell> zfs send -i scratchpool@snap1 scratchpool@snap2|ssh ID@HOST pfexec zfs recv slavepool Doublecheck that the slave has the data by looking at the MySQL data directory on the `slavepool': @@ -120347,9 +120361,9 @@ perform the snapshot and then to send the changes over the network. To automate the process, create a script that performs the snapshot, -send, and receive operation, and then use `cron' to synchronize the -changes at set times or intervals. For automated operations, see Tim -Foster's zfs replication tool +send, and receive operation, and use `cron' to synchronize the changes +at set times or intervals. For automated operations, see Tim Foster's +zfs replication tool (http://blogs.sun.com/timf/entry/zfs_automatic_snapshots_now_with).  @@ -120371,9 +120385,9 @@ root-shell> zfs set readonly=off slavepool 3. Start up *Note `mysqld': mysqld. on the slave. If you are using - `InnoDB', `Falcon' or `Maria' you get auto-recovery, if it is - needed, to make sure the table data is correct, as shown here when - I started up from our mid-INSERT snapshot: + `InnoDB', you get auto-recovery, if it is needed, to make sure the + table data is correct, as shown here when I started up from our + mid-INSERT snapshot: InnoDB: The log sequence number in ibdata files does not match InnoDB: the log sequence number in the ib_logfiles! @@ -120386,10 +120400,10 @@ 081109 16:00:03 [Note] /slavepool/mysql-5.0.67-solaris10-i386/bin/mysqld: ready for connections. Version: '5.0.67' socket: '/tmp/mysql.sock' port: 3306 MySQL Community Server (GPL) -On MyISAM tables, you might need to run `REPAIR TABLE', and you might -even have lost some information. Use *Note `InnoDB': -innodb-storage-engine. tables and a regular synchronization schedule to -reduce the risk for significant data loss. +Use *Note `InnoDB': innodb-storage-engine. tables and a regular +synchronization schedule to reduce the risk for significant data loss. +On MyISAM tables, you might need to run *Note `REPAIR TABLE': +repair-table, and you might even have lost some information.  File: manual.info, Node: ha-memcached, Next: mysql-proxy, Prev: ha-zfs-replication, Up: ha-overview @@ -120405,26 +120419,18 @@ * ha-memcached-stats:: Getting `memcached' Statistics * ha-memcached-faq:: `memcached' FAQ -The largest problem with scalability within a typical environment is -the speed with which you can access information. For frequently -accessed information, using MySQL can be slow because each access of -information requires execution of the SQL query and recovery of the -information from the database. This also means that queries on tables -that are locked or blocking may delay your query and reduce the speed -of recovery of information. - `memcached' is a simple, yet highly scalable key-based cache that stores data and objects wherever dedicated or spare RAM is available -for very quick access by applications. To use, you run `memcached' on -one or more hosts and then use the shared cache to store objects. -Because each host's RAM is storing information, the access speed is -much faster than loading the information from disk. This can provide a -significant performance boost in retrieving data versus loading the data -natively from a database. Also, because the cache is just a repository -for information, you can use the cache to store any data, including -complex structures that would normally require a significant amount of -effort to create, but in a ready-to-use format, helping to reduce the -load on your MySQL servers. +for very quick access by applications, without going through layers of +parsing or disk I/O. To use, you run `memcached' on one or more hosts +and then use the shared cache to store objects. Because each host's RAM +is storing information, the access speed is much faster than loading the +information from disk. This can provide a significant performance boost +in retrieving data versus loading the data natively from a database. +Also, because the cache is just a repository for information, you can +use the cache to store any data, including complex structures that +would normally require a significant amount of effort to create, but in +a ready-to-use format, helping to reduce the load on your MySQL servers. The typical usage environment is to modify your application so that information is read from the cache provided by `memcached'. If the @@ -120454,12 +120460,13 @@ data and structures, much faster than natively reading the information from the database. -The data held within a `memcached' server is never stored on disk (only -in RAM, which means there is no persistence of data), and the RAM cache -is always populated from the backing store (a MySQL database). If a -`memcached' server fails, the data can always be recovered from the -MySQL database, albeit at a slower speed than loading the information -from the cache. +The data held within a traditional `memcached' server is never stored +on disk (only in RAM, which means there is no persistence of data), and +the RAM cache is always populated from the backing store (a MySQL +database). If a `memcached' server fails, the data can always be +recovered from the MySQL database. + +* `memcached' Integration with MySQL Storage Engines * In April 2011, MySQL announced the preview of a new memcached interface for the InnoDB and MySQL Cluster storage engines. @@ -120469,7 +120476,8 @@ ensuring low latency and high throughput for read/write queries. Operations such as SQL parsing are eliminated and more of the server's hardware resources (CPU, memory and I/O) are dedicated to servicing the -query within the storage engine itself. +query within the storage engine itself. The `memcached' data can be +persisted to disk while still cached in memory for fast retrieval. These are targeted to be incorporated into future MySQL 5.6 Milestone and MySQL Cluster Development Releases. @@ -121708,7 +121716,7 @@ 33: Client using the ascii protocol Note that the socket descriptor is only valid while the - client remains connected. Non-persistant connections may not + client remains connected. Non-persistent connections may not be effectively represented. Examples of the error messages output at this level include: @@ -124788,21 +124796,20 @@ The MySQL Proxy is an application that communicates over the network using the MySQL network protocol and provides communication between one -or more MySQL servers and one or more MySQL clients. In the most basic -configuration, MySQL Proxy simply interposes itself between the server -and clients, passing queries from the clients to the MySQL Server and -returning the responses from the MySQL Server to the appropriate client. - -Because MySQL Proxy uses the MySQL network protocol, it can be used -without modification with any MySQL-compatible client that uses the -protocol. This includes the *Note `mysql': mysql. command-line client, -any clients that uses the MySQL client libraries, and any connector -that supports the MySQL network protocol. - -In addition to the basic pass-through configuration, the MySQL Proxy is -also capable of monitoring and altering the communication between the -client and the server. Query interception enables you to add profiling, -and interception of the exchanges is scriptable using the Lua scripting +or more MySQL servers and one or more MySQL clients. Because MySQL +Proxy uses the MySQL network protocol, it can be used without +modification with any MySQL-compatible client that uses the protocol. +This includes the *Note `mysql': mysql. command-line client, any +clients that uses the MySQL client libraries, and any connector that +supports the MySQL network protocol. + +In the most basic configuration, MySQL Proxy simply interposes itself +between the server and clients, passing queries from the clients to the +MySQL Server and returning the responses from the MySQL Server to the +appropriate client. In more advanced configurations, the MySQL Proxy +can also monitor and alter the communication between the client and the +server. Query interception enables you to add profiling, and +interception of the exchanges is scriptable using the Lua scripting language. By intercepting the queries from the client, the proxy can insert @@ -124818,7 +124825,7 @@ to the client and without the client even being aware that it is communicating with anything but a genuine MySQL server. -This documentation covers MySQL Proxy 0.8.0. +This documentation covers MySQL Proxy 0.8.2. *Warning*: @@ -124909,8 +124916,8 @@ `mysql-proxy': mysql-proxy. command directly: shell> cd /usr/local - shell> tar zxf mysql-proxy-0.7.2-OSX10.5.tar.gz - shell> PATH=$PATH:/usr/local/MYSQL-PROXY-0.7.2-OSX10.5-X86/sbin + shell> tar zxf mysql-proxy-0.8.2-PLATFORM.tar.gz + shell> PATH=$PATH:/usr/local/mysql-proxy-0.8.2-PLATFORM/sbin To update the path globally on a system, you might need administrator privileges to modify the appropriate `/etc/profile', `/etc/bashrc', or @@ -124942,33 +124949,33 @@ 15.7.2.2 Installing MySQL Proxy from a Source Distribution .......................................................... -If you download a source package, you must compile the MySQL Proxy -before using it. A build from source requires that the following -prerequisite components be installed: +You can download a source package and compile the MySQL Proxy yourself. +To build from source, you must have the following prerequisite +components installed: - * `libevent' 1.x or higher (1.3b or later is preferred) + * `libevent' 1.x or higher (1.3b or later is preferred). - * `lua' 5.1.x or higher + * `lua' 5.1.x or higher. - * `glib2' 2.6.0 or higher + * `glib2' 2.6.0 or higher. - * `pkg-config' + * `pkg-config'. - * `libtool' 1.5 or higher + * `libtool' 1.5 or higher. - * MySQL 5.0.x or higher developer files + * MySQL 5.0.x or higher developer files. *Note*: -On some operating systems, you may need to manually build the required -components to get the latest version. If you have trouble compiling -MySQL Proxy, consider using a binary distributions instead. +On some operating systems, you might need to manually build the +required components to get the latest version. If you have trouble +compiling MySQL Proxy, consider using a binary distributions instead. -After you have verified that the prerequisite components are installed, +After verifying that the prerequisite components are installed, configure and build MySQL Proxy: - shell> tar zxf mysql-proxy-0.7.2.tar.gz - shell> cd mysql-proxy-0.7.2 + shell> tar zxf mysql-proxy-0.8.2.tar.gz + shell> cd mysql-proxy-0.8.2 shell> ./configure shell> make @@ -125001,23 +125008,23 @@ A build from the Bazaar repository requires that the following prerequisite components be installed: - * Bazaar 1.10.0 or later + * Bazaar 1.10.0 or later. - * `libtool' 1.5 or higher + * `libtool' 1.5 or higher. - * `autoconf' 2.56 or higher + * `autoconf' 2.56 or higher. - * `automake' 1.10 or higher + * `automake' 1.10 or higher. - * `libevent' 1.x or higher (1.3b or later is preferred) + * `libevent' 1.x or higher (1.3b or later is preferred). - * `lua' 5.1.x or higher + * `lua' 5.1.x or higher. - * `glib2' 2.4.0 or higher + * `glib2' 2.4.0 or higher. - * `pkg-config' + * `pkg-config'. - * MySQL 5.0.x or higher developer files + * MySQL 5.0.x or higher developer files. The *Note `mysql-proxy': mysql-proxy. source is hosted on Launchpad. To check out a local copy of the Bazaar repository, use `bzr': @@ -125045,7 +125052,7 @@ shell> make distcheck -The preceding command creates the file `mysql-proxy-0.7.2.tar.gz' (with +The preceding command creates the file `mysql-proxy-0.8.2.tar.gz' (with the corresponding current version) within the current directory.  @@ -125056,20 +125063,19 @@ The MySQL distribution on Windows includes the `mysql-proxy-svc.exe' command that enables a MySQL Proxy instance to be managed by the -Windows service control manager. This enables you to control the -service without separately running the MySQL Proxy application, and -allows for automatically starting and stopping the MySQL Proxy service -during boot, reboot and shutdown. - -To set up a MySQL Proxy service, you must use the `sc' command to -create a new service using the MySQL Proxy service command. Specify the -MySQL Proxy options on the `sc' command line, and identify the service -with a unique name. For example, to configure a new MySQL Proxy -instance that will automatically start when your system boots, -redirecting queries to the local MySQL server: +Windows service control manager. You can control the service, including +automatically starting and stopping it during boot, reboot and +shutdown, without separately running the MySQL Proxy application. + +To set up a MySQL Proxy service, use the `sc' command to create a new +service using the MySQL Proxy service command. Specify the MySQL Proxy +options on the `sc' command line, and identify the service with a +unique name. For example, to configure a new MySQL Proxy instance that +will automatically start when your system boots, redirecting queries to +the local MySQL server: C:\> sc create "Proxy" DisplayName= "MySQL Proxy" start= "auto" » - binPath= "C:\Program Files\MySQL\mysql-proxy-0.8.0\bin\mysql-proxy-svc.exe » + binPath= "C:\Program Files\MySQL\mysql-proxy-0.8.2\bin\mysql-proxy-svc.exe » --proxy-backend-addresses=127.0.0.1:3306" *Note*: @@ -125079,8 +125085,8 @@ The preceding command creates a new service called `Proxy'. You can start and stop the service using the `net start|stop' command with the -service name. The service is not automatically started after it has -been created. To start the service: +service name. The service is not automatically started after it is +created. To start the service: C:\> net start proxy The MySQL Proxy service is starting. @@ -125109,28 +125115,28 @@ shell> mysql-proxy -However, for most situations, you specify at the very least the host -name or address and the port number of the backend MySQL server to -which the MySQL Proxy should pass queries. +For most situations, you specify at least the host name or address and +the port number of the backend MySQL server to which the MySQL Proxy +should pass queries. You can specify options to *Note `mysql-proxy': mysql-proxy. either on the command line, or by using a configuration file and the `--defaults-file' command-line option to specify the file location. -If you use a configuration file, it should be formatted as follows: +If you use a configuration file, format it as follows: - * Options must be specified within a `[mysql-proxy]' configuration - group. For example: + * Specify the options within a `[mysql-proxy]' configuration group. + For example: [mysql-proxy] admin-address = HOST:PORT - * All configuration options should be specified in the form of a - configuration name and the value to set. + * Specify all configuration options in the form of a configuration + name and the value to set. * For options that are a simple toggle on the command line (for - example, `--proxy-skip-profiling'), you must use `true' or - `false'. For example, the following is invalid: + example, `--proxy-skip-profiling'), use `true' or `false'. For + example, the following is invalid: [mysql-proxy] proxy-skip-profiling @@ -125140,7 +125146,7 @@ [mysql-proxy] proxy-skip-profiling = true - * The configuration file should have permissions of `0660' (readable + * Give the configuration file Unix permissions of `0660' (readable and writable by user and group, no access for others). Failure to adhere to any of these requirements causes *Note @@ -126695,12 +126701,11 @@ so that you must specify an administration script to be used when users connect to the administration interface. -To use the administration interface, you should specify the user name -and password required to connect to the admin service (using the -`--admin-username' and `--admin-password' options). You must also -specify the Lua script to be used as the interface to the -administration service by using the `admin-lua-script' script option to -point to a Lua script. +To use the administration interface, specify the user name and password +required to connect to the admin service, using the `--admin-username' +and `--admin-password' options. You must also specify the Lua script +to be used as the interface to the administration service by using the +`admin-lua-script' script option to point to a Lua script. For example, you can create a basic interface to the internal components of the *Note `mysql-proxy': mysql-proxy. system using the @@ -127051,112 +127056,92 @@ * 15.7.6.4: Can I run MySQL Proxy as a daemon? - * 15.7.6.5: Will the proxy road map involve moving popular features - from Lua to C? (For example, Read/Write splitting.) - - * 15.7.6.6: Do proxy applications run on a separate server? If not, + * 15.7.6.5: Do proxy applications run on a separate server? If not, what is the overhead incurred by Proxy on the DB server side? - * 15.7.6.7: With load balancing, what happens to transactions? Are + * 15.7.6.6: With load balancing, what happens to transactions? Are all queries sent to the same server? - * 15.7.6.8: We have looked at using MySQL Proxy but we are concerned - about the alpha status. When do you think the proxy will be - considered production ready? - - * 15.7.6.9: Is it possible to use MySQL Proxy with updating a Lucene + * 15.7.6.7: Is it possible to use MySQL Proxy with updating a Lucene index (or Solr) by making TCP calls to that server to update? - * 15.7.6.10: Is the system context switch expensive, how much + * 15.7.6.8: Is the system context switch expensive, how much overhead does the Lua script add? - * 15.7.6.11: How much latency does a proxy add to a connection? + * 15.7.6.9: How much latency does a proxy add to a connection? - * 15.7.6.12: Do you have to make one large script and call it at + * 15.7.6.10: Do you have to make one large script and call it at proxy startup, can I change scripts without stopping and restarting (interrupting) the proxy? - * 15.7.6.13: If MySQL Proxy has to live on same machine as MySQL, + * 15.7.6.11: If MySQL Proxy has to live on same machine as MySQL, are there any tuning considerations to ensure both perform optimally? - * 15.7.6.14: Can MySQL Proxy be used on slaves and intercept binary - log messages? - - * 15.7.6.15: I currently use SQL Relay for efficient connection + * 15.7.6.12: I currently use SQL Relay for efficient connection pooling with a number of Apache processes connecting to a MySQL server. Can MySQL Proxy currently accomplish this? My goal is to minimize connection latency while keeping temporary tables available. - * 15.7.6.16: Are these reserved function names (for example, + * 15.7.6.13: Are these reserved function names (for example, `error_result()') that get automatically called? - * 15.7.6.17: As the script is re-read by MySQL Proxy, does it cache + * 15.7.6.14: As the script is re-read by MySQL Proxy, does it cache this or is it looking at the file system with each request? - * 15.7.6.18: Given that there is a `connect_server()' function, can + * 15.7.6.15: Given that there is a `connect_server()' function, can a Lua script link up with multiple servers? - * 15.7.6.19: Is the MySQL Proxy an API? + * 15.7.6.16: Is the MySQL Proxy an API? - * 15.7.6.20: The global namespace variable example with quotas does + * 15.7.6.17: The global namespace variable example with quotas does not persist after a reboot, is that correct? - * 15.7.6.21: Can MySQL Proxy handle SSL connections? + * 15.7.6.18: Can MySQL Proxy handle SSL connections? - * 15.7.6.22: Could MySQL Proxy be used to capture passwords? + * 15.7.6.19: Could MySQL Proxy be used to capture passwords? - * 15.7.6.23: Are there tools for isolating problems? How can someone + * 15.7.6.20: Are there tools for isolating problems? How can someone figure out whether a problem is in the client, the database, or the proxy? - * 15.7.6.24: Can you explain the status of your work with - `memcached' and MySQL Proxy? - - * 15.7.6.25: Is MySQL Proxy similar to what is provided by Java + * 15.7.6.21: Is MySQL Proxy similar to what is provided by Java connection pools? - * 15.7.6.26: So authentication with connection pooling has to be + * 15.7.6.22: So authentication with connection pooling has to be done at every connection? What is the authentication latency? - * 15.7.6.27: If you have multiple databases on the same box, can you + * 15.7.6.23: If you have multiple databases on the same box, can you use proxy to connect to databases on default port 3306? - * 15.7.6.28: What about caching the authorization information so + * 15.7.6.24: What about caching the authorization information so clients connecting are given back-end connections that were established with identical authorization information, thus saving a few more round trips? - * 15.7.6.29: Is there any big web site using MySQL Proxy? For what + * 15.7.6.25: Is there any big web site using MySQL Proxy? For what purpose and what transaction rate have they achieved? - * 15.7.6.30: How does MySQL Proxy compare to DBSlayer? + * 15.7.6.26: How does MySQL Proxy compare to DBSlayer? - * 15.7.6.31: I tried using MySQL Proxy without any Lua script to try + * 15.7.6.27: I tried using MySQL Proxy without any Lua script to try a round-robin type load balancing. In this case, if the first database in the list is down, MySQL Proxy would not connect the client to the second database in the list. - * 15.7.6.32: Is it `safe' to use `LuaSocket' with proxy scripts? + * 15.7.6.28: Is it `safe' to use `LuaSocket' with proxy scripts? - * 15.7.6.33: How different is MySQL Proxy from DBCP (Database + * 15.7.6.29: How different is MySQL Proxy from DBCP (Database connection pooling) for Apache in terms of connection pooling? - * 15.7.6.34: MySQL Proxy can handle about 5000 connections, what is + * 15.7.6.30: MySQL Proxy can handle about 5000 connections, what is the limit on a MySQL server? - * 15.7.6.35: Would the Java-only connection pooling solution work for + * 15.7.6.31: Would the Java-only connection pooling solution work for multiple web servers? With this, I would assume that you can pool across many web servers at once? - * 15.7.6.36: Can you dynamically reconfigure the pool of MySQL - servers that MySQL Proxy will use for load balancing? - - * 15.7.6.37: In the quick poll, I see "Load Balancer: read-write - splitting" as an option, so would it be correct to say that there - are no scripts written for Proxy yet to do this? - *Questions and Answers* *15.7.6.1: ** In load balancing, how can I separate reads from writes? * @@ -127188,117 +127173,95 @@ known file name. On version 0.5.x, the Proxy cannot be started natively as a daemon. -*15.7.6.5: ** Will the proxy road map involve moving popular features -from Lua to C? (For example, Read/Write splitting.) * - -We will keep the high-level parts in the Lua layer to be able to adjust -to special situations without a rebuild. Read/Write splitting sometimes -needs external knowledge that may only be available by the DBA. - -*15.7.6.6: ** Do proxy applications run on a separate server? If not, +*15.7.6.5: ** Do proxy applications run on a separate server? If not, what is the overhead incurred by Proxy on the DB server side? * You can run the proxy on the application server, on its own box, or on the DB-server depending on the use case. -*15.7.6.7: ** With load balancing, what happens to transactions? Are all +*15.7.6.6: ** With load balancing, what happens to transactions? Are all queries sent to the same server? * Without any special customization the whole connection is sent to the same server. That keeps the whole connection state intact. -*15.7.6.8: ** We have looked at using MySQL Proxy but we are concerned -about the alpha status. When do you think the proxy will be considered -production ready? * - -We are on the road to the next feature release: 0.9.0. It will improve -the performance quite a bit. After that we may be able to enter the -beta phase. - -*15.7.6.9: ** Is it possible to use MySQL Proxy with updating a Lucene +*15.7.6.7: ** Is it possible to use MySQL Proxy with updating a Lucene index (or Solr) by making TCP calls to that server to update? * Yes, but it is not advised for now. -*15.7.6.10: ** Is the system context switch expensive, how much -overhead does the Lua script add? * +*15.7.6.8: ** Is the system context switch expensive, how much overhead +does the Lua script add? * Lua is fast and the overhead should be small enough for most applications. The raw packet overhead is around 400 microseconds. -*15.7.6.11: ** How much latency does a proxy add to a connection? * +*15.7.6.9: ** How much latency does a proxy add to a connection? * In the range of 400 microseconds per request. -*15.7.6.12: ** Do you have to make one large script and call it at proxy +*15.7.6.10: ** Do you have to make one large script and call it at proxy startup, can I change scripts without stopping and restarting (interrupting) the proxy? * You can just change the script and the proxy will reload it when a client connects. -*15.7.6.13: ** If MySQL Proxy has to live on same machine as MySQL, are +*15.7.6.11: ** If MySQL Proxy has to live on same machine as MySQL, are there any tuning considerations to ensure both perform optimally? * MySQL Proxy can live on any box: application, database, or its own box. MySQL Proxy uses comparatively little CPU or RAM, with negligible additional requirements or overhead. -*15.7.6.14: ** Can MySQL Proxy be used on slaves and intercept binary -log messages? * - -We are working on that. See -`http://jan.kneschke.de/2008/5/30/mysql-proxy-rbr-to-sbr-decoding' for -an example. - -*15.7.6.15: ** I currently use SQL Relay for efficient connection +*15.7.6.12: ** I currently use SQL Relay for efficient connection pooling with a number of Apache processes connecting to a MySQL server. Can MySQL Proxy currently accomplish this? My goal is to minimize connection latency while keeping temporary tables available. * Yes. -*15.7.6.16: ** Are these reserved function names (for example, +*15.7.6.13: ** Are these reserved function names (for example, `error_result()') that get automatically called? * Only functions and values starting with `proxy.*' are provided by the proxy. All others are user provided. -*15.7.6.17: ** As the script is re-read by MySQL Proxy, does it cache +*15.7.6.14: ** As the script is re-read by MySQL Proxy, does it cache this or is it looking at the file system with each request? * It looks for the script at client-connect and reads it if it has changed, otherwise it uses the cached version. -*15.7.6.18: ** Given that there is a `connect_server()' function, can a +*15.7.6.15: ** Given that there is a `connect_server()' function, can a Lua script link up with multiple servers? * MySQL Proxy provides some tutorials in the source package; one is `examples/tutorial-keepalive.lua'. -*15.7.6.19: ** Is the MySQL Proxy an API? * +*15.7.6.16: ** Is the MySQL Proxy an API? * No, MySQL Proxy is an application that forwards packets from a client to a server using the MySQL network protocol. The MySQL Proxy provides a API allowing you to change its behavior. -*15.7.6.20: ** The global namespace variable example with quotas does +*15.7.6.17: ** The global namespace variable example with quotas does not persist after a reboot, is that correct? * Yes. If you restart the proxy, you lose the results, unless you save them in a file. -*15.7.6.21: ** Can MySQL Proxy handle SSL connections? * +*15.7.6.18: ** Can MySQL Proxy handle SSL connections? * No, being the man-in-the-middle, Proxy cannot handle encrypted sessions because it cannot share the SSL information. -*15.7.6.22: ** Could MySQL Proxy be used to capture passwords? * +*15.7.6.19: ** Could MySQL Proxy be used to capture passwords? * The MySQL network protocol does not allow passwords to be sent in cleartext, all you could capture is the encrypted version. -*15.7.6.23: ** Are there tools for isolating problems? How can someone +*15.7.6.20: ** Are there tools for isolating problems? How can someone figure out whether a problem is in the client, the database, or the proxy? * @@ -127306,13 +127269,7 @@ tool for this purpose. You can see very clearly which component is causing the problem, if you set the right breakpoints. -*15.7.6.24: ** Can you explain the status of your work with `memcached' -and MySQL Proxy? * - -There are some ideas to integrate proxy and `memcache' a bit, but no -code yet. - -*15.7.6.25: ** Is MySQL Proxy similar to what is provided by Java +*15.7.6.21: ** Is MySQL Proxy similar to what is provided by Java connection pools? * Yes and no. Java connection pools are specific to Java applications, @@ -127320,20 +127277,20 @@ protocol. Also, connection pools do not provide any functionality for intelligently examining the network packets and modifying the contents. -*15.7.6.26: ** So authentication with connection pooling has to be done +*15.7.6.22: ** So authentication with connection pooling has to be done at every connection? What is the authentication latency? * You can skip the round-trip and use the connection as it was added to the pool. As long as the application cleans up the temporary tables it used. The overhead is (as always) around 400 microseconds. -*15.7.6.27: ** If you have multiple databases on the same box, can you +*15.7.6.23: ** If you have multiple databases on the same box, can you use proxy to connect to databases on default port 3306? * Yes, MySQL Proxy can listen on any port, provided that none of the MySQL servers are listening on the same port. -*15.7.6.28: ** What about caching the authorization information so +*15.7.6.24: ** What about caching the authorization information so clients connecting are given back-end connections that were established with identical authorization information, thus saving a few more round trips? * @@ -127341,61 +127298,48 @@ There is an `--proxy-pool-no-change-user' option that provides this functionality. -*15.7.6.29: ** Is there any big web site using MySQL Proxy? For what +*15.7.6.25: ** Is there any big web site using MySQL Proxy? For what purpose and what transaction rate have they achieved? * Yes, gaiaonline (http://gaiaonline.com/). They have tested MySQL Proxy and seen it handle 2400 queries per second through the proxy. -*15.7.6.30: ** How does MySQL Proxy compare to DBSlayer? * +*15.7.6.26: ** How does MySQL Proxy compare to DBSlayer? * DBSlayer is a REST->MySQL tool, MySQL Proxy is transparent to your application. No change to the application is needed. -*15.7.6.31: ** I tried using MySQL Proxy without any Lua script to try a +*15.7.6.27: ** I tried using MySQL Proxy without any Lua script to try a round-robin type load balancing. In this case, if the first database in the list is down, MySQL Proxy would not connect the client to the second database in the list. * This issue is fixed in version 0.7.0. -*15.7.6.32: ** Is it `safe' to use `LuaSocket' with proxy scripts? * +*15.7.6.28: ** Is it `safe' to use `LuaSocket' with proxy scripts? * You can, but it is not advised because it may block. -*15.7.6.33: ** How different is MySQL Proxy from DBCP (Database +*15.7.6.29: ** How different is MySQL Proxy from DBCP (Database connection pooling) for Apache in terms of connection pooling? * Connection Pooling is just one use case of the MySQL Proxy. You can use it for a lot more and it works in cases where you cannot use DBCP (for example, if you do not have Java). -*15.7.6.34: ** MySQL Proxy can handle about 5000 connections, what is +*15.7.6.30: ** MySQL Proxy can handle about 5000 connections, what is the limit on a MySQL server? * The server limit is given by the value of the `max_connections' system variable. The default value is version dependent. -*15.7.6.35: ** Would the Java-only connection pooling solution work for +*15.7.6.31: ** Would the Java-only connection pooling solution work for multiple web servers? With this, I would assume that you can pool across many web servers at once? * Yes. But you can also start one proxy on each application server to get a similar behavior as you have it already. -*15.7.6.36: ** Can you dynamically reconfigure the pool of MySQL -servers that MySQL Proxy will use for load balancing? * - -Not yet, it is on the list. We are working on a administration -interface for that purpose. - -*15.7.6.37: ** In the quick poll, I see "Load Balancer: read-write -splitting" as an option, so would it be correct to say that there are no -scripts written for Proxy yet to do this? * - -There is a proof of concept script for that included. But its far from -perfect and may not work for you yet. -  File: manual.info, Node: replication, Next: mysql-cluster, Prev: ha-overview, Up: Top @@ -127418,6 +127362,9 @@ configuration, you can replicate all databases, selected databases, or even selected tables within a database. +For answers to some questions often asked by those who are new to MySQL +Replication, see *Note faqs-replication::. + The target uses for replication in MySQL include: * Scale-out solutions - spreading the load among multiple slaves to @@ -127762,10 +127709,10 @@ account that has privileges only for the replication process, to minimize the possibility of compromise to other accounts. -To create a new acccount, use *Note `CREATE USER': create-user. To -grant this account the privileges required for replication, use the -*Note `GRANT': grant. statement. If you create an account solely for -the purposes of replication, that account needs only the `REPLICATION +To create a new account, use *Note `CREATE USER': create-user. To grant +this account the privileges required for replication, use the *Note +`GRANT': grant. statement. If you create an account solely for the +purposes of replication, that account needs only the `REPLICATION SLAVE' privilege. For example, to set up a new user, `repl', that can connect for replication from any host within the `mydomain.com' domain, issue these statements on the master: @@ -127937,12 +127884,9 @@ part of a MySQL Enterprise subscription. See *Note mysql-enterprise-backup:: for detailed information. -Otherwise, use the cold backup -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_cold_backup) -technique to obtain a reliable binary snapshot of `InnoDB' tables: copy -all data files after doing a slow shutdown -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_slow_shutdown) -of the MySQL Server. +Otherwise, use the cold backup technique to obtain a reliable binary +snapshot of `InnoDB' tables: copy all data files after doing a slow +shutdown of the MySQL Server. To create a raw data snapshot of `MyISAM' tables, you can use standard copy tools such as `cp' or `copy', a remote copy tool such as `scp' or @@ -127951,9 +127895,8 @@ exist on a single file system. If you are replicating only certain databases, copy only those files that relate to those tables. (For `InnoDB', all tables in all databases are stored in the system -tablespace -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_system_tablespace) -files, unless you have the `innodb_file_per_table' option enabled.) +tablespace files, unless you have the `innodb_file_per_table' option +enabled.) You might want to specifically exclude the following files from your archive: @@ -128344,7 +128287,7 @@ variables--setting the variable for the current session lasts only until the end of that session, and the change is not visible to other sessions; setting the variable globally requires a restart of the -server to take effect. For more information, see *Note set-option::. +server to take effect. For more information, see *Note set-statement::. You must have the `SUPER' privilege to set either the global or session `binlog_format' value. @@ -129038,7 +128981,7 @@ can use on replication master servers. You can specify the options either on the *Note command line: command-line-options. or in an *Note option file: option-files. You can specify system variable values using -*Note `SET': set-option. +*Note `SET': set-statement. On the master and each slave, you must use the `server-id' option to establish a unique replication ID. For each server, you should pick a @@ -129290,7 +129233,7 @@ file: option-files. Many of the options can be set while the server is running by using the *Note `CHANGE MASTER TO': change-master-to. statement. You can specify system variable values using *Note `SET': -set-option. +set-statement. Server ID @@ -129545,6 +129488,15 @@ behavior by specifying a different relay log index file basename using the `--relay-log-index' option. + Starting with MySQL 5.5.20, when the server reads an entry from + the index file, it checks whether the entry contains a relative + path. If it does, the relative part of the path in replaced with + the absolute path set using the `--relay-log' option. An absolute + path remains unchanged; in such a case, the index must be edited + manually to enable the new path or paths to be used. Prior to MySQL + 5.5.20, manual intervention was required whenever relocating the + binary log or relay log files. (Bug #11745230, Bug #12133) + You may find the `--relay-log' option useful in performing the following tasks: @@ -130069,9 +130021,10 @@ *Dynamic Variable* No *Permitted Values - * + (>= + 5.5.23)* *Type* `numeric' - *Default* `3306' + *Default* `0' The TCP/IP port number for connecting to the slave, to be reported @@ -130080,6 +130033,11 @@ tunnel from the master or other clients to the slave. If you are not sure, do not use this option. + Prior to MySQL 5.5.23, the default value for this option was 3306. + In MySQL 5.5.23 and later, the default is 0 (Bug #13333431). This + change also affects the default value displayed by *Note `SHOW + SLAVE HOSTS': show-slave-hosts. + * `--report-user=USER_NAME' Options for report-user *Command-Line `--report-user=name' @@ -130294,7 +130252,7 @@ The following list describes system variables for controlling replication slave servers. They can be set at server startup and some -of them can be changed at runtime using *Note `SET': set-option. +of them can be changed at runtime using *Note `SET': set-statement. Server options used with replication slaves are listed earlier in this section. @@ -130488,9 +130446,7 @@ The number of seconds to wait for more data from a master/slave - connection before aborting the read. This timeout applies only to - TCP/IP connections, not to connections made using Unix socket - files, named pipes, or shared memory. + connection before aborting the read. * `slave_skip_errors' @@ -130795,6 +130751,15 @@ a basename (see *Note bugs::, for the reason). Otherwise, MySQL uses `HOST_NAME-bin' as the basename. + In MySQL 5.5.20 and later, when the server reads an entry from the + index file, it checks whether the entry contains a relative path, + and if it does, the relative part of the path in replaced with the + absolute path set using the `--log-bin' option. An absolute path + remains unchanged; in such a case, the index must be edited + manually to enable the new path or paths to be used. Previous to + MySQL 5.5.20, manual intervention was required whenever relocating + the binary log or relay log files. (Bug #11745230, Bug #12133) + Setting this option causes the `log_bin' system variable to be set to `ON' (or `1'), and not to the basename. This is a known issue; see Bug #19614 for more information. @@ -130902,6 +130867,21 @@ For more information, see *Note mysql-cluster-replication-conflict-resolution::. + * `--log-short-format' + + Options for log-short-format *Command-Line `--log-short-format' + Format* + *Option-File Format* `log-short-format' + *Permitted + Values + * + *Type* `boolean' + *Default* `FALSE' + + + Log less information to the binary log and slow query log, if they + have been activated. + Statement selection options The options in the following list affect which statements are written @@ -131139,8 +131119,8 @@ The following list describes system variables for controlling binary logging. They can be set at server startup and some of them can be -changed at runtime using *Note `SET': set-option. Server options used -to control binary logging are listed earlier in this section. +changed at runtime using *Note `SET': set-statement. Server options +used to control binary logging are listed earlier in this section. * `binlog_cache_size' @@ -131188,7 +131168,7 @@ memory used for these caches is double the value set for `binlog_cache_size'. - Begining with MySQL 5.5.9, `binlog_cache_size' sets the size for + Beginning with MySQL 5.5.9, `binlog_cache_size' sets the size for the transaction cache only, and the size of the statement cache is governed by the `binlog_stmt_cache_size' system variable. @@ -131276,6 +131256,14 @@ `binlog_format' is set by the `--binlog-format' option at startup, or by the `binlog_format' variable at runtime. + *Note*: + + While you can change the logging format at runtime, it is _not_ + recommended that you change it while replication is ongoing. This + is due in part to the fact that slaves do not honor the master's + `binlog_format' setting; a given MySQL Server can change only its + own logging format. + In MySQL 5.5, the default format is `STATEMENT'. You must have the `SUPER' privilege to set either the global or @@ -131283,7 +131271,7 @@ The rules governing when changes to this variable take effect and how long the effect lasts are the same as for other MySQL server - system variables. See *Note set-option::, for more information. + system variables. See *Note set-statement::, for more information. When `MIXED' is specified, statement-based replication is used, except for cases where only row-based replication is guaranteed to @@ -131413,7 +131401,7 @@ the effective maximum for these caches is double the value set for `max_binlog_cache_size'. - Begining with MySQL 5.5.9, `max_binlog_cache_size' sets the size + Beginning with MySQL 5.5.9, `max_binlog_cache_size' sets the size for the transaction cache only, and the upper limit for the statement cache is governed by the `max_binlog_stmt_cache_size' system variable. @@ -131459,7 +131447,7 @@ the effective maximum for these caches is double the value set for `max_binlog_cache_size'. - Begining with MySQL 5.5.9, `max_binlog_stmt_cache_size' sets the + Beginning with MySQL 5.5.9, `max_binlog_stmt_cache_size' sets the size for the transaction cache only, and the upper limit for the transaction cache is governed exclusively by the `max_binlog_cache_size' system variable. @@ -131543,7 +131531,7 @@ In MySQL 5.5.3 through 5.5.8, the size for both caches is set using `binlog_cache_size'. This means that, in these MySQL versions, the total memory used for these caches is double the - value set for `binlog_cache_size'. Begining with MySQL 5.5.9, + value set for `binlog_cache_size'. Beginning with MySQL 5.5.9, `binlog_cache_size' sets the size for the transaction cache only. * `sync_binlog' @@ -131977,7 +131965,7 @@ threads were idle, waiting for further updates. The value in the `Time' column can show how late the slave is compared -to the master. See *Note replication-faq::. If sufficient time elapses +to the master. See *Note faqs-replication::. If sufficient time elapses on the master side without activity on the `Binlog Dump' thread, the master determines that the slave is no longer connected. As for any other client connection, the timeouts for this depend on the values of @@ -133657,7 +133645,7 @@ To set up semisynchronous replication, use the following instructions. The *Note `INSTALL PLUGIN': install-plugin, *Note `SET GLOBAL': -set-option, *Note `STOP SLAVE': stop-slave, and *Note `START SLAVE': +set-statement, *Note `STOP SLAVE': stop-slave, and *Note `START SLAVE': start-slave. statements mentioned here require the `SUPER' privilege. The semisynchronous replication plugins are included with MySQL @@ -133710,8 +133698,8 @@ To control whether an installed plugin is enabled, set the appropriate system variables. You can set these variables at runtime using *Note -`SET GLOBAL': set-option, or at server startup on the command line or in -an option file. +`SET GLOBAL': set-statement, or at server startup on the command line +or in an option file. At runtime, these master-side system variables are available: @@ -133811,7 +133799,6 @@ * replication-features:: Replication Features and Issues * replication-compatibility:: Replication Compatibility Between MySQL Versions * replication-upgrade:: Upgrading a Replication Setup -* replication-faq:: Replication FAQ * replication-problems:: Troubleshooting Replication * replication-bugs:: How to Report Replication Bugs or Problems @@ -135046,6 +135033,23 @@ to all tables, so it may hide other replication errors in non-*Note `MEMORY': memory-storage-engine. tables. +The size of *Note `MEMORY': memory-storage-engine. tables is limited by +the value of the `max_heap_table_size' system variable, which is not +replicated (see *Note replication-features-variables::). A change in +`max_heap_table_size' takes effect for `MEMORY' tables that are created +or updated using *Note `ALTER TABLE ... ENGINE = MEMORY': alter-table. +or *Note `TRUNCATE TABLE': truncate-table. following the change, or for +all *Note `MEMORY': memory-storage-engine. tables following a server +restart. If you increase the value of this variable on the master +without doing so on the slave, it becomes possible for a table on the +master to grow larger than its counterpart on the slave, leading to +inserts that succeed on the master but fail on the slave with `Table is +full' errors. This is a known issue (Bug #48666). In such cases, you +must set the global value of `max_heap_table_size' on the slave as well +as on the master, then restart replication. It is also recommended that +you restart both the master and slave MySQL servers, to insure that the +new value takes complete (global) effect on each of them. + See *Note memory-storage-engine::, for more information about *Note `MEMORY': memory-storage-engine. tables. @@ -135567,6 +135571,14 @@ tables, table locking, and the *Note `SET PASSWORD': set-password. statement in different MySQL versions. +The `max_heap_table_size' system variable is not replicated. Increasing +the value of this variable on the master without doing so on the slave +can lead eventually to `Table is full' errors on the slave when trying +to execute *Note `INSERT': insert. statements on a *Note `MEMORY': +memory-storage-engine. table on the master that is thus permitted to +grow larger than its counterpart on the slave. For more information, +see *Note replication-features-memory::. + In statement-based replication, session variables are not replicated properly when used in statements that update tables. For example, the following sequence of statements will not insert the same data on the @@ -135708,7 +135720,7 @@ replication-features::.  -File: manual.info, Node: replication-upgrade, Next: replication-faq, Prev: replication-compatibility, Up: replication-notes +File: manual.info, Node: replication-upgrade, Next: replication-problems, Prev: replication-compatibility, Up: replication-notes 16.4.3 Upgrading a Replication Setup ------------------------------------ @@ -135785,301 +135797,9 @@ option.  -File: manual.info, Node: replication-faq, Next: replication-problems, Prev: replication-upgrade, Up: replication-notes - -16.4.4 Replication FAQ ----------------------- - -*Questions* - * 16.4.4.1: Must the slave be connected to the master all the time? - - * 16.4.4.2: Must I enable networking on my master and slave to enable - replication? - - * 16.4.4.3: How do I know how late a slave is compared to the - master? In other words, how do I know the date of the last - statement replicated by the slave? - - * 16.4.4.4: How do I force the master to block updates until the - slave catches up? - - * 16.4.4.5: What issues should I be aware of when setting up two-way - replication? - - * 16.4.4.6: - - How can I use replication to improve performance of my system? - - * 16.4.4.7: What should I do to prepare client code in my own - applications to use performance-enhancing replication? - - * 16.4.4.8: When and how much can MySQL replication improve the - performance of my system? - - * 16.4.4.9: How can I use replication to provide redundancy or high - availability? - - * 16.4.4.10: How do I tell whether a master server is using - statement-based or row-based binary logging format? - - * 16.4.4.11: How do I tell a slave to use row-based replication? - - * 16.4.4.12: How do I prevent *Note `GRANT': grant. and *Note - `REVOKE': revoke. statements from replicating to slave machines? - - * 16.4.4.13: Does replication work on mixed operating systems (for - example, the master runs on Linux while slaves run on Mac OS X and - Windows)? - - * 16.4.4.14: Does replication work on mixed hardware architectures - (for example, the master runs on a 64-bit machine while slaves run - on 32-bit machines)? - -*Questions and Answers* *16.4.4.1: ** Must the slave be connected to -the master all the time? * - -No, it does not. The slave can go down or stay disconnected for hours -or even days, and then reconnect and catch up on updates. For example, -you can set up a master/slave relationship over a dial-up link where -the link is up only sporadically and for short periods of time. The -implication of this is that, at any given time, the slave is not -guaranteed to be in synchrony with the master unless you take some -special measures. - -To ensure that catchup can occur for a slave that has been -disconnected, you must not remove binary log files from the master that -contain information that has not yet been replicated to the slaves. -Asynchronous replication can work only if the slave is able to continue -reading the binary log from the point where it last read events. - -*16.4.4.2: ** Must I enable networking on my master and slave to enable -replication? * - -Yes, networking must be enabled on the master and slave. If networking -is not enabled, the slave cannot connect to the master and transfer the -binary log. Check that the `skip-networking' option has not been -enabled in the configuration file for either server. - -*16.4.4.3: ** How do I know how late a slave is compared to the master? -In other words, how do I know the date of the last statement replicated -by the slave? * - -Check the `Seconds_Behind_Master' column in the output from *Note `SHOW -SLAVE STATUS': show-slave-status. See *Note -replication-administration-status::. - -When the slave SQL thread executes an event read from the master, it -modifies its own time to the event timestamp. (This is why *Note -`TIMESTAMP': datetime. is well replicated.) In the `Time' column in the -output of *Note `SHOW PROCESSLIST': show-processlist, the number of -seconds displayed for the slave SQL thread is the number of seconds -between the timestamp of the last replicated event and the real time of -the slave machine. You can use this to determine the date of the last -replicated event. Note that if your slave has been disconnected from -the master for one hour, and then reconnects, you may immediately see -large `Time' values such as 3600 for the slave SQL thread in *Note -`SHOW PROCESSLIST': show-processlist. This is because the slave is -executing statements that are one hour old. See *Note -replication-implementation-details::. - -*16.4.4.4: ** How do I force the master to block updates until the slave -catches up? * - -Use the following procedure: - - 1. On the master, execute these statements: - - mysql> FLUSH TABLES WITH READ LOCK; - mysql> SHOW MASTER STATUS; - - Record the replication coordinates (the current binary log file - name and position) from the output of the *Note `SHOW': show. - statement. - - 2. On the slave, issue the following statement, where the arguments - to the `MASTER_POS_WAIT()' function are the replication coordinate - values obtained in the previous step: - - mysql> SELECT MASTER_POS_WAIT('LOG_NAME', LOG_POS); - - The *Note `SELECT': select. statement blocks until the slave - reaches the specified log file and position. At that point, the - slave is in synchrony with the master and the statement returns. - - 3. On the master, issue the following statement to enable the master - to begin processing updates again: - - mysql> UNLOCK TABLES; - -*16.4.4.5: ** What issues should I be aware of when setting up two-way -replication? * - -MySQL replication currently does not support any locking protocol -between master and slave to guarantee the atomicity of a distributed -(cross-server) update. In other words, it is possible for client A to -make an update to co-master 1, and in the meantime, before it -propagates to co-master 2, client B could make an update to co-master 2 -that makes the update of client A work differently than it did on -co-master 1. Thus, when the update of client A makes it to co-master 2, -it produces tables that are different from what you have on co-master -1, even after all the updates from co-master 2 have also propagated. -This means that you should not chain two servers together in a two-way -replication relationship unless you are sure that your updates can -safely happen in any order, or unless you take care of mis-ordered -updates somehow in the client code. - -You should also realize that two-way replication actually does not -improve performance very much (if at all) as far as updates are -concerned. Each server must do the same number of updates, just as you -would have a single server do. The only difference is that there is a -little less lock contention because the updates originating on another -server are serialized in one slave thread. Even this benefit might be -offset by network delays. - -*16.4.4.6: ** ** ** How can I use replication to improve performance of -my system? * - -Set up one server as the master and direct all writes to it. Then -configure as many slaves as you have the budget and rackspace for, and -distribute the reads among the master and the slaves. You can also -start the slaves with the `--skip-innodb', `--low-priority-updates', and -`--delay-key-write=ALL' options to get speed improvements on the slave -end. In this case, the slave uses nontransactional `MyISAM' tables -instead of `InnoDB' tables to get more speed by eliminating -transactional overhead. - -*16.4.4.7: ** What should I do to prepare client code in my own -applications to use performance-enhancing replication? * - -See the guide to using replication as a scale-out solution, *Note -replication-solutions-scaleout::. - -*16.4.4.8: ** When and how much can MySQL replication improve the -performance of my system? * - -MySQL replication is most beneficial for a system that processes -frequent reads and infrequent writes. In theory, by using a -single-master/multiple-slave setup, you can scale the system by adding -more slaves until you either run out of network bandwidth, or your -update load grows to the point that the master cannot handle it. - -To determine how many slaves you can use before the added benefits -begin to level out, and how much you can improve performance of your -site, you must know your query patterns, and determine empirically by -benchmarking the relationship between the throughput for reads and -writes on a typical master and a typical slave. The example here shows -a rather simplified calculation of what you can get with replication -for a hypothetical system. Let `reads' and `writes' denote the number -of reads and writes per second, respectively. - -Let's say that system load consists of 10% writes and 90% reads, and we -have determined by benchmarking that `reads' is 1200 - 2 x `writes'. In -other words, the system can do 1,200 reads per second with no writes, -the average write is twice as slow as the average read, and the -relationship is linear. Suppose that the master and each slave have the -same capacity, and that we have one master and N slaves. Then we have -for each server (master or slave): - -`reads' = 1200 - 2 x `writes' - -`reads' = 9 x `writes' / (N + 1) (reads are split, but writes -replicated to all slaves) - -9 x `writes' / (N + 1) + 2 x `writes' = 1200 - -`writes' = 1200 / (2 + 9/(N + 1)) - -The last equation indicates the maximum number of writes for N slaves, -given a maximum possible read rate of 1,200 per minute and a ratio of -nine reads per write. - -This analysis yields the following conclusions: - - * If N = 0 (which means we have no replication), our system can - handle about 1200/11 = 109 writes per second. - - * If N = 1, we get up to 184 writes per second. - - * If N = 8, we get up to 400 writes per second. - - * If N = 17, we get up to 480 writes per second. - - * Eventually, as N approaches infinity (and our budget negative - infinity), we can get very close to 600 writes per second, - increasing system throughput about 5.5 times. However, with only - eight servers, we increase it nearly four times. - -Note that these computations assume infinite network bandwidth and -neglect several other factors that could be significant on your system. -In many cases, you may not be able to perform a computation similar to -the one just shown that accurately predicts what will happen on your -system if you add N replication slaves. However, answering the -following questions should help you decide whether and by how much -replication will improve the performance of your system: - - * What is the read/write ratio on your system? - - * How much more write load can one server handle if you reduce the - reads? - - * For how many slaves do you have bandwidth available on your - network? - -*16.4.4.9: ** How can I use replication to provide redundancy or high -availability? * - -How you implement redundancy is entirely dependent on your application -and circumstances. High-availability solutions (with automatic -failover) require active monitoring and either custom scripts or third -party tools to provide the failover support from the original MySQL -server to the slave. - -To handle the process manually, you should be able to switch from a -failed master to a pre-configured slave by altering your application to -talk to the new server or by adjusting the DNS for the MySQL server -from the failed server to the new server. - -For more information and some example solutions, see *Note -replication-solutions-switch::. - -*16.4.4.10: ** How do I tell whether a master server is using -statement-based or row-based binary logging format? * - -Check the value of the `binlog_format' system variable: - - mysql> SHOW VARIABLES LIKE 'binlog_format'; - -The value shown will be one of `STATEMENT', `ROW', or `MIXED'. For -`MIXED' mode, row-based logging is preferred but replication switches -automatically to statement-based logging under certain conditions; for -information about when this may occur, see *Note binary-log-mixed::. - -*16.4.4.11: ** How do I tell a slave to use row-based replication? * - -Slaves automatically know which format to use. - -*16.4.4.12: ** How do I prevent *Note `GRANT': grant. and *Note -`REVOKE': revoke. statements from replicating to slave machines? * - -Start the server with the `--replicate-wild-ignore-table=mysql.%' -option to ignore replication for tables in the `mysql' database. - -*16.4.4.13: ** Does replication work on mixed operating systems (for -example, the master runs on Linux while slaves run on Mac OS X and -Windows)? * - -Yes. - -*16.4.4.14: ** Does replication work on mixed hardware architectures -(for example, the master runs on a 64-bit machine while slaves run on -32-bit machines)? * - -Yes. - - -File: manual.info, Node: replication-problems, Next: replication-bugs, Prev: replication-faq, Up: replication-notes +File: manual.info, Node: replication-problems, Next: replication-bugs, Prev: replication-upgrade, Up: replication-notes -16.4.5 Troubleshooting Replication +16.4.4 Troubleshooting Replication ---------------------------------- If you have followed the instructions but your replication setup is not @@ -136186,7 +135906,7 @@  File: manual.info, Node: replication-bugs, Prev: replication-problems, Up: replication-notes -16.4.6 How to Report Replication Bugs or Problems +16.4.5 How to Report Replication Bugs or Problems ------------------------------------------------- When you have determined that there is no user error involved, and @@ -136260,10 +135980,12 @@ This chapter contains information about _MySQL Cluster_, which is a high-availability, high-redundancy version of MySQL adapted for the -distributed computing environment. Current releases of MySQL Cluster +distributed computing environment. Recent releases of MySQL Cluster use version 7 of the *Note `NDBCLUSTER': mysql-cluster. storage engine (also known as *Note `NDB': mysql-cluster.) to enable running several -computers with MySQL servers and other software in a cluster. +computers with MySQL servers and other software in a cluster; the +latest releases available for production use incorporate `NDB' version +7.2. Support for the *Note `NDBCLUSTER': mysql-cluster. storage engine is not included in the standard MySQL Server 5.5 binaries built by Oracle. @@ -136275,12 +135997,13 @@ be obtained are listed later in this section.) This chapter contains information about MySQL Cluster NDB 7.2 releases -through 5.5.17-ndb-7.2.4. Currently, the MySQL Cluster NDB 7.1 release -series is Generally Available (GA). MySQL Cluster NDB 7.0 and MySQL -Cluster NDB 6.3 are previous GA release series; although these are -still supported, we recommend that new deployments use MySQL Cluster -NDB 7.1. For information about MySQL Cluster NDB 7.1 and previous -release series, see MySQL Cluster NDB 6.X/7.X +through 5.5.20-ndb-7.2.5. Currently, the MySQL Cluster NDB 7.2 release +series is Generally Available (GA), as is MySQL Cluster NDB 7.1. MySQL +Cluster NDB 7.0 and MySQL Cluster NDB 6.3 are previous GA release +series; although they are still supported, we recommend that new +deployments use MySQL Cluster NDB 7.2. For information about MySQL +Cluster NDB 7.1, MySQL Cluster NDB 7.0, and previous versions of MySQL +Cluster, see MySQL Cluster NDB 6.X/7.X (http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster.html), in the `MySQL 5.1 Manual'. @@ -136311,25 +136034,25 @@ The version string displayed by MySQL Cluster programs uses this format: - mysql-MYSQL_SERVER_VERSION-ndb-NDBCLUSTER_ENGINE_VERSION + mysql-MYSQL_SERVER_VERSION-ndb-NDB_ENGINE_VERSION MYSQL_SERVER_VERSION represents the version of the MySQL Server on which the MySQL Cluster release is based. For all MySQL Cluster NDB 6.x -and 7.x releases, this is `5.1'. NDBCLUSTER_ENGINE_VERSION is the -version of the *Note `NDBCLUSTER': mysql-cluster. storage engine used -by this release of the MySQL Cluster software. You can see this format -used in the *Note `mysql': mysql. client, as shown here: +and 7.x releases, this is `5.1'. NDB_ENGINE_VERSION is the version of +the *Note `NDB': mysql-cluster. storage engine used by this release of +the MySQL Cluster software. You can see this format used in the *Note +`mysql': mysql. client, as shown here: shell> mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 - Server version: 5.1.56-ndb-7.1.19 Source distribution + Server version: 5.1.61-ndb-7.1.20 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> SELECT VERSION()\G *************************** 1. row *************************** - VERSION(): 5.1.56-ndb-7.1.19 + VERSION(): 5.1.61-ndb-7.1.20 1 row in set (0.00 sec) This version string is also displayed in the output of the `SHOW' @@ -136340,39 +136063,39 @@ Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) - id=1 @10.0.10.6 (5.5.17-ndb-7.2.4, Nodegroup: 0, Master) - id=2 @10.0.10.8 (5.5.17-ndb-7.2.4, Nodegroup: 0) + id=1 @10.0.10.6 (5.5.20-ndb-7.2.5, Nodegroup: 0, Master) + id=2 @10.0.10.8 (5.5.20-ndb-7.2.5, Nodegroup: 0) [ndb_mgmd(MGM)] 1 node(s) - id=3 @10.0.10.2 (5.5.17-ndb-7.2.4) + id=3 @10.0.10.2 (5.5.20-ndb-7.2.5) [mysqld(API)] 2 node(s) - id=4 @10.0.10.10 (5.5.17-ndb-7.2.4) + id=4 @10.0.10.10 (5.5.20-ndb-7.2.5) id=5 (not connected, accepting connect from any host) The version string identifies the mainline MySQL version from which the MySQL Cluster release was branched and the version of the *Note `NDBCLUSTER': mysql-cluster. storage engine used. For example, the full -version string for MySQL Cluster NDB 7.2.1 (the first MySQL Cluster -release based on MySQL Server 5.5) is `mysql-5.5.15-ndb-7.2.1'. From -this we can determine the following: +version string for MySQL Cluster NDB 7.2.4 (the first MySQL Cluster +production release based on MySQL Server 5.5) is +`mysql-5.5.19-ndb-7.2.4'. From this we can determine the following: * Since the portion of the version string preceding ``-ndb-'' is the - base MySQL Server version, this means that MySQL Cluster NDB 7.2.1 - derives from the MySQL 5.5.15, and contains all feature + base MySQL Server version, this means that MySQL Cluster NDB 7.2.4 + derives from the MySQL 5.5.19, and contains all feature enhancements and bugfixes from MySQL 5.5 up to and including MySQL - 5.5.15. + 5.5.19. * Since the portion of the version string following ``-ndb-'' represents the version number of the *Note `NDB': mysql-cluster. (or *Note `NDBCLUSTER': mysql-cluster.) storage engine, MySQL - Cluster NDB 7.2.1 uses version 7.2.1 of the *Note `NDBCLUSTER': + Cluster NDB 7.2.4 uses version 7.2.4 of the *Note `NDBCLUSTER': mysql-cluster. storage engine. New MySQL Cluster releases are numbered according to updates in the `NDB' storage engine, and do not necessarily correspond in a one-to-one fashion with mainline MySQL Server releases. For example, MySQL Cluster -NDB 7.2.1 (as previously noted) is based on MySQL 5.5.15, while MySQL +NDB 7.2.4 (as previously noted) is based on MySQL 5.5.19, while MySQL Cluster NDB 7.2.0 was based on MySQL 5.1.51 (version string: `mysql-5.1.51-ndb-7.2.0'). @@ -136398,26 +136121,6 @@ MySQL Cluster development trees can also be accessed from `https://code.launchpad.net/~mysql/': - * `MySQL Cluster NDB 6.1 - (https://code.launchpad.net/~mysql/mysql-server/mysql-5.1-telco-6.1)' - (_ABANDONED--no longer maintained_) - - * `MySQL Cluster NDB 6.2 - (https://code.launchpad.net/~mysql/mysql-server/mysql-5.1-telco-6.2)' - (_OBSOLETE_--in maintenance mode) - - * `MySQL Cluster NDB 6.3 - (https://code.launchpad.net/~mysql/mysql-server/mysql-5.1-telco-6.3)' - (_PAST CURRENT_--still maintained) - - * `MySQL Cluster NDB 7.0 - (https://code.launchpad.net/~mysql/mysql-server/mysql-cluster-7.0)' - (_CURRENT_) - - * `MySQL Cluster NDB 7.1 - (https://code.launchpad.net/~mysql/mysql-server/mysql-cluster-7.1)' - (_CURRENT_) - The MySQL Cluster development sources maintained at `https://code.launchpad.net/~mysql/' are licensed under the GPL. For information about obtaining MySQL sources using Bazaar and building @@ -136427,12 +136130,14 @@ As with MySQL Server 5.5, MySQL Cluster NDB 7.2 is built using `CMake'. -Currently, MySQL Cluster NDB 7.0 and MySQL Cluster NDB 7.1 releases are -both Generally Available (GA), although we recommend that new -deployments use MySQL Cluster NDB 7.1. MySQL Cluster NDB 6.1, MySQL -Cluster NDB 6.2, and MySQL Cluster NDB 6.3, are no longer in active -development. For an overview of major features added in MySQL Cluster -NDB 6.x and 7.x releases, see MySQL Cluster Development History +Currently, MySQL Cluster NDB 7.0, MySQL Cluster NDB 7.1, and MySQL +Cluster NDB 7.2 releases are all Generally Available (GA), although we +recommend that new deployments use MySQL Cluster NDB 7.2. MySQL Cluster +NDB 6.1, MySQL Cluster NDB 6.2, and MySQL Cluster NDB 6.3, are no +longer in active development. For an overview of major features added +in MySQL Cluster NDB 7.2, see *Note mysql-cluster-development::. For an +overview of major features added in past MySQL Cluster releases through +MySQL Cluster NDB 7.1, see MySQL Cluster Development History (http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-development.html). This chapter represents a work in progress, and its contents are @@ -136508,7 +136213,7 @@ see this change immediately. Although a MySQL Cluster SQL node uses the *Note `mysqld': mysqld. -server damon, it differs in a number of critical respects from the +server daemon, it differs in a number of critical respects from the *Note `mysqld': mysqld. binary supplied with the MySQL 5.5 distributions, and the two versions of *Note `mysqld': mysqld. are not interchangeable. @@ -136701,6 +136406,19 @@ (http://dev.mysql.com/doc/ndbapi/en/mccj-overview-clusterj-object-models.html), for more information. +The Memcache API for MySQL Cluster, implemented as the loadable +_ndbmemcache_ storage engine for memcached version 1.6 and later, is +available beginning with MySQL Cluster NDB 7.2.2. This API can be used +to provide a persistent MySQL Cluster data store, accessed using the +memcache protocol. + +The standard `memcached' caching engine is included in the MySQL +Cluster NDB 7.2 distribution (7.2.2 and later). Each `memcached' server +has direct access to data stored in MySQL Cluster, but is also able to +cache data locally and to serve (some) requests from this local cache. + +For more information, see *Note mysql-cluster-ndbmemcache::. + Management clients These clients connect to the management server and provide commands for @@ -136941,7 +136659,7 @@ applications, or configuration to support MySQL Cluster. For supported operating systems, a standard installation should be sufficient. The MySQL software requirements are simple: all that is needed is a -production release of MySQL 5.1.56-ndb-7.0.30 or 5.1.56-ndb-7.1.19 to +production release of MySQL 5.1.61-ndb-7.0.31 or 5.1.61-ndb-7.1.20 to have MySQL Cluster support. It is not strictly necessary to compile MySQL yourself merely to be able to use MySQL Cluster. We assume that you are using the binaries appropriate to your platform, available from @@ -136999,7 +136717,7 @@ The failure of a data or API node results in the abort of all uncommitted transactions involving the failed node. Data node recovery -requires synchronization of the failed notde's data from a surviving +requires synchronization of the failed node's data from a surviving data node, and re-establishment of disk-based redo and checkpoint logs, before the data node returns to service. This recovery can take some time, during which the Cluster operates with reduced redundancy. @@ -137012,7 +136730,7 @@ respond as failed. This treatment of a slow node as a failed one may or may not be -desireable in some circumstances, depending on the impact of the node's +desirable in some circumstances, depending on the impact of the node's slowed operation on the rest of the cluster. When setting timeout values such as `HeartbeatIntervalDbDb' and `HeartbeatIntervalDbApi' for MySQL Cluster, care must be taken care to achieve quick detection, @@ -137099,16 +136817,18 @@ as `HeartbeatIntervalDbDb' and `ArbitrationTimeout' have been improved. +Support for the Memcache API using +the loadable ndbmemcache storage +engine. See *Note +mysql-cluster-ndbmemcache::. This section contains information about MySQL Cluster NDB 7.2 releases -through 5.5.17-ndb-7.2.4, which is currently available as a Developer -Preview for evaluation and testing of new features, but is not yet -ready for use in production. The current Generally Available (GA) MySQL -Cluster NDB release series is MySQL Cluster NDB 7.1. MySQL Cluster NDB -7.0 and MySQL Cluster NDB 6.3 are previous GA release series; although -these are still supported, we recommend that new deployments use MySQL -Cluster NDB 7.1. For information about MySQL Cluster NDB 7.1 and -previous release series, see MySQL Cluster NDB 6.X/7.X +through 5.5.20-ndb-7.2.5, which is currently available for use in +production beginning with MySQL Cluster NDB 7.2.4. MySQL Cluster NDB +7.1, MySQL Cluster NDB 7.0, and MySQL Cluster NDB 6.3 are previous GA +release series; although these are still supported, we recommend that +new deployments use MySQL Cluster NDB 7.2. For information about MySQL +Cluster NDB 7.1 and previous releases, see MySQL Cluster NDB 6.X/7.X (http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster.html), in the `MySQL 5.1 Manual'. @@ -137159,7 +136879,7 @@ to facilitate further improvements in MySQL Replication. You can cause a given *Note `mysqld': mysqld. use Version 1 or Version 2 binary logging row events with the `--log-bin-use-v1-row-events' - option. For backwards compatiblity, Version 2 binary log row + option. For backwards compatibility, Version 2 binary log row events are also available in MySQL Cluster NDB 7.0 (7.0.27 and later) and MySQL Cluster NDB 7.1 (7.1.16 and later). However, MySQL Cluster NDB 7.0 and MySQL Cluster NDB 7.1 continue to use @@ -137263,6 +136983,23 @@ be explicitly disabled, in which case data nodes merely log a warning whenever they detect a corrupted tuple. + * Memcache API support (ndbmemcache) + + The Memcached server is a distributed in-memory caching server + that uses a simple text-based protocol. It is often employed with + key-value stores. The Memcache API for MySQL Cluster, available + beginning with MySQL Cluster NDB 7.2.2, is implemented as a + loadable storage engine for memcached version 1.6 and later. This + API can be used to access a persistent MySQL Cluster data store + employing the memcache protocol. It is also possible for the + `memcached' server to provide a strictly defined interface to + existing MySQL Cluster tables. + + Each memcache server can both cache data locally and access data + stored in MySQL Cluster directly. Caching policies are + configurable. For more information, see *Note + mysql-cluster-ndbmemcache::. +  File: manual.info, Node: mysql-cluster-compared, Next: mysql-cluster-limitations, Prev: mysql-cluster-development, Up: mysql-cluster-overview @@ -137288,28 +137025,23 @@ fit for MySQL Cluster, but not all of them. In this section, we discuss and compare some characteristics of the -*Note `NDB': mysql-cluster. storage engine used by MySQL Cluster with -*Note `InnoDB': innodb-storage-engine. used in MySQL 5.1 and MySQL 5.5. -The next few sections provide a technical comparison. In many -instances, decisions about when and where to use MySQL Cluster must be -made on a case-by-case basis, taking all factors into consideration. -While it is beyond the scope of this documentation to provide specifics -for every conceivable usage scenario, we also attempt to offer some -very general guidance on the relative suitability of some common types -of applications for *Note `NDB': mysql-cluster. as opposed to *Note +*Note `NDB': mysql-cluster. storage engine used by MySQL Cluster NDB +7.2 with *Note `InnoDB': innodb-storage-engine. used in MySQL 5.5. The +next few sections provide a technical comparison. In many instances, +decisions about when and where to use MySQL Cluster must be made on a +case-by-case basis, taking all factors into consideration. While it is +beyond the scope of this documentation to provide specifics for every +conceivable usage scenario, we also attempt to offer some very general +guidance on the relative suitability of some common types of +applications for *Note `NDB': mysql-cluster. as opposed to *Note `InnoDB': innodb-storage-engine. backends. -While it is possible to use *Note `InnoDB': innodb-storage-engine. -tables with MySQL Cluster, such tables are not clustered. It is also -not always possible to use the latest MySQL Cluster and *Note `InnoDB': -innodb-storage-engine. features and enhancements together due to -availability issues. Currently, the latest MySQL Cluster NDB 7.1 -releases use a *Note `mysqld': mysqld. based on MySQL 5.1; while the -most recent *Note `InnoDB': innodb-storage-engine. enhancements are -available only in MySQL Server 5.5, where MySQL Cluster is not currently -supported. It is also not possible to use programs or libraries from a -MySQL Cluster NDB 6.x or MySQL Cluster NDB 7.x distribution with MySQL -Server 5.1 or MySQL Server 5.5, or the reverse. +Recent MySQL Cluster NDB 7.2 releases use a *Note `mysqld': mysqld. +based on MySQL 5.5, including support for *Note `InnoDB': +innodb-storage-engine. 1.1. While it is possible to use `InnoDB' tables +with MySQL Cluster, such tables are not clustered. It is also not +possible to use programs or libraries from a MySQL Cluster NDB 7.2 +distribution with MySQL Server 5.5, or the reverse. While it is also true that some types of common business applications can be run either on MySQL Cluster or on MySQL Server (most likely @@ -137343,67 +137075,41 @@ innodb-storage-engine. in a number of ways. For those unaccustomed to working with *Note `NDB': mysql-cluster, unexpected behaviors can arise due to its distributed nature with regard to transactions, foreign -keys, joins, and other characteristics. These are shown in the +keys, table limits, and other characteristics. These are shown in the following table: -Feature *Note `InnoDB': MySQL Cluster (*Note - innodb-storage-engine. `NDB': mysql-cluster.) -_MySQL Server 5.5 (in latest MySQL 5.1 -Availability_ 5.5 GA release) - (MySQL Cluster NDB 7.0 - and 7.1 SQL nodes - currently based on - MySQL 5.1.56 GA; MySQL - 5.5-based MySQL Cluster - NDB 7.2 in development) -_`InnoDB' Availability _ *Note `InnoDB': _NDB 6.3, 7.0_: *Note - innodb-storage-engine. `InnoDB': - 1.1 plugin innodb-storage-engine. - storage engine - - _NDB 7.1_: *Note - `InnoDB': - innodb-storage-engine. - 1.0 plugin support, as - of MySQL Cluster NDB - 7.1.9a -_Storage Limits_ 64TB 2TB +Feature *Note `InnoDB': MySQL Cluster *Note + innodb-storage-engine. `NDB': mysql-cluster. + 1.1 7.2 +_MySQL Server Version_ 5.5 5.5 +_*Note `InnoDB': *Note `InnoDB': *Note `InnoDB': +innodb-storage-engine. innodb-storage-engine. innodb-storage-engine. +Version _ 1.1 1.1 +_MySQL Cluster Version _ N/A *Note `NDB': + mysql-cluster. 7.2 +_Storage Limits_ 64TB 3TB (Practical upper limit - for database size) + based on 48 data nodes + with 64GB RAM each; can + be increased with + disk-based data and + BLOBs) _Foreign Keys_ Yes No - (Foreign keys ignored, - as with *Note `MyISAM': + (Ignored, as with *Note + `MyISAM': myisam-storage-engine.) -_Transactions_ All standard types Only `READ COMMITTED' - supported +_Transactions_ All standard types `READ COMMITTED' _MVCC Non-Blocking Yes No Reads_ - (Read concurrency - without locks) -_Multi-Table Join Good Poor -Performance_ - (In MySQL Cluster NDB - 7.2, the performance of - many joins can be - greatly enhanced by - pushing them down to - the data nodes; see the - description of the - `ndb_join_pushdown' - system variable and - this MySQL Dev Zone - article - (http://dev.mysql.com/tech-resources/articles/mysql-cluster-labs-dev-milestone-release.html) - for more information) _Data Compression_ Yes No (MySQL Cluster checkpoint and backup files can be compressed) _Large Row Support (> Supported for *Note Supported for *Note -8K)_ `VARBINARY': `BLOB': blob. and *Note +14K)_ `VARBINARY': `BLOB': blob. and *Note binary-varbinary, `TEXT': blob. columns `VARCHAR', *Note only `BLOB': blob, and *Note @@ -137412,74 +137118,58 @@ amounts of data can lower MySQL Cluster performance) -_Virtualization_ No No - - (Not supported in (Not supported in - virtual environments) virtual environments) -_Minimum Number of _2_: 1 active, 1 passive _3_: 2 data nodes, 1 -Physical Hosts for management node -Redundancy _ -_Availability (HA)_ Requires additional Yes (99.999%) - software +_Replication Support_ Asynchronous and Automatic synchronous + semi-synchronous replication within a + replication using MySQL MySQL Cluster. + Replication + Asynchronous + replication between + MySQL Clusters, using + MySQL Replication +_Scaleout for Read Yes (MySQL Replication) Yes (Automatic +Operations_ partitioning in MySQL + Cluster; MySQL + Replication) +_Scaleout for Write Requires Yes (Automatic +Operations_ application-level partitioning in MySQL + partitioning (sharding) Cluster is transparent + to applications) +_High Availability (HA)_ Requires additional Yes (Designed for + software 99.999% uptime) _Node Failure Recovery Requires additional Automatic and Failover_ software (Key element in MySQL Cluster architecture) -_Time for Node Failure 30 seconds to several < 1 second -Recovery_ hours +_Time for Node Failure 30 seconds or longer Typically < 1 second +Recovery_ _Real-Time Performance_ No Yes (Low latency) -_In-Memory Storage_ No Yes +_In-Memory Tables_ No Yes (Some data can optionally be stored on disk; both in-memory and disk data storage are durable) -_Direct (non-SQL) API Native memcached Yes -Access to Storage interface in -Engine _ development (see the Multiple APIs, - MySQL Dev Zone article including C++, - `NoSQL to MySQL with HTTP/REST, Java, and - Memcached' JPA; memcached in - (http://dev.mysql.com/tech-resources/articles/nosql-to-mysql-with-memcached.html))development (see `NoSQL - to MySQL with - Memcached' - (http://dev.mysql.com/tech-resources/articles/nosql-to-mysql-with-memcached.html)) -_Scalability_ (Read scalability using Good - MySQL Replication; write - scalability by means of (Automatic partitioning - application-level of the database provides - partitioning) scalability for both - read and write - operations) +_NoSQL Access to Native memcached Yes +Storage Engine _ interface in + development (see the Multiple APIs, + MySQL Dev Zone article including Memcached, + `NoSQL to MySQL with Java, JPA, C++, and + Memcached' HTTP/REST + (http://dev.mysql.com/tech-resources/articles/nosql-to-mysql-with-memcached.html)) _Concurrent and Not supported Up to 48 writers, Parallel Writes_ optimized for concurrent writes - - (MySQL Cluster supports - up to 48 data nodes for - processing, with 24 - nodes for storage, due - to requirements for - two-fold redundancy) _Conflict Detection and No Yes Resolution (Multiple -Replication Masters)_ (True active-active - geographic replication, - in which each - application node can - read or write to its own - local database) +Replication Masters)_ _Hash Indexes_ No Yes - - (Can provide fast - access to key/value - data) -On-Line Addition of Read-only replicas All node -Nodes using MySQL Replication types--management, - data, and API/SQL nodes -Online Schema No Yes -Modifications +_Online Addition of Read-only replicas Yes (all node types) +Nodes_ using MySQL Replication +_Online Upgrades_ No Yes +_Online Schema No Yes +Modifications_ +_Real-Time Performance_ No Yes  File: manual.info, Node: mysql-cluster-ndb-innodb-workloads, Next: mysql-cluster-ndb-innodb-usage, Prev: mysql-cluster-ndb-innodb-engines, Up: mysql-cluster-compared @@ -137489,27 +137179,33 @@ MySQL Cluster has a range of unique attributes that make it ideal to serve applications requiring high availability, fast failover, high -throughput, and low latency. Due to its real-time nature, distributed -architecture, and multi-node implementation, MySQL Cluster also has -specific constraints that may keep some workloads from performing well. -A number of major differences in behavior between the *Note `NDB': -mysql-cluster. and *Note `InnoDB': innodb-storage-engine. storage -engines with regard to some common types of database-driven application -workloads are shown in the following table:
 +throughput, and low latency. Due to its distributed architecture and +multi-node implementation, MySQL Cluster also has specific constraints +that may keep some workloads from performing well. A number of major +differences in behavior between the *Note `NDB': mysql-cluster. and +*Note `InnoDB': innodb-storage-engine. storage engines with regard to +some common types of database-driven application workloads are shown in +the following table:: Workload *Note `InnoDB': MySQL Cluster (*Note innodb-storage-engine. `NDB': mysql-cluster.) +_High-Volume OLTP Yes Yes +Applications_ +_DSS Applications (data Yes Limited (Join +marts, analytics)_ operations across OLTP + datasets not exceeding + 3TB in size) +_Custom Applications_ Yes Yes +_Packaged Applications_ Yes Limited (should be + mostly primary key + access, without any + requirement for foreign + keys) _In-Network Telecoms No Yes Applications (HLR, HSS, SDP)_ -_Packaged Applications_ Yes Access should be mostly - by primary key -_Custom Applications_ Yes Yes -_OLTP Applications_ Yes Yes -_DSS Applications (data Yes No -marts, analytics)_ -_Content Management_ Yes Limited support -_Web Session Management_ Yes Yes +_Session Management and Yes Yes +Caching_ _E-Commerce Yes Yes Applications_ _User Profile Yes Yes @@ -137534,25 +137230,22 @@ according to which of these two storage engines each of them is usually better suited: -Application requirements better Application requirements better -supported with *Note `InnoDB': supported with *Note `NDB': -innodb-storage-engine. mysql-cluster. - * Foreign keys * Real-time concurrency +Preferred application requirements Preferred application requirements +for *Note `InnoDB': for *Note `NDB': mysql-cluster. +innodb-storage-engine. + * Foreign keys * Write scaling + + * Full table scans * 99.999% uptime - * Large or complex joins * High availability, high-speed - failover - * Very large datastores or - transactions * Fast low-level APIs (see MySQL - Cluster APIs: Overview and - * Transactions other than `READ Concepts - COMMITTED' (http://dev.mysql.com/doc/ndbapi/en/mysql-cluster-api-overview.html)) + * Very large databases, rows, or * Online addition of nodes and + transactions online schema operations - * Preference for SQL interface * High rates of write operations - to data and demand for online schema - updates + * Transactions other than `READ * Multiple SQL and NoSQL APIs + COMMITTED' (see MySQL Cluster APIs: + Overview and Concepts + (http://dev.mysql.com/doc/ndbapi/en/mysql-cluster-api-overview.html)) - * Primary-key lookups, key/value - data + * Real-time performance * Limited use of *Note `BLOB': blob. columns @@ -138250,7 +137943,7 @@ 17.1.6.9 Limitations Relating to MySQL Cluster Disk Data Storage ................................................................ -Disk Data object maxmimums and minimums +Disk Data object maximums and minimums Disk data objects are subject to the following maximums and minimums: @@ -138556,6 +138249,7 @@ * mysql-cluster-install-first-start:: Initial Startup of MySQL Cluster * mysql-cluster-install-example-data:: MySQL Cluster Example with Tables and Data * mysql-cluster-install-shutdown-restart:: Safe Shutdown and Restart of MySQL Cluster +* mysql-cluster-upgrade-downgrade:: Upgrading and Downgrading MySQL Cluster NDB 7.2 This section describes the basics for planning, installing, configuring, and running a MySQL Cluster. Whereas the examples in *Note @@ -138565,6 +138259,9 @@ usable MySQL Cluster which meets the _minimum_ requirements for availability and safeguarding of data. +For information about upgrading or downgrading a MySQL Cluster between +release versions, see *Note mysql-cluster-upgrade-downgrade::. + This section covers hardware and software requirements; networking issues; installation of MySQL Cluster; configuration issues; starting, stopping, and restarting the cluster; loading of a sample database; and @@ -138751,7 +138448,7 @@ For setting up a cluster using precompiled binaries, the first step in the installation process for each cluster host is to download the latest MySQL Cluster NDB 7.2 binary archive -(`mysql-cluster-gpl-7.2.4-linux-i686-glibc23.tar.gz') from the MySQL +(`mysql-cluster-gpl-7.2.5-linux-i686-glibc23.tar.gz') from the MySQL Cluster downloads area (http://dev.mysql.com/downloads/cluster/). We assume that you have placed this file in each machine's `/var/tmp' directory. (If you do require a custom binary, see *Note @@ -138789,8 +138486,8 @@ names vary according to the MySQL Cluster version number. shell> cd /var/tmp - shell> tar -C /usr/local -xzvf mysql-cluster-gpl-7.1.19-linux-i686-glibc23.tar.gz - shell> ln -s /usr/local/mysql-cluster-gpl-7.1.19-linux-i686-glibc23 /usr/local/mysql + shell> tar -C /usr/local -xzvf mysql-cluster-gpl-7.1.20-linux-i686-glibc23.tar.gz + shell> ln -s /usr/local/mysql-cluster-gpl-7.1.20-linux-i686-glibc23 /usr/local/mysql 3. Change location to the `mysql' directory and run the supplied script for creating the system databases: @@ -138852,8 +138549,8 @@ directory such as `/usr/local/bin': shell> cd /var/tmp - shell> tar -zxvf mysql-5.1.56-ndb-7.1.19-linux-i686-glibc23.tar.gz - shell> cd mysql-5.1.56-ndb-7.1.19-linux-i686-glibc23 + shell> tar -zxvf mysql-5.1.61-ndb-7.1.20-linux-i686-glibc23.tar.gz + shell> cd mysql-5.1.61-ndb-7.1.20-linux-i686-glibc23 shell> cp bin/ndb_mgm* /usr/local/bin (You can safely delete the directory created by unpacking the @@ -138886,8 +138583,8 @@ * The *Server* RPM (for example, `MySQL-Cluster-gpl-server-6.3.48-0.sles10.i586.rpm', - `MySQL-Cluster-gpl-server-7.0.30-0.sles10.i586.rpm', or - `MySQL-Cluster-gpl-server-7.1.19-0.sles10.i586.rpm'), which + `MySQL-Cluster-gpl-server-7.0.31-0.sles10.i586.rpm', or + `MySQL-Cluster-gpl-server-7.1.20-0.sles10.i586.rpm'), which supplies the core files needed to run a MySQL Server with *Note `NDBCLUSTER': mysql-cluster. storage engine support (that is, as a MySQL Cluster SQL node). @@ -138896,41 +138593,41 @@ administering a MySQL server, you should also obtain and install the *Client* RPM (for example, `MySQL-Cluster-gpl-client-6.3.48-0.sles10.i586.rpm', - `MySQL-Cluster-gpl-client-7.0.30-0.sles10.i586.rpm', or - `MySQL-Cluster-gpl-client-7.1.19-0.sles10.i586.rpm'). + `MySQL-Cluster-gpl-client-7.0.31-0.sles10.i586.rpm', or + `MySQL-Cluster-gpl-client-7.1.20-0.sles10.i586.rpm'). * The *Cluster storage engine* RPM (for example, `MySQL-Cluster-gpl-storage-6.3.48-0.sles10.i586.rpm', - `MySQL-Cluster-gpl-storage-7.0.30-0.sles10.i586.rpm', or - `MySQL-Cluster-gpl-storage-7.1.19-0.sles10.i586.rpm'), which + `MySQL-Cluster-gpl-storage-7.0.31-0.sles10.i586.rpm', or + `MySQL-Cluster-gpl-storage-7.1.20-0.sles10.i586.rpm'), which supplies the MySQL Cluster data node binary (*Note `ndbd': mysql-cluster-programs-ndbd.). * The *Cluster storage engine management RPM* (for example, `MySQL-Cluster-gpl-management-6.3.48-0.sles10.i586.rpm', - `MySQL-Cluster-gpl-management-7.0.30-0.sles10.i586.rpm', or - `MySQL-Cluster-gpl-management-7.1.19-0.sles10.i586.rpm') which + `MySQL-Cluster-gpl-management-7.0.31-0.sles10.i586.rpm', or + `MySQL-Cluster-gpl-management-7.1.20-0.sles10.i586.rpm') which provides the MySQL Cluster management server binary (*Note `ndb_mgmd': mysql-cluster-programs-ndb-mgmd.). In addition, you should also obtain the *NDB Cluster - Storage engine basic tools* RPM (for example, `MySQL-Cluster-gpl-tools-6.3.48-0.sles10.i586.rpm', -`MySQL-Cluster-gpl-tools-7.0.30-0.sles10.i586.rpm', or -`MySQL-Cluster-gpl-tools-7.1.19-0.sles10.i586.rpm'), which supplies +`MySQL-Cluster-gpl-tools-7.0.31-0.sles10.i586.rpm', or +`MySQL-Cluster-gpl-tools-7.1.20-0.sles10.i586.rpm'), which supplies several useful applications for working with a MySQL Cluster. The most important of these is the MySQL Cluster management client (*Note `ndb_mgm': mysql-cluster-programs-ndb-mgm.). The *NDB Cluster - Storage engine extra tools* RPM (for example, `MySQL-Cluster-gpl-extra-6.3.48-0.sles10.i586.rpm', -`MySQL-Cluster-gpl-extra-7.0.30-0.sles10.i586.rpm', or -`MySQL-Cluster-gpl-extra-7.1.19-0.sles10.i586.rpm') contains some +`MySQL-Cluster-gpl-extra-7.0.31-0.sles10.i586.rpm', or +`MySQL-Cluster-gpl-extra-7.1.20-0.sles10.i586.rpm') contains some additional testing and monitoring programs, but is not required to install a MySQL Cluster. (For more information about these additional programs, see *Note mysql-cluster-programs::.) The MySQL Cluster version number in the RPM file names (shown here as -`6.3.48', `7.0.30', or `7.1.19') can vary according to the version +`6.3.48', `7.0.31', or `7.1.20') can vary according to the version which you are actually using. _It is very important that all of the Cluster RPMs to be installed have the same version number_. The `glibc' version number (if present), and architecture designation (shown here @@ -138945,7 +138642,7 @@ root user, replacing the name shown for the RPM as necessary to match that of the RPM downloaded from the MySQL web site: - shell> rpm -Uhv MySQL-Cluster-gpl-storage-7.1.19-0.sles10.i586.rpm + shell> rpm -Uhv MySQL-Cluster-gpl-storage-7.1.20-0.sles10.i586.rpm The previous command installs the MySQL Cluster data node binary (*Note `ndbd': mysql-cluster-programs-ndbd.) in the `/usr/sbin' directory. @@ -138957,7 +138654,7 @@ replacing the name shown for the RPM as necessary to match the name of the RPM downloaded from the MySQL web site: - shell> rpm -Uhv MySQL-Cluster-gpl-server-7.1.19-0.sles10.i586.rpm + shell> rpm -Uhv MySQL-Cluster-gpl-server-7.1.20-0.sles10.i586.rpm This installs the MySQL server binary (*Note `mysqld': mysqld.) in the `/usr/sbin' directory, as well as all needed MySQL Server support @@ -138972,7 +138669,7 @@ To administer the SQL node (MySQL server), you should also install the *Client* RPM, as shown here: - shell> rpm -Uhv MySQL-Cluster-gpl-client-7.1.19-0.sles10.i586.rpm + shell> rpm -Uhv MySQL-Cluster-gpl-client-7.1.20-0.sles10.i586.rpm This installs the *Note `mysql': mysql. client program. @@ -138985,7 +138682,7 @@ name shown for the RPM as necessary to match that of the *Storage engine management* RPM downloaded from the MySQL web site): - shell> rpm -Uhv MySQL-Cluster-gpl-management-7.1.19-0.sles10.i586.rpm + shell> rpm -Uhv MySQL-Cluster-gpl-management-7.1.20-0.sles10.i586.rpm This installs the management server binary (*Note `ndb_mgmd': mysql-cluster-programs-ndb-mgmd.) to the `/usr/sbin' directory. @@ -138998,7 +138695,7 @@ of the *Storage engine basic tools* RPM downloaded from the MySQL web site): - shell> rpm -Uhv MySQL-Cluster-gpl-tools-7.1.19-0.sles10.i586.rpm + shell> rpm -Uhv MySQL-Cluster-gpl-tools-7.1.20-0.sles10.i586.rpm The *Storage engine basic tools* RPM installs the MySQL Cluster management client (*Note `ndb_mgm': mysql-cluster-programs-ndb-mgm.) to @@ -139009,7 +138706,7 @@ You can also install the *Cluster storage engine extra tools* RPM, if you wish, as shown here: - shell> rpm -Uhv MySQL-Cluster-gpl-extra-7.1.19-0.sles10.i586.rpm + shell> rpm -Uhv MySQL-Cluster-gpl-extra-7.1.20-0.sles10.i586.rpm You may find the extra tools useful; however the *Cluster storage engine extra tools* RPM is _not_ required to install a working MySQL @@ -139038,15 +138735,19 @@ Building MySQL Cluster requires using the MySQL Cluster sources. These are available from the MySQL Cluster downloads page at http://dev.mysql.com/downloads/cluster/. The archived source file -should have a name similar to `mysql-cluster-gpl-7.2.4.tar.gz'. You +should have a name similar to `mysql-cluster-gpl-7.2.5.tar.gz'. You can also obtain MySQL development sources from launchpad.net. Attempting to build MySQL Cluster from standard MySQL Server 5.5 sources is not supported. -The `WITH_NDBCLUSTER_STORAGE_ENGINE' `configure' option causes the +The `WITH_NDBCLUSTER_STORAGE_ENGINE' option for `CMake' causes the binaries for the management nodes, data nodes, and other MySQL Cluster programs to be built; it also causes *Note `mysqld': mysqld. to be -compiled with *Note `NDB': mysql-cluster. storage engine support. +compiled with *Note `NDB': mysql-cluster. storage engine support. This +option is enabled by default in the MySQL Cluster NDB 7.2 sources. + +For more information about `CMake' options specific to building MySQL +Cluster, see Options for Compiling MySQL Cluster. After you have run `make && make install' (or your system's equivalent), the result is similar to what is obtained by unpacking a @@ -139299,8 +139000,8 @@ You should now create two configuration files for use by `ndb_mgmd.exe': - 1. A local configuration file to supply configuration data spcific to - the management node itself. Typically, this file needs only to + 1. A local configuration file to supply configuration data specific + to the management node itself. Typically, this file needs only to supply the location of the MySQL Cluster global configuration file (see item 2). @@ -139449,7 +139150,7 @@ command line to start the management node process: C:\mysql\bin> ndb_mgmd - 2010-06-23 07:53:34 [MgmtSrvr] INFO -- NDB Cluster Management Server. mysql-5.1.56-ndb-7.1.19 + 2010-06-23 07:53:34 [MgmtSrvr] INFO -- NDB Cluster Management Server. mysql-5.1.61-ndb-7.1.20 2010-06-23 07:53:34 [MgmtSrvr] INFO -- Reading cluster configuration from 'config.ini' The management node process continues to print logging output to @@ -139531,14 +139232,14 @@ ndb_mgm> ALL STATUS Connected to Management Server at: localhost:1186 - Node 2: starting (Last completed phase 3) (mysql-5.1.56-ndb-7.1.19) - Node 3: starting (Last completed phase 3) (mysql-5.1.56-ndb-7.1.19) + Node 2: starting (Last completed phase 3) (mysql-5.1.61-ndb-7.1.20) + Node 3: starting (Last completed phase 3) (mysql-5.1.61-ndb-7.1.20) - Node 2: starting (Last completed phase 4) (mysql-5.1.56-ndb-7.1.19) - Node 3: starting (Last completed phase 4) (mysql-5.1.56-ndb-7.1.19) + Node 2: starting (Last completed phase 4) (mysql-5.1.61-ndb-7.1.20) + Node 3: starting (Last completed phase 4) (mysql-5.1.61-ndb-7.1.20) - Node 2: Started (version 7.1.19) - Node 3: Started (version 7.1.19) + Node 2: Started (version 7.1.20) + Node 3: Started (version 7.1.20) ndb_mgm> @@ -139589,14 +139290,14 @@ Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) - id=2 @192.168.0.30 (Version: 5.1.56-ndb-7.1.19, Nodegroup: 0, Master) - id=3 @192.168.0.40 (Version: 5.1.56-ndb-7.1.19, Nodegroup: 0) + id=2 @192.168.0.30 (Version: 5.1.61-ndb-7.1.20, Nodegroup: 0, Master) + id=3 @192.168.0.40 (Version: 5.1.61-ndb-7.1.20, Nodegroup: 0) [ndb_mgmd(MGM)] 1 node(s) - id=1 @192.168.0.10 (Version: 5.1.56-ndb-7.1.19) + id=1 @192.168.0.10 (Version: 5.1.61-ndb-7.1.20) [mysqld(API)] 1 node(s) - id=4 @192.168.0.20 (Version: 5.1.56-ndb-7.1.19) + id=4 @192.168.0.20 (Version: 5.1.61-ndb-7.1.20) You can also verify that the SQL node is connected to the MySQL Cluster in the *Note `mysql': mysql. client (*Note `mysql.exe': @@ -139713,7 +139414,7 @@ Removing service 'mgmd1' Service successfully removed. -Installation of a MySQL Cluster data node processs as a Windows service +Installation of a MySQL Cluster data node process as a Windows service can be done in a similar fashion, using the `--install' option for *Note `ndbd.exe': mysql-cluster-programs-ndbd. (or *Note `ndbmtd.exe': mysql-cluster-programs-ndbmtd.), as shown here: @@ -139938,7 +139639,7 @@ shell> ndb_mgmd -f /var/lib/mysql-cluster/config.ini - The frist time that it is started, *Note `ndb_mgmd': + The first time that it is started, *Note `ndb_mgmd': mysql-cluster-programs-ndb-mgmd. must be told where to find its configuration file, using the `-f' or `--config-file' option. (See *Note mysql-cluster-programs-ndb-mgmd::, for details.) @@ -139970,14 +139671,14 @@ Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) - id=2 @192.168.0.30 (Version: 5.5.17-ndb-7.2.4, Nodegroup: 0, Master) - id=3 @192.168.0.40 (Version: 5.5.17-ndb-7.2.4, Nodegroup: 0) + id=2 @192.168.0.30 (Version: 5.5.20-ndb-7.2.5, Nodegroup: 0, Master) + id=3 @192.168.0.40 (Version: 5.5.20-ndb-7.2.5, Nodegroup: 0) [ndb_mgmd(MGM)] 1 node(s) - id=1 @192.168.0.10 (Version: 5.5.17-ndb-7.2.4) + id=1 @192.168.0.10 (Version: 5.5.20-ndb-7.2.5) [mysqld(API)] 1 node(s) - id=4 @192.168.0.20 (Version: 5.5.17-ndb-7.2.4) + id=4 @192.168.0.20 (Version: 5.5.20-ndb-7.2.5) The SQL node is referenced here as `[mysqld(API)]', which reflects the fact that the *Note `mysqld': mysqld. process is acting as a MySQL @@ -140117,7 +139818,7 @@ shell> mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. - Your MySQL connection id is 1 to server version: 5.5.17-ndb-7.2.4 + Your MySQL connection id is 1 to server version: 5.5.20-ndb-7.2.5 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. @@ -140237,7 +139938,7 @@ definition and manipulation just as you would normally with MySQL.  -File: manual.info, Node: mysql-cluster-install-shutdown-restart, Prev: mysql-cluster-install-example-data, Up: mysql-cluster-installation +File: manual.info, Node: mysql-cluster-install-shutdown-restart, Next: mysql-cluster-upgrade-downgrade, Prev: mysql-cluster-install-example-data, Up: mysql-cluster-installation 17.2.6 Safe Shutdown and Restart of MySQL Cluster ------------------------------------------------- @@ -140311,6 +140012,70 @@ about doing this, see *Note mysql-cluster-rolling-restart::.  +File: manual.info, Node: mysql-cluster-upgrade-downgrade, Prev: mysql-cluster-install-shutdown-restart, Up: mysql-cluster-installation + +17.2.7 Upgrading and Downgrading MySQL Cluster NDB 7.2 +------------------------------------------------------ + +This section provides information about MySQL Cluster software and +table file compatibility between different MySQL Cluster NDB 7.2 +releases with regard to performing upgrades and downgrades as well as +compatibility matrices and notes. You are expected already to be +familiar with installing and configuring a MySQL Cluster prior to +attempting an upgrade or downgrade. See *Note +mysql-cluster-configuration::. + +*Important*: + +Only compatibility between MySQL versions with regard to *Note +`NDBCLUSTER': mysql-cluster. is taken into account in this section, and +there are likely other issues to be considered. _As with any other +MySQL software upgrade or downgrade, you are strongly encouraged to +review the relevant portions of the MySQL Manual for the MySQL versions +from which and to which you intend to migrate, before attempting an +upgrade or downgrade of the MySQL Cluster software_. This is especially +true when planning a migration from MySQL Cluster NDB 7.1 (or earlier) +to MySQL Cluster NDB 7.2, since the version of the underlying MySQL +Server also changes from MySQL 5.1 to MySQL 5.5. See *Note upgrading::. + +Versions supported + +The following versions of MySQL Cluster are supported for upgrades to +MySQL Cluster NDB 7.2 (7.2.4 and later): + + * MySQL Cluster NDB 7.1 GA releases (7.1.3 and later) + + * MySQL Cluster NDB 7.0 GA releases (7.0.5 and later) + + * MySQL Cluster NDB 6.3 GA releases (6.3.8 and later) that can be + upgraded to MySQL Cluster NDB 7.1 + +For information about upgrades and downgrades in previous MySQL Cluster +release series, see Upgrade and Downgrade Compatibility: MySQL Cluster +NDB 6.x +(http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-upgrade-downgrade-compatibility-6.x.html), +and Upgrade and downgrade compatibility: MySQL Cluster NDB 7.x +(http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-upgrade-downgrade-compatibility-7.x.html). + +NDB API, ClusterJ, and other applications used with recent releases of +MySQL Cluster NDB 6.3 and later should continue to work with MySQL +Cluster NDB 7.2.4 and later without rewriting or recompiling. + +Upgrading `ndbd' to `ndbmtd' + +When upgrading online from a MySQL Cluster NDB 6.3 release to a MySQL +Cluster NDB 7.0 or later release, you should not try to upgrade the +data nodes from *Note `ndbd': mysql-cluster-programs-ndbd. to *Note +`ndbmtd': mysql-cluster-programs-ndbmtd. at the same time. Instead, +perform the upgrade using the new *Note `ndbd': +mysql-cluster-programs-ndbd. executable (from the MySQL Cluster +distribution to which you are upgrading) to replace the one in use on +the data nodes. Once the version upgrade is complete, you can perform a +second (online) upgrade to replace the data node executables with *Note +`ndbmtd': mysql-cluster-programs-ndbmtd. from the `new' MySQL Cluster +distribution. + + File: manual.info, Node: mysql-cluster-configuration, Next: mysql-cluster-programs, Prev: mysql-cluster-installation, Up: mysql-cluster 17.3 MySQL Cluster Configuration @@ -140457,7 +140222,7 @@ shell> mysql Welcome to the MySQL monitor. Commands end with ; or \g. - Your MySQL connection id is 1 to server version: 5.5.20 + Your MySQL connection id is 1 to server version: 5.5.23 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. @@ -140506,13 +140271,13 @@ Cluster Configuration --------------------- [ndbd(NDB)] 1 node(s) - id=2 @127.0.0.1 (Version: 5.5.17-ndb-7.2.4, Nodegroup: 0, Master) + id=2 @127.0.0.1 (Version: 5.5.20-ndb-7.2.5, Nodegroup: 0, Master) [ndb_mgmd(MGM)] 1 node(s) - id=1 @127.0.0.1 (Version: 5.5.17-ndb-7.2.4) + id=1 @127.0.0.1 (Version: 5.5.20-ndb-7.2.5) [mysqld(API)] 3 node(s) - id=3 @127.0.0.1 (Version: 5.5.17-ndb-7.2.4) + id=3 @127.0.0.1 (Version: 5.5.20-ndb-7.2.5) id=4 (not connected, accepting connect from any host) id=5 (not connected, accepting connect from any host) @@ -140964,7 +140729,7 @@ # MaxNoOfLocalScans=64 MaxNoOfTables=1024 - MaxNofOfOrderedIndexes=256 + MaxNoOfOrderedIndexes=256 [ndbd] HostName=DATA-NODE-A-HOSTNAME @@ -141868,8 +141633,7 @@ reference the variable-size part. The variable-size part has 2 bytes overhead plus 2 bytes per attribute. - The maximum record size is 14000 bytes (MySQL Cluster NDB 7.0 and - later). + The maximum record size is 14000 bytes. The memory space defined by `DataMemory' is also used to store ordered indexes, which use about 10 bytes per record. Each table @@ -141884,6 +141648,22 @@ DB_NAME TABLE_NAME': mysql-cluster-programs-ndb-desc. in the management client. + Currently, MySQL Cluster can use a maximum of 512 MB for hash + indexes per partition, which means in some cases it is possible to + get `Table is full' errors in MySQL client applications even when + *Note `ndb_mgm -e "ALL REPORT MEMORYUSAGE"': + mysql-cluster-programs-ndb-mgm. shows significant free + `DataMemory'. This can also pose a problem with data node restarts + on nodes that are heavily loaded with data. You can force *Note + `NDB': mysql-cluster. to create extra partitions for MySQL Cluster + tables and thus have more memory available for hash indexes by + using the `MAX_ROWS' option for *Note `CREATE TABLE': + create-table. In general, setting `MAX_ROWS' to twice the number + of rows that you expect to store in the table should be + sufficient. In MySQL Cluster 7.2.3 and later, you can also use the + `MinFreePct' configuration parameter to help avoid problems with + node restarts. (Bug #13436216) + The memory space allocated by `DataMemory' consists of 32KB pages, which are allocated to table fragments. Each table is normally partitioned into the same number of fragments as there are data @@ -141957,9 +141737,10 @@ Options for stringmemory-ndbd *Restart Type* system *Permitted Values - * + (>= + 5.5)* *Type* `numeric' - *Default* `5' + *Default* `25' *Range* `0 .. 4G' @@ -141971,14 +141752,12 @@ default value, which is calculated based on a number of factors including the number of tables, maximum table name size, maximum size of `.FRM' files, `MaxNoOfTriggers', maximum column name size, - and maximum default column value. In general it is safe to assume - that the maximum default value is approximately 5 MB for a MySQL - Cluster having 1000 tables. + and maximum default column value. A value greater than `100' is interpreted as a number of bytes. The default value is 25--that is, 25 percent of the default - maximum, or approximately 25 KB. + maximum. Under most circumstances, the default value should be sufficient, but when you have a great many Cluster tables (1000 or more), it @@ -142416,9 +142195,10 @@ Options for batchsizeperlocalscan-ndbd *Restart Type* node *Permitted Values - * + (>= + 5.5)* *Type* `numeric' - *Default* `64' + *Default* `256' *Range* `1 .. 992' @@ -142479,7 +142259,7 @@ 1G' - It is possible to copnfigure the maximum number of parallel scans + It is possible to configure the maximum number of parallel scans (`TUP' scans and `TUX' scans) allowed before they begin queuing for serial handling. You can increase this to take advantage of any unused CPU when performing large number of scans in parallel @@ -142820,10 +142600,10 @@ describing what is being indexed and its storage segments. By default, each index so defined also defines an ordered index. Each unique index and primary key has both an ordered index and a hash - index. `MaxNoOfOrderedIndexes' sets the total number of hash + index. `MaxNoOfOrderedIndexes' sets the total number of ordered indexes that can be in use in the system at any one time. - The default value of this parameter is 128. Each hash index object + The default value of this parameter is 128. Each index object consumes approximately 10KB of data per node. *Note*: @@ -142949,7 +142729,7 @@ acting as the replication master and the other as the slave). Each subscriber uses 16 bytes of memory. - When using circular replication, multi-master replcation, and + When using circular replication, multi-master replication, and other replication setups involving more than 2 MySQL servers, you should increase this parameter to the number of *Note `mysqld': mysqld. processes included in replication (this is often, but not @@ -143519,11 +143299,13 @@ 4G' - In MySQL Cluster NDB 7.1.10 and later, this parameter enables - connection checking between data nodes. A data node that fails to - respond within an interval of `ConnectCheckIntervalDelay' seconds - is considered suspect, and is considered dead after two such - intervals. + This parameter enables connection checking between data nodes. A + data node that fails to respond within an interval of + `ConnectCheckIntervalDelay' seconds is considered suspect, and is + considered dead after two such intervals. + + The default value for this parameter is 0; this is a change from + MySQL Cluster NDB 7.1. * `TimeBetweenLocalCheckpoints' @@ -143599,16 +143381,9 @@ *Default* `100' *Range* `0 .. 32000' - *Permitted - Values - * - *Type* `numeric' - *Default* `100' - *Range* `0 .. - 32000' - This parameter defines the interval between synchronisation epochs + This parameter defines the interval between synchronization epochs for MySQL Cluster Replication. The default value is 100 milliseconds. @@ -143625,48 +143400,6 @@ *Type* `numeric' *Default* `4000' *Range* `0 .. - 32000' - *Permitted - Values - * - *Type* `numeric' - *Default* `4000' - *Range* `0 .. - 32000' - *Permitted - Values - * - *Type* `numeric' - *Default* `4000' - *Range* `0 .. - 32000' - *Permitted - Values - * - *Type* `numeric' - *Default* `4000' - *Range* `0 .. - 256000' - *Permitted - Values - * - *Type* `numeric' - *Default* `4000' - *Range* `0 .. - 32000' - *Permitted - Values - * - *Type* `numeric' - *Default* `4000' - *Range* `0 .. - 256000' - *Permitted - Values - * - *Type* `numeric' - *Default* `0' - *Range* `0 .. 256000' @@ -144561,9 +144294,10 @@ Options for backupmaxwritesize-ndbd *Restart Type* node *Permitted Values - * + (>= + 5.5)* *Type* `numeric' - *Default* `256K' + *Default* `1M' *Range* `2K .. 4G' @@ -144616,8 +144350,13 @@ should be an integer in the range 0 to 65535 (inclusive). The number of IDs specified should match the number of execution - threads determined by `MaxNoOfExecutionThreads'. There is no - default value. + threads determined by `MaxNoOfExecutionThreads'. However, there + is no guarantee that threads are assigned to CPUs in any given + order when using this parameter; beginning with in MySQL Cluster + NDB 7.2.5, you can obtain more finely-grained control of this type + using `ThreadConfig'. + + `LockExecuteThreadToCPU' has no default value. * `LockMaintThreadsToCPU' @@ -144730,27 +144469,162 @@ You must also set `BuildIndexThreads' to a nonzero value. -`Numa' + * `Numa' -Options for numa-ndbd *Restart Type* node - *Permitted - Values - * -*Type* (linux) `boolean' -*Default* `0' + Options for numa-ndbd *Restart Type* node + *Permitted + Values + * + *Type* (linux) `boolean' + *Default* `0' -*Note `NDB': mysql-cluster. is extremely sensitive to Non-Uniform -Memory Access settings and multi-CPU systems due to timeouts that it -can cause. Due to this fact, and because most MySQL Cluster users do -not employ `numactl', support for NUMA is ignored by default by *Note -`ndbd': mysql-cluster-programs-ndbd. when running on a Linux system. If -your Linux system provides NUMA support and you wish for data node -memory to be subject to NUMA control, you can set this parameter equal -to 0. + *Note `NDB': mysql-cluster. is extremely sensitive to Non-Uniform + Memory Access settings and multi-CPU systems due to timeouts that + it can cause. Due to this fact, and because most MySQL Cluster + users do not employ `numactl', support for NUMA is ignored by + default by *Note `ndbd': mysql-cluster-programs-ndbd. when running + on a Linux system. If your Linux system provides NUMA support and + you wish for data node memory to be subject to NUMA control, you + can set this parameter equal to 0. + + The `Numa' configuration parameter is supported only on Linux + systems where `libnuma.so' is installed. + +Multi-Threading Configuration Parameters (`ndbmtd') + +*Note `ndbmtd': mysql-cluster-programs-ndbmtd. runs by default as a +single-threaded process and must be configured to use multiple threads, +using either of two methods, both of which require setting +configuration parameters in the `config.ini' file. The first method is +simply to set an appropriate value for the `MaxNoOfExecutionThreads' +configuration parameter. In MySQL Cluster NDB 7.2.3 and later, a second +method is also supported, whereby it is possible to set up more complex +rules for *Note `ndbmtd': mysql-cluster-programs-ndbmtd. +multi-threading using `ThreadConfig'. The next few paragraphs provide +information about these parameters and their use with multi-threaded +data nodes. + + * `MaxNoOfExecutionThreads' + + Options for maxnoofexecutionthreads-ndbmtd *Restart Type* node + *Permitted + Values + * + *Type* `numeric' + *Default* `' + *Range* `2 .. + 8' + *Permitted + Values + * + *Type* `numeric' + *Default* `2' + *Range* `2 .. + 8' + + + This parameter is used to determine the number of local query + handler (LQH) threads spawned by *Note `ndbmtd': + mysql-cluster-programs-ndbmtd. Although this parameter is set in + `[ndbd]' or `[ndbd default]' sections of the `config.ini' file, it + is exclusive to *Note `ndbmtd': mysql-cluster-programs-ndbmtd. and + does not apply to *Note `ndbd': mysql-cluster-programs-ndbd. + + This parameter takes an integer value from 2 to 8 inclusive. + Generally, you should set this parameter equal to the number of + CPU cores on the data node host, as shown in the following table: + + Number of Cores Recommended + `MaxNoOfExecutionThreads' Value + 2 2 + 4 4 + 8 or more 8 + + (It is possible to set this parameter to other values within the + permitted range, but these are automatically rounded as shown in + the *Value Used* column of the next table in this section.) + + The multi-threaded data node process always spawns at least 4 + threads, listed here: + + * 1 local query handler (LQH) thread + + * 1 transaction coordinator (TC) thread -The `Numa' configuration parameter is supported only on Linux systems -where `libnuma.so' is installed. + * 1 transporter thread + + * 1 subscription manager (SUMA) thread + + Setting this parameter to a value between 4 and 8 inclusive causes + additional LQH threads to be used by *Note `ndbmtd': + mysql-cluster-programs-ndbmtd. (up to a maximum of 4 LQH threads), + as shown in the following table: + + `config.ini' Value Value Used Number of LQH Threads + Used + 3 2 1 + 5 or 6 4 2 + 7 8 4 + + Setting this parameter outside the permitted range of values + causes the management server to abort on startup with the error + `Error line NUMBER: Illegal value VALUE for parameter + MaxNoOfExecutionThreads'. + + This parameter has a default value of 2. + + Currently it is not possible to cause *Note `ndbmtd': + mysql-cluster-programs-ndbmtd. to use more than 1 TC thread, + although we plan to introduce this capability in a future MySQL + Cluster release series. + + * `ThreadConfig' + + This parameter is used with *Note `ndbmtd': + mysql-cluster-programs-ndbmtd. to assign threads of different + types to different CPUs. Its value is a string whose format has + the following syntax: + + ThreadConfig := ENTRY[,ENTRY[,...]] + + ENTRY := TYPE={PARAM[,PARAM[,...]]} + + TYPE := ldm | main | recv | rep | io + + PARAM := count=NUMBER | cpubind=CPU_LIST + + The curly braces (`{'...`}') surrounding the list of parameters is + required, even if there is only one parameter in the list. + + The TYPE attribute represents an NDB thread type. Permitted values + and their associated thread types are described in the following + list: + + * `ldm': Local query handler (`DBLQH' kernel block) + + * `main': Data dictionary and transaction coordinator (`DBDIH' + and `DBTC' kernel blocks) + + * `recv': NDB kernel virtual machine (`CMVMI' kernel block) + + * `rep': `SUMA' kernel block + + * `io': File system and other miscellaneous operations + + A PARAM (parameter) specifies the number of threads of the given + type (`count'), the CPUs to which the threads of the given type + are to be bound (`cpubind'), or both. + + Examples: + + # Example 1. + + ThreadConfig=ldm={count=2,cpubind=1,2},main={cpubind=12},rep={cpubind=11} + + # Example 2. + + Threadconfig=main={cpubind=0},ldm={count=4,cpubind=1,2,5,6},io={count=2,cpubind=3,4} Disk Data Configuration Parameters @@ -145155,6 +145029,15 @@ well as `SendBufferMemory'), see *Note mysql-cluster-config-send-buffers::. + * `ExtraSendBufferMemory' + + This parameter specifies the amount of transporter send buffer + memory to allocate in addition to any set using + `TotalSendBufferMemory', `SendBufferMemory', or both. + + This parameter was added in MySQL Cluster NDB 7.2.5. (Bug + #11760629, Bug #53053) + * `TotalSendBufferMemory' This parameter is available beginning with MySQL Cluster NDB @@ -145162,6 +145045,10 @@ allocate on this node for shared send buffer memory among all configured transporters. + Prior to MySQL Cluster NDB 7.2.5, this parameter did not work + correctly with *Note `ndbmtd': mysql-cluster-programs-ndbmtd. (Bug + #13633845) + If this parameter is set, its minimum permitted value is 256KB; the maxmimum is 4294967039. @@ -145171,6 +145058,10 @@ source code beginning with MySQL Cluster NDB 6.4.0. However, it is not currently enabled. + As of MySQL Cluster NDB 7.2.5, this parameter is deprecated, and + is subject to removal in a future release of MySQL Cluster (Bug + #11760629, Bug #53053). + For more detailed information about the behavior and use of `TotalSendBufferMemory' @@ -145353,7 +145244,7 @@ server providing an SQL interface to the cluster, and an `[api]' section is used for applications other than *Note `mysqld': mysqld. processes accessing cluster data, but the two designations are actually -synonomous; you can, for instance, list parameters for a MySQL server +synonymous; you can, for instance, list parameters for a MySQL server acting as an SQL node in an `[api]' section. *Note*: @@ -146421,7 +146312,7 @@ Cluster node process types (*Note `ndbd': mysql-cluster-programs-ndbd, *Note `ndb_mgmd': mysql-cluster-programs-ndb-mgmd, and *Note `mysqld': mysqld.), and includes the parameter's type as well as its default, -mimimum, and maximum values as applicable. +minimum, and maximum values as applicable. These tables also indicate what type of restart is required (node restart or system restart)--and whether the restart must be done with @@ -146514,16 +146405,16 @@ Name Type/Units Default Min Value Max Value Restart Type -Arbitration {Disabled|Default|WaitExternal}Default N +Arbitration Default N ArbitrationTimeoutmilliseconds 3000 10 4G N BackupDataBufferSizebytes 2M 4G N BackupDataDir path FileSystemPath IN BackupLogBufferSizebytes 2M 4G N -BackupMaxWriteSizebytes 256K 2K 4G N +BackupMaxWriteSizebytes 1M 2K 4G N BackupMemory bytes 4M 4G N BackupReportFrequencyseconds 4G N BackupWriteSizebytes 32K 2K 4G N -BatchSizePerLocalScaninteger 64 1 992 N +BatchSizePerLocalScaninteger 256 1 992 N BuildIndexThreads 128 CompressedBackup false N CompressedLCP false N @@ -146540,6 +146431,7 @@ DiskPageBufferMemorybytes 64M 4M 1T N DiskSyncSize bytes 4M 32K 4G N ExecuteOnComputername S +ExtraSendBufferMemorybytes 32G N FileSystemPath path DataDir IN FileSystemPathDataFiles FileSystemPathDD IN FileSystemPathDD FileSystemPath IN @@ -146630,10 +146522,10 @@ StartupStatusReportFrequencyseconds N StopOnError true|false true N (1|0) -StringMemory % or bytes 5 4G S +StringMemory % or bytes 25 4G S TcpBind_INADDR_ANY false N TimeBetweenEpochsmilliseconds 100 32000 N -TimeBetweenEpochsTimeoutmilliseconds 4000 32000 N +TimeBetweenEpochsTimeoutmilliseconds 4000 256000 N TimeBetweenGlobalCheckpointsmilliseconds 2000 10 32000 N TimeBetweenInactiveTransactionAbortCheckmilliseconds 1000 1000 4G N TimeBetweenLocalCheckpointsnumber of 20 31 N @@ -146900,7 +146792,7 @@ specific to MySQL Cluster, see *Note mysqld-server::. For MySQL Cluster configuration parameters used in the cluster -confiuration file (usually named `config.ini'), see *Note +configuration file (usually named `config.ini'), see *Note mysql-cluster-configuration::.  @@ -146998,6 +146890,14 @@ Ndb_conflict_trans_row_conflict_count Yes Global No Ndb_conflict_trans_row_reject_count Yes Global No ndb-connectstringYes Yes +ndb-deferred-constraintsYes Yes Both Yes +- _Variable_: Yes Both Yes +ndb_deferred_constraints +ndb_deferred_constraintsYes Yes Yes Both Yes +ndb_distributionYes Yes Yes Both Yes +ndb-distributionYes Yes Both Yes +- _Variable_: Yes Both Yes +ndb_distribution ndb_execute_count Yes Global No ndb_extra_loggingYes Yes Yes Global Yes ndb_force_send Yes Yes Yes Both Yes @@ -147011,6 +146911,7 @@ ndb_log_bin Yes Yes Both Yes ndb_log_binlog_indexYes Yes Global Yes ndb_log_empty_epochsYes Yes Yes Global Yes +ndb-log-empty-epochsYes Yes Yes Global Yes *Note Yes Global No ndb_log_orig: mysql-cluster-replication-schema. @@ -147150,7 +147051,7 @@ *Note*: - In some older relases of MySQL Cluster prior to MySQL Cluster NDB + In some older releases of MySQL Cluster prior to MySQL Cluster NDB 7.2, there was also a separate status variable corresponding to this option; however, the status variable was removed as redundant as of these versions. (Bug #60119) @@ -147246,6 +147147,57 @@ cluster configuration data. See *Note mysql-cluster-connectstring::, for syntax. + * `--ndb-deferred-constraints=[TRUE|FALSE]' + + Options for ndb-deferred-constraints *Command-Line `--ndb-deferred-constraints' + Format* + *Option-File Format* `ndb-deferred-constraints' + *Option Sets Yes, + Variable* `ndb_deferred_constraints' + *Variable Name* `ndb-deferred-constraints' + *Variable Scope* Global, + Session + *Dynamic Variable* Yes + *Permitted + Values + * + *Type* `boolean' + *Default* `false' + *Range* `false + .. + true' + + + Controls whether or not constraint checks are deferred, where + these are supported. `OFF' is the default. + + This option was added in MySQL Cluster NDB 7.0.28 and MySQL + Cluster NDB 7.1.17. + + * `--ndb-distribution=[KEYHASH|LINHASH]' + + Options for ndb-distribution *Command-Line `--ndb-distribution={KEYHASH|LINHASH}' + Format* + *Option-File Format* `ndb-distribution' + *Option Sets Yes, + Variable* `ndb_distribution' + *Variable Name* `ndb-distribution' + *Variable Scope* Global, + Session + *Dynamic Variable* Yes + *Permitted + Values + * + *Type* `enumeration' + *Default* `KEYHASH' + *Valid Values* `LINHASH' + `KEYHASH' + + + Controls the default distribution method for *Note `NDB': + mysql-cluster. tables. Can be set to either of `KEYHASH' (key + hashing) or `LINHASH' (linear hashing). `KEYHASH' is the default. + * `--ndb-mgmd-host=HOST[:PORT]' Options for ndb-mgmd-host *Command-Line `--ndb-mgmd-host=host[:port]' @@ -147397,6 +147349,36 @@ For more information about node IDs for MySQL Cluster SQL nodes, see *Note mysql-cluster-api-definition::. + * `--ndb-log-empty-epochs=[0|1]' + + Options for ndb-log-empty-epochs *Command-Line `--ndb-log-empty-epochs' + Format* + *Option-File Format* `ndb-log-empty-epochs' + *Variable Name* `ndb_log_empty_epochs' + *Variable Scope* Global + *Dynamic Variable* Yes + *Permitted + Values + * + *Type* `boolean' + *Default* `OFF' + + + Causes epochs during which there were no changes to be written to + the `ndb_apply_status' and `ndb_binlog_index' tables, even when + `--log-slave-updates' is enabled. + + By default this option is disabled. Disabling + `--ndb-log-empty-epochs' causes epoch transactions with no changes + not to be written to the binary log, although a row is still + written even for an empty epoch in `ndb_binlog_index'. + + Because `--ndb-log-empty-epochs=1' causes the size of + `ndb_binlog_index' table to increase independently of the size of + the binary log, users should be prepared to manage the growth of + this table, even if they expect the cluster to be idle a large + part of the time. + * `--server-id-bits=#' Options for server-id-bits *Command-Line `--server-id-bits=#' @@ -147685,6 +147667,52 @@ updates on different SQL nodes less often. It is generally not desirable to set this to a value greater than 2000. + * `ndb_deferred_constraints' + + Options for ndb_deferred_constraints *Command-Line `--ndb-deferred-constraints' + Format* + *Option-File Format* `ndb_deferred_constraints' + *Option Sets Yes, + Variable* `ndb_deferred_constraints' + *Variable Name* `ndb_deferred_constraints' + *Variable Scope* Global, + Session + *Dynamic Variable* Yes + *Permitted + Values + * + *Type* `boolean' + *Default* `false' + *Range* `false + .. + true' + + + Controls whether or not constraint checks are deferred, where + these are supported. `OFF' is the default. + + * `ndb_distribution' + + Options for ndb_distribution *Command-Line `--ndb-distribution={KEYHASH|LINHASH}' + Format* + *Option-File Format* `ndb_distribution' + *Variable Name* `ndb_distribution={KEYHASH|LINHASH}' + *Variable Scope* Global, + Session + *Dynamic Variable* Yes + *Permitted + Values + * + *Type* `enumeration' + *Default* `KEYHASH' + *Valid Values* `LINHASH' + `KEYHASH' + + + Controls the default distribution method for *Note `NDB': + mysql-cluster. tables. Can be set to either of `KEYHASH' (key + hashing) or `LINHASH' (linear hashing). `KEYHASH' is the default. + * `ndb_extra_logging' Options for ndb_extra_logging *Command-Line `ndb_extra_logging=#' @@ -147829,26 +147857,41 @@ In order for a join to be pushable, it must meet the following conditions: - * Any columns to be joined must use _exactly_ the same data - type. (For example, if an *Note `INT': numeric-types. and a - *Note `BIGINT': numeric-types. column are joined, the join - cannot be pushed down.) + 1. Only columns can be compared, and all columns to be joined + must use _exactly_ the same data type. - * Queries referencing *Note `BLOB': blob. or *Note `TEXT': + This means that expressions such as `t1.a = t2.a + CONSTANT' + cannot be pushed down, and that (for example) a join on an + *Note `INT': numeric-types. column and a *Note `BIGINT': + numeric-types. column also cannot be pushed down. + + 2. Queries referencing *Note `BLOB': blob. or *Note `TEXT': blob. columns are not supported. - * Explicit locking is not supported; however, the *Note `NDB': + 3. Explicit locking is not supported; however, the *Note `NDB': mysql-cluster. storage engine's characteristic implicit row-based locking is enforced. This means that a join using `FOR UPDATE' cannot be pushed down. - * In order for a join to be pushed down, child tables in the + 4. In order for a join to be pushed down, child tables in the join must be accessed using one of the `ref', `eq_ref', or `const' access methods, or some combination of these methods. - * Joins referencing tables explicitly partitioned by `[LINEAR] + Outer joined child tables can only be pushed using `eq_ref'. + + If the root of the pushed join is an `eq_ref' or `const', + only child tables joined by `eq_ref' can be appended. (A + table joined by `ref' is likely to become the root of another + pushed join.) + + If the query optimizer decides on `Using join cache' for a + candidate child table, that table cannot be pushed as a + child. However, it may be the root of another set of pushed + tables. + + 5. Joins referencing tables explicitly partitioned by `[LINEAR] HASH', `LIST', or `RANGE' currently cannot be pushed down. You can see whether a given join can be pushed down by checking it @@ -147908,6 +147951,12 @@ Extra: Child of 'e' in pushed join@1 4 rows in set (0.00 sec) + *Note*: + + If inner joined child tables are joined by `ref', _and_ the result + is ordered or grouped by a sorted index, this index cannot provide + sorted rows, which forces writing to a sorted tempfile. + Two additional sources of information about pushed join performance are available: @@ -148028,6 +148077,13 @@ * *Type* `boolean' *Default* `ON' + *Permitted + Values + * + *Type* `numeric' + *Default* `3' + *Range* `0 .. + 3' There are two forms of optimized node selection, described here: @@ -148415,6 +148471,25 @@ Shows the version of the *Note `ndbinfo': mysql-cluster-ndbinfo. engine in use; read-only. + * `ndb_log_empty_epochs' + + Options for ndb_log_empty_epochs *Command-Line `--ndb-log-empty-epochs' + Format* + *Option-File Format* `ndb_log_empty_epochs' + *Variable Name* `ndb_log_empty_epochs' + *Variable Scope* Global + *Dynamic Variable* Yes + *Permitted + Values + * + *Type* `boolean' + *Default* `OFF' + + + When this variable is set to 0, epoch transactions with no changes + are not written to the binary log, although a row is still written + even for an empty epoch in `ndb_binlog_index'. + * `server_id_bits' Options for server-id-bits *Command-Line `--server-id-bits=#' @@ -150238,75 +150313,23 @@ Using *Note `ndbmtd': mysql-cluster-programs-ndbmtd. differs from using *Note `ndbd': mysql-cluster-programs-ndbd. in two key respects: - 1. You must set an appropriate value for the `MaxNoOfExecutionThreads' - configuration parameter in the `config.ini' file. If you do not do - so, *Note `ndbmtd': mysql-cluster-programs-ndbmtd. runs in - single-threaded mode; that is, it behaves like *Note `ndbd': - mysql-cluster-programs-ndbd. + 1. Because *Note `ndbmtd': mysql-cluster-programs-ndbmtd. runs by + default in single-threaded mode (that is, it behaves like *Note + `ndbd': mysql-cluster-programs-ndbd.), you must configure it to use + multiple threads. This can be done by setting an appropriate value + in the `config.ini' file for the `MaxNoOfExecutionThreads' + configuration parameter or (in MySQL Cluster NDB 7.2.3 and later) + the `ThreadConfig' configuration parameter. Using + `MaxNoOfExecutionThreads' is simpler, but `ThreadConfig' offers + more flexibility. For more information about these configuration + parameters and their use, see *Note + mysql-cluster-ndbd-definition-ndbmtd-parameters::. 2. Trace files are generated by critical errors in *Note `ndbmtd': mysql-cluster-programs-ndbmtd. processes in a somewhat different fashion from how these are generated by *Note `ndbd': - mysql-cluster-programs-ndbd. failures. - -These differences are discussed in more detail in the next few -paragraphs. - -Number of execution threads - -The `MaxNoOfExecutionThreads' configuration parameter is used to -determine the number of local query handler (LQH) threads spawned by -*Note `ndbmtd': mysql-cluster-programs-ndbmtd. Although this parameter -is set in `[ndbd]' or `[ndbd default]' sections of the `config.ini' -file, it is exclusive to *Note `ndbmtd': mysql-cluster-programs-ndbmtd. -and does not apply to *Note `ndbd': mysql-cluster-programs-ndbd. - -This parameter takes an integer value from 2 to 8 inclusive. -Generally, you should set this parameter equal to the number of CPU -cores on the data node host, as shown in the following table: - -Number of Cores Recommended - `MaxNoOfExecutionThreads' Value -2 2 -4 4 -8 or more 8 - -(It is possible to set this parameter to other values within the -permitted range, but these are automatically rounded as shown in the -*Value Used* column of the next table in this section.) - -The multi-threaded data node process always spawns at least 4 threads, -listed here: - - * 1 local query handler (LQH) thread - - * 1 transaction coordinator (TC) thread - - * 1 transporter thread - - * 1 subscription manager (SUMA) thread - -Setting this parameter to a value between 4 and 8 inclusive causes -additional LQH threads to be used by *Note `ndbmtd': -mysql-cluster-programs-ndbmtd. (up to a maximum of 4 LQH threads), as -shown in the following table: - -`config.ini' Value Value Used Number of LQH Threads - Used -3 2 1 -5 or 6 4 2 -7 8 4 - -Setting this parameter outside the permitted range of values causes the -management server to abort on startup with the error `Error line NUMBER: -Illegal value VALUE for parameter MaxNoOfExecutionThreads'. - -This parameter has a default value of 2. - -Currently it is not possible to cause *Note `ndbmtd': -mysql-cluster-programs-ndbmtd. to use more than 1 TC thread, although -we plan to introduce this capability in a future MySQL Cluster release -series. + mysql-cluster-programs-ndbd. failures. These differences are + discussed in more detail in the next few paragraphs. Like *Note `ndbd': mysql-cluster-programs-ndbd, *Note `ndbmtd': mysql-cluster-programs-ndbmtd. generates a set of log files which are @@ -150631,7 +150654,7 @@ with `--initial' but cannot find a global configuration file, the management server cannot start. - When a management server starts, it checks for another managemen + When a management server starts, it checks for another management server in the same MySQL Cluster and tries to use the other management server's configuration data; *Note `ndb_mgmd': mysql-cluster-programs-ndb-mgmd. ignores `--initial' unless it is @@ -151227,7 +151250,7 @@ different host where `localhost' resolves to a different address (for example, on some versions of SUSE Linux, this is `127.0.0.2'). In general, for best results, you should use numeric - IP addresses for all MySQL Clustewr configuration values relating + IP addresses for all MySQL Cluster configuration values relating to hosts, or verify that all MySQL Cluster hosts handle `localhost' in the same fashion. @@ -151845,7 +151868,7 @@ You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or \g. - Your MySQL connection id is 7 to server version: 5.1.56-ndb-7.1.19 + Your MySQL connection id is 7 to server version: 5.1.61-ndb-7.1.20 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. @@ -152438,10 +152461,8 @@ database node in the cluster where the backup was taken. However, *Note `ndb_restore': mysql-cluster-programs-ndb-restore. cannot always restore backups made from a cluster running one version of MySQL to a -cluster running a different MySQL version. See Upgrading and -Downgrading MySQL Cluster -(http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-upgrade-downgrade.html), -for more information. +cluster running a different MySQL version. See *Note +mysql-cluster-upgrade-downgrade::, for more information. *Important*: @@ -152479,7 +152500,7 @@ mysql-cluster-programs-ndb-restore. to direct its output to `stdout'. *Note `TEXT': blob. and *Note `BLOB': blob. column values are always -truncated to the first 256 bytes in the output; this cannot currrently +truncated to the first 256 bytes in the output; this cannot currently be overridden when using `--print_data'. Several additional options are available for use with the @@ -152871,7 +152892,7 @@ This option causes *Note `ndb_restore': mysql-cluster-programs-ndb-restore. to ignore any schema objects it -does not recgnize while reading a native *Note `NDB': mysql-cluster. +does not recognize while reading a native *Note `NDB': mysql-cluster. backup. This can be used for restoring a backup made from a cluster running MySQL Cluster NDB 7.2 to a cluster running MySQL Cluster NDB 7.1. @@ -153773,6 +153794,7 @@ * mysql-cluster-online-add-node:: Adding MySQL Cluster Data Nodes Online * mysql-cluster-privilege-distribution:: Distributed MySQL Privileges for MySQL Cluster * mysql-cluster-ndb-api-statistics:: NDB API Statistics Counters and Variables +* mysql-cluster-ndbmemcache:: ndbmemcache Managing a MySQL Cluster involves a number of tasks, the first of which is to configure and start MySQL Cluster. This is covered in *Note @@ -153844,7 +153866,7 @@ MySQL Cluster Manager provides an advanced command-line interface that simplifies many otherwise complex MySQL Cluster management tasks, such -as starting, stoppping, or restarting a MySQL Cluster with a large +as starting, stopping, or restarting a MySQL Cluster with a large number of nodes. The MySQL Cluster Manager client also supports commands for getting and setting the values of most node configuration parameters as well as *Note `mysqld': mysqld. server options and @@ -154246,7 +154268,7 @@ `SHOW' command with `no nodegroup' in place of the node group ID, like this (indicated using bold text): - id=3 @10.100.2.67 (5.1.56-ndb-7.1.19, *no nodegroup*) + id=3 @10.100.2.67 (5.1.61-ndb-7.1.20, *no nodegroup*) Prior to MySQL Cluster NDB 7.0.4, the `SHOW' output was not updated correctly following `DROP NODEGROUP'. (Bug #43413) @@ -154860,12 +154882,12 @@ 2007-01-26 19:35:55 [MgmSrvr] INFO -- Node 4: Resource 0 min: 0 max: 639 curr: 0 2007-01-26 19:39:42 [MgmSrvr] INFO -- Node 4: Node 9 Connected 2007-01-26 19:39:42 [MgmSrvr] INFO -- Node 1: Node 9 Connected - 2007-01-26 19:39:42 [MgmSrvr] INFO -- Node 1: Node 9: API 5.1.56-ndb-7.1.19 + 2007-01-26 19:39:42 [MgmSrvr] INFO -- Node 1: Node 9: API 5.1.61-ndb-7.1.20 2007-01-26 19:39:42 [MgmSrvr] INFO -- Node 2: Node 9 Connected - 2007-01-26 19:39:42 [MgmSrvr] INFO -- Node 2: Node 9: API 5.1.56-ndb-7.1.19 + 2007-01-26 19:39:42 [MgmSrvr] INFO -- Node 2: Node 9: API 5.1.61-ndb-7.1.20 2007-01-26 19:39:42 [MgmSrvr] INFO -- Node 3: Node 9 Connected - 2007-01-26 19:39:42 [MgmSrvr] INFO -- Node 3: Node 9: API 5.1.56-ndb-7.1.19 - 2007-01-26 19:39:42 [MgmSrvr] INFO -- Node 4: Node 9: API 5.1.56-ndb-7.1.19 + 2007-01-26 19:39:42 [MgmSrvr] INFO -- Node 3: Node 9: API 5.1.61-ndb-7.1.20 + 2007-01-26 19:39:42 [MgmSrvr] INFO -- Node 4: Node 9: API 5.1.61-ndb-7.1.20 2007-01-26 19:59:22 [MgmSrvr] ALERT -- Node 2: Node 7 Disconnected 2007-01-26 19:59:22 [MgmSrvr] ALERT -- Node 2: Node 7 Disconnected @@ -155715,7 +155737,7 @@ Log Message Event Name `Node NODE_ID: We are Node OWN_ID with `FIND_NEIGHBOURS' -dynamic ID DYNAMIC_ID, our left neighbour +dynamic ID DYNAMIC_ID, our left neighbor is Node ID_1, our right is Node ID_2' Event Type Description `StartUp' @@ -156967,7 +156989,7 @@ text for names of individual counters and the NDB kernel block with which each counter is - asoociated. + associated. `val' integer The counter's value Each counter is associated with a particular NDB kernel block. Prior @@ -157001,7 +157023,7 @@ 17.5.9.4 The `ndbinfo diskpagebuffer' Table ........................................... -The `diskpagebuffer' table provides stastistics about disk page buffer +The `diskpagebuffer' table provides statistics about disk page buffer usage by MySQL Cluster Disk Data tables. The following table provides information about the columns in the @@ -157368,7 +157390,7 @@ similar omission of disconnected nodes in the *Note `ndbinfo.nodes': mysql-cluster-ndbinfo-nodes. table. -Assume you have a 5-node cluster conisting of 2 data nodes, 2 SQL +Assume you have a 5-node cluster consisting of 2 data nodes, 2 SQL nodes, and 1 management node, as shown in the output of the `SHOW' command in the *Note `ndb_mgm': mysql-cluster-programs-ndb-mgm. client: @@ -157915,7 +157937,7 @@ As part of implementing MySQL Cluster Disk Data work, a number of improvements were made in MySQL Cluster for the efficient handling of very large amounts (terabytes) of data during node recovery and -restart. These include a `no-steal' algorithm for synchronising a +restart. These include a `no-steal' algorithm for synchronizing a starting node with very large data sets. For more information, see the paper `Recovery Principles of MySQL Cluster 5.1 (http://www.vldb2005.org/program/paper/wed/p1108-ronstrom.pdf)', by @@ -158386,7 +158408,7 @@ * Each row in a Disk Data table uses 8 bytes in memory to point to the data stored on disk. This means that, in some cases, converting an in-memory column to the disk-based format can - actually result in greater memory usage. For example, convering a + actually result in greater memory usage. For example, converting a `CHAR(4)' column from memory-based to disk-based format increases the amount of `DataMemory' used per row from 4 to 8 bytes. @@ -158741,15 +158763,15 @@ Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) - id=1 @192.168.0.1 (5.1.56-ndb-7.1.19, Nodegroup: 0, Master) - id=2 @192.168.0.2 (5.1.56-ndb-7.1.19, Nodegroup: 0) + id=1 @192.168.0.1 (5.1.61-ndb-7.1.20, Nodegroup: 0, Master) + id=2 @192.168.0.2 (5.1.61-ndb-7.1.20, Nodegroup: 0) [ndb_mgmd(MGM)] 1 node(s) - id=10 @192.168.0.10 (5.1.56-ndb-7.1.19) + id=10 @192.168.0.10 (5.1.61-ndb-7.1.20) [mysqld(API)] 2 node(s) - id=20 @192.168.0.20 (5.1.56-ndb-7.1.19) - id=21 @192.168.0.21 (5.1.56-ndb-7.1.19) + id=20 @192.168.0.20 (5.1.61-ndb-7.1.20) + id=21 @192.168.0.21 (5.1.61-ndb-7.1.20) Finally, we assume that the cluster contains a single *Note `NDBCLUSTER': mysql-cluster. table created as shown here: @@ -158852,7 +158874,7 @@ server as shown here: shell> ndb_mgmd -f config.ini --reload - 2008-12-08 17:29:23 [MgmSrvr] INFO -- NDB Cluster Management Server. 5.1.56-ndb-7.1.19 + 2008-12-08 17:29:23 [MgmSrvr] INFO -- NDB Cluster Management Server. 5.1.61-ndb-7.1.20 2008-12-08 17:29:23 [MgmSrvr] INFO -- Reading cluster configuration from 'config.ini' If you check the output of `SHOW' in the management client after @@ -158865,17 +158887,17 @@ Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) - id=1 @192.168.0.1 (5.1.56-ndb-7.1.19, Nodegroup: 0, Master) - id=2 @192.168.0.2 (5.1.56-ndb-7.1.19, Nodegroup: 0) + id=1 @192.168.0.1 (5.1.61-ndb-7.1.20, Nodegroup: 0, Master) + id=2 @192.168.0.2 (5.1.61-ndb-7.1.20, Nodegroup: 0) id=3 (not connected, accepting connect from 192.168.0.3) id=4 (not connected, accepting connect from 192.168.0.4) [ndb_mgmd(MGM)] 1 node(s) - id=10 @192.168.0.10 (5.1.56-ndb-7.1.19) + id=10 @192.168.0.10 (5.1.61-ndb-7.1.20) [mysqld(API)] 2 node(s) - id=20 @192.168.0.20 (5.1.56-ndb-7.1.19) - id=21 @192.168.0.21 (5.1.56-ndb-7.1.19) + id=20 @192.168.0.20 (5.1.61-ndb-7.1.20) + id=21 @192.168.0.21 (5.1.61-ndb-7.1.20) Step 3: Perform a rolling restart of the existing data nodes @@ -158887,17 +158909,17 @@ Node 1: Node shutdown completed, restarting, no start. Node 1 is being restarted - ndb_mgm> Node 1: Start initiated (version 7.1.19) - Node 1: Started (version 7.1.19) + ndb_mgm> Node 1: Start initiated (version 7.1.20) + Node 1: Started (version 7.1.20) ndb_mgm> 2 RESTART Node 2: Node shutdown initiated Node 2: Node shutdown completed, restarting, no start. Node 2 is being restarted - ndb_mgm> Node 2: Start initiated (version 7.1.19) + ndb_mgm> Node 2: Start initiated (version 7.1.20) - ndb_mgm> Node 2: Started (version 7.1.19) + ndb_mgm> Node 2: Started (version 7.1.20) *Important*: @@ -158952,17 +158974,17 @@ Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) - id=1 @192.168.0.1 (5.1.56-ndb-7.1.19, Nodegroup: 0, Master) - id=2 @192.168.0.2 (5.1.56-ndb-7.1.19, Nodegroup: 0) - id=3 @192.168.0.3 (5.1.56-ndb-7.1.19, *no nodegroup*) - id=4 @192.168.0.4 (5.1.56-ndb-7.1.19, *no nodegroup*) + id=1 @192.168.0.1 (5.1.61-ndb-7.1.20, Nodegroup: 0, Master) + id=2 @192.168.0.2 (5.1.61-ndb-7.1.20, Nodegroup: 0) + id=3 @192.168.0.3 (5.1.61-ndb-7.1.20, *no nodegroup*) + id=4 @192.168.0.4 (5.1.61-ndb-7.1.20, *no nodegroup*) [ndb_mgmd(MGM)] 1 node(s) - id=10 @192.168.0.10 (5.1.56-ndb-7.1.19) + id=10 @192.168.0.10 (5.1.61-ndb-7.1.20) [mysqld(API)] 2 node(s) - id=20 @192.168.0.20 (5.1.56-ndb-7.1.19) - id=21 @192.168.0.21 (5.1.56-ndb-7.1.19) + id=20 @192.168.0.20 (5.1.61-ndb-7.1.20) + id=21 @192.168.0.21 (5.1.61-ndb-7.1.20) Step 6: Create a new node group @@ -158982,17 +159004,17 @@ Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) - id=1 @192.168.0.1 (5.1.56-ndb-7.1.19, Nodegroup: 0, Master) - id=2 @192.168.0.2 (5.1.56-ndb-7.1.19, Nodegroup: 0) - id=3 @192.168.0.3 (5.1.56-ndb-7.1.19, *Nodegroup: 1*) - id=4 @192.168.0.4 (5.1.56-ndb-7.1.19, *Nodegroup: 1*) + id=1 @192.168.0.1 (5.1.61-ndb-7.1.20, Nodegroup: 0, Master) + id=2 @192.168.0.2 (5.1.61-ndb-7.1.20, Nodegroup: 0) + id=3 @192.168.0.3 (5.1.61-ndb-7.1.20, *Nodegroup: 1*) + id=4 @192.168.0.4 (5.1.61-ndb-7.1.20, *Nodegroup: 1*) [ndb_mgmd(MGM)] 1 node(s) - id=10 @192.168.0.10 (5.1.56-ndb-7.1.19) + id=10 @192.168.0.10 (5.1.61-ndb-7.1.20) [mysqld(API)] 2 node(s) - id=20 @192.168.0.20 (5.1.56-ndb-7.1.19) - id=21 @192.168.0.21 (5.1.56-ndb-7.1.19) + id=20 @192.168.0.20 (5.1.61-ndb-7.1.20) + id=21 @192.168.0.21 (5.1.61-ndb-7.1.20) Step 7: Redistribute cluster data @@ -159455,7 +159477,7 @@ distributed grant tables without any restrictions_.  -File: manual.info, Node: mysql-cluster-ndb-api-statistics, Prev: mysql-cluster-privilege-distribution, Up: mysql-cluster-management +File: manual.info, Node: mysql-cluster-ndb-api-statistics, Next: mysql-cluster-ndbmemcache, Prev: mysql-cluster-privilege-distribution, Up: mysql-cluster-management 17.5.14 NDB API Statistics Counters and Variables ------------------------------------------------- @@ -160183,120 +160205,989 @@ `Ndb_api_trans_local_read_row_count_session'.  -File: manual.info, Node: mysql-cluster-replication, Next: mysql-cluster-news, Prev: mysql-cluster-management, Up: mysql-cluster +File: manual.info, Node: mysql-cluster-ndbmemcache, Prev: mysql-cluster-ndb-api-statistics, Up: mysql-cluster-management -17.6 MySQL Cluster Replication -============================== +17.5.15 ndbmemcache +------------------- * Menu: -* mysql-cluster-replication-abbreviations:: MySQL Cluster Replication: Abbreviations and Symbols -* mysql-cluster-replication-general:: General Requirements for MySQL Cluster Replication -* mysql-cluster-replication-issues:: Known Issues in MySQL Cluster Replication -* mysql-cluster-replication-schema:: MySQL Cluster Replication Schema and Tables -* mysql-cluster-replication-preparation:: Preparing the MySQL Cluster for Replication -* mysql-cluster-replication-starting:: Starting MySQL Cluster Replication (Single Replication Channel) -* mysql-cluster-replication-two-channels:: Using Two Replication Channels for MySQL Cluster Replication -* mysql-cluster-replication-failover:: Implementing Failover with MySQL Cluster Replication -* mysql-cluster-replication-backups:: MySQL Cluster Backups With MySQL Cluster Replication -* mysql-cluster-replication-multi-master:: MySQL Cluster Replication: Multi-Master and Circular Replication -* mysql-cluster-replication-conflict-resolution:: MySQL Cluster Replication Conflict Resolution +* mysql-cluster-ndbmemcache-overview:: Overview +* mysql-cluster-ndbmemcache-building:: Compiling MySQL Cluster with Memcache Support +* mysql-cluster-ndbmemcache-command-options:: `memcached' command line options +* mysql-cluster-ndbmemcache-configuration:: NDB Engine Configuration +* mysql-cluster-ndbmemcache-protocol-commands:: Memcache protocol commands +* mysql-cluster-ndbmemcache-log:: The memcached log file -MySQL Cluster supports _asynchronous replication_, more usually -referred to simply as `replication'. This section explains how to set -up and manage a configuration in which one group of computers operating -as a MySQL Cluster replicates to a second computer or group of -computers. We assume some familiarity on the part of the reader with -standard MySQL replication as discussed elsewhere in this Manual. (See -*Note replication::). + +File: manual.info, Node: mysql-cluster-ndbmemcache-overview, Next: mysql-cluster-ndbmemcache-building, Prev: mysql-cluster-ndbmemcache, Up: mysql-cluster-ndbmemcache -Normal (non-clustered) replication involves a `master' server and a -`slave' server, the master being the source of the operations and data -to be replicated and the slave being the recipient of these. In MySQL -Cluster, replication is conceptually very similar but can be more -complex in practice, as it may be extended to cover a number of -different configurations including replicating between two complete -clusters. Although a MySQL Cluster itself depends on the *Note `NDB': -mysql-cluster. storage engine for clustering functionality, it is not -necessary to use *Note `NDB': mysql-cluster. as the storage engine for -the slave's copies of the replicated tables (see *Note -mysql-cluster-replication-ndb-non-ndb::). However, for maximum -availability, it is possible (and preferable) to replicate from one -MySQL Cluster to another, and it is this scenario that we discuss, as -shown in the following figure: +17.5.15.1 Overview +.................. -MySQL Cluster-to-Cluster Replication Layout +_Memcached_ is a distributed in-memory caching server using a simple +text-based protocol, commonly used for key-value data stores, with +clients available for many platforms and programming languages. The +most recent release of the `memcached' server is available from +memcached.org. + +The Memcache API for MySQL Cluster is available beginning with MySQL +Cluster NDB 7.2.2. This API is implemented as a loadable storage engine +for memcached version 1.6 and later, which employs a storage engine +architecture. This API can be used to provide a persistent MySQL +Cluster data store which is accessible employing the memcache protocol. +It is also possible for the `memcached' server to provide a strictly +defined interface to existing MySQL Cluster tables such that an +administrator can control exactly which tables and columns are +referenced by particular memcache keys and values, and which operations +are allowed on these keys and values. + +The standard `memcached' caching engine is included in the MySQL +Cluster distribution. Each memcache server, in addition to providing +direct access to data stored in MySQL Cluster, is able to cache data +locally and serve (some) requests from this local cache. As with table +and column mappings, cache policies are configurable based on a prefix +of a memcache key. -In this scenario, the replication process is one in which successive -states of a master cluster are logged and saved to a slave cluster. -This process is accomplished by a special thread known as the NDB -binlog injector thread, which runs on each MySQL server and produces a -binary log (`binlog'). This thread ensures that all changes in the -cluster producing the binary log--and not just those changes that are -effected through the MySQL Server--are inserted into the binary log -with the correct serialization order. We refer to the MySQL replication -master and replication slave servers as replication servers or -replication nodes, and the data flow or line of communication between -them as a _replication channel_. + +File: manual.info, Node: mysql-cluster-ndbmemcache-building, Next: mysql-cluster-ndbmemcache-command-options, Prev: mysql-cluster-ndbmemcache-overview, Up: mysql-cluster-ndbmemcache -For information about performing point-in-time recovery with MySQL -Cluster and MySQL Cluster Replication, see *Note -mysql-cluster-replication-pitr::. +17.5.15.2 Compiling MySQL Cluster with Memcache Support +....................................................... -NDB API `_slave' status variables +Support for the Memcache API is built automatically using the memcached +and libevent sources included in the MySQL Cluster sources when +compiling MySQL Cluster NDB 7.2.3 or later from source. By default, +`make install' places the `memcached' binary in the MySQL Cluster +installation `bin' directory, and the ndbmemcache engine shared object +file `ndb_engine.so' in the installation `lib' directory. + +You can disable use of the bundled memcached when building ndbmemcache, +by using `-DWITH_BUNDLED_MEMCACHED=OFF'; you can instead use your own +system's memcached server and sources, installed in PATH, with +`-DWITH_BUNDLED_MEMCACHED=OFF' `-DMEMCACHED_HOME=PATH'. You can also +cause your system's version of libevent to be used, rather than the +version bundled with MySQL Cluster, by using the +`-DWITH_BUNDLED_LIBEVENT=OFF' option. + +For additional information about `CMake' options relating to +ndbmemcache support, see `CMake' Options for Compiling MySQL Cluster. + +For general information about building MySQL Cluster, see *Note +mysql-cluster-install-linux-source::, and *Note +mysql-cluster-install-windows-source::. For information about building +MySQL Server from source, see *Note source-installation::, as well as +*Note source-configuration-options::. -NDB API counters can provide enhanced monitoring capabilities on MySQL -Cluster replication slaves. These are implemented as NDB statistics -`_slave' status variables, as seen in the output of *Note `SHOW -STATUS': show-status, or in the results of queries against the *Note -`SESSION_STATUS': status-table. or *Note `GLOBAL_STATUS': status-table. -table in a *Note `mysql': mysql. client session connected to a MySQL -Server that is acting as a slave in MySQL Cluster Replication. By -comparing the values of these status variables before and after the -execution of statements affecting replicated *Note `NDB': -mysql-cluster. tables, you can observe the corresponding actions taken -on the NDB API level by the slave, which can be useful when monitoring -or troubleshooting MySQL Cluster Replication. *Note -mysql-cluster-ndb-api-statistics::, provides additional information. + +File: manual.info, Node: mysql-cluster-ndbmemcache-command-options, Next: mysql-cluster-ndbmemcache-configuration, Prev: mysql-cluster-ndbmemcache-building, Up: mysql-cluster-ndbmemcache -Replication from `NDB' to non-`NDB' tables +17.5.15.3 `memcached' command line options +.......................................... -It is possible to replicate *Note `NDB': mysql-cluster. tables from a -MySQL Cluster acting as the master to tables using other MySQL storage -engines such as *Note `InnoDB': innodb-storage-engine. or *Note -`MyISAM': myisam-storage-engine. on a slave *Note `mysqld': mysqld. -However, because of differences between the version of *Note `mysqld': -mysqld. provided with MySQL Cluster and that included with MySQL Server -5.5, the slave server must also use a *Note `mysqld': mysqld. binary -from the MySQL Cluster distribution. See *Note -mysql-cluster-replication-general::. +The following list contains `memcached' command line options that are +of particular interest or usefulness when working with ndbmemcache. - -File: manual.info, Node: mysql-cluster-replication-abbreviations, Next: mysql-cluster-replication-general, Prev: mysql-cluster-replication, Up: mysql-cluster-replication + * `-E SO_FILE' -17.6.1 MySQL Cluster Replication: Abbreviations and Symbols ------------------------------------------------------------ + Specifies an engine (module) to be dynamically loaded on startup + by memcached (version 1.6 or later). -Throughout this section, we use the following abbreviations or symbols -for referring to the master and slave clusters, and to processes and -commands run on the clusters or cluster nodes: + If this option is not specified, memcached tries to load the + default engine, which provides the same caching engine as used in + memcached 1.4 and previous versions -Symbol or Description (Refers to...) -Abbreviation -M The cluster serving as the (primary) replication - master -S The cluster acting as the (primary) replication slave -`shellM>' Shell command to be issued on the master cluster -`mysqlM>' MySQL client command issued on a single MySQL server - running as an SQL node on the master cluster -`mysqlM*>' MySQL client command to be issued on all SQL nodes - participating in the replication master cluster -`shellS>' Shell command to be issued on the slave cluster -`mysqlS>' MySQL client command issued on a single MySQL server - running as an SQL node on the slave cluster -`mysqlS*>' MySQL client command to be issued on all SQL nodes - participating in the replication slave cluster -C Primary replication channel + To load the NDB engine, use this option as shown here: + + -E /PATH/TO/NDB_ENGINE.SO + + * `-e "CONFIGURATION_STRING"' + + Specifies options for use by the loaded engine. Options are given + as OPTION=VALUE pairs separated by semicolons. The complete string + should be quoted to prevent the possibility that the shell might + interpret the semicolon as a command separator. All options to be + passed to the NDB memcached engine must be specified in this + fashion, as shown in the following example: + + shell> memcached -E lib/ndb_engine.so -e "connectstring=maddy:1186;role=dev" + + See *Note mysql-cluster-ndbmemcache-configuration:: for a list of + NDB memcached engine configuration options. + + * `-t NUMBER_OF_WORKER_THREADS' + + Sets the number of worker threads to be used by memcached. + Because memcached uses an event-driven model in which each worker + thread should be able to saturate a CPU core, the number of worker + threads should be approximately the same as the number of CPU + cores that memcached is to use. + + In some cases, adding worker threads does not improve performance + unless you also provide additional connections to MySQL Cluster. + The default (4 memcached threads and 2 cluster connections) should + work in most cases. + + * `-p TCP_PORT' + + The default TCP port is port 11211. + + * `-U UDB_PORT' + + The default UDP port is port 11211. Setting this option to 0 + disables UDP support. + + * `-h' + + Causes `memcached' to print help information. + +For general information `memcached' command line options, see the +documentation at http://code.google.com/p/memcached/wiki/NewStart. + + +File: manual.info, Node: mysql-cluster-ndbmemcache-configuration, Next: mysql-cluster-ndbmemcache-protocol-commands, Prev: mysql-cluster-ndbmemcache-command-options, Up: mysql-cluster-ndbmemcache + +17.5.15.4 NDB Engine Configuration +.................................. + +NDB memcache engine configuration options + +The NDB engine supports the following configuration options for use +with `memcache `-e'' (see *Note +mysql-cluster-ndbmemcache-command-options::): + + * `debug={true|false}' + + Enables writing of debug tracing output to `stderr' or the + memcached log file, as shown in this example: + + shell> memcached -E lib/ndb_engine.so -e "debug=true" + + Because the debug output can be quite large, you should enable + this option as a diagnostic tool only, and not in production. + + By default, this option is `false'. + + * `connectstring=CONNECT_STRING' + + This option takes as its value a MySQL Cluster connectstring (see + *Note mysql-cluster-connectstring::) pointing to the primary MySQL + Cluster--that is, the MySQL Cluster in which the `ndbmemcache' + configuration database is stored, as shown here: + + shell > memcached -E lib/ndb_engine.so -e "connectstring=sam:1186;debug=true" + + The default value is `localhost:1186'. + + * `reconf={true|false}' + + Enables online reconfiguration (reloading of the configuration + stored in the `ndbmemcache' information database). + + This option is enabled (`true') by default. + + * `role=ROLE_NAME' + + Sets the role assumed by this memcached server. A role corresponds + to a set of key-prefix mappings described in the `ndbmemcache' + configuration database, identified by a ROLE_NAME found in the + `ndbmemcache.memcache_server_roles' table. + + The default role is `default_role'. + + An example is shown here: + + shell> memcached -E lib/ndb_engine.so -e "role=db-only" + + * `scheduler=SCHEDULER_NAME:SCHEDULER_OPTIONS' + + This option controls some advanced aspects of how the NDB engine + sends requests to MySQL Cluster. The SCHEDULER_NAME of the default + scheduler or _S-scheduler_ is `S'. An S-scheduler option takes the + form of a single letter followed by a number; multiple S-scheduler + options are separated by commas. In most cases, the default value + `S:c0,f0,t1' is sufficient. + + These S-scheduler options are described in the following list: + + * `c': Number of connections to *Note `NDB': mysql-cluster. + Possible values are in the range 0-4 inclusive, with 0 (the + default) causing this number to be calculated automatically. + Using 1, 2, 3, or 4 causes that number of connections to be + created. + + * `f': Can be either 0 or 1; setting to 1 enables force-send. + The default is 0 (force-send disabled). + + * `t': Sets the send-thread timer to 1-10 milliseconds + (inclusive). The default is 1. + +Initial Configuration + +When a the NDB engine starts up, its most important command-line +arguments are the cluster connectstring and server role. The +connectstring is used to connect to a particular cluster, called the +primary cluster, which contains a configuration schema. The tables in +the configuration schema are read to retrieve a set of key-prefix +mappings for the given server role (see the ndbmemcache configuration +schema). Those mappings instruct the server how to respond to memcache +operations on particular keys, based on the leftmost part of the key. +For instance, they may specify that data is stored in particular +columns of a certain table. This table may be stored in the same +cluster as the configuration schema, or in a different cluster. A +memcache server may have connections to several different clusters, and +many memcache servers may connect to a single cluster but with a +variety of roles. + +The ndbmemcache configuration schema + +When the memcache NDB engine starts up, it connects to a cluster, and +looks for the ndbmemcache configuration schema there. If the schema is +not found, it shuts down. + +The schema is described (with full comments) in the file +ndb_memcache_metadata.sql + +The main concept of the schema is a key-prefix mapping. This takes a +prefix of a memcache key and maps it to a specific container table, on +a particular cluster, with a particular cache policy. + +A server role is defined as a set of key-prefix mappings that a +memcached server will implement. + +Whenever a memcached server is started with a particular server role +(from the command-line arguments), that server role must exist in the +ndbmemcache.server_roles table. + +The configuration tables + +Table Name Description +`meta' The meta table describes the version number of the + ndbmemcache tables. It should be considered as a + read-only table. +`ndb_clusters' For each cluster, this table holds a numeric cluster-id + and a connectstring. The microsec_rtt column is used for + performance tuning. It is recommended to use the default + value of this column. See *Note + mysql-cluster-ndbmemcache-tuning-autotuning::. +`cache_policies'This table maps a policy name to a set of get, set, + delete, and flush policies. The `policy_name' column is + used as the key (there is no numeric policy id). + + Additional information about cache policies can found in + the text following the table. +`containers' The containers table describes how the memcached server + can use a database table to store data. + + Additional information about containers can found in the + text following the table. +`memcache_server_roles'The `memcache_server_roles' table maps a role name to a + numeric ID and a `max_tps' specifier, which is used for + performance tuning. See *Note + mysql-cluster-ndbmemcache-tuning-autotuning::. It is + recommended to use the default value. + + This table also has an update_timestamp column. This + column can be updated to enable online reconfiguration. + See *Note + mysql-cluster-ndbmemcache-online-reconfiguration::. + + Additional information about server roles can found in + the text following the table. +`key_prefixes' In this table, the leftmost part of a memcache key is + paired with a cluster ID, container, and cache policy to + make a _key prefix mapping_. + + Additional information about key prefix mappings can + found in the text following the table. + +Cache policies + +There are four policy types: `get_policy', `set_policy', +`delete_policy', and `flush_from_db'. These are described in the +following paragraphs. + +`get_policy' determines how the memcached server interprets `GET' +commands. Possible values and their meanings are shown in the following +list: + + * `cache_only': The server searches in its local cache only. + + * `ndb_only': The server searches in the MySQL Cluster database only. + + * `caching': The server searches the local cache first, then the + MySQL Cluster database. + + * `disabled': `GET' commands are not permitted. + +The `set_policy' determines how the memcached server interprets `SET', +`INSERT', and `REPLACE' commands. Possible `set_policy' values and +their meanings are listed here: + + * `cache_only': The server updates the value in its local cache only. + + * `ndb_only': The server updates the value stored in MySQL Cluster + only. + + * `caching': The server updates the value stored in MySQL Cluster, + and then stores a copy of that value in its local cache. + + * `disabled': `SET', `INSERT', and `REPLACE' commands are not + allowed. + +`delete_policy' describes how the memcached server interprets `DELETE' +commands. It can take on the values shown and described in the +following list: + + * `cache_only': The server deletes the value from its local cache + only. + + * `ndb_only': The server deletes the value from the MySQL Cluster + database only. + + * `caching': The server deletes the value from both the database and + its local cache. + + * `disabled': `DELETE' operations are not allowe. + +`flush_from_db' determines how the memcached server interprets a +`FLUSH_ALL' command with regard to data stored in the MySQL Cluster +database, as shown here: + + * `true': `FLUSH_ALL' commands cause data to be deleted from the + MySQL Cluster database. + + * `false': `FLUSH_ALL' commands do not affect the MySQL Cluster + database. + +`containers' table columns + +The columns in the `containers' table are described in the following +list: + + * `name': Name of container; primary key of table. + + * `db_schema': Name of database (schema) holding container table. + + * `db_table': table name of container table. + + * `key_columns': List of columns that map to the memcache key. Most + keys are one-part keys, but a key can have up to four parts, in + which case multiple columns are listed and separated by commas. + + * `value_columns': List of columns that map to the memcache value. + It can also contain a comma-separated list of up to 16 value + columns. + + * `flags': Currently unimplemented; it is intended hold either a + numeric value which is used as the memcache `FLAGS' value for the + entire container, or the name of that column of the container table + used to store this value. + + * `increment_column': Name of the column in the container table + which stores the numeric value used in memcached `INCR' and `DECR' + operations. If set, this must be a `BIGINT UNSIGNED' column. + + * `cas_column' Name of the column in the container table storing the + memcache CAS value. If set, it must be a `BIGINT UNSIGNED' column. + + * `expire_time_column': Currently unimplemented. + +Key mappings + + * server_role_id is a numeric server role identifier which + references the memcache_server_roles table + + * key_prefix is a string that corresponds to the leftmost part of + the memcache key. If this string is empty, then the defined prefix + will be the "default prefix". The default prefix matches any + memcache key that does not match some more specific prefix. + + * cluster_id is an int that references the ndb_clusters table + + * policy is a string that references a policy name in the + cache_policies table + + * container is a container name that references the containers table + +Non-configuration tables + +Table Name Description +`last_memcached_signon'This table is not part of the configuration schema, but + is an informative logging table. It records the most + recent login time of each memcached server using the + configuration. + + * ndb_node_id is an int recording the API node id of + the server + + * hostname is the hostname of the memcached server + + * server_role is the server role of the server at + signon time + + * signon_time is a timestamp recording the memcached + startup time + + In the case of online reconfiguration, signon_time + records the time of the latest reconfiguration, not + the time of startup. This is an unintended + consequence and might be considered a bug. +`demo_table' demo_table is the container table used with default key + prefix in the default server role. It is used to + demonstrate SET and GET operations as well as INCR, DECR, + and CAS, with one key column and one value column. +`demo_table_tabs'demo_table_tabs is the container table for the + "demo_tabs" container, which is used with the key prefix + "t:" in the default server role. It is used to + demonstrate one key column with multiple value columns. + In memcache operations, the value columns are represented + as a tab-separated list of values. + +Predefined configuration objects + +Predefined clusters + +A single ndb_cluster record is predefined, referring to the primary +cluster (the one where configuration data is stored) as cluster id 0. +Id 0 should always be reserved for the primary cluster. + +Predefined cache policies + + * "memcache-only" : a policy in which all memcache operations are to + use local cache only + + * "ndb-only" : a policy in which all memcache operations use the + MySQL Cluster database, except for FLUSH_ALL, which is disabled + + * "caching" : a policy with get_policy, set_policy, and + delete_policy all set to "caching". FLUSH_ALL is disabled. + + * "caching-with-local-deletes": a policy in which get_policy and + set_policy are set to caching, but delete_policy is set to + "cache-only", and FLUSH_ALL is disabled. + + * "ndb-read-only": a policy in which get_policy is set to ndb_only, + so that memcache GET operations use the database, but all other + memcache operations are disabled + + * "ndb-test": a policy like "ndb-only" with the difference that + FLUSH_ALL is allowed (flush_from_db) is true. This is the only + predefined policy with flush_from_db enabled. This policy is + enabled by default for the default server role, so taht the entire + memcache command set can be demonstrated. + +Predefined containers + + * "demo_table": a container using the table ndbmemcache.demo_table + as a container table + + * "demo_tabs": a container using the table + ndbmemcache.demo_table_tabs as a container table + +Predefined memcache server roles and their key prefixes + + * "default_role" (role id 0) + + "": The empty (default) prefix uses the ndb-test policy and the + demo_table container + + "mc:" Memcache keys beginning with "mc:" are treated according to + the memcache-only cache policy + + "t:" Memcache keys beginning with "t:" use the ndb-test cache + policy and the demo_tabs container + + * The "db-only" role (role id 1) + + "": the empty (default) prefix uses the ndb-only role and + demo_table container + + The "t:" prefix uses the ndb-only role and demo_tabs container + + * The "mc-only" role (role id 2) + + "": The empty (default) prefix uses local caching only for all keys + + * The "ndb-caching" role (role id 3) + + "": The empty (default) prefix uses the "caching" cache policy and + "demo_table" container for all keys + +Configuration versioning and upgrade + +The configuration schema is versioned, and the version number is stored +in the ndbmemcache.meta table. The NDB Engine begins the configuration +process by reading the schema version number from this table. As a +rule, newer versions of the NDB engine will remain compatible with +older versions of the configuration schema. + +STABILITY NOTE: consider this section "unstable" & subject to change + +Performance Tuning + +Two parameters are used to tune performance of the NDB memcache engine. +The parameters are stored in the configuration schema: the "usec_rtt" +value of a particular cluster, and the "max_tps" value of a memcache +server role. These values are currently used in two ways: to configure +the number of connections to each cluster, and to configure a +particular fixed number of concurrent operations supported from each +connection. + +Autotuning + +Autotuning uses an estimated round trip time between cluster data nodes +and a target rate of throughput to determine the ideal number of +cluster connections and transactions per connection for a given +workload. Autotuning parameters are described in the next few +paragraphs. + + * `usec_rtt': The round trip time, in microseconds, between cluster + nodes. The default value is 250, which is typical for a MySQL + Cluster on a local switched ethernet. To represent a cluster with + higher inter-node latency (wider area), a higher value should be + used. + + * `max_tps': The desired throughput from a server. This value is a + heuristic, and does not in any way express either a floor or a + ceiling on the actual throughput obtained. The default value + (100000) is reasonable in most cases. + +These values are used, as described in the next few paragraphs, to +calculate an optimum number of cluster connections with a given +transactions-per-second capacity.. + +Number of cluster connections + +The NDB Engine scheduler attempts to open 1 cluster connection per +50000 transactions per second (TPS). This behavior can be overridden by +using a scheduler configuration string (see *Note +mysql-cluster-ndbmemcache-configuration::.) If the scheduler fails to +open a second or subsequent connection to a cluster--for example, +because a node id is not available--this is not a fatal error; it will +run with only the connections actually opened. + +Number of transactions per connection + +We assume that a transaction takes 5 times the cluster round trip time +to complete. We can obtain the total number of in-flight transactions +by dividing the server's `max_tps' by `5 * rtt' (in seconds). These +in-flight transaction objects are evenly distributed among the cluster +connections. + +Tuning example + +The following example starts with the default values `usec_rtt' = 250 +and `max_tps' = 100000, and assumes a memcached server with 4 worker +threads. + + * 100000 TPS divided by 50000 is 2, and the server opens two NDB + cluster connections. + + * Transaction time in microseconds = 250 µs round trip time * 5 + round trips = 1250 µs. + + * Transactions per connection per second = 1000000 / + tx_time_in_µsec = 1000000 / 1250 = 800. + + * Total Ndb objects = max_tps / tx_per_ndb_per_sec = 100000 / 800 = + 125. + + * 125 Ndb objects / 2 connections = 63 Ndb objects per connection + (rounding upward). + + * (Rounding upward once more) each of 4 worker threads gets 32 Ndb + objects + +Online reconfiguration + +It is possible to reconfigure the key-prefix mappings of a running NDB +engine without restarting it. This is done by committing a change to +the configuration schema, and then updating the `update_timestamp' +column of a particular server role in the memcache server roles table. +The updating of the timestamp causes an event trigger to fire, so that +the memcache server receives notification of the event. + +Online reconfiguration can be disabled by using the `-e reconf=false' +option on the command line. + +Online reconfiguration can be used to connect to new clusters and to +create new key-prefix mappings. However, it cannot be used to reset +autotuning values on existing connections. + +Online reconfiguration is a risky operation that could result in +memcache server crashes or data corruption, and is used extensively in +the mysql test suite. However, it is not recommended for reconfiguring +a production server under load. + +The `stats reconf' command can be run before and after online +reconfiguration to verify that the version number of the running +configuration has increased. Verification of reconfiguration is also +written into the memcached log file. + + +File: manual.info, Node: mysql-cluster-ndbmemcache-protocol-commands, Next: mysql-cluster-ndbmemcache-log, Prev: mysql-cluster-ndbmemcache-configuration, Up: mysql-cluster-ndbmemcache + +17.5.15.5 Memcache protocol commands +.................................... + +The NDB engine supports the complete set of memcache protocol commands. +When a newly installed server is started with the default server role +and configuration schema, you should be able to run `memcapable', a +memcache-server verification tool, and see all tests pass. After a +configuration has been customized, however--for instance, by disabling +the FLUSH_ALL command--some `memcapable' tests are expected to fail. + +`GET', `SET', `ADD', `REPLACE', and `DELETE' operations + +Each of these operations is always performed according to a cache +policy associated with the memcache key prefix. It may operate on a +locally cached item, an item stored in the database, or both. If an +operation has been disabled for the prefix, the developer should be +sure to test the disabled operation, since it may fail silently, or +with a misleading response code. + +CAS + +_CAS_, in the memcache protocol, refers to a `compare and set' value, +which is used as a sort of version number on a cached value, and +enables some optimistic application behavior + +If a container includes a CAS column, the ndb engine will generate a +unique CAS ID every time it writes a data value, and store it in the +CAS column. + +Some memcache operations include CAS checks, such as the ASCII CAS +update which has the semantics `update this value, but only if its CAS +id matches the CAS id in the request'. These operations are supported +by the NDB engine. The check of the stored CAS ID against the +application's CAS ID is performed in an atomic operation on the NDB +data node. This allows CAS checks to work correctly even when multiple +memcached servers access the same key-value pair. + +If CAS ID checks are in use, and additional MySQL Cluster APIs other +than memcached are being used to manipulate the data, then the +applications using those APIs are responsible for invalidating the +stored CAS IDs whenever they update data. They can do this by setting +the stored CAS ID value to 0 or `NULL'. + +The CAS ID is generated using a scheme that attempts to prevent +different servers from generating overlapping IDs. This scheme can be +considered a best effort, but not a guarantee, of uniqueness. The +scheme constructs an initial CAS as follows: + +Part of the 32-bit Cluster GCI from the primary cluster at memcached +startup time is used for the high-order bits of the 64-bit CAS ID + +Part of the unique cluster node id in the primary cluster used when +fetching configuration is used for middle-order bits of the CAS ID + +An incrementing counter in the low-order bits of the CAS ID is at least +28-bits wide. + +While the NDB engine generates one sequence of CAS IDs, the default +engine--used for caching values in local memcached servers--generates a +different sequence. Not all combinations of CAS behavior and cache +policies have been tested, so any application developer wishing to use +CAS should thoroughly test whether a particular configuration behaves as +desired. + +FLUSH_ALL + +FLUSH_ALL is implemented as follows: First, the NDB engine iterates +over all configured key-prefixes. For any prefix whose cache policy +enables a database flush (`flush_from_db' is `true'), it performs a +scanning delete of every row in that prefix's container table. Other +prefixes are ignored. This can be a slow operation if the table is +large, and some memcache clients may time out before the `DELETE' +operation is complete. After all database deletes are complete, the +`FLUSH_ALL' command is forwarded to the standard caching engine, which +sets a flag invalidating all cached data. + +`INCR' and `DECR' + +All `INCR' and `DECR' operations are pushed down to the NDB data nodes +and performed atomically there. This allows multiple memcached servers +to increment or decrement the same key and be guaranteed a unique value +each time. + +The `INCR' and `DECR' operations have clearer and more useful semantics +in the binary memcache protocol than in the ASCII protocol. The binary +protocol is recommended. + +The memcached ASCII protocol introduces some ambiguities in the +handling of `INCR' and `DECR', and forces the NDB engine to work in +`dup_numbers' mode, in which the `value_column' and the `math_column' +must mirror each other. + +`dup_numbers' mode is enabled for key prefixes that meet all of the +following conditions: + + * The container includes a math column, AND + + * The container includes a single value column, AND + + * The data type of the value column is non-numeric + +In `dup_numbers' mode, the following special behavior applies: + + * Whenever an ASCII `SET', `ADD', or `REPLACE' command sets a value + that could be interpreted as numeric, and the container defines a + math_column, then the text value is stored in the value column and + the numeric value is also stored in the math column. + + * Whenever an ASCII `INCR' or `DECR' command is performed, the text + value in that container's value column is set to `NULL'. + + * Whenever a memcached `GET' command is issued, and the container's + value column is `NULL', but the container's math column is not + `NULL', then the math value is returned to the client. + +`APPEND' and `PREPEND' + +The memcache `APPEND' and `PREPEND' operations are implemented as a +single transaction which involves a read of the existing value with an +exclusive lock, followed by a write of the new value. The read and +write are grouped atomically into a transaction, but unlike `INCR' and +`DECR', which can run natively on the data nodes, `APPEND' and +`PREPEND' are executed inside the memcached server. This means that +multiple memcached servers can contend to `APPEND' and `PREPEND' the +same value, and that no updates will be lost, but this contention +relies on locking behavior that could cause noticably increased latency. + +STATS + +A memcached server can provide many sets of statistics; use `STATS +KEYWORD' from a login shell. + +All statistics usually available from the memcached 1.6 core and the +default engine are available. For instance, `STATS', `STATS SLABS', and +`STATS SETTINGS' are all currently supported as described in the +memcached documentation. Some special sets of statistics are available +from the `NDB' engine, using the `STATS' commands described in the +following list: + + * `STATS NDB': Returns NDB API statistics for each NDB cluster + connection. These are the same internal statistics which are + available as system status variables from the MySQL Server. See + *Note mysql-cluster-ndb-api-statistics::, for more information. + + * `STATS SCHEDULER': Returns statistics for the S scheduler. All of + these statistics are reported on the cluster connection level. + + * `cl%d.conn%d.sent_operations': Records the number of + operations sent from the connection's send thread to the + cluster data nodes. + + * `cl%d.conn%d.batches': Records the number of operation + batches sent from the send thread to the data nodes. Each + batch contains one or more operations. `sent_operations' / + `batches' can be used to compute the average batch size. + + * `cl%d.conn%d.timeout_races': This records a rare race + condition that may occur in the send thread. It is expected + to be 0, or to be a very low number compared to + sent_operations. + + * `stats reconf': If the `NDB' engine is currently loading a new + configuration, command returns the single-line message `Loading + REVNO', where REVNO is the version number of the configuration + being loaded. + + Otherwise, this command returns the statistical message `Running + REVNO'. + + REVNO starts at 1 when the memcached server begins running, and is + incremented by 1 for each online reconfiguration. + + +File: manual.info, Node: mysql-cluster-ndbmemcache-log, Prev: mysql-cluster-ndbmemcache-protocol-commands, Up: mysql-cluster-ndbmemcache + +17.5.15.6 The memcached log file +................................ + +Whenever the `NDB' memcache engine is initialized, it writes a message +including a timestamp and version number to its log file, as shown here: + + 12-Oct-2011 13:40:00 PDT NDB Memcache 5.5.15-ndb-7.2.1 started + [NDB 7.2.1; MySQL 5.5.15] + +It also logs its attempt to connect to a primary cluster: + + Contacting primary management server (localhost:1186) ... + ·Connected to "localhost:1186" as node id 4. + +Upon successfully fetching initial configuration data, the memcache +engine logs a summary message describing the configuration similar to +what is shown here: + + Retrieved 3 key prefixes for server role "default_role" + The default behavior is that: + GET uses NDB only + SET uses NDB only + DELETE uses NDB only + The 2 explicitly defined key prefixes are "mc:" () and "t:" (demo_table_tabs) + Server started with 4 threads. + +The memcache engine also logs the establishment of each additional +cluster connection, as shown here: + + Connected to "" as node id 5. + +A `priming the pump...' message indicates that the engine is about to +prefetch a pool of transaction objects (API Connect Records). It is +followed by a `done ...' message indicating how much time was used by +prefetching. The server is not ready to respond to clients until after +the prefetching is completed. + + Priming the pump ... + Scheduler: using 2 connections to cluster 0 + Scheduler: starting for 1 cluster; c0,f0,t1 + done [0.579 sec]. + +Once the NDB engine has finished initializing, memcached prints a +message verifying that the engine was loaded, and enumerating some of +its features: + + Loaded engine: NDB Memcache 5.5.15-ndb-7.2.1 + Supplying the following features: compare and swap, persistent storage, LRU + +If online reconfiguration is enabled, the NDB engine logs each +reconfiguration, along with a summary of the new configuration, similar +to what is shown here: + + Received update to server role default_role + Retrieved 3 key prefixes for server role "default_role". + The default behavior is that: + GET uses NDB only + SET uses NDB only + DELETE uses NDB only. + The 2 explicitly defined key prefixes are "mc:" () and "t:" (demo_table_tabs) + ONLINE RECONFIGURATION COMPLETE + +On shutdown, memcached logs the shutdown sequence'a initialization and +completion, and the NDB engine's scheduler logs its own shutdown as +well: + + Initiating shutdown + Shutting down scheduler. + Shutdown completed. + + +File: manual.info, Node: mysql-cluster-replication, Next: mysql-cluster-news, Prev: mysql-cluster-management, Up: mysql-cluster + +17.6 MySQL Cluster Replication +============================== + +* Menu: + +* mysql-cluster-replication-abbreviations:: MySQL Cluster Replication: Abbreviations and Symbols +* mysql-cluster-replication-general:: General Requirements for MySQL Cluster Replication +* mysql-cluster-replication-issues:: Known Issues in MySQL Cluster Replication +* mysql-cluster-replication-schema:: MySQL Cluster Replication Schema and Tables +* mysql-cluster-replication-preparation:: Preparing the MySQL Cluster for Replication +* mysql-cluster-replication-starting:: Starting MySQL Cluster Replication (Single Replication Channel) +* mysql-cluster-replication-two-channels:: Using Two Replication Channels for MySQL Cluster Replication +* mysql-cluster-replication-failover:: Implementing Failover with MySQL Cluster Replication +* mysql-cluster-replication-backups:: MySQL Cluster Backups With MySQL Cluster Replication +* mysql-cluster-replication-multi-master:: MySQL Cluster Replication: Multi-Master and Circular Replication +* mysql-cluster-replication-conflict-resolution:: MySQL Cluster Replication Conflict Resolution + +MySQL Cluster supports _asynchronous replication_, more usually +referred to simply as `replication'. This section explains how to set +up and manage a configuration in which one group of computers operating +as a MySQL Cluster replicates to a second computer or group of +computers. We assume some familiarity on the part of the reader with +standard MySQL replication as discussed elsewhere in this Manual. (See +*Note replication::). + +Normal (non-clustered) replication involves a `master' server and a +`slave' server, the master being the source of the operations and data +to be replicated and the slave being the recipient of these. In MySQL +Cluster, replication is conceptually very similar but can be more +complex in practice, as it may be extended to cover a number of +different configurations including replicating between two complete +clusters. Although a MySQL Cluster itself depends on the *Note `NDB': +mysql-cluster. storage engine for clustering functionality, it is not +necessary to use *Note `NDB': mysql-cluster. as the storage engine for +the slave's copies of the replicated tables (see *Note +mysql-cluster-replication-ndb-non-ndb::). However, for maximum +availability, it is possible (and preferable) to replicate from one +MySQL Cluster to another, and it is this scenario that we discuss, as +shown in the following figure: + +MySQL Cluster-to-Cluster Replication Layout + +In this scenario, the replication process is one in which successive +states of a master cluster are logged and saved to a slave cluster. +This process is accomplished by a special thread known as the NDB +binlog injector thread, which runs on each MySQL server and produces a +binary log (`binlog'). This thread ensures that all changes in the +cluster producing the binary log--and not just those changes that are +effected through the MySQL Server--are inserted into the binary log +with the correct serialization order. We refer to the MySQL replication +master and replication slave servers as replication servers or +replication nodes, and the data flow or line of communication between +them as a _replication channel_. + +For information about performing point-in-time recovery with MySQL +Cluster and MySQL Cluster Replication, see *Note +mysql-cluster-replication-pitr::. + +NDB API `_slave' status variables + +NDB API counters can provide enhanced monitoring capabilities on MySQL +Cluster replication slaves. These are implemented as NDB statistics +`_slave' status variables, as seen in the output of *Note `SHOW +STATUS': show-status, or in the results of queries against the *Note +`SESSION_STATUS': status-table. or *Note `GLOBAL_STATUS': status-table. +table in a *Note `mysql': mysql. client session connected to a MySQL +Server that is acting as a slave in MySQL Cluster Replication. By +comparing the values of these status variables before and after the +execution of statements affecting replicated *Note `NDB': +mysql-cluster. tables, you can observe the corresponding actions taken +on the NDB API level by the slave, which can be useful when monitoring +or troubleshooting MySQL Cluster Replication. *Note +mysql-cluster-ndb-api-statistics::, provides additional information. + +Replication from `NDB' to non-`NDB' tables + +It is possible to replicate *Note `NDB': mysql-cluster. tables from a +MySQL Cluster acting as the master to tables using other MySQL storage +engines such as *Note `InnoDB': innodb-storage-engine. or *Note +`MyISAM': myisam-storage-engine. on a slave *Note `mysqld': mysqld. +However, because of differences between the version of *Note `mysqld': +mysqld. provided with MySQL Cluster and that included with MySQL Server +5.5, the slave server must also use a *Note `mysqld': mysqld. binary +from the MySQL Cluster distribution. See *Note +mysql-cluster-replication-general::. + + +File: manual.info, Node: mysql-cluster-replication-abbreviations, Next: mysql-cluster-replication-general, Prev: mysql-cluster-replication, Up: mysql-cluster-replication + +17.6.1 MySQL Cluster Replication: Abbreviations and Symbols +----------------------------------------------------------- + +Throughout this section, we use the following abbreviations or symbols +for referring to the master and slave clusters, and to processes and +commands run on the clusters or cluster nodes: + +Symbol or Description (Refers to...) +Abbreviation +M The cluster serving as the (primary) replication + master +S The cluster acting as the (primary) replication slave +`shellM>' Shell command to be issued on the master cluster +`mysqlM>' MySQL client command issued on a single MySQL server + running as an SQL node on the master cluster +`mysqlM*>' MySQL client command to be issued on all SQL nodes + participating in the replication master cluster +`shellS>' Shell command to be issued on the slave cluster +`mysqlS>' MySQL client command issued on a single MySQL server + running as an SQL node on the slave cluster +`mysqlS*>' MySQL client command to be issued on all SQL nodes + participating in the replication slave cluster +C Primary replication channel C' Secondary replication channel M' Secondary replication master S' Secondary replication slave @@ -160473,12 +161364,11 @@ In this case, different SQL nodes in each cluster are used as replication masters and slaves. However, you must _not_ start any of -the SQL nodes using `--log-slave-updates' (see the description of this -option for more information). This type of circular replication scheme -for MySQL Cluster, in which the line of replication (again indicated by -the red arrows in the diagram) is discontinuous, should be possible, -but it should be noted that it has not yet been thoroughly tested and -must therefore still be considered experimental. +the SQL nodes using `--log-slave-updates'. This type of circular +replication scheme for MySQL Cluster, in which the line of replication +(again indicated by the red arrows in the diagram) is discontinuous, +should be possible, but it should be noted that it has not yet been +thoroughly tested and must therefore still be considered experimental. *Note*: @@ -160559,8 +161449,7 @@ to clear the invalid `ndb_binlog_index' and `ndb_apply_status' tables, respectively. -* Replication from *Note `NDB': mysql-cluster. to other storage engines -* +Replication from `NDB' to other storage engines It is possible to replicate an *Note `NDB': mysql-cluster. table on the master to a table using a different storage engine on the slave, @@ -161810,12 +162699,11 @@ In this case, different SQL nodes in each cluster are used as replication masters and slaves. However, you must _not_ start any of -the SQL nodes using `--log-slave-updates' (see the description of this -option for more information). This type of circular replication scheme -for MySQL Cluster, in which the line of replication (again indicated by -the red arrows in the diagram) is discontinuous, should be possible, -but it should be noted that it has not yet been thoroughly tested and -must therefore still be considered experimental. +the SQL nodes using `--log-slave-updates'. This type of circular +replication scheme for MySQL Cluster, in which the line of replication +(again indicated by the red arrows in the diagram) is discontinuous, +should be possible, but it should be noted that it has not yet been +thoroughly tested and must therefore still be considered experimental. *Important*: @@ -161860,8 +162748,7 @@ Not all MySQL servers taking part in multi-master replication must act as both master and slave, and a given MySQL Cluster might use different -SQL nodes for diffferent replication channels. Such a case is shown -here: +SQL nodes for different replication channels. Such a case is shown here: Multi-master MySQL Cluster replication setup, detail with MySQL Servers @@ -161983,6 +162870,11 @@ done using the `mysql.ndb_replication' system table, on a per-table basis (see *Note mysql-cluster-ndb-replication-table::). + * Prior to MySQL Cluster NDB 7.2.5, conflict detection and + resolution did not always work properly unless set up for *Note + `NDB': mysql-cluster. tables created on the same server only (Bug + #13578660). + When using the functions `NDB$OLD()', `NDB$MAX()', and `NDB$MAX_DELETE_WIN()' for timestamp-based conflict resolution, we often refer to the column used for determining updates as a `timestamp' @@ -162209,7 +163101,7 @@ This is a variation on `NDB$MAX()'. Due to the fact that no timestamp is available for a delete operation, a delete using `NDB$MAX()' is in -fact processed as `NDB$OLD'. Howver, for some use cases, this is not +fact processed as `NDB$OLD'. However, for some use cases, this is not optimal. For `NDB$MAX_DELETE_WIN()', if the `timestamp' column value for a given row adding or updating an existing row coming from the master is higher than that on the slave, it is applied. However, delete @@ -162630,8 +163522,11 @@ * Menu: -* mysql-cluster-news-5-5-16-ndb-7-2-2:: Changes in MySQL Cluster NDB 7.2.2 (5.5.16-ndb-7.2.2) (14 December 2011 Development Milestone) -* mysql-cluster-news-5-5-15-ndb-7-2-1:: Changes in MySQL Cluster NDB 7.2.1 (5.5.15-ndb-7.2.1) (03 October 2011 Development Milestone) +* mysql-cluster-news-5-5-20-ndb-7-2-5:: Changes in MySQL Cluster NDB 7.2.5 (5.5.20-ndb-7.2.5) (Not yet released) +* mysql-cluster-news-5-5-19-ndb-7-2-4:: Changes in MySQL Cluster NDB 7.2.4 (5.5.19-ndb-7.2.4) (15 February 2012, General Availability) +* mysql-cluster-news-5-5-17-ndb-7-2-3:: Changes in MySQL Cluster NDB 7.2.3 (5.5.17-ndb-7.2.3) (Not released) +* mysql-cluster-news-5-5-16-ndb-7-2-2:: Changes in MySQL Cluster NDB 7.2.2 (5.5.16-ndb-7.2.2) (14 December 2011, Development Milestone) +* mysql-cluster-news-5-5-15-ndb-7-2-1:: Changes in MySQL Cluster NDB 7.2.1 (5.5.15-ndb-7.2.1) (03 October 2011, Development Milestone) This section contains change history information for MySQL Cluster NDB 7.2.1 and later MySQL Cluster releases based on version 7.2 of the @@ -162641,19 +163536,282 @@ *Note*: MySQL Cluster NDB 7.2.0 was based on MySQL 5.1. For more information, -see MySQL Cluster Development in MySQL Cluster NDB 7.2 +see MySQL Cluster Development in MySQL Cluster NDB 7.2.1 (http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-development-5-1-ndb-7-2.html). For an overview of new features added in MySQL Cluster NDB 7.2, see -MySQL Cluster Development in MySQL Cluster NDB 7.2 +MySQL Cluster Development in MySQL Cluster NDB 7.2.1 (http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-development-5-1-ndb-7-2.html).  -File: manual.info, Node: mysql-cluster-news-5-5-16-ndb-7-2-2, Next: mysql-cluster-news-5-5-15-ndb-7-2-1, Prev: mysql-cluster-news-7-2, Up: mysql-cluster-news-7-2 +File: manual.info, Node: mysql-cluster-news-5-5-20-ndb-7-2-5, Next: mysql-cluster-news-5-5-19-ndb-7-2-4, Prev: mysql-cluster-news-7-2, Up: mysql-cluster-news-7-2 + +17.7.1.1 Changes in MySQL Cluster NDB 7.2.5 (5.5.20-ndb-7.2.5) (Not yet released) +................................................................................. + +MySQL Cluster NDB 7.2.5 is a new release of MySQL Cluster, +incorporating new features in the *Note `NDBCLUSTER': mysql-cluster. +storage engine for testing and user feedback. + +Obtaining MySQL Cluster NDB 7.2 + +MySQL Cluster NDB 7.2.5 source code and binaries can be obtained from +`http://dev.mysql.com/downloads/cluster/'. + +This release also incorporates all bugfixes and changes made in +previous MySQL Cluster releases, as well as all bugfixes and feature +changes which were added in mainline MySQL 5.5 through MySQL 5.5.20 +(see *Note news-5-5-20::). + +*Bugs Fixed* + + * *Important Change*: A number of changes have been made in the + configuration of transporter send buffers. + + 1. The data node configuration parameter + + `ReservedSendBufferMemory' + + is now deprecated, and thus subject to removal in a future + MySQL Cluster release. + + `ReservedSendBufferMemory' has been non-functional since it + was introduced and remains so. + + 2. `TotalSendBufferMemory' now works correctly with data nodes + using *Note `ndbmtd': mysql-cluster-programs-ndbmtd. + + 3. `SendBufferMemory' can now over-allocate into + `SharedGlobalMemory' for *Note `ndbmtd': + mysql-cluster-programs-ndbmtd. data nodes (only). + + 4. A new data node configuration parameter + `ExtraSendBufferMemory' is introduced. Its purpose is to + control how much additional memory can be allocated to the + send buffer over and above that specified by + `TotalSendBufferMemory' or `SendBufferMemory'. The default + setting (0) allows up to 16MB to be allocated automatically. + + (Bug #13633845, Bug #11760629, Bug #53053) + + * *Cluster Replication*: *Important Change*: The master limited the + number of operations per transaction to 10000 (based on + `TimeBetweenEpochs'). This could result in a larger number of + data-modification operations in a single epoch than could be + applied at one time, due to the limit imposed on the slave by its + (own) setting for `MaxDMLOperationsPerTransaction'. + + The fix for this issue is to allow a replication slave cluster to + exceed the configured value of `MaxDMLOperationsPerTransaction' + when necessary, so that it can apply all DML operations received + from the master in the same transaction. (Bug #12825405) + + * A data node crashed when more than 16G fixed-size memory was + allocated by `DBTUP' to one fragment (because the `DBACC' kernel + block was not prepared to accept values greater than 32 bits from + it, leading to an overflow). Now in such cases, the data node + returns Error 889 `Table fragment fixed data reference has reached + maximum possible value...'. When this happens, you can work around + the problem by increasing the number of partitions used by the + table (such as by using the `MAXROWS' option with *Note `CREATE + TABLE': create-table.). (Bug #13637411) References: See also Bug + #11747870, Bug #34348. + + * Several instances in the NDB code affecting the operation of + multi-threaded data nodes, where `SendBufferMemory' was associated + with a specific thread for an unnecessarily long time, have been + identified and fixed, by minimizing the time that any of these + buffers can be held exclusively by a given thread (send buffer + memory being critical to operation of the entire node). (Bug + #13618181) + + * A very large value for `BackupWriteSize', as compared to + `BackupMaxWriteSize', `BackupDataBufferSize', or ` + role="ndbparam:ndbd"BackupLogBufferSize', could cause a local + checkpoint or backup to hang. (Bug #13613344) + + * Queries using `LIKE ... ESCAPE' on *Note `NDB': mysql-cluster. + tables failed when pushed down to the data nodes. Such queries are + no longer pushed down, regardless of the value of + `engine_condition_pushdown'. (Bug #13604447, Bug #61064) + + * To avoid TCP transporter overload, an overload flag is kept in the + NDB kernel for each data node; this flag is used to abort key + requests if needed, yielding error 1218 `Send Buffers overloaded + in NDB kernel' in such cases. Scans can also put significant + pressure on transporters, especially where scans with a high + degree of parallelism are executed in a configuration with + relatively small send buffers. However, in these cases, overload + flags were not checked, which could lead to node failures due to + send buffer exhaustion. Now, overload flags are checked by scans, + and in cases where returning sufficient rows to match the batch + size (`--ndb-batch-size' server option) would cause an overload, + the number of rows is limited to what can be accommodated by the + send buffer. + + See also *Note mysql-cluster-config-send-buffers::. (Bug + #13602508) + + * A *Note `SELECT': select. from an *Note `NDB': mysql-cluster. + table using `LIKE' with a multibyte column (such as `utf8') did + not return the correct result when `engine_condition_pushdown' was + enabled. (Bug #13579318, Bug #64039) References: See also Bug + #13608135. + + * A node failure and recovery while performing a scan on more than + 32 partitions led to additional node failures during node takeover. + (Bug #13528976) + + * *Cluster Replication*: Conflict detection and resolution for + statements updating a given table could be employed only on the + same server where the table was created. When an *Note `NDB': + mysql-cluster. table is created by executing DDL on an SQL node, + the binary log setup portion of the processing for the *Note + `CREATE TABLE': create-table. statement reads the table's conflict + detection function from the ndb_replication table and sets up that + function for the table. However, when the created table was + discovered by other SQL nodes attached to the same MySQL Cluster + due to schema distribution, the conflict detection function was + not correctly set up. The same problem occurred when an `NDB' + table was discovered as a result of selecting a database for the + first time (such as when executing a *Note `USE': use. statement), + and when a table was discovered as a result of scanning all files + at server startup. + + Both of these issues were due to a dependency of the conflict + detection and resolution code on table objects, even in cases + where checking for such objects might not be appropriate. With + this fix, conflict detection and resolution for any *Note `NDB': + mysql-cluster. table works whether the table was created on the + same SQL node, or on a different one. (Bug #13578660) + + +File: manual.info, Node: mysql-cluster-news-5-5-19-ndb-7-2-4, Next: mysql-cluster-news-5-5-17-ndb-7-2-3, Prev: mysql-cluster-news-5-5-20-ndb-7-2-5, Up: mysql-cluster-news-7-2 -17.7.1.1 Changes in MySQL Cluster NDB 7.2.2 (5.5.16-ndb-7.2.2) (14 December 2011 Development Milestone) +17.7.1.2 Changes in MySQL Cluster NDB 7.2.4 (5.5.19-ndb-7.2.4) (15 February 2012, General Availability) ....................................................................................................... +MySQL Cluster NDB 7.2.4 is the first _General Availability_ release in +the MySQL Cluster NDB 7.2 release series, incorporating new features in +the *Note `NDBCLUSTER': mysql-cluster. storage engine and fixing +recently discovered bugs in previous MySQL Cluster NDB 7.2 development +releases. + +Obtaining MySQL Cluster NDB 7.2 + +MySQL Cluster NDB 7.2.4 source code and binaries can be obtained from +`http://dev.mysql.com/downloads/cluster/'. + +This release also incorporates all bugfixes and changes made in +previous MySQL Cluster releases, as well as all bugfixes and feature +changes which were added in mainline MySQL 5.5 through MySQL 5.5.19 +(see *Note news-5-5-19::). + +*Functionality Added or Changed* + + * *Important Change*: A *Note `mysqld': mysqld. process joining a + MySQL Cluster where distributed privileges are in use now + automatically executes a *Note `FLUSH PRIVILEGES': flush. as part + of the connection process, so that the cluster's distributed + privileges take immediate effect on the new SQL node. (Bug + #13340854) + +*Bugs Fixed* + + * Accessing a table having a *Note `BLOB': blob. column but no + primary key following a restart of the SQL node failed with Error + 1 (`Unknown error code'). (Bug #13563280) + + * At the beginning of a local checkpoint, each data node marks its + local tables with a `to be checkpointed' flag. A failure of the + master node during this process could cause either the LCP to + hang, or one or more data nodes to be forcibly shut down. (Bug + #13436481) + + * A node failure while a *Note `ANALYZE TABLE': analyze-table. + statement was executing resulted in a hung connection (and the + user was not informed of any error that would cause this to + happen). (Bug #13416603) References: See also Bug #13407848. + + * *Cluster Replication*: Under certain circumstances, the `Rows' + count in the output of *Note `SHOW TABLE STATUS': + show-table-status. for a replicated slave *Note `NDB': + mysql-cluster. table could be misreported as many times larger + than the result of *Note `SELECT COUNT(*)': select. on the same + table. (Bug #13440282) + + +File: manual.info, Node: mysql-cluster-news-5-5-17-ndb-7-2-3, Next: mysql-cluster-news-5-5-16-ndb-7-2-2, Prev: mysql-cluster-news-5-5-19-ndb-7-2-4, Up: mysql-cluster-news-7-2 + +17.7.1.3 Changes in MySQL Cluster NDB 7.2.3 (5.5.17-ndb-7.2.3) (Not released) +............................................................................. + +MySQL Cluster NDB 7.2.3 is a new development preview release of MySQL +Cluster, incorporating new features in the *Note `NDBCLUSTER': +mysql-cluster. storage engine for testing and user feedback. + +Obtaining MySQL Cluster NDB 7.2 + +MySQL Cluster NDB 7.2.3 source code and binaries can be obtained from +`http://dev.mysql.com/downloads/cluster/'. + +This release also incorporates all bugfixes and changes made in +previous MySQL Cluster releases, as well as all bugfixes and feature +changes which were added in mainline MySQL 5.5 through MySQL 5.5.17 +(see *Note news-5-5-17::). + +*Functionality Added or Changed* + + * Added the `ThreadConfig' data node configuration parameter to + enable control of multiple threads and CPUs when using *Note + `ndbmtd': mysql-cluster-programs-ndbmtd, by assigning threads of + one or more specified types to execute on one or more CPUs. This + can provide more precise and flexible control over multiple + threads than can be obtained using the `LockExecuteThreadToCPU' + parameter. (Bug #11795581) + +*Bugs Fixed* + + * *Cluster Replication*: *Important Change*: A unique key constraint + violation caused *Note `NDB': mysql-cluster. slaves to stop rather + than to continue when the `slave_exec_mode' was `IDEMPOTENT'. In + such cases, *Note `NDB': mysql-cluster. now behaves as other MySQL + storage engines do when in `IDEMPOTENT' mode. (Bug #11756310) + + * Added the `MinFreePct' data node configuration parameter, which + specifies a percentage of data node resources to hold in reserve + for restarts. The resources monitored are `DataMemory', + `IndexMemory', and any per-table `MAX_ROWS' settings (see *Note + create-table::). The default value of `MinFreePct' is 5, which + means that 5% from each these resources is now set aside for + restarts. (Bug #13436216) + + * Issuing *Note `TRUNCATE TABLE': truncate-table. on `mysql.user', + `mysql.host', `mysql.db', `mysql.tables_priv', + `mysql.proxies_priv', or `mysql.procs_priv', when these tables had + been converted to MySQL Cluster distributed grant tables, caused + *Note `mysqld': mysqld. to crash. (Bug #13346955) + + * Restarting an SQL node configured for distributed grants could + sometimes result in a crash. (Bug #13340819) + + * Previously, forcing simultaneously the shutdown of multiple data + nodes using `SHUTDOWN -F' in the *Note `ndb_mgm': + mysql-cluster-programs-ndb-mgm. management client could cause the + entire cluster to fail. Now in such cases, any such nodes are + forced to abort immediately. (Bug #12928429) + + * *Cluster Replication*: With many SQL nodes, all writing binary + logs, connected to a MySQL Cluster, *Note `RENAME TABLE': + rename-table. could cause data node processes (*Note `ndbmtd': + mysql-cluster-programs-ndbmtd.) to fail. (Bug #13447705) + + +File: manual.info, Node: mysql-cluster-news-5-5-16-ndb-7-2-2, Next: mysql-cluster-news-5-5-15-ndb-7-2-1, Prev: mysql-cluster-news-5-5-17-ndb-7-2-3, Up: mysql-cluster-news-7-2 + +17.7.1.4 Changes in MySQL Cluster NDB 7.2.2 (5.5.16-ndb-7.2.2) (14 December 2011, Development Milestone) +........................................................................................................ + MySQL Cluster NDB 7.2.2 is a new development preview release of MySQL Cluster, incorporating new features in the *Note `NDBCLUSTER': mysql-cluster. storage engine for testing and user feedback. @@ -162668,6 +163826,27 @@ changes which were added in mainline MySQL 5.5 through MySQL 5.5.16 (see *Note news-5-5-16::). +*Functionality Added or Changed* + + * *Cluster API*: Added support for the Memcache API using + _ndbmemcache_, a loadable storage engine for memcached version 1.6 + and later, which can be used to provide a persistent MySQL Cluster + data store, accessed using the memcache protocol. + + The standard `memcached' caching engine is now included in the + MySQL Cluster distribution. Each `memcached' server, in addition + to providing direct access to data stored in a MySQL Cluster, is + able to cache data locally and serve (some) requests from this + local cache. + + The `memcached' server can also provide an interface to existing + MySQL Cluster tables that is strictly defined, so that an + administrator can control exactly which tables and columns are + referenced by particular memcache keys and values, and which + operations are allowed on these keys and values. + + For more information see *Note mysql-cluster-ndbmemcache::. + *Bugs Fixed* * The `include/storage' directory, where the header files supplied @@ -162678,8 +163857,8 @@  File: manual.info, Node: mysql-cluster-news-5-5-15-ndb-7-2-1, Prev: mysql-cluster-news-5-5-16-ndb-7-2-2, Up: mysql-cluster-news-7-2 -17.7.1.2 Changes in MySQL Cluster NDB 7.2.1 (5.5.15-ndb-7.2.1) (03 October 2011 Development Milestone) -...................................................................................................... +17.7.1.5 Changes in MySQL Cluster NDB 7.2.1 (5.5.15-ndb-7.2.1) (03 October 2011, Development Milestone) +....................................................................................................... MySQL Cluster NDB 7.2.1 is a new development preview release of MySQL Cluster, incorporating new features in the *Note `NDBCLUSTER': @@ -162706,7 +163885,7 @@ type, and cannot be any of the *Note `BLOB': blob. or *Note `TEXT': blob. types. In addition, columns to be joined must be part of a table index or primary key. Support for this feature - can be enabled or diabled using the `ndb_join_pushdown' server + can be enabled or disabled using the `ndb_join_pushdown' server system variable (enabled by default); see the description of this variable for more information and examples. @@ -162721,33 +163900,6 @@ mysql-cluster-ndbinfo. database. For more information, see the descriptions of the status variables previously mentioned. - * *Important Change*: The default values for a number of MySQL - Cluster data node configuration parameters have changed, to - provide more resiliency to environmental issues and better - handling of some potential failure scenarios, and to perform more - reliably with increases in memory and other resource requirements - brought about by recent improvements in join handling by *Note - `NDB': mysql-cluster. The affected parameters are listed here: - - * `HeartbeatIntervalDbDb': Default increased from 1500 ms to - 5000 ms. - - * `ArbitrationTimeout': Default increased from 3000 ms to 7500 - ms. - - * `TimeBetweenEpochsTimeout': Now effectively disabled by - default (default changed from 4000 ms to 0). - - * `SharedGlobalMemory': Default increased from 20MB to 128MB. - - * `MaxParallelScansPerFragment': Default increased from 32 to - 256. - - In addition, when `MaxNoOfLocalScans' is not specified, the value - computed for it automatically has been increased by a factor of 4 - (that is, to 4 times `MaxNoOfConcurrentScans', times the number of - data nodes in the cluster). - * *Important Change*: MySQL user privileges can now be distributed automatically across all MySQL servers (SQL nodes) connected to the same MySQL Cluster. Previously, each MySQL Server's user @@ -162781,16 +163933,32 @@ For more information, see *Note mysql-cluster-privilege-distribution::. - * *Important Change*: By default, data nodes now exhibit fail-fast - behavior whenever they encounter corrupted tuples--in other words, - a data node forcibly shuts down whenever it detects a corrupted - tuple. To override this behavior, you can disable the - `CrashOnCorruptedTuple' data node configuration parameter, which - is enabled by default. + * *Important Change*: The default values for a number of MySQL + Cluster data node configuration parameters have changed, to + provide more resiliency to environmental issues and better + handling of some potential failure scenarios, and to perform more + reliably with increases in memory and other resource requirements + brought about by recent improvements in join handling by *Note + `NDB': mysql-cluster. The affected parameters are listed here: - This is a change from MySQL Cluster NDB 7.0 and MySQL Cluster NDB - 7.1, where `CrashOnCorruptedTuple' was disabled (so that data - nodes ignored tuple corruption) by default. (Bug #12598636) + * `HeartbeatIntervalDbDb': Default increased from 1500 ms to + 5000 ms. + + * `ArbitrationTimeout': Default increased from 3000 ms to 7500 + ms. + + * `TimeBetweenEpochsTimeout': Now effectively disabled by + default (default changed from 4000 ms to 0). + + * `SharedGlobalMemory': Default increased from 20MB to 128MB. + + * `MaxParallelScansPerFragment': Default increased from 32 to + 256. + + In addition, when `MaxNoOfLocalScans' is not specified, the value + computed for it automatically has been increased by a factor of 4 + (that is, to 4 times `MaxNoOfConcurrentScans', times the number of + data nodes in the cluster). * *Cluster Replication*: *Important Change*: Due to the existing layout of binary log row events, it was not possible to extend @@ -162808,6 +163976,17 @@ during upgrades to make a newer *Note `mysqld': mysqld. generate Version 1 binary log row events that can be read by older slaves. + * *Important Change*: By default, data nodes now exhibit fail-fast + behavior whenever they encounter corrupted tuples--in other words, + a data node forcibly shuts down whenever it detects a corrupted + tuple. To override this behavior, you can disable the + `CrashOnCorruptedTuple' data node configuration parameter, which + is enabled by default. + + This is a change from MySQL Cluster NDB 7.0 and MySQL Cluster NDB + 7.1, where `CrashOnCorruptedTuple' was disabled (so that data + nodes ignored tuple corruption) by default. (Bug #12598636) + * It is now possible to filter the output from *Note `ndb_config': mysql-cluster-programs-ndb-config. so that it displays only system, data node, or connection parameters and values, using one of the @@ -162883,6 +164062,13 @@ removed, so that the value of `--ndb-wait-connected' is now handled correctly in all cases. (Bug #12543299) + * `AUTO_INCREMENT' values were not set correctly for *Note `INSERT + IGNORE': insert. statements affecting *Note `NDB': mysql-cluster. + tables. This could lead such statements to fail with `Got error + 4350 'Transaction already aborted' from NDBCLUSTER' when inserting + multiple rows containing duplicate values. (Bug #11755237, Bug + #46985) +  File: manual.info, Node: partitioning, Next: stored-programs-views, Prev: mysql-cluster, Up: Top @@ -163159,8 +164345,11 @@ In addition, `MAX_ROWS' and `MIN_ROWS' can be used to determine the maximum and minimum numbers of rows, respectively, that can be stored in -each partition. See *Note partitioning-management::, for more -information on these options. +each partition. The `MAX_ROWS' option can be useful for causing MySQL +Cluster tables to be created with extra partitions, thus allowing for +greater storage of hash indexes. See the documentation for the +`DataMemory' data node configuration parameter, as well as *Note +mysql-cluster-nodes-groups::, for more information. Some advantages of partitioning are listed here: @@ -167204,9 +168393,9 @@ This statement may be a compound statement made up of several statements separated by semicolon (`;') characters. For example, the following stored procedure has a body made up of a *Note `BEGIN ... -END': begin-end. block that contains a *Note `SET': set-option. +END': begin-end. block that contains a *Note `SET': set-statement. statement and a *Note `REPEAT': repeat-statement. loop that itself -contains another *Note `SET': set-option. statement: +contains another *Note `SET': set-statement. statement: CREATE PROCEDURE dorepeat(p1 INT) BEGIN @@ -167580,7 +168769,7 @@ * The statement following `FOR EACH ROW' defines the statement to execute each time the trigger activates, which occurs once for each row affected by the triggering statement. In the example, the - triggered statement is a simple *Note `SET': set-option. that + triggered statement is a simple *Note `SET': set-statement. that accumulates the values inserted into the `amount' column. The statement refers to the column as `NEW.amount' which means `the value of the `amount' column to be inserted into the new row.' @@ -167921,8 +169110,8 @@ If the Event Scheduler status has not been set to `DISABLED', `event_scheduler' can be toggled between `ON' and `OFF' (using *Note -`SET': set-option.). It is also possible to use `0' for `OFF', and `1' -for `ON' when setting this variable. Thus, any of the following 4 +`SET': set-statement.). It is also possible to use `0' for `OFF', and +`1' for `ON' when setting this variable. Thus, any of the following 4 statements can be used in the *Note `mysql': mysql. client to turn on the Event Scheduler: @@ -169191,11 +170380,11 @@ * A statement to be logged might contain references to user-defined variables. To handle this, MySQL writes a *Note - `SET': set-option. statement to the binary log to make sure - that the variable exists on the slave with the same value as - on the master. For example, if a statement refers to a - variable `@my_var', that statement will be preceded in the - binary log by the following statement, where VALUE is the + `SET': set-statement. statement to the binary log to make + sure that the variable exists on the slave with the same + value as on the master. For example, if a statement refers + to a variable `@my_var', that statement will be preceded in + the binary log by the following statement, where VALUE is the value of `@my_var' on the master: SET @my_var = VALUE; @@ -175781,23 +176970,31 @@ Connector Connector version MySQL Server version -Connector/C++ 1.0.5 GA 5.1, 5.4, 5.5, 5.6 -Connector/OpenOffice.org 1.0 GA 5.0, 5.1, 5.4, - 5.5, 5.6 -Connector/J 5.1.8 4.1, 5.0, 5.1, - 5.4, 5.5, 5.6 -Connector/Net 1.0 (No longer 4.0, 5.0 +Connector/C++ 1.0.5 GA 5.6, 5.5, 5.4, 5.1 +Connector/J 5.1.8 5.6, 5.5, 5.4, + 5.1, 5.0, 4.1 +Connector/Net 6.5 5.6, 5.5, 5.4, + 5.1, 5.0 +Connector/Net 6.4 5.6, 5.5, 5.4, + 5.1, 5.0 +Connector/Net 6.3 5.6, 5.5, 5.4, + 5.1, 5.0 +Connector/Net 6.2 (No longer 5.6, 5.5, 5.4, + supported) 5.1, 5.0 +Connector/Net 6.1 (No longer 5.6, 5.5, 5.4, + supported) 5.1, 5.0 +Connector/Net 6.0 (No longer 5.6, 5.5, 5.4, + supported) 5.1, 5.0 +Connector/Net 5.2 (No longer 5.6, 5.5, 5.4, + supported) 5.1, 5.0 +Connector/Net 1.0 (No longer 5.0, 4.0 supported) -Connector/Net 5.2 5.0, 5.1, 5.4, - 5.5, 5.6 -Connector/Net 6.0 5.0, 5.1, 5.4, - 5.5, 5.6 -Connector/Net 6.1 5.0, 5.1, 5.4, - 5.5, 5.6 -Connector/ODBC 3.51 (Unicode not 4.1, 5.0, 5.1, - supported) 5.4, 5.5, 5.6 -Connector/ODBC 5.1 4.1.1+, 5.0, 5.1, - 5.4, 5.5, 5.6 +Connector/ODBC 5.1 5.6, 5.5, 5.4, + 5.1, 5.0, 4.1.1+ +Connector/ODBC 3.51 (Unicode not 5.6, 5.5, 5.4, + supported) 5.1, 5.0, 4.1 +Connector/OpenOffice.org 1.0 GA 5.6, 5.5, 5.4, + 5.1, 5.0  File: manual.info, Node: connector-odbc, Next: connector-net, Prev: connectors-apis, Up: connectors-apis @@ -176125,10 +177322,10 @@ You can install the Connector/ODBC drivers using two different methods, a binary installation and a source installation. The binary installation is the easiest and most straightforward method of -installation. Using the source installation methods should only be -necessary on platforms where a binary installation package is not -available, or in situations where you want to customize or modify the -installation process or Connector/ODBC drivers before installation. +installation. Use the source installation methods on platforms where a +binary installation package is not available, or in situations where +you want to customize or modify the installation process or +Connector/ODBC drivers before installation. *Where to Get Connector/ODBC* @@ -176198,10 +177395,10 @@ * connector-odbc-installation-binary-windows-installer:: Installing the Windows Connector/ODBC Driver using an installer * connector-odbc-installation-binary-windows-dll:: Installing the Windows Connector/ODBC Driver using the Zipped DLL package -Before installing the Connector/ODBC drivers on Windows you should -ensure that your Microsoft Data Access Components (MDAC) are up to -date. You can obtain the latest version from the Microsoft Data Access -and Storage (http://support.microsoft.com/kb/110093) Web site. +Before installing the Connector/ODBC drivers on Windows, ensure that +your Microsoft Data Access Components (MDAC) are up to date. You can +obtain the latest version from the Microsoft Data Access and Storage +(http://support.microsoft.com/kb/110093) Web site. There are three available distribution types to use when installing for Windows. The contents in each case are identical, it is only the @@ -176242,7 +177439,7 @@ then you must extract the installer application. The basic installation process is identical for both installers. -You should follow these steps to complete the installation: +Follow these steps to complete the installation: 1. Double-click the standalone installer that you extracted, or the MSI file you downloaded. @@ -176458,12 +177655,12 @@ Mac OS X is based on the FreeBSD operating system, and you can normally use the MySQL network port for connecting to MySQL servers on other -hosts. Installing the Connector/ODBC driver enables you to connect to -MySQL databases on any platform through the ODBC interface. You should -only need to install the Connector/ODBC driver when your application -requires an ODBC interface. Applications that require or can use ODBC -(and therefore the Connector/ODBC driver) include ColdFusion, Filemaker -Pro, 4th Dimension and many other applications. +hosts. Installing the Connector/ODBC driver lets you connect to MySQL +databases on any platform through the ODBC interface. If your +application requires an ODBC interface, install the Connector/ODBC +driver. Applications that require or can use ODBC (and therefore the +Connector/ODBC driver) include ColdFusion, Filemaker Pro, 4th Dimension +and many other applications. Mac OS X includes its own ODBC manager, based on the `iODBC' manager. Mac OS X includes an administration tool that provides easier @@ -176726,8 +177923,9 @@ You need the following tools to build MySQL from source on Unix: - * A working ANSI C++ compiler. `gcc' 2.95.2 or later, SGI C++, and - SunPro C++ are some of the compilers that are known to work. + * A working ANSI C++ compiler. GCC 4.2.1 or later, Sun Studio 10 or + later, Visual Studio 2008 or later, and many current + vendor-supplied compilers are known to work. * A good `make' program. GNU `make' is always recommended and is sometimes required. @@ -176747,20 +177945,19 @@ libraries were built. No special option is needed if you configure with `CMake'. - You should also ensure that the `libmysqlclient' library were - built and installed as a shared library. + Also, ensure that the `libmysqlclient' library was built and + installed as a shared library. * A compatible ODBC manager must be installed. Connector/ODBC is known to work with the `iODBC' and `unixODBC' managers. See *Note connector-odbc-driver-manager::, for more information. * If you are using a character set that isn't compiled into the - MySQL client library then you need to install the MySQL character - definitions from the `charsets' directory into SHAREDIR (by - default, `/usr/local/mysql/share/mysql/charsets'). These should - be in place if you have installed the MySQL server on the same - machine. See *Note charset::, for more information on character - set support. + MySQL client library, install the MySQL character definitions from + the `charsets' directory into SHAREDIR (by default, + `/usr/local/mysql/share/mysql/charsets'). These should be in + place if you have installed the MySQL server on the same machine. + See *Note charset:: for more information on character set support. Once you have all the required files, unpack the source files to a separate directory, you then have to run `configure' and build the @@ -176877,8 +178074,8 @@ If the compilation with the thread-safe option fails, it may be because the correct thread-libraries on the system could not be - located. You should set the value of `LIBS' to point to the - correct thread library for your system. + located. Set the value of `LIBS' to point to the correct thread + library for your system. LIBS="-lpthread" ./configure .. @@ -177157,18 +178354,18 @@ *Caution*: -You should read this section only if you are interested in helping us -test our new code. To just get MySQL Connector/ODBC up and running on -your system, use a standard release distribution. +Read this section only if you are interested in helping us test our new +code. To just get MySQL Connector/ODBC up and running on your system, +use a standard release distribution. -To obtain the most recent development source tree, you first need to -download and install Bazaar. You can obtain Bazaar from the Bazaar VCS -Web site (http://bazaar-vcs.org). Bazaar is supported by any platform -that supports Python, and is therefore compatible with any Linux, Unix, -Windows or Mac OS X host. Instructions for downloading and installing -Bazaar on the different platforms are available on the Bazaar Web site. +To obtain the most recent development source tree, first download and +install Bazaar from the Bazaar VCS Web site (http://bazaar-vcs.org). +Bazaar is supported by any platform that supports Python, and is +therefore compatible with any Linux, Unix, Windows or Mac OS X host. +Instructions for downloading and installing Bazaar on the different +platforms are available on the Bazaar Web site. -To build from the source trees, you need the following tools: +Build from the source trees requires the following tools: * autoconf 2.52 (or newer) @@ -177189,7 +178386,7 @@ You should now have a copy of the entire Connector/ODBC source tree in the directory `connector-odbc3'. To build from this source tree on Unix -or Linux follow these steps: +or Linux, follow these steps: shell> cd myodbc shell> aclocal @@ -177215,9 +178412,9 @@ `WIN-Makefile_debug' in building the driver. For more information, see *Note connector-odbc-installation-source-windows::. -After the initial checkout operation to get the source tree, you should -run `bzr pull' periodically to update your source according to the -latest version. +After the initial checkout operation to get the source tree, run `bzr +pull' periodically to update your source according to the latest +version.  File: manual.info, Node: connector-odbc-configuration, Next: connector-odbc-examples, Prev: connector-odbc-installation, Up: connector-odbc @@ -177295,21 +178492,29 @@ ............................................. You can specify the parameters in the following tables for -Connector/ODBC when configuring a DSN. Users on Windows can use the -Options and Advanced panels when configuring a DSN to set these -parameters; see the table for information on which options relate to -which fields and check boxes. On Unix and Mac OS X, use the parameter -name and value as the keyword/value pair in the DSN configuration. -Alternatively, you can set these parameters within the -`InConnectionString' argument in the `SQLDriverConnect()' call. +Connector/ODBC when configuring a DSN: + + * *Note codbc-dsn-config-options:: + + * *Note codbc-dsn-option-flags:: + +Users on Windows can use the Options and Advanced panels when +configuring a DSN to set these parameters; see the table for +information on which options relate to which fields and check boxes. On +Unix and Mac OS X, use the parameter name and value as the +keyword/value pair in the DSN configuration. Alternatively, you can set +these parameters within the `InConnectionString' argument in the +`SQLDriverConnect()' call. + +*Connector/ODBC DSN Configuration Options* Parameter Default Value Comment `user' ODBC The user name used to connect to MySQL. `uid' ODBC Synonymous with `user'. Added in 3.51.16. `server' `localhost' The host name of the MySQL server. `database' The default database. -`option' 0 Options that specify how Connector/ODBC should - work. See below. +`option' 0 Options that specify how Connector/ODBC works. + See below. `port' 3306 The TCP/IP port to use if `server' is not `localhost'. `initstmt' Initial statement. A statement to execute when @@ -177381,156 +178586,180 @@ select them in the `option' argument. The following options are listed in the order in which they appear in the Connector/ODBC connect screen. -Flagname GUI Option Description -`FLAG_FIELD_LENGTH'Do not The client cannot handle that - Optimize Connector/ODBC returns the real width of a - Column Width column. This option was removed in 3.51.18. -`FLAG_FOUND_ROWS'Return The client cannot handle that MySQL - Matching Rows returns the true value of affected rows. - If this flag is set, MySQL returns `found - rows' instead. You must have MySQL 3.21.14 - or newer to get this to work. -`FLAG_DEBUG' Trace Driver Make a debug log in `C:\myodbc.log' on - Calls To Windows, or `/tmp/myodbc.log' on Unix - myodbc.log variants. This option was removed in - Connector/ODBC 3.51.18. -`FLAG_BIG_PACKETS'Allow Big Do not set any packet limit for results - Results and bind parameters. Without this option, - parameter binding will be truncated to 255 - characters. -`FLAG_NO_PROMPT'Do not Prompt Do not prompt for questions even if driver - Upon Connect would like to prompt. -`FLAG_DYNAMIC_CURSOR'Enable Enable or disable the dynamic cursor - Dynamic Cursor support. -`FLAG_NO_SCHEMA'Ignore # in Ignore use of database name in - Table Name DB_NAME.TBL_NAME.COL_NAME. -`FLAG_NO_DEFAULT_CURSOR'User Manager Force use of ODBC manager cursors - Cursors (experimental). -`FLAG_NO_LOCALE'Do not Use Disable the use of extended fetch - Set Locale (experimental). -`FLAG_PAD_SPACE'Pad Char To Pad *Note `CHAR': char. columns to full - Full Length column length. -`FLAG_FULL_COLUMN_NAMES'Return Table `SQLDescribeCol()' returns fully qualified - Names for column names. - SQLDescribeCol -`FLAG_COMPRESSED_PROTO'Use Use the compressed client/server protocol. - Compressed - Protocol -`FLAG_IGNORE_SPACE'Ignore Space Tell server to ignore space after function - After name and before ``('' (needed by - Function Names PowerBuilder). This makes all function - names keywords. -`FLAG_NAMED_PIPE'Force Use of Connect with named pipes to a *Note - Named Pipes `mysqld': mysqld. server running on NT. -`FLAG_NO_BIGINT'Change BIGINT Change *Note `BIGINT': numeric-types. - Columns to Int columns to *Note `INT': numeric-types. - columns (some applications cannot handle - *Note `BIGINT': numeric-types.). -`FLAG_NO_CATALOG'No Catalog Forces results from the catalog functions, - such as `SQLTables', to always return - `NULL' and the driver to report that - catalogs are not supported. -`FLAG_USE_MYCNF'Read Options Read parameters from the `[client]' and - From `my.cnf' `[odbc]' groups from `my.cnf'. -`FLAG_SAFE' Safe Add some extra safety checks. -`FLAG_NO_TRANSACTIONS'Disable Disable transactions. - transactions -`FLAG_LOG_QUERY'Save queries Enable query logging to - to `c:\myodbc.sql'(`/tmp/myodbc.sql') file. - `myodbc.sql' (Enabled only in debug mode.) -`FLAG_NO_CACHE'Do not Cache Do not cache the results locally in the - Result driver, instead read from server (*Note - (forward only `mysql_use_result()': mysql-use-result.). - cursors) This works only for forward-only cursors. - This option is very important in dealing - with large tables when you do not want the - driver to cache the entire result set. -`FLAG_FORWARD_CURSOR'Force Use Of Force the use of `Forward-only' cursor - Forward Only type. In case of applications setting the - Cursors default static/dynamic cursor type, and - one wants the driver to use noncache result - sets, then this option ensures the - forward-only cursor behavior. -`FLAG_AUTO_RECONNECT'Enable Enables auto-reconnection functionality. - auto-reconnect.You should not use this option with - transactions, since a auto reconnection - during a incomplete transaction may cause - corruption. Note that an auto-reconnected - connection will not inherit the same - settings and environment as the original. - This option was added in Connector/ODBC - 3.51.13. -`FLAG_AUTO_IS_NULL'Flag Auto Is When `FLAG_AUTO_IS_NULL' is set, the - Null driver does not change the default value of - `sql_auto_is_null', leaving it at 1, so - you get the MySQL default, not the SQL - standard behavior. - - When `FLAG_AUTO_IS_NULL' is not set, the - driver changes the default value of - `SQL_AUTO_IS_NULL' to 0 after connecting, - so you get the SQL standard, not the MySQL - default behavior. - - Thus, omitting the flag disables the - compatibility option and forces SQL - standard behavior. - - See `IS NULL'. This option was added in - Connector/ODBC 3.51.13. -`FLAG_ZERO_DATE_TO_MIN'Return Translates zero dates (`XXXX-00-00') into - SQL_NULL_DATA the minimum date values supported by ODBC, - for zero date `XXXX-01-01'. This resolves an issue where - some statements will not work because the - date returned and the minimum ODBC date - value are incompatible. This option was - added in Connector/ODBC 3.51.17. -`FLAG_MIN_DATE_TO_ZERO'Bind minimal Translates the minimum ODBC date value - date as zero (`XXXX-01-01') to the zero date format - date supported by MySQL (`XXXX-00-00'). This - resolves an issue where some statements - will not work because the date returned - and the minimum ODBC date value are - incompatible. This option was added in - Connector/ODBC 3.51.17. -`FLAG_MULTI_STATEMENTS'Allow Enables support for batched statements. - multiple This option was added in Connector/ODBC - statements 3.51.18. -`FLAG_COLUMN_SIZE_S32'Limit column Limits the column size to a signed 32-bit - size to value to prevent problems with larger - 32-bit value column sizes in applications that do not - support them. This option is automatically - enabled when working with ADO - applications. This option was added in - Connector/ODBC 3.51.22. -`FLAG_NO_BINARY_RESULT'Always handle When set this option disables charset 63 - binary for columns with an empty `org_table'. - function This option was added in Connector/ODBC - results as 3.51.26. - character data -`FLAG_NO_INFORMATION_SCHEMA' Tells catalog functions not to use - `INFORMATION_SCHEMA', but rather use - legacy algorithms. The trade-off here is - usually speed for information quality. - Using `INFORMATION_SCHEMA' is often slow, - but the information obtained is more - complete. -`FLAG_DFLT_BIGINT_BIND_STR' Causes `BIGINT' parameters to be bound as - strings. Microsoft Access treats `BIGINT' - as a string on linked tables. The value is - read correctly, but bound as a string. - This option is used automatically if the - driver is used by Microsoft Access. - -To select multiple options, add together their values. - -*Note*: - -From version of MySQL Connector/ODBC 5.1.6 onwards, it is possible to -use the flag name directly as a parameter in the connection string, by -using the flag name without the FLAG_ prefix. So, in addition to using -the `options' parameter with various flags set, it is now possible to -use the flags directly as parameters. For example, `FIELD_LENGTH', +*Connector/ODBC Option Flags* + +Flag Name GUI Option ConstantDescription + Value +`FLAG_FIELD_LENGTH'Do not The client cannot handle that + Optimize Connector/ODBC returns the real + Column Width width of a column. This option was + removed in 3.51.18. +`FLAG_FOUND_ROWS'Return 2 The client cannot handle that MySQL + Matching Rows returns the true value of affected + rows. If this flag is set, MySQL + returns `found rows' instead. You + must have MySQL 3.21.14 or newer to + get this to work. +`FLAG_DEBUG' Trace Driver Make a debug log in `C:\myodbc.log' + Calls To on Windows, or `/tmp/myodbc.log' on + myodbc.log Unix variants. This option was + removed in Connector/ODBC 3.51.18. +`FLAG_BIG_PACKETS'Allow Big 8 Do not set any packet limit for + Results results and bind parameters. Without + this option, parameter binding will + be truncated to 255 characters. +`FLAG_NO_PROMPT'Do not Prompt 16 Do not prompt for questions even if + Upon Connect driver would like to prompt. +`FLAG_DYNAMIC_CURSOR'Enable 32 Enable or disable the dynamic + Dynamic Cursor cursor support. +`FLAG_NO_SCHEMA'Ignore # in 64 Ignore use of database name in + Table Name DB_NAME.TBL_NAME.COL_NAME. +`FLAG_NO_DEFAULT_CURSOR'User Manager 128 Force use of ODBC manager cursors + Cursors (experimental). +`FLAG_NO_LOCALE'Do not Use 256 Disable the use of extended fetch + Set Locale (experimental). +`FLAG_PAD_SPACE'Pad Char To 512 Pad *Note `CHAR': char. columns to + Full Length full column length. +`FLAG_FULL_COLUMN_NAMES'Return Table 1024 `SQLDescribeCol()' returns fully + Names for qualified column names. + SQLDescribeCol +`FLAG_COMPRESSED_PROTO'Use 2048 Use the compressed client/server + Compressed protocol. + Protocol +`FLAG_IGNORE_SPACE'Ignore Space 4096 Tell server to ignore space after + After function name and before ``('' + Function Names (needed by PowerBuilder). This + makes all function names keywords. +`FLAG_NAMED_PIPE'Force Use of 8192 Connect with named pipes to a *Note + Named Pipes `mysqld': mysqld. server running on + NT. +`FLAG_NO_BIGINT'Change BIGINT 16384 Change *Note `BIGINT': + Columns to Int numeric-types. columns to *Note + `INT': numeric-types. columns (some + applications cannot handle *Note + `BIGINT': numeric-types.). +`FLAG_NO_CATALOG'No Catalog 32768 Forces results from the catalog + functions, such as `SQLTables', to + always return `NULL' and the driver + to report that catalogs are not + supported. +`FLAG_USE_MYCNF'Read Options 65536 Read parameters from the `[client]' + From `my.cnf' and `[odbc]' groups from `my.cnf'. +`FLAG_SAFE' Safe 131072 Add some extra safety checks. +`FLAG_NO_TRANSACTIONS'Disable 262144 Disable transactions. + transactions +`FLAG_LOG_QUERY'Save queries 524288 Enable query logging to + to `c:\myodbc.sql'(`/tmp/myodbc.sql') + `myodbc.sql' file. (Enabled only in debug mode.) +`FLAG_NO_CACHE'Do not Cache 1048576 Do not cache the results locally in + Result the driver, instead read from server + (forward only (*Note `mysql_use_result()': + cursors) mysql-use-result.). This works + only for forward-only cursors. This + option is very important in dealing + with large tables when you do not + want the driver to cache the entire + result set. +`FLAG_FORWARD_CURSOR'Force Use Of 2097152 Force the use of `Forward-only' + Forward Only cursor type. In case of + Cursors applications setting the default + static/dynamic cursor type, and one + wants the driver to use noncache + result sets, then this option + ensures the forward-only cursor + behavior. +`FLAG_AUTO_RECONNECT'Enable 4194304 Enables auto-reconnection + auto-reconnect. functionality. Do not use this + option with transactions, since a + auto reconnection during a + incomplete transaction may cause + corruption. Note that an + auto-reconnected connection will + not inherit the same settings and + environment as the original. This + option was added in Connector/ODBC + 3.51.13. +`FLAG_AUTO_IS_NULL'Flag Auto Is 8388608 When `FLAG_AUTO_IS_NULL' is set, the + Null driver does not change the default + value of `sql_auto_is_null', + leaving it at 1, so you get the + MySQL default, not the SQL standard + behavior. + + When `FLAG_AUTO_IS_NULL' is not set, + the driver changes the default + value of `SQL_AUTO_IS_NULL' to 0 + after connecting, so you get the + SQL standard, not the MySQL default + behavior. + + Thus, omitting the flag disables + the compatibility option and forces + SQL standard behavior. + + See `IS NULL'. This option was + added in Connector/ODBC 3.51.13. +`FLAG_ZERO_DATE_TO_MIN'Return 16777216Translates zero dates + SQL_NULL_DATA (`XXXX-00-00') into the minimum + for zero date date values supported by ODBC, + `XXXX-01-01'. This resolves an issue + where some statements will not work + because the date returned and the + minimum ODBC date value are + incompatible. This option was added + in Connector/ODBC 3.51.17. +`FLAG_MIN_DATE_TO_ZERO'Bind minimal 33554432Translates the minimum ODBC date + date as zero value (`XXXX-01-01') to the zero + date date format supported by MySQL + (`XXXX-00-00'). This resolves an + issue where some statements will + not work because the date returned + and the minimum ODBC date value are + incompatible. This option was added + in Connector/ODBC 3.51.17. +`FLAG_MULTI_STATEMENTS'Allow 67108864Enables support for batched + multiple statements. This option was added in + statements Connector/ODBC 3.51.18. +`FLAG_COLUMN_SIZE_S32'Limit column 134217728Limits the column size to a signed + size to 32-bit value to prevent problems + 32-bit value with larger column sizes in + applications that do not support + them. This option is automatically + enabled when working with ADO + applications. This option was added + in Connector/ODBC 3.51.22. +`FLAG_NO_BINARY_RESULT'Always handle 268435456When set this option disables + binary charset 63 for columns with an empty + function `org_table'. This option was added + results as in Connector/ODBC 3.51.26. + character data +`FLAG_DFLT_BIGINT_BIND_STR' 536870912Causes `BIGINT' parameters to be + bound as strings. Microsoft Access + treats `BIGINT' as a string on + linked tables. The value is read + correctly, but bound as a string. + This option is used automatically + if the driver is used by Microsoft + Access. +`FLAG_NO_INFORMATION_SCHEMA' 1073741824Tells catalog functions not to use + `INFORMATION_SCHEMA', but rather use + legacy algorithms. The trade-off + here is usually speed for + information quality. Using + `INFORMATION_SCHEMA' is often slow, + but the information obtained is + more complete. + +To select multiple options, add together their values, using the +numbers from the `Constant Value' column in the table. + +*Note*: + +From version of MySQL Connector/ODBC 5.1.6 onwards, you can use the flag +name directly as a parameter in the connection string, by specifying +the flag name without the FLAG_ prefix. So, in addition to using the +`options' parameter with various flags set, it is now possible to use +the flags directly as parameters. For example, `FIELD_LENGTH', `FOUND_ROWS' and `DEBUG' could all be used as parameters. The following table shows some recommended `option' values for various @@ -177559,11 +178788,11 @@ * connector-odbc-configuration-dsn-windows-3-51-command-line:: Configuring a Connector/ODBC 3.51 DSN on Windows, using the command-line * connector-odbc-configuration-dsn-windows-5-1:: Configuring a Connector/ODBC 5.1 DSN on Windows * connector-odbc-configuration-dsn-windows-5-1-command-line:: Configuring a Connector/ODBC 5.1 DSN on Windows, using the command-line -* connector-odbc-configuration-dsn-windows-problems:: Errors and Debugging +* connector-odbc-configuration-dsn-windows-problems:: Troubleshooting ODBC Connection Problems -The `ODBC Data Source Administrator' within Windows enables you to -create DSNs, check driver installation and configure ODBC systems such -as tracing (used for debugging) and connection pooling. +The `ODBC Data Source Administrator' within Windows lets you create +DSNs, check driver installation and configure ODBC systems such as +tracing (used for debugging) and connection pooling. Different editions and versions of Windows store the `ODBC Data Source Administrator' in different locations depending on the version of @@ -177723,7 +178952,7 @@ default character set to be used with this connection. The Character Set option was added in 3.5.17. -The `Advanced' tab enables you to configure Connector/ODBC connection +The `Advanced' tab lets you configure Connector/ODBC connection parameters. Refer to *Note connector-odbc-configuration-connection-parameters::, for information about the meaning of these options. @@ -177806,16 +179035,16 @@ Connector/ODBC Connect Options Dialog -The `Details' button opens a tabbed display which enables you to set -additional options: +The `Details' button opens a tabbed display where you set additional +options: * `Flags 1', `Flags 2', and `Flags 3' enable you to select the additional flags for the DSN connection. For more information on these flags, see *Note connector-odbc-configuration-connection-parameters::. - * `Debug' enables you to enable ODBC debugging to record the queries - you execute through the DSN to the `myodbc.sql' file. For more + * `Debug' lets you turn on ODBC debugging to record the queries you + execute through the DSN to the `myodbc.sql' file. For more information, see *Note connector-odbc-configuration-trace::. * `SSL Settings' configures the additional options required for @@ -177825,7 +179054,7 @@ Connector/ODBC 5.1 SSL Configuration -The `Advanced' tab enables you to configure Connector/ODBC connection +The `Advanced' tab lets you configure Connector/ODBC connection parameters. Refer to *Note connector-odbc-configuration-connection-parameters::, for information about the meaning of these options. @@ -177845,8 +179074,8 @@  File: manual.info, Node: connector-odbc-configuration-dsn-windows-problems, Prev: connector-odbc-configuration-dsn-windows-5-1-command-line, Up: connector-odbc-configuration-dsn-windows -22.1.4.8 Errors and Debugging -............................. +22.1.4.8 Troubleshooting ODBC Connection Problems +................................................. This section answers Connector/ODBC connection-related questions. @@ -177895,10 +179124,10 @@ There are known issues with the OS X ODBC Administrator and Connector/ODBC that may prevent you from creating a DSN using this -method. In this case you should use the command-line or edit the -`odbc.ini' file directly. Note that existing DSNs or those that you -create using the `myodbc3i' or `myodbc-installer' tool can still be -checked and edited using ODBC Administrator. +method. In this case, use the command-line or edit the `odbc.ini' file +directly. Note that existing DSNs or those that you create using the +`myodbc3i' or `myodbc-installer' tool can still be checked and edited +using ODBC Administrator. To create a DSN using the `myodbc3i' utility, you need only specify the DSN type and the DSN connection string. For example: @@ -177921,10 +179150,10 @@ `ODBC Administrator Add DSN' Dialog - 5. Click `Add' to add a new keyword/value pair to the panel. You - should configure at least four pairs to specify the `server', - `username', `password' and `database' connection parameters. See - *Note connector-odbc-configuration-connection-parameters::. + 5. Click `Add' to add a new keyword/value pair to the panel. + Configure at least four pairs to specify the `server', `username', + `password' and `database' connection parameters. See *Note + connector-odbc-configuration-connection-parameters::. 6. Click `OK' to add the DSN to the list of configured data source names. @@ -178069,11 +179298,10 @@ * connector-odbc-configuration-trace-unix:: Enabling ODBC Tracing on Unix * connector-odbc-configuration-trace-log:: Enabling a Connector/ODBC Log -If you encounter difficulties or problems with Connector/ODBC, you -should start by making a log file from the `ODBC Manager' and -Connector/ODBC. This is called _tracing_, and is enabled through the -ODBC Manager. The procedure for this differs for Windows, Mac OS X and -Unix. +If you encounter difficulties or problems with Connector/ODBC, start by +making a log file from the `ODBC Manager' and Connector/ODBC. This is +called _tracing_, and is enabled through the ODBC Manager. The +procedure for this differs for Windows, Mac OS X and Unix.  File: manual.info, Node: connector-odbc-configuration-trace-windows, Next: connector-odbc-configuration-trace-macosx, Prev: connector-odbc-configuration-trace, Up: connector-odbc-configuration-trace @@ -178084,7 +179312,7 @@ To enable the trace option on Windows: 1. The `Tracing' tab of the ODBC Data Source Administrator dialog box - enables you to configure the way ODBC function calls are traced. + lets you configure the way ODBC function calls are traced. ODBC Data Source Administrator Tracing Dialog @@ -178107,8 +179335,8 @@ 22.1.4.15 Enabling ODBC Tracing on Mac OS X ........................................... -To enable the trace option on Mac OS X 10.3 or later you should use the -`Tracing' tab within ODBC Administrator . +To enable the trace option on Mac OS X 10.3 or later, use the `Tracing' +tab within ODBC Administrator . 1. Open the ODBC Administrator. @@ -178518,8 +179746,8 @@ columns. With both applications, data is accessed and imported into the -application using Microsoft Query , which enables you to execute a -query though an ODBC source. You use Microsoft Query to build the SQL +application using Microsoft Query, which lets you execute a query +though an ODBC source. You use Microsoft Query to build the SQL statement to be executed, selecting the tables, fields, selection criteria and sort order. For example, to insert information from a table in the World test database into an Excel spreadsheet, using the @@ -178592,7 +179820,7 @@ for more information. For example, to create a simple crosstab report within Crystal Reports -XI, you should follow these steps: +XI, follow these steps: 1. Create a DSN using the `Data Sources (ODBC)' tool. You can either specify a complete database, including user name and password, or @@ -178691,12 +179919,12 @@ * connector-odbc-examples-programming-net:: Using Connector/ODBC with .NET With a suitable ODBC Manager and the Connector/ODBC driver installed, -any programming language or environment that can support ODBC should be -able to connect to a MySQL database through Connector/ODBC. +any programming language or environment that can support ODBC can +connect to a MySQL database through Connector/ODBC. -This includes, but is certainly not limited to, Microsoft support -languages (including Visual Basic, C# and interfaces such as ODBC.NET), -Perl (through the DBI module, and the DBD::ODBC driver). +This includes, but is not limited to, Microsoft support languages +(including Visual Basic, C# and interfaces such as ODBC.NET), Perl +(through the DBI module, and the DBD::ODBC driver).  File: manual.info, Node: connector-odbc-examples-programming-vb, Next: connector-odbc-examples-programming-net, Prev: connector-odbc-examples-programming, Up: connector-odbc-examples-programming @@ -179618,7 +180846,7 @@ * Menu: * connector-odbc-usagenotes-functionality:: Connector/ODBC General Functionality -* connector-odbc-usagenotes-apptips:: Connector/ODBC Application Specific Tips +* connector-odbc-usagenotes-apptips:: Connector/ODBC Application-Specific Tips * connector-odbc-errors:: Connector/ODBC Errors and Resolutions (FAQ) Here are some common notes and tips for using Connector/ODBC within @@ -179701,7 +180929,7 @@ The Connector/ODBC driver has been optimized to provide very fast performance. If you experience problems with the performance of Connector/ODBC, or notice a large amount of disk activity for simple -queries, there are a number of aspects you should check: +queries, there are a number of aspects to check: * Ensure that `ODBC Tracing' is not enabled. With tracing enabled, a lot of information is recorded in the tracing file by the ODBC @@ -179736,7 +180964,7 @@  File: manual.info, Node: connector-odbc-usagenotes-apptips, Next: connector-odbc-errors, Prev: connector-odbc-usagenotes-functionality, Up: connector-odbc-usagenotes -22.1.7.6 Connector/ODBC Application Specific Tips +22.1.7.6 Connector/ODBC Application-Specific Tips ................................................. * Menu: @@ -179753,7 +180981,7 @@ listed here, there are specific notes and tips to improve or enhance the way you work with Connector/ODBC and these applications. -With all applications you should ensure that you are using the latest +With all applications, ensure that you are using the latest Connector/ODBC drivers, ODBC Manager and any supporting libraries and interfaces used by your application. For example, on Windows, using the latest version of Microsoft Data Access Components (MDAC) will improve @@ -179791,19 +181019,17 @@ To improve the integration between Microsoft Access and MySQL through Connector/ODBC: - * For all versions of Access, you should enable the Connector/ODBC - `Return matching rows' option. For Access 2.0, you should - additionally enable the `Simulate ODBC 1.0' option. - - * You should have a *Note `TIMESTAMP': datetime. column in all - tables that you want to be able to update. For maximum - portability, do not use a length specification in the column - declaration (which is unsupported within MySQL in versions earlier - than 4.1). - - * You should have a primary key in each MySQL table you want to use - with Access. If not, new or updated rows may show up as - `#DELETED#'. + * For all versions of Access, enable the Connector/ODBC `Return + matching rows' option. For Access 2.0, also enable the `Simulate + ODBC 1.0' option. + + * Include a *Note `TIMESTAMP': datetime. column in all tables that + you want to be able to update. For maximum portability, do not + use a length specification in the column declaration (which is + unsupported within MySQL in versions earlier than 4.1). + + * Include a primary key in each MySQL table you want to use with + Access. If not, new or updated rows may show up as `#DELETED#'. * Use only *Note `DOUBLE': numeric-types. float fields. Access fails when comparing with single-precision floats. The symptom usually @@ -179830,20 +181056,19 @@ trick may help you: Do not use a `table' data sheet view. Instead, create a form with - the fields you want, and use that `form' data sheet view. You - should set the `DefaultValue' property for the *Note `TIMESTAMP': - datetime. column to `NOW()'. It may be a good idea to hide the - *Note `TIMESTAMP': datetime. column from view so your users are - not confused. + the fields you want, and use that `form' data sheet view. Set the + `DefaultValue' property for the *Note `TIMESTAMP': datetime. + column to `NOW()'. Consider hiding the *Note `TIMESTAMP': + datetime. column from view so your users are not confused. * In some cases, Access may generate SQL statements that MySQL cannot understand. You can fix this by selecting `"Query|SQLSpecific|Pass-Through"' from the Access menu. * On Windows NT, Access reports *Note `BLOB': blob. columns as `OLE - OBJECTS'. If you want to have `MEMO' columns instead, you should - change *Note `BLOB': blob. columns to *Note `TEXT': blob. with - *Note `ALTER TABLE': alter-table. + OBJECTS'. If you want to have `MEMO' columns instead, change *Note + `BLOB': blob. columns to *Note `TEXT': blob. with *Note `ALTER + TABLE': alter-table. * Access cannot always handle the MySQL *Note `DATE': datetime. column properly. If you have a problem with these, change the @@ -179943,7 +181168,7 @@ 22.1.7.12 Visual Objects ........................ -You should select the `Don't optimize column widths' option. +Select the `Don't optimize column widths' option.  File: manual.info, Node: connector-odbc-usagenotes-apptips-microsoft-ado, Next: connector-odbc-usagenotes-apptips-microsoft-asp, Prev: connector-odbc-usagenotes-apptips-microsoft-visualobjects, Up: connector-odbc-usagenotes-apptips-microsoft @@ -179992,7 +181217,7 @@ 22.1.7.14 Using Connector/ODBC with Active Server Pages (ASP) ............................................................. -You should select the `Return matching rows' option in the DSN. +Select the `Return matching rows' option in the DSN. For more information about how to access MySQL through ASP using Connector/ODBC, refer to the following articles: @@ -180122,15 +181347,15 @@ sources. You can download Connector/ODBC at `http://dev.mysql.com/downloads/connector/odbc/'. -ColdFusion version 4.5.1 enables you to use the ColdFusion -Administrator to add the MySQL data source. However, the driver is not -included with ColdFusion version 4.5.1. Before the MySQL driver appears -in the ODBC data sources drop-down list, you must build and copy the -Connector/ODBC driver to `/opt/coldfusion/lib/libmyodbc.so'. - -The Contrib directory contains the program `mydsn-XXX.zip' which -enables you to build and remove the DSN registry file for the -Connector/ODBC driver on ColdFusion applications. +ColdFusion version 4.5.1 lets you use the ColdFusion Administrator to +add the MySQL data source. However, the driver is not included with +ColdFusion version 4.5.1. Before the MySQL driver appears in the ODBC +data sources drop-down list, you must build and copy the Connector/ODBC +driver to `/opt/coldfusion/lib/libmyodbc.so'. + +The Contrib directory contains the program `mydsn-XXX.zip' which lets +you build and remove the DSN registry file for the Connector/ODBC +driver on ColdFusion applications. For more information and guides on using ColdFusion and Connector/ODBC, see the following external sites: @@ -180175,7 +181400,7 @@ 22.1.7.24 Using Connector/ODBC with SunSystems Vision ..................................................... -You should select the `Return matching rows' option. +Select the `Return matching rows' option.  File: manual.info, Node: connector-odbc-errors, Prev: connector-odbc-usagenotes-apptips, Up: connector-odbc-usagenotes @@ -180189,9 +181414,9 @@ connector-odbc-support-community::. Many problems can be resolved by upgrading your Connector/ODBC drivers -to the latest available release. On Windows, you should also make sure -that you have the latest versions of the Microsoft Data Access -Components (MDAC) installed. +to the latest available release. On Windows, make sure that you have +the latest versions of the Microsoft Data Access Components (MDAC) +installed. *Questions* * 22.1.7.3.1: I have installed Connector/ODBC on Windows XP x64 @@ -180294,9 +181519,9 @@ Windows x64 Editions is located in the `%SystemRoot%\system32' folder, and only searches this folder for ODBC drivers. -On Windows x64 editions, you should use the ODBC administration tool -located at `%SystemRoot%\SysWOW64\odbcad32.exe', this will correctly -locate the installed Connector/ODBC drivers and enable you to create a +On Windows x64 editions, use the ODBC administration tool located at +`%SystemRoot%\SysWOW64\odbcad32.exe', this will correctly locate the +installed Connector/ODBC drivers and enable you to create a Connector/ODBC DSN. This issue was originally reported as Bug #20301. @@ -180317,7 +181542,7 @@ supported within MySQL when using the `InnoDB' database engine. In versions of MySQL before Mysql 5.1 you may also use the `BDB' engine. -You should check the following before continuing: +Check the following before continuing: * Verify that your MySQL server supports a transactional database engine. Use *Note `SHOW ENGINES': show-engines. to obtain a list @@ -180335,27 +181560,27 @@ If the inserted or updated records are shown as `#DELETED#' in the access, then: - * If you are using Access 2000, you should get and install the - newest (version 2.6 or higher) Microsoft MDAC (`Microsoft Data - Access Components') from `http://support.microsoft.com/kb/110093'. - This fixes a bug in Access that when you export data to MySQL, the - table and column names aren't specified. + * If you are using Access 2000, get and install the newest (version + 2.6 or higher) Microsoft MDAC (`Microsoft Data Access Components') + from `http://support.microsoft.com/kb/110093'. This fixes a bug + in Access that when you export data to MySQL, the table and column + names aren't specified. - You should also get and apply the Microsoft Jet 4.0 Service Pack 5 - (SP5) which can be found at + Also, get and apply the Microsoft Jet 4.0 Service Pack 5 (SP5), + which can be found at `http://support.microsoft.com/default.aspx?scid=kb;EN-US;q239114'. This fixes some cases where columns are marked as `#DELETED#' in Access. - * For all versions of Access, you should enable the Connector/ODBC - `Return matching rows' option. For Access 2.0, you should - additionally enable the `Simulate ODBC 1.0' option. + * For all versions of Access, enable the Connector/ODBC `Return + matching rows' option. For Access 2.0, also enable the `Simulate + ODBC 1.0' option. - * You should have a timestamp in all tables that you want to be able - to update. + * Include a `TIMESTAMP' in all tables that you want to be able to + update. - * You should have a primary key in the table. If not, new or updated - rows may show up as `#DELETED#'. + * Include a primary key in the table. If not, new or updated rows + may show up as `#DELETED#'. * Use only *Note `DOUBLE': numeric-types. float fields. Access fails when comparing with single-precision floats. The symptom usually @@ -180440,11 +181665,10 @@ * Only use double-precision float fields. Some programs may fail when they compare single-precision floats. -If these strategies do not help, you should start by making a log file -from the ODBC manager (the log you get when requesting logs from -ODBCADMIN) and a Connector/ODBC log to help you figure out why things -go wrong. For instructions, see *Note -connector-odbc-configuration-trace::. +If these strategies do not help, start by making a log file from the +ODBC manager (the log you get when requesting logs from ODBCADMIN) and +a Connector/ODBC log to help you figure out why things go wrong. For +instructions, see *Note connector-odbc-configuration-trace::. *22.1.7.3.12: ** When linking an application directly to the Connector/ODBC library under Unix/Linux, the application crashes. * @@ -180522,8 +181746,8 @@ database (Hebrew/CJK) using C/ODBC 5.1, but when I retrieve the data, the text is not formatted correctly and I get garbled characters. * -When using ASP and UTF8 characters you should add the following to your -ASP files to ensure that the data returned is correctly encoded: +When using ASP and UTF8 characters, add the following to your ASP files +to ensure that the data returned is correctly encoded: Response.CodePage = 65001 Response.CharSet = "utf-8" @@ -180537,18 +181761,17 @@ *Warning*: -To fix the problem you should use any working uninstallers to remove -existing installations and then may have to edit the contents of the -registry. Make sure you have a backup of your registry information -before attempting any editing of the registry contents. +To fix the problem, use any working uninstallers to remove existing +installations and then may have to edit the contents of the registry. +Make sure you have a backup of your registry information before +attempting any editing of the registry contents. *22.1.7.3.22: ** When submitting queries with parameter binding using *Note `UPDATE': update, my field values are being truncated to 255 characters. * -You should ensure that the `FLAG_BIG_PACKETS' option is set for your -connection. This removes the 255 character limitation on bound -parameters. +Ensure that the `FLAG_BIG_PACKETS' option is set for your connection. +This removes the 255 character limitation on bound parameters. *22.1.7.3.23: ** Is it possible to disable data-at-execution using a flag? * @@ -180593,9 +181816,9 @@ * connector-odbc-support-credits:: Credits There are many different places where you can get support for using -Connector/ODBC. You should always try the Connector/ODBC Mailing List -or Connector/ODBC Forum. See *Note connector-odbc-support-community::, -for help before reporting a specific bug or issue to MySQL. +Connector/ODBC. Always try the Connector/ODBC Mailing List or +Connector/ODBC Forum. See *Note connector-odbc-support-community::, for +help before reporting a specific bug or issue to MySQL.  File: manual.info, Node: connector-odbc-support-community, Next: connector-odbc-support-bug-report, Prev: connector-odbc-support, Up: connector-odbc-support @@ -180623,26 +181846,26 @@ 22.1.8.2 How to Report Connector/ODBC Problems or Bugs ...................................................... -If you encounter difficulties or problems with Connector/ODBC, you -should start by making a log file from the `ODBC Manager' (the log you -get when requesting logs from `ODBC ADMIN') and Connector/ODBC. The -procedure for doing this is described in *Note +If you encounter difficulties or problems with Connector/ODBC, start by +making a log file from the `ODBC Manager' (the log you get when +requesting logs from `ODBC ADMIN') and Connector/ODBC. The procedure +for doing this is described in *Note connector-odbc-configuration-trace::. Check the Connector/ODBC trace file to find out what could be wrong. -You should be able to determine what statements were issued by -searching for the string `>mysql_real_query' in the `myodbc.log' file. +Determine what statements were issued by searching for the string +`>mysql_real_query' in the `myodbc.log' file. -You should also try issuing the statements from the *Note `mysql': -mysql. client program or from `admndemo'. This helps you determine -whether the error is in Connector/ODBC or MySQL. +Also, try issuing the statements from the *Note `mysql': mysql. client +program or from `admndemo'. This helps you determine whether the error +is in Connector/ODBC or MySQL. If you find out something is wrong, please only send the relevant rows (maximum 40 rows) to the `myodbc' mailing list. See *Note mailing-lists::. Please never send the whole Connector/ODBC or ODBC log file! -You should ideally include the following information with the email: +Ideally, include the following information with the email: * Operating system and version @@ -180674,9 +181897,9 @@ If you can create a program that also demonstrates the problem, please include it in the archive as well. -If the program works with another SQL server, you should include an -ODBC log file where you perform exactly the same SQL statements so that -we can compare the results between the two systems. +If the program works with another SQL server, include an ODBC log file +where you perform exactly the same SQL statements so that we can +compare the results between the two systems. Remember that the more information you can supply to us, the more likely it is that we can fix the problem. @@ -180732,12 +181955,12 @@ * connector-net-support:: Connector/Net Support * connector-net-faq:: Connector/Net FAQ -Connector/Net enables developers to easily create .NET applications -that require secure, high-performance data connectivity with MySQL. It -implements the required ADO.NET interfaces and integrates into ADO.NET -aware tools. Developers can build applications using their choice of -.NET languages. Connector/Net is a fully managed ADO.NET driver written -in 100% pure C#. +Connector/Net lets you easily develop .NET applications that require +secure, high-performance data connectivity with MySQL. It implements +the required ADO.NET interfaces and integrates into ADO.NET aware +tools. Developers can build applications using their choice of .NET +languages. Connector/Net is a fully managed ADO.NET driver written in +100% pure C#. Connector/Net includes full support for: @@ -180747,16 +181970,15 @@ * Large-packet support for sending and receiving rows and BLOBs up to 2 gigabytes in size. - * Protocol compression which enables compressing the data stream + * Protocol compression, which enables compressing the data stream between the client and server. - * Support for connecting using TCP/IP sockets, named pipes, or - shared memory on Windows. + * Connections using TCP/IP sockets, named pipes, or shared memory on + Windows. - * Support for connecting using TCP/IP sockets or Unix sockets on - Unix. + * Connections using TCP/IP sockets or Unix sockets on Unix. - * Support for the Open Source Mono framework developed by Novell. + * The Open Source Mono framework developed by Novell. * Fully managed, does not utilize the MySQL client library. @@ -180766,11 +181988,11 @@ distribution. If you are using MySQL 5.0 or later, and Visual Studio as your -development environment, you may want also want to use the MySQL Visual -Studio Plugin. The plugin acts as a DDEX (Data Designer Extensibility) -provider, enabling you to use the data design tools within Visual -Studio to manipulate the schema and objects within a MySQL database. -For more information, see *Note connector-net-visual-studio::. +development environment, you can also use the MySQL Visual Studio +Plugin. The plugin acts as a DDEX (Data Designer Extensibility) +provider: you can use the data design tools within Visual Studio to +manipulate the schema and objects within a MySQL database. For more +information, see *Note connector-net-visual-studio::. *Note*: @@ -180796,82 +182018,94 @@ There are several versions of Connector/Net available: - * Connector/Net 1.0 includes support for MySQL Server 4.0, 4.1, and - 5.0 features, and full compatibility with the ADO.NET driver - interface. + * Connector/Net 6.5 includes support for MySQL Server 5.6, 5.5, 5.1, + and 5.0. Important new features include interceptor classes for + exceptions and commands, support for the MySQL 5.6 fractional + seconds feature, better partial-trust support, and better + IntelliSense, including auto-completion when editing stored + procedures or `.mysql' files. + + * Connector/Net 6.4 includes support for MySQL Server 5.5, 5.1, and + 5.0. Important new features include support for Windows + authentication (when connecting to MySQL Server 5.5+), table + caching on the client side, simple connection fail-over support, + and improved SQL generation from the Entity Framework provider. + + * Connector/Net 6.3 includes support for MySQL Server 5.5, 5.1, and + 5.0. Important new features include integration with Visual Studio + 2010, such as availability of DDL T4 template for Entity + Framework, and a custom MySQL SQL Editor. Other features include + refactored transaction scope: Connector/Net now supports nested + transactions in a scope where they use the same connection string. - This version of Connector/Net is no longer supported. + * Connector/Net 6.2 includes support for MySQL Server 5.5, 5.1, 5.0, + and 4.1. Important new features include a new logging system and + client SSL certificates. - * Connector/Net 5.0 includes support for MySQL Server 4.0, 4.1, 5.0 - and 5.1 features. Connector/Net 5.0 also includes full support for - the ADO.Net 2.0 interfaces and subclasses, includes support for - the usage advisor and performance monitor (PerfMon) hooks. + * Connector/Net 6.1 includes support for MySQL Server 5.5, 5.1, 5.0, + and 4.1. Important new features include the MySQL Website + Configuration Tool and a Session State Provider. + + * Connector/Net 6.0 includes support for MySQL Server 5.5, 5.1, 5.0, + and 4.1. This version of Connector/Net is no longer supported. - * Connector/Net 5.1 includes support for MySQL Server 4.0, 4.1, 5.0, - 5.1, 5.4 and 5.5 features. Connector/Net 5.1 also includes support - for a new membership/role provider, Compact Framework 2.0, a new - stored procedure parser and improvements to `GetSchema'. - Connector/Net 5.1 also includes the Visual Studio Plugin as a - standard installable component. + * Connector/Net 5.2 includes support for MySQL Server 5.5, 5.1, 5.0, + and 4.1 features. Connector/Net 5.2 also includes support for a + new membership/role provider, Compact Framework 2.0, a new stored + procedure parser and improvements to `GetSchema'. Connector/Net + 5.2 also includes the Visual Studio Plugin as a standard + installable component. This version of Connector/Net is no longer supported. - * Connector/Net 5.2 includes support for MySQL Server 4.1, 5.0, 5.1, - 5.4, and 5.5 features. Connector/Net 5.2 also includes support for + * Connector/Net 5.1 includes support for MySQL Server 5.5, 5.1, 5.0, + 4.1, and 4.0 features. Connector/Net 5.1 also includes support for a new membership/role provider, Compact Framework 2.0, a new stored procedure parser and improvements to `GetSchema'. - Connector/Net 5.2 also includes the Visual Studio Plugin as a + Connector/Net 5.1 also includes the Visual Studio Plugin as a standard installable component. This version of Connector/Net is no longer supported. - * Connector/Net 6.0 includes support for MySQL Server 4.1, 5.0, 5.1, - 5.4 and 5.5. + * Connector/Net 5.0 includes support for MySQL Server 5.1, 5.0, 4.1 + and 4.0 features. Connector/Net 5.0 also includes full support for + the ADO.Net 2.0 interfaces and subclasses, includes support for + the usage advisor and performance monitor (PerfMon) hooks. This version of Connector/Net is no longer supported. - * Connector/Net 6.1 includes support for MySQL Server 4.1, 5.0, 5.1, - 5.4, and 5.5. Important new features include the MySQL Website - Configuration Tool and a Session State Provider. + * Connector/Net 1.0 includes support for MySQL Server 5.0, 4.1, and + 4.0 features, and full compatibility with the ADO.NET driver + interface. - * Connector/Net 6.2 includes support for MySQL Server 4.1, 5.0, 5.1, - 5.4, and 5.5. Important new features include a new logging system - and client SSL certificates. Connector/Net 6.2 is currently - available as a Beta release. - - * Connector/Net 6.3 includes support for MySQL Server 5.0, 5.1, 5.4, - and 5.5. Important new features include integration with Visual - Studio 2010, such as availability of DDL T4 template for Entity - Framework, and a custom MySQL SQL Editor. Other features include - refactored transaction scope: Connector/Net now supports nested - transactions in a scope where they use the same connection string. - Connector/Net 6.3 is available as a Beta release. + This version of Connector/Net is no longer supported. The latest source code for Connector/Net can be downloaded from the -MySQL public Subversion server. For further details see *Note +MySQL public Subversion server. For further details, see *Note connector-net-installation-source::. -The following table shows the .NET Framework version required, and +The following tables shows the .NET Framework version required, and the MySQL Server version supported by Connector/Net: +*Connector/Net Requirements for Related Products* + Connector/Net ADO.NET version .NET Framework MySQL Server Currently version supported version required version supported supported -1.0 1.x 1.x 4.0, 4.1, 5.0 No -5.0 2.x+ 2.x+ 4.0, 4.1, 5.0 No -5.1 2.x+ 2.x+ 4.0, 4.1, 5.0, No - 5.1, 5.4, 5.5 -5.2 2.x+ 2.x+ 4.1, 5.0, 5.1, No - 5.4, 5.5 -6.0 2.x+ 2.x+ 4.1, 5.0, 5.1, Critical issues - 5.4, 5.5 only -6.1 2.x+ 2.x+ 4.1, 5.0, 5.1, Yes - 5.4, 5.5 -6.2 2.x+ 2.x+ 4.1, 5.0, 5.1, Yes - 5.4, 5.5 -6.3 2.x+ 2.x+, 4.x+ for VS 5.0, 5.1, 5.4, 5.5 Yes +6.4 2.x+ 2.x+, 4.x+ for VS 5.5, 5.1, 5.0 Yes 2010 support +6.3 2.x+ 2.x+, 4.x+ for VS 5.5, 5.1, 5.0 Yes + 2010 support +6.2 2.x+ 2.x+ 5.5, 5.1, 5.0, 4.1 Yes +6.1 2.x+ 2.x+ 5.5, 5.1, 5.0, 4.1 Yes +6.0 2.x+ 2.x+ 5.5, 5.1, 5.0, 4.1 Critical issues + only +5.2 2.x+ 2.x+ 5.5, 5.1, 5.0, 4.1 No +5.1 2.x+ 2.x+ 5.5, 5.1, 5.0, No + 4.1, 4.0 +5.0 2.x+ 2.x+ 5.0, 4.1, 4.0 No +1.0 1.x 1.x 5.0, 4.1, 4.0 No *Note*: @@ -180900,7 +182134,7 @@ Mono framework (see `http://www.mono-project.com'). Connector/Net is available for download from -`http://dev.mysql.com/downloads/connector/net/5.2.html'. +`http://dev.mysql.com/downloads/connector/net/'.  File: manual.info, Node: connector-net-installation-windows, Next: connector-net-installation-unix, Prev: connector-net-installation, Up: connector-net-installation @@ -180917,8 +182151,8 @@ installation process or by downloading a Zip file with the Connector/Net components. -Before installing, you should ensure that your system is up to date, -including installing the latest version of the .NET Framework. +Before installing, ensure that your system is up to date, including +installing the latest version of the .NET Framework.  File: manual.info, Node: connector-net-installation-binary-windows-installer, Next: connector-net-installation-binary-windows-zip, Prev: connector-net-installation-windows, Up: connector-net-installation-windows @@ -181208,7 +182442,8 @@ * Menu: -* connector-net-visual-studio-making-a-connection:: Making a connection +* connector-net-visual-studio-making-a-connection:: Making a Connection +* connector-net-visual-studio-intellisense:: Using IntelliSense in the SQL Editor * connector-net-visual-studio-editing-tables:: Editing Tables * connector-net-visual-studio-editing-views:: Editing Views * connector-net-visual-studio-editing-stored-procedures-and-functions:: Editing Stored Procedures and Functions @@ -181228,17 +182463,17 @@ sections of the manual. MySQL Connector/Net supports Visual Studio versions 2005, 2008, and -2010. However, only MySQL Connector/Net version 6.3 fully integrates -with Visual Studio 2010, although applications using earlier versions -of the connector can be built with the Visual Studio 2010 environment -using .NET 2.x frameworks. +2010. However, only MySQL Connector/Net version 6.3 and higher fully +integrate with Visual Studio 2010, although applications using earlier +versions of the connector can be built with the Visual Studio 2010 +environment using .NET 2.x frameworks. Visual Studio 2010 support was introduced with MySQL Connector/Net 6.3.2. From version 6.3.2 the connector ships with both .NET 2.x and .NET 4.x versions of the entity framework support files, -`mysql.data.ef.dll' and ` mysql.visualstudio.dll'. The .NET 4.x -versions need to be shipped to enable new integration features -supported in Visual Studio 2010, including: +`mysql.data.ef.dll' and `mysql.visualstudio.dll'. The .NET 4.x versions +are required to enable new integration features supported in Visual +Studio 2010, including: * New DDL T4 template for the Entity Framework (EF) - This enables developers to design an EF model from scratch and use the native @@ -181257,9 +182492,9 @@ Editor is also available in 2005 and 2008.  -File: manual.info, Node: connector-net-visual-studio-making-a-connection, Next: connector-net-visual-studio-editing-tables, Prev: connector-net-visual-studio, Up: connector-net-visual-studio +File: manual.info, Node: connector-net-visual-studio-making-a-connection, Next: connector-net-visual-studio-intellisense, Prev: connector-net-visual-studio, Up: connector-net-visual-studio -22.2.3.1 Making a connection +22.2.3.1 Making a Connection ............................ Once the connector is installed, you can use it to create, modify, and @@ -181278,10 +182513,10 @@ FIGURE GOES HERE: Add Connection Context Menu - * Change Data Source dialog opens. Choose MySQL Database in the list - of data sources (or the `' option, if MySQL Database is - absent), and then choose .NET Framework Data Provider for MySQL in - the combo box of data providers. + * `Change Data Source' dialog opens. Choose `MySQL Database' in the + list of data sources (or the `' option, if MySQL Database + is absent), and then choose `.NET Framework Data Provider for + MySQL' in the combo box of data providers. FIGURE GOES HERE: Choose Data Source @@ -181308,19 +182543,34 @@ After the connection is successfully established, all settings are saved for future use. When you start Visual Studio for the next time, -just open the connection node in Server Explorer to establish a -connection to the MySQL server again. +open the connection node in Server Explorer to establish a connection +to the MySQL server again. To modify and delete a connection, use the Server Explorer context menu -for the corresponding node. You can modify any of the settings just by -overwriting the existing values with new ones. Note that the -connection may be modified or deleted only if no active editor for its -objects is opened: otherwise you may loose your data. +for the corresponding node. You can modify any of the settings by +overwriting the existing values with new ones. Note that the connection +may be modified or deleted only if no active editor for its objects is +opened: otherwise, you may lose your data. + + +File: manual.info, Node: connector-net-visual-studio-intellisense, Next: connector-net-visual-studio-editing-tables, Prev: connector-net-visual-studio-making-a-connection, Up: connector-net-visual-studio + +22.2.3.2 Using IntelliSense in the SQL Editor +............................................. + +IntelliSense support is available starting in Connector/Net 6.5. Once +you have established a connection, for example, using the `Connect to +MySql' toolbar button, you can get autocompletion as you type, or by +pressing `Control+J'. Depending on the context, the autocompletion +dialog can show the list of available tables, table columns, or stored +procedures (with the routine's signature as a tooltip). Typing some +characters before pressing `Control+J' filters the choices to those +items starting with that prefix.  -File: manual.info, Node: connector-net-visual-studio-editing-tables, Next: connector-net-visual-studio-editing-views, Prev: connector-net-visual-studio-making-a-connection, Up: connector-net-visual-studio +File: manual.info, Node: connector-net-visual-studio-editing-tables, Next: connector-net-visual-studio-editing-views, Prev: connector-net-visual-studio-intellisense, Up: connector-net-visual-studio -22.2.3.2 Editing Tables +22.2.3.3 Editing Tables ....................... * Menu: @@ -181369,13 +182619,13 @@ Each of these areas is discussed in more detail in subsequent sections. To save changes you have made in the Table Designer, use either `Save' -or `Save All' button of the Visual Studio main toolbar, or just press -`Control+S'. If you have not already named the table you will be +or `Save All' button of the Visual Studio main toolbar, or press +`Control+S'. If you have not already named the table, you will be prompted to do so. FIGURE GOES HERE: Choose Table Name -Once created you can view the table in the Server Explorer. +Once the table is created, you can view it in the Server Explorer. FIGURE GOES HERE: Newly Created Table @@ -181387,7 +182637,7 @@  File: manual.info, Node: connector-net-visual-studio-editing-tables-column-editor, Next: connector-net-visual-studio-editing-tables-indexes, Prev: connector-net-visual-studio-editing-tables, Up: connector-net-visual-studio-editing-tables -22.2.3.3 Column Editor +22.2.3.4 Column Editor ...................... You can use the Column Editor to set or change the name, data type, @@ -181414,7 +182664,7 @@  File: manual.info, Node: connector-net-visual-studio-editing-tables-indexes, Next: connector-net-visual-studio-editing-tables-foreign-keys, Prev: connector-net-visual-studio-editing-tables-column-editor, Up: connector-net-visual-studio-editing-tables -22.2.3.4 Editing Indexes +22.2.3.5 Editing Indexes ........................ Indexes management is performed using the `Indexes/Keys' dialog. @@ -181435,7 +182685,7 @@  File: manual.info, Node: connector-net-visual-studio-editing-tables-foreign-keys, Next: connector-net-visual-studio-editing-tables-column-details, Prev: connector-net-visual-studio-editing-tables-indexes, Up: connector-net-visual-studio-editing-tables -22.2.3.5 Editing Foreign Keys +22.2.3.6 Editing Foreign Keys ............................. Foreign Keys management is performed using the `Foreign Key @@ -181458,7 +182708,7 @@  File: manual.info, Node: connector-net-visual-studio-editing-tables-column-details, Next: connector-net-visual-studio-editing-tables-table-properties, Prev: connector-net-visual-studio-editing-tables-foreign-keys, Up: connector-net-visual-studio-editing-tables -22.2.3.6 Column Properties +22.2.3.7 Column Properties .......................... The `Column Properties' tab can be used to set column options. In @@ -181469,7 +182719,7 @@  File: manual.info, Node: connector-net-visual-studio-editing-tables-table-properties, Prev: connector-net-visual-studio-editing-tables-column-details, Up: connector-net-visual-studio-editing-tables -22.2.3.7 Table Properties +22.2.3.8 Table Properties ......................... To bring up Table Properties select the table and right-click to @@ -181506,14 +182756,14 @@ * Storage Engine -The property `Schema' is read only. +The property `Schema' is read-only. FIGURE GOES HERE: Table Properties  File: manual.info, Node: connector-net-visual-studio-editing-views, Next: connector-net-visual-studio-editing-stored-procedures-and-functions, Prev: connector-net-visual-studio-editing-tables, Up: connector-net-visual-studio -22.2.3.8 Editing Views +22.2.3.9 Editing Views ...................... To create a new view, right-click the Views node under the connection @@ -181543,7 +182793,7 @@ * Definer - * Is Updateable + * Is Updatable * Name @@ -181552,21 +182802,21 @@ * Security Type Some of these properties can have arbitrary text values, others accept -values from a predefined set. In the latter case you set the desired -value with an embedded combobox. +values from a predefined set. In the latter case, set the desired value +with an embedded combobox. The properties `Is Updatable' and `Schema' are readonly. To save changes you have made, use either `Save' or `Save All' buttons -of the Visual Studio main toolbar, or just press `Control+S'. +of the Visual Studio main toolbar, or press `Control+S'. FIGURE GOES HERE: View SQL Saved  File: manual.info, Node: connector-net-visual-studio-editing-stored-procedures-and-functions, Next: connector-net-visual-studio-editing-triggers, Prev: connector-net-visual-studio-editing-views, Up: connector-net-visual-studio -22.2.3.9 Editing Stored Procedures and Functions -................................................ +22.2.3.10 Editing Stored Procedures and Functions +................................................. To create a new stored procedure, right-click the `Stored Procedures' node under the connection node in Server Explorer. From the node's @@ -181629,22 +182879,23 @@ * Type Some of these properties can have arbitrary text values, others accept -values from a predefined set. In the latter case set the desired value +values from a predefined set. In the latter case, set the desired value using the embedded combo box. You can also set all the options directly in the SQL Editor, using the -standard `CREATE PROCEDURE' or `CREATE FUNCTION' statement. However, it -is recommended to use the Properties window instead. +standard *Note `CREATE PROCEDURE': create-procedure. or *Note `CREATE +FUNCTION': create-function. statement. However, it is recommended to +use the Properties window instead. To save changes you have made, use either `Save' or `Save All' buttons -of the Visual Studio main toolbar, or just press `Control+S'. +of the Visual Studio main toolbar, or press `Control+S'. FIGURE GOES HERE: Stored Procedure SQL Saved  File: manual.info, Node: connector-net-visual-studio-editing-triggers, Next: connector-net-visual-studio-editing-user-defined-functions-udf, Prev: connector-net-visual-studio-editing-stored-procedures-and-functions, Up: connector-net-visual-studio -22.2.3.10 Editing Triggers +22.2.3.11 Editing Triggers .......................... To create a new trigger, right-click the node of the table in which to @@ -181660,8 +182911,9 @@ *Note*: -You should enter only the trigger statement, that is, the part of the -`CREATE TRIGGER' query that is placed after the `FOR EACH ROW' clause. +Enter only the trigger statement, that is, the part of the *Note +`CREATE TRIGGER': create-trigger. query that is placed after the `FOR +EACH ROW' clause. All other trigger properties are set in the Properties window. These properties are: @@ -181675,21 +182927,21 @@ * Timing Some of these properties can have arbitrary text values, others accept -values from a predefined set. In the latter case set the desired value +values from a predefined set. In the latter case, set the desired value using the embedded combo box. The properties `Event Table', `Schema', and `Server' in the Properties -window are read only. +window are read-only. To save changes you have made, use either `Save' or `Save All' buttons -of the Visual Studio main toolbar, or just press `Control+S'. Before -changes are saved, you will be asked to confirm the execution of the +of the Visual Studio main toolbar, or press `Control+S'. Before changes +are saved, you will be asked to confirm the execution of the corresponding SQL query in a confirmation dialog.  File: manual.info, Node: connector-net-visual-studio-editing-user-defined-functions-udf, Next: connector-net-visual-studio-cloning-database-objects, Prev: connector-net-visual-studio-editing-triggers, Up: connector-net-visual-studio -22.2.3.11 Editing User Defined Functions (UDF) +22.2.3.12 Editing User Defined Functions (UDF) .............................................. To create a new User Defined Function (UDF), right-click the `UDFs' @@ -181715,17 +182967,17 @@ and a check box to indicate if the UDF is aggregate. All these options are also accessible using the Properties window. -The property `Server' in the Properties window is read only. +The property `Server' in the Properties window is read-only. To save changes you have made, use either `Save' or `Save All' buttons -of the Visual Studio main toolbar, or just press `Control+S'. Before -changes are saved, you will be asked to confirm the execution of the +of the Visual Studio main toolbar, or press `Control+S'. Before changes +are saved, you will be asked to confirm the execution of the corresponding SQL query in a confirmation dialog.  File: manual.info, Node: connector-net-visual-studio-cloning-database-objects, Next: connector-net-visual-studio-dropping-database-objects, Prev: connector-net-visual-studio-editing-user-defined-functions-udf, Up: connector-net-visual-studio -22.2.3.12 Cloning Database Objects +22.2.3.13 Cloning Database Objects .................................. Tables, views, stored procedures, and functions can be cloned using the @@ -181738,14 +182990,14 @@ these values in a usual manner. To save the cloned object, use either Save or Save All buttons of the -Visual Studio main toolbar, or just press `Control+S'. Before changes -are saved, you will be asked to confirm the execution of the -corresponding SQL query in a confirmation dialog. +Visual Studio main toolbar, or press `Control+S'. Before changes are +saved, you will be asked to confirm the execution of the corresponding +SQL query in a confirmation dialog.  File: manual.info, Node: connector-net-visual-studio-dropping-database-objects, Next: connector-net-visual-studio-entity-framework, Prev: connector-net-visual-studio-cloning-database-objects, Up: connector-net-visual-studio -22.2.3.13 Dropping Database Objects +22.2.3.14 Dropping Database Objects ................................... Tables, views, stored routines, triggers, and UDFs can be dropped with @@ -181760,7 +183012,7 @@  File: manual.info, Node: connector-net-visual-studio-entity-framework, Next: connector-net-website-config, Prev: connector-net-visual-studio-dropping-database-objects, Up: connector-net-visual-studio -22.2.3.14 Using the ADO.NET Entity Framework +22.2.3.15 Using the ADO.NET Entity Framework ............................................ Connector/Net 6.0 introduced support for the ADO.NET Entity Framework. @@ -181787,8 +183039,8 @@ helpful tools to assist the developer. A full treatment of ADO.NET Entity Framework is beyond the scope of -this manual. You are encouraged to review the Microsoft ADO.NET Entity -Framework documentation +this manual. If you are unfamiliar with ADO.NET, review the Microsoft +ADO.NET Entity Framework documentation (http://msdn.microsoft.com/en-us/library/aa697427(VS.80).aspx). Tutorials on getting started with ADO.NET Entity Framework are @@ -181800,15 +183052,15 @@  File: manual.info, Node: connector-net-website-config, Next: connector-net-sql-editor, Prev: connector-net-visual-studio-entity-framework, Up: connector-net-visual-studio -22.2.3.15 MySQL Website Configuration Tool +22.2.3.16 MySQL Website Configuration Tool .......................................... MySQL Connector/Net 6.1 introduced the MySQL Website Configuration Tool. This is a facility available in Visual Studio that enables you to configure the Membership, Role, Session State and Profile Provider, -without having to resort to editing configuration files. You simply -run the tool, set your configuration options, and the tool will modify -your `web.config' file accordingly. +without having to resort to editing configuration files. You set your +configuration options within the tool, and the tool modifies your +`web.config' file accordingly. The MySQL Website Configuration Tool appears as a small icon on the Solution Explorer toolbar in Visual Studio, as show by the following @@ -181821,8 +183073,8 @@ FIGURE GOES HERE: MySQL Website Configuration Tool - Membership -This allows you to enable use of the MySQL Membership Provider. Simply -click the check box to enable this. You can now enter the name of the +This allows you to enable use of the MySQL Membership Provider. Click +the check box to enable this. You can now enter the name of the application that you are creating the configuration for. You can also enter a description for the application. @@ -181837,10 +183089,10 @@ will be automatically loaded and displayed, and can then be modified in this dialog. -You can also ensure that the necessary schema are created automatically -for you by selecting the Autogenerate Schema check box. These schema -are used to store membership information. The database used to storage -is the one specified in the connection string. +You can also ensure that the necessary schemas are created +automatically for you by selecting the Autogenerate Schema check box. +These schemas are used to store membership information. The database +used to storage is the one specified in the connection string. You can also ensure that exceptions generated by the application will be written to the event log by selecting the `Write exceptions to event @@ -181854,7 +183106,7 @@ FIGURE GOES HERE: MySQL Website Configuration Tool - Advanced Options Once information has been set up as required for configuration of the -Membership Provider the `Next' button can be clicked to display the +Membership Provider, the `Next' button can be clicked to display the Roles Provider screen: FIGURE GOES HERE: MySQL Website Configuration Tool - Roles @@ -181874,19 +183126,19 @@ Once you have set up the Session State Provider as required, click `Finish' to exit the wizard. -At this point it is necessary to select the Authentication Type to From -Internet. This can be done by launching the ASP.NET Configuration Tool, -and selecting the Security tab. Click the Select authentication type -link and ensure that the From the internet radio button is selected. -You can now examine the database you created to store membership -information. All the necessary tables will have been created for you: +At this point, it is necessary to select the `Authentication Type' to +`From Internet'. Launch the ASP.NET Configuration Tool and select the +Security tab. Click the `Select authentication type' link and ensure +that the `From the internet' radio button is selected. You can now +examine the database you created to store membership information. All +the necessary tables will have been created for you: FIGURE GOES HERE: MySQL Website Configuration Tool - Tables  File: manual.info, Node: connector-net-sql-editor, Next: connector-net-ddl-t4-ef, Prev: connector-net-website-config, Up: connector-net-visual-studio -22.2.3.16 MySQL SQL Editor +22.2.3.17 MySQL SQL Editor .......................... MySQL Connector/Net 6.3.2 introduced a new MySQL SQL Editor. The @@ -181896,7 +183148,7 @@ FIGURE GOES HERE: MySQL SQL Editor - New File -From the `New File' dialog select the MySQL template, and then +From the `New File' dialog, select the MySQL template, and then double-click the `MySQL SQL Script' document, or click the `Open' button. @@ -181904,11 +183156,11 @@ required, or connect to a MySQL server. Click the `Connect to MySQL' button in the MySQL SQL Editor toolbar. You can enter the connection details into the `Connect to MySQL' dialog that is displayed. You can -enter the server name, user id, password and database to connect to, or +enter the server name, user ID, password and database to connect to, or click the `Advanced' button to select other connection string options. -Click the `Connect' button to connect to the MySQL server. It is now -possible to execute your SQL code against the server by clicking the -`Run SQL' button on the toolbar. +Click the `Connect' button to connect to the MySQL server. To execute +your SQL code against the server, click the `Run SQL' button on the +toolbar. FIGURE GOES HERE: MySQL SQL Editor - Query @@ -181918,7 +183170,7 @@  File: manual.info, Node: connector-net-ddl-t4-ef, Prev: connector-net-sql-editor, Up: connector-net-visual-studio -22.2.3.17 DDL T4 Template Macro +22.2.3.18 DDL T4 Template Macro ............................... MySQL Connector/Net 6.3 introduced the ability to convert an Entity @@ -181989,7 +183241,7 @@ *Note*: -Before compiling the example code make sure that you have added +Before compiling the example code, make sure that you have added References to your project as required. The References required are `System', `System.Data' and `MySql.Data'. @@ -181999,18 +183251,17 @@ 22.2.4.2 The MySqlConnection Object ................................... -For your Connector/Net application to connect to a MySQL database it -needs to establish a connection. This is achieved through the use of a -`MySqlConnection' object. +For your Connector/Net application to connect to a MySQL database, it +must establish a connection by using a `MySqlConnection' object. -The MySqlConnection constructor takes a connection string as one of its -parameters. The connection string provides necessary information to +The `MySqlConnection' constructor takes a connection string as one of +its parameters. The connection string provides necessary information to make the connection to the MySQL database. The connection string is -discussed more fully in *Note connector-net-programming-connecting::. A -reference containing a list of supported connection string options can -also be found in *Note connector-net-connection-options::. +discussed more fully in *Note connector-net-programming-connecting::. +For a list of supported connection string options, see *Note +connector-net-connection-options::. -The following code shows how to create a connection object. +The following code shows how to create a connection object: using System; using System.Data; @@ -182039,16 +183290,15 @@ } } -When the `MySqlConnection' constructor is invoked it returns a +When the `MySqlConnection' constructor is invoked, it returns a connection object, which is used for subsequent database operations. -The first operation in this example is to open the connection. This -needs to be done before further operations take place. Before the -application exits the connection to the database needs to be closed by -calling `Close' on the connection object. +Open the connection before any other operations take place. Before the +application exits, close the connection to the database by calling +`Close' on the connection object. Sometimes an attempt to perform an `Open' on a connection object can -fail, this will generate an exception that can be handled using -standard exception handling code. +fail, generating an exception that can be handled using standard +exception handling code. In this section you have learned how to create a connection to a MySQL database, and open and close the corresponding connection object. @@ -182064,7 +183314,7 @@ achieved through the use of the `MySqlCommand' object. You will see how to create a `MySqlCommand' object. Once it has been -created there are three main methods of interest that you can call: +created, there are three main methods of interest that you can call: * *ExecuteReader* - used to query the database. Results are usually returned in a `MySqlDataReader' object, created by `ExecuteReader'. @@ -182122,18 +183372,18 @@ used to generate a `MySqlReader' object. The `MySqlReader' object contains the results generated by the SQL executed on the command object. Once the results have been obtained in a `MySqlReader' object, -the results can be processed. In this case the information is simply -printed out as part of a `while' loop. Finally, the `MySqlReader' -object is disposed of by running its `Close' method on it. +the results can be processed. In this case, the information is printed +out by a `while' loop. Finally, the `MySqlReader' object is disposed of +by running its `Close' method on it. -In the next example you will see how to use the `ExecuteNonQuery' +In the next example, you will see how to use the `ExecuteNonQuery' method. The procedure for performing an `ExecuteNonQuery' method call is simpler, as there is no need to create an object to store results. This is because `ExecuteNonQuery' is only used for inserting, updating and deleting data. The following example illustrates a simple update to the -Country table: +`Country' table: using System; using System.Data; @@ -182168,8 +183418,8 @@ The query is constructed, the command object created and the `ExecuteNonQuery' method called on the command object. You can access -your MySQL database with the MySQL Client program and verify that the -update was carried out correctly. +your MySQL database with the *Note `mysql': mysql. command interpreter +and verify that the update was carried out correctly. Finally, you will see how the `ExecuteScalar' method can be used to return a single value. Again, this is straightforward, as a @@ -182214,7 +183464,7 @@ } } -This example uses a simple query to count the rows in the Country +This example uses a simple query to count the rows in the `Country' table. The result is obtained by calling `ExecuteScalar' on the command object. @@ -182224,16 +183474,16 @@ 22.2.4.4 Working with Decoupled Data .................................... -Previously, when using MySqlDataReader, the connection to the database -was continually maintained, unless explicitly closed. It is also -possible to work in a manner where a connection is only established -when needed. For example, in this mode, a connection could be -established to read a chunk of data, the data could then be modified by -the application as required. A connection could then be reestablished -only if and when the application needs to write data back to the +Previously, when using `MySqlDataReader', the connection to the +database was continually maintained, unless explicitly closed. It is +also possible to work in a manner where a connection is only +established when needed. For example, in this mode, a connection could +be established to read a chunk of data, the data could then be modified +by the application as required. A connection could then be +reestablished only if and when the application writes data back to the database. This decouples the working data set from the database. -This decouple mode of working with data is supported by Connector/Net. +This decoupled mode of working with data is supported by Connector/Net. There are several parts involved in allowing this method to work: * *Data Set* - The Data Set is the area in which data is loaded to @@ -182251,11 +183501,12 @@ * *Command Builder* - The Command Builder is a support object. The Command Builder works in conjunction with the Data Adapter. When a - `MySqlDataAdapter' object is created it is typically given an - initial SELECT statement. From this SELECT statement the Command - Builder can work out the corresponding INSERT, UPDATE and DELETE - statements that would be required should the database need to be - updated. To create the Command Builder an object of the class + `MySqlDataAdapter' object is created, it is typically given an + initial SELECT statement. From this *Note `SELECT': select. + statement the Command Builder can work out the corresponding *Note + `INSERT': insert, *Note `UPDATE': update. and *Note `DELETE': + delete. statements that would be required to update the database. + To create the Command Builder, an object of the class `MySqlCommandBuilder' is created. Each of these classes will now be discussed in more detail. @@ -182269,8 +183520,8 @@ ... dsCountry = new DataSet(); -Although this creates the `DataSet' object it has not yet filled it -with data. For that a Data Adapter is required. +Although this creates the `DataSet' object, it has not yet filled it +with data. For that, a Data Adapter is required. *Instantiating a MySqlDataAdapter object* @@ -182500,14 +183751,14 @@ 22.2.4.6 Working with Stored Procedures ....................................... -In this section you will see how to work with Stored Procedures. This -section assumes you have a basic understanding of what a Stored -Procedure is, and how to create one. +In this section, you will see how to work with stored procedures. This +section assumes you have a basic understanding of what a stored +procedure is, and how to create one. For the purposes of this tutorial, you will create a simple Stored Procedure to see how it can be called from Connector/Net. In the MySQL Client program, connect to the World database and enter the following -Stored Procedure: +stored procedure: DELIMITER // CREATE PROCEDURE country_hos @@ -182518,32 +183769,32 @@ END // DELIMITER ; -Test the Stored Procedure works as expected by typing the following -into the MySQL Client program: +Test that the stored procedure works as expected by typing the +following into the *Note `mysql': mysql. command interpreter: CALL country_hos('Europe'); -Note that The Stored Routine takes a single parameter, which is the +Note that The stored routine takes a single parameter, which is the continent to restrict your search to. -Having confirmed that the Stored Procedure is present and correct you -can now move on to seeing how it can be accessed from Connector/Net. +Having confirmed that the stored procedure is present and correct, you +can see how to access it from Connector/Net. -Calling a Stored Procedure from your Connector/Net application is +Calling a stored procedure from your Connector/Net application is similar to techniques you have seen earlier in this tutorial. A `MySqlCommand' object is created, but rather than taking an SQL query -as a parameter it takes the name of the Stored Procedure to call. The -`MySqlCommand' object also needs to be set to the type of Stored -Procedure. This is illustrated by the following code snippet: +as a parameter, it takes the name of the stored procedure to call. Set +the `MySqlCommand' object to the type of stored procedure, as shown by +the following code snippet: string rtn = "country_hos"; MySqlCommand cmd = new MySqlCommand(rtn, conn); cmd.CommandType = CommandType.StoredProcedure; -In this case you also need to pass a parameter to the Stored Procedure. +In this case, the stored procedure requires you to pass a parameter. This can be achieved using the techniques seen in the previous section -on parameters, *Note connector-net-tutorials-parameters::. This is -shown in the following code snippet: +on parameters, *Note connector-net-tutorials-parameters::, as shown in +the following code snippet: cmd.Parameters.AddWithValue("@con", "Europe"); @@ -182551,12 +183802,11 @@ from a user input control, but for simplicity it is set as a static string in this example. -At this point everything is set up and all that now needs to be done is -to call the routine. This can be achieved using techniques also learned -in earlier sections, but in this case the `ExecuteReader' method of the -`MySqlCommand' object is used. +At this point, everything is set up and you can call the routine using +techniques also learned in earlier sections. In this case, the +`ExecuteReader' method of the `MySqlCommand' object is used. -Complete working code for the Stored Procedure example is shown below: +Complete working code for the stored procedure example is shown below: using System; using System.Data; @@ -182598,7 +183848,7 @@ } } -In this section you have seen how to call a Stored Procedure from +In this section, you have seen how to call a stored procedure from Connector/Net. For the moment, this concludes our introductory tutorial on programming with Connector/Net. @@ -182632,14 +183882,13 @@ 1. Create a new database in the MySQL Server using the MySQL Command Line Client program (`mysql'), or other suitable tool. It does not - matter what name is used for the database, but it should be noted - down so that it can be specified in the connection string - constructed later in this tutorial. This database will contain the - tables, automatically created for you later, used to store data - about users and roles. + matter what name is used for the database, but record it. You + specify it in the connection string constructed later in this + tutorial. This database contains the tables, automatically created + for you later, used to store data about users and roles. 2. Create a new ASP.NET Web Site in Visual Studio. If you are not - sure how to do this, refer to the following tutorial: *Note + sure how to do this, refer to *Note connector-net-tutorials-entity-framework-databinding-linq-entities::, which demonstrates how to create a simple ASP.NET web site. @@ -182705,7 +183954,7 @@ users. With local authentication the user is validated using their Windows credentials when they attempt to access the web site. This can be useful in an Intranet environment. With remote - authentication a user is prompted for their login details when + authentication, a user is prompted for their login details when accessing the web site, and these credentials are checked against the membership information stored in a database server such as MySQL Server. You will now see how to choose this form of @@ -182739,23 +183988,23 @@ FIGURE GOES HERE: Select Membership and Role Provider - 17. In Visual Studio rebuild the solution by selecting `Build', + 17. In Visual Studio, rebuild the solution by selecting `Build', `Rebuild Solution' from the main menu. 18. Check that the necessary schema has been created. This can be - achieved using the MySQL Command Line Client program. + achieved using the *Note `mysql': mysql. command interpreter. FIGURE GOES HERE: Membership and Role Provider Tables - 19. Assuming all is present and correct you can now create users and + 19. Assuming all is present and correct, you can now create users and roles for your web application. The easiest way to do this is with the ASP.NET Web Site Administration Tool. However, many web applications contain their own modules for creating roles and - users. For simplicity the ASP.NET Web Site Administration Tool + users. For simplicity, the ASP.NET Web Site Administration Tool will be used in this tutorial. 20. In the ASP.NET Web Site Administration Tool, click the `Security' - tab. Now that both the Membership and Role Provider are enabled + tab. Now that both the Membership and Role Provider are enabled, you will see links for creating roles and users. Click the `Create or Manage Roles' link. @@ -182772,13 +184021,13 @@ FIGURE GOES HERE: Create User - 24. Using the MySQL Command Line Client program you can check that - your database has been correctly populated with the Membership and - Role data. + 24. Using the *Note `mysql': mysql. command interpreter, you can check + that your database has been correctly populated with the + Membership and Role data. FIGURE GOES HERE: Membership and Roles Table Contents -In this tutorial you have seen how to set up the MySQL Connector/Net +In this tutorial, you have seen how to set up the MySQL Connector/Net Membership and Role Providers for use in your ASP.NET web application.  @@ -182795,25 +184044,25 @@ Professional Edition, MySQL Connector/Net 6.1.1 and MySQL Server 5.1. This tutorial also assumes you have created an empty database, for example `test', where you will store session data. You could do this -using the MySQL Command Line Client tool. +using the *Note `mysql': mysql. command interpreter. - 1. In Visual Studio create a new ASP.NET web site. If you are not - sure how to do this refer to the tutorial *Note - connector-net-tutorials-entity-framework-databinding-linq-entities:: + 1. In Visual Studio, create a new ASP.NET web site. If you are not + sure how to do this, refer to the tutorial *Note + connector-net-tutorials-entity-framework-databinding-linq-entities::, which demonstrates how to do this. 2. Launch the MySQL MySQL Website Configuration tool. Due to a bug in - 6.1.1 this may not appear unless you are connected to a server in + 6.1.1, this may not appear unless you are connected to a server in the Server Explorer. If you are unfamiliar with the MySQL Website - Configuration tool it is suggested that you first work through the - following tutorial *Note connector-net-website-config::. + Configuration tool, consider first working through the tutorial in + *Note connector-net-website-config::. 3. Navigate through the wizard to the Session State page. Make sure the check box `Use MySQL to manage my ASP.NET session data' is selected. - 4. On the same page configure the connection string to the database - that will contain your session data. This database can be empty as + 4. On the same page, configure the connection string to the database + that will contain your session data. If this database is empty, MySQL Connector/Net will create the schema required to store session data. @@ -182826,14 +184075,14 @@ 7. Click `Finish'. The MySQL Website Configuration tool will now update your application's `web.config' file with information about the connection string and default providers to be used. In this - case we have selected the MySQL Session State Provider. + case, we have selected the MySQL Session State Provider. -At this point you are ready to use the MySQL database to store session -data. To test that the set up has worked you can write a simple program -that uses session variables. +At this point, you are ready to use the MySQL database to store session +data. To test that the set up has worked, you can write a simple +program that uses session variables. - 1. Open `Default.aspx.cs'. In the Page_Load method add the following - code: + 1. Open `Default.aspx.cs'. In the `Page_Load' method, add the + following code: Session["SessionVariable1"] = "Test string"; @@ -182850,15 +184099,16 @@ Website Configuration tool. 5. Now view the contents of these tables by typing `SELECT * FROM - my_aspnet_sessions;' in the MySQL Command Line Client. This will - display the session data our application used. Note that this is - stored in binary format so some data may not display as expected. - -At this point you have installed the Session State Provider and carried -out a preliminary test of the installation. You will now work a bit -more with the Session State Provider. + my_aspnet_sessions;' in the *Note `mysql': mysql. command + interpreter. This will display the session data our application + used. Note that this is stored in binary format so some data may + not display as expected. + +At this point, you have installed the Session State Provider and +carried out a preliminary test of the installation. You will now work a +bit more with the Session State Provider. -In this part of the tutorial you will set and retrieve a session +In this part of the tutorial, you will set and retrieve a session variable. You can work with your existing project. 1. Select the `Default.aspx' and switch to Design View. Add a text @@ -182881,7 +184131,7 @@ `SessionString'. This will be set to the text that was entered into the text box when `Button1' is clicked. - 3. In Design View double-click `Button2' to add its click event + 3. In Design View, double-click `Button2' to add its click event handler. This button needs to clear text from the text box. The code to do this is as follows: @@ -183261,15 +184511,14 @@ In this tutorial you create an ASP.NET web page that binds LINQ queries to entities using the Entity Framework mapping. -If you have not already done so, you should install the World example -database prior to attempting this tutorial. Instructions on where to -obtain the database and instructions on how to install it where given -in the tutorial *Note -connector-net-tutorials-entity-framework-winform-data-source::. +If you have not already done so, install the World example database +prior to attempting this tutorial. See the tutorial *Note +connector-net-tutorials-entity-framework-winform-data-source:: for +instructions on downloading and installing this database. *Creating an ASP.NET web site* -In this part of the tutorial you will create an ASP.NET web site. The +In this part of the tutorial, you will create an ASP.NET web site. The web site will use the World database. The main web page will feature a drop down list from which you can select a country, data about that country's cities will then be displayed in a grid view control. @@ -183631,7 +184880,7 @@ The MySqlScript class has several events associated with it. There are: - 1. Error - generated in an error occurs. + 1. Error - generated if an error occurs. 2. ScriptCompleted - generated when the script successfully completes execution. @@ -183639,18 +184888,18 @@ 3. StatementExecuted - generated after each statement is executed. It is possible to assign event handlers to each of these events. These -user-provided routines will be called back should the connected event -occur. The following code shows how the event handlers are set up. +user-provided routines are called back when the connected event occurs. +The following code shows how the event handlers are set up. script.Error += new MySqlScriptErrorEventHandler(script_Error); script.ScriptCompleted += new EventHandler(script_ScriptCompleted); script.StatementExecuted += new MySqlStatementExecutedEventHandler(script_StatementExecuted); -In VisualStudio you can use tab completion to fill out stub routines -for you, to save typing. To do this start by typing, for example, -`script.Error +='. Then press `TAB', and then press `TAB' again. The -assignment will be completed, and a stub event handler created. A -complete working example is shown below: +In VisualStudio, you can save typing by using tab completion to fill +out stub routines. Start by typing, for example, `script.Error +='. +Then press `TAB', and then press `TAB' again. The assignment is +completed, and a stub event handler created. A complete working example +is shown below: using System; using System.Collections.Generic; @@ -183729,7 +184978,7 @@ 22.2.4.14 Using Delimiters with MySqlScript ........................................... -Depending on the nature of the script, you made need control of the +Depending on the nature of the script, you may need control of the delimiter used to separate the statements that will make up a script. The most common example of this is where you have a multi-statement stored routine as part of your script. In this case if the default @@ -183828,7 +185077,7 @@ ....................................................................... In this tutorial, you will learn how to create MySQL DDL from an Entity -Framework model. Use Visual Studio 2010 and MySQL Connector/Net 6.3 to +Framework model. Use Visual Studio 2010 and MySQL Connector/Net 6.3 to carry out this tutorial. 1. Create a new console application in Visual Studio 2010. @@ -183885,20 +185134,23 @@ * Menu: * connector-net-programming-connecting:: Connecting to MySQL Using Connector/Net -* connector-net-programming-connecting-connection-string:: Creating a Connection String +* connector-net-programming-connecting-connection-string:: Creating a Connector/Net Connection String * connector-net-programming-mysqlcommand:: Using MySqlCommand * connector-net-programming-connection-pooling:: Using Connector/Net with Connection Pooling +* connector-net-programming-authentication-windows-native:: Using the Windows Native Authentication Plugin +* connector-net-programming-tablecaching:: Using Connector/Net with Table Caching * connector-net-programming-prepared:: Using the Connector/Net with Prepared Statements * connector-net-programming-stored:: Accessing Stored Procedures with Connector/Net * connector-net-programming-blob:: Handling BLOB Data With Connector/Net -* connector-net-programming-crystal:: Using Connector/Net with Crystal Reports +* connector-net-interceptors:: Using the Connector/Net Interceptor Classes * connector-net-programming-datetime:: Handling Date and Time Information in Connector/Net -* connector-net-programming-asp-provider:: ASP.NET Provider Model -* connector-net-programming-binary-issues:: Binary/Nonbinary Issues -* connector-net-using-character-sets:: Character Sets -* connector-net-medium-trust:: Working with medium trust +* connector-net-programming-bulk-loader:: Using the `MySqlBulkLoader' Class * connector-net-programming-tracing:: Using the MySQL Connector/Net Trace Source Object -* connector-net-programming-bulk-loader:: Using the Bulk Loader +* connector-net-programming-binary-issues:: Binary/Nonbinary Issues +* connector-net-using-character-sets:: Character Set Considerations for Connector/Net +* connector-net-programming-crystal:: Using Connector/Net with Crystal Reports +* connector-net-programming-asp-provider:: ASP.NET Provider Model +* connector-net-medium-trust:: Working with Partial Trust Connector/Net comprises several classes that are used to connect to the database, execute queries and statements, and manage query results. @@ -183931,7 +185183,7 @@ * `MySqlTransaction': Represents an SQL transaction to be made in a MySQL database. -In the following sections you will learn about some common use cases +In the following sections, you will learn about some common use cases for Connector/Net, including BLOB handling, date handling, and using Connector/Net with common tools such as Crystal Reports. @@ -183945,8 +185197,8 @@ All interaction between a .NET application and the MySQL server is routed through a `MySqlConnection' object. Before your application can -interact with the server, a `MySqlConnection' object must be instanced, -configured, and opened. +interact with the server, a `MySqlConnection' object must be +instantiated, configured, and opened. Even when using the `MySqlHelper' class, a `MySqlConnection' object is created by the helper class. @@ -183957,8 +185209,8 @@  File: manual.info, Node: connector-net-programming-connecting-connection-string, Next: connector-net-programming-mysqlcommand, Prev: connector-net-programming-connecting, Up: connector-net-programming -22.2.5.2 Creating a Connection String -..................................... +22.2.5.2 Creating a Connector/Net Connection String +................................................... * Menu: @@ -183967,7 +185219,7 @@ * connector-net-programming-getschema:: Using GetSchema on a Connection The `MySqlConnection' object is configured using a connection string. A -connection string contains sever key/value pairs, separated by +connection string contains several key/value pairs, separated by semicolons. Each key/value pair is joined with an equal sign. The following is a sample connection string: @@ -184003,7 +185255,12 @@ The following code is used to create a `MySqlConnection' object, assign the connection string, and open the connection. -Visual Basic Example +Connector/NET can also connect using the native Windows authentication +plugin. See *Note +connector-net-programming-authentication-windows-native:: for further +information. + +* Visual Basic Example * Dim conn As New MySql.Data.MySqlClient.MySqlConnection Dim myConnectionString as String @@ -184021,7 +185278,7 @@ MessageBox.Show(ex.Message) End Try -C# Example +* C# Example * MySql.Data.MySqlClient.MySqlConnection conn; string myConnectionString; @@ -184043,7 +185300,7 @@ You can also pass the connection string to the constructor of the `MySqlConnection' class: -Visual Basic Example +* Visual Basic Example * Dim myConnectionString as String @@ -184059,7 +185316,7 @@ MessageBox.Show(ex.Message) End Try -C# Example +* C# Example * MySql.Data.MySqlClient.MySqlConnection conn; string myConnectionString; @@ -184107,7 +185364,7 @@ The following code shows how to adapt the application's response based on the actual error: -Visual Basic Example +* Visual Basic Example * Dim myConnectionString as String @@ -184128,7 +185385,7 @@ End Select End Try -C# Example +* C# Example * MySql.Data.MySqlClient.MySqlConnection conn; string myConnectionString; @@ -184318,9 +185575,9 @@ 22.2.5.7 Using MySqlCommand ........................... -A MySqlCommand has the `CommandText' and `CommandType' properties +A `MySqlCommand' has the `CommandText' and `CommandType' properties associated with it. The `CommandText' will be handled differently -depending on the setting of `CommandType'. `CommandType' can be one of: +depending on the setting of `CommandType'. `CommandType' can be one of: 1. Text - A SQL text command (default) @@ -184332,8 +185589,8 @@ other SQL commands. Some example of this can be found in the following section *Note connector-net-tutorials-sql-command::. -If `CommandType' is set to `StoredProcedure', `CommandText' should be -set to the name of the Stored Procedure to access. +If `CommandType' is set to `StoredProcedure', set `CommandText' to the +name of the Stored Procedure to access. If `CommandType' is set to `TableDirect', all rows and columns of the named table will be returned when you call one of the Execute methods. @@ -184364,9 +185621,9 @@ MySqlCommand cmd = new MySqlCommand(); cmd.CommandTimeout = 60; -The default value is 30 secs. A value of 0 indicates an indefinite wait -and should be avoided. Note the default command timeout can be changed -using the connection string option `Default Command Timeout'. +The default value is 30 seconds. Avoid a value of 0, which indicates an +indefinite wait. To change the default command timeout, use the +connection string option `Default Command Timeout'. Prior to MySQL Connector/Net 6.2, `MySqlCommand.CommandTimeout' included user processing time, that is processing time not related to @@ -184389,15 +185646,18 @@ (http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.commandtimeout.aspx).  -File: manual.info, Node: connector-net-programming-connection-pooling, Next: connector-net-programming-prepared, Prev: connector-net-programming-mysqlcommand, Up: connector-net-programming +File: manual.info, Node: connector-net-programming-connection-pooling, Next: connector-net-programming-authentication-windows-native, Prev: connector-net-programming-mysqlcommand, Up: connector-net-programming 22.2.5.8 Using Connector/Net with Connection Pooling .................................................... The Connector/Net supports connection pooling. This is enabled by -default, but can be turned off using connection string options. See -*Note connector-net-programming-connecting-connection-string:: for -further information. +default. You can turn it off or adjust its performance characteristics +using the connection string options `Pooling', `Connection Reset', +`Connection Lifetime', `Cache Server Properties', `Max Pool Size' and +`Min Pool Size'. See *Note +connector-net-programming-connecting-connection-string:: for further +information. Connection pooling works by keeping the native connection to the server live when the client disposes of a `MySqlConnection'. Subsequently, if @@ -184406,10 +185666,10 @@ improves performance. To work as designed, it is best to let the connection pooling system -manage all connections. You should not create a globally accessible -instance of `MySqlConnection' and then manually open and close it. This -interferes with the way the pooling works and can lead to unpredictable -results or even exceptions. +manage all connections. Do not create a globally accessible instance of +`MySqlConnection' and then manually open and close it. This interferes +with the way the pooling works and can lead to unpredictable results or +even exceptions. One approach that simplifies things is to avoid manually creating a `MySqlConnection' object. Instead use the overloaded methods that take @@ -184443,10 +185703,67 @@ set by the `Min Pool Size' connection string parameter.  -File: manual.info, Node: connector-net-programming-prepared, Next: connector-net-programming-stored, Prev: connector-net-programming-connection-pooling, Up: connector-net-programming +File: manual.info, Node: connector-net-programming-authentication-windows-native, Next: connector-net-programming-tablecaching, Prev: connector-net-programming-connection-pooling, Up: connector-net-programming -22.2.5.9 Using the Connector/Net with Prepared Statements -......................................................... +22.2.5.9 Using the Windows Native Authentication Plugin +....................................................... + +Connector/Net applications can authenticate to a MySQL server using the +Windows Native Authentication Plugin as of Connector/NET 6.4.4 and +MySQL 5.5.16. Users who have logged in to Windows can connect from +MySQL client programs to the server based on the information in their +environment without specifying an additional password. For background +and usage information about the authentication plugin, see, *Note +windows-authentication-plugin::. + +The interface matches the *Note MySql.Data.MySqlClient: +connector-net-ref-mysqlclient. object. To enable, pass in `Integrated +Security' to the connection string with a value of `yes' or `sspi'. + +Passing in a user ID is optional. When Windows authentication is set +up, a MySQL user is created and configured to be used by Windows +authentication. By default, this user ID is named `auth_windows', but +can be defined using a different name. If the default name is used, +then passing the user ID to the connection string from Connector/NET is +optional, because it will use the `auth_windows' user. Otherwise, the +name must be passed to the *Note connection string: +connector-net-programming-connecting-connection-string. using the +standard user ID element. + + +File: manual.info, Node: connector-net-programming-tablecaching, Next: connector-net-programming-prepared, Prev: connector-net-programming-authentication-windows-native, Up: connector-net-programming + +22.2.5.10 Using Connector/Net with Table Caching +................................................ + +This feature exists with Connector/NET versions 6.4 and above. + +Table caching is a feature that can be used to cache slow-changing +datasets on the client side. This is useful for applications that are +designed to use readers, but still want to minimize trips to the server +for slow-changing tables. + +This feature is transparent to the application, and is disabled by +default. + +* Configuration * + + * To enable table caching, add `*Note 'table cache = true': + connector-net-connection-options.' to the connection string. + + * Optionally, specify the `*Note 'Default Table Cache Age': + connector-net-connection-options.' connection string option, which + represents the number of seconds a table is cached before the + cached data is discarded. The default value is `60'. + + * You can turn caching on and off and set caching options at + runtime, on a per-command basis. + + +File: manual.info, Node: connector-net-programming-prepared, Next: connector-net-programming-stored, Prev: connector-net-programming-tablecaching, Up: connector-net-programming + +22.2.5.11 Using the Connector/Net with Prepared Statements +.......................................................... * Menu: @@ -184472,7 +185789,7 @@  File: manual.info, Node: connector-net-programming-prepared-preparing, Prev: connector-net-programming-prepared, Up: connector-net-programming-prepared -22.2.5.10 Preparing Statements in Connector/Net +22.2.5.12 Preparing Statements in Connector/Net ............................................... To prepare a statement, create a command object and set the @@ -184490,7 +185807,7 @@ parameters and call the execute method again, there is no need to set the `.CommandText' property or redefine the parameters. -Visual Basic Example +* Visual Basic Example * Dim conn As New MySqlConnection Dim cmd As New MySqlCommand @@ -184517,7 +185834,7 @@ MessageBox.Show("Error " & ex.Number & " has occurred: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try -C# Example +* C# Example * MySql.Data.MySqlClient.MySqlConnection conn; MySql.Data.MySqlClient.MySqlCommand cmd; @@ -184555,7 +185872,7 @@  File: manual.info, Node: connector-net-programming-stored, Next: connector-net-programming-blob, Prev: connector-net-programming-prepared, Up: connector-net-programming -22.2.5.11 Accessing Stored Procedures with Connector/Net +22.2.5.13 Accessing Stored Procedures with Connector/Net ........................................................ * Menu: @@ -184564,26 +185881,34 @@ *Introduction* -With the release of MySQL version 5 the MySQL server now supports -stored procedures with the SQL 2003 stored procedure syntax. +MySQL server version 5 and up supports stored procedures with the SQL +2003 stored procedure syntax. -A stored procedure is a set of SQL statements that can be stored in the -server. Once this has been done, clients do not need to keep reissuing -the individual statements but can refer to the stored procedure instead. +A stored procedure is a set of SQL statements that is stored in the +server. Clients make a single call to the stored procedure, passing +parameters that can influence the procedure logic and query conditions, +rather than issuing individual hardcoded SQL statements. Stored procedures can be particularly useful in situations such as the following: - * When multiple client applications are written in different - languages or work on different platforms, but need to perform the - same database operations. - - * When security is paramount. Banks, for example, use stored - procedures for all common operations. This provides a consistent - and secure environment, and procedures can ensure that each - operation is properly logged. In such a setup, applications and - users would not get any access to the database tables directly, - but can only execute specific stored procedures. + * Stored procedures can act as an API or abstraction layer, allowing + multiple client applications to perform the same database + operations. The applications can be written in different languages + and run on different platforms. The applications do not need to + hardcode table and column names, complicated queries, and so on. + When you extend and optimize the queries in a stored procedure, + all the applications that call the procedure automatically receive + the benefits. + + * When security is paramount, stored procedures keep applications + from directly manipulating tables, or even knowing details such as + table and column names. Banks, for example, use stored procedures + for all common operations. This provides a consistent and secure + environment, and procedures can ensure that each operation is + properly logged. In such a setup, applications and users would not + get any access to the database tables directly, but can only + execute specific stored procedures. Connector/Net supports the calling of stored procedures through the `MySqlCommand' object. Data can be passed in and out of a MySQL stored @@ -184609,7 +185934,7 @@  File: manual.info, Node: connector-net-programming-stored-using, Prev: connector-net-programming-stored, Up: connector-net-programming-stored -22.2.5.12 Using Stored Routines from Connector/Net +22.2.5.14 Using Stored Routines from Connector/Net .................................................. Stored procedures in MySQL can be created using a variety of tools. @@ -184618,9 +185943,9 @@ MySQL Workbench. Finally, stored procedures can be created using the `.ExecuteNonQuery' method of the `MySqlCommand' object. -It should be noted that, unlike the command-line and GUI clients, you -are not required to specify a special delimiter when creating stored -procedures in Connector/Net. +Unlike the command-line and GUI clients, you are not required to +specify a special delimiter when creating stored procedures in +Connector/Net. To call a stored procedure using Connector/Net, you create a `MySqlCommand' object and pass the stored procedure name as the @@ -184805,9 +186130,9 @@ End Module  -File: manual.info, Node: connector-net-programming-blob, Next: connector-net-programming-crystal, Prev: connector-net-programming-stored, Up: connector-net-programming +File: manual.info, Node: connector-net-programming-blob, Next: connector-net-interceptors, Prev: connector-net-programming-stored, Up: connector-net-programming -22.2.5.13 Handling BLOB Data With Connector/Net +22.2.5.15 Handling BLOB Data With Connector/Net ............................................... * Menu: @@ -184816,16 +186141,14 @@ * connector-net-programming-blob-writing:: Writing a File to the Database * connector-net-programming-blob-reading:: Reading a BLOB from the Database to a File on Disk -*Introduction* - One common use for MySQL is the storage of binary data in *Note `BLOB': -blob. columns. MySQL supports four different BLOB data types: *Note -`TINYBLOB': blob, *Note `BLOB': blob, *Note `MEDIUMBLOB': blob, and -*Note `LONGBLOB': blob. +blob. columns. MySQL supports four different BLOB data types: +`TINYBLOB', `BLOB', `MEDIUMBLOB', and `LONGBLOB', all described in +*Note blob:: and *Note storage-requirements::. -Data stored in a BLOB column can be accessed using Connector/Net and +Data stored in a `BLOB' column can be accessed using Connector/Net and manipulated using client-side code. There are no special requirements -for using Connector/Net with BLOB data. +for using Connector/Net with `BLOB' data. Simple code examples will be presented within this section, and a full sample application can be found in the `Samples' directory of the @@ -184834,17 +186157,17 @@  File: manual.info, Node: connector-net-programming-blob-serverprep, Next: connector-net-programming-blob-writing, Prev: connector-net-programming-blob, Up: connector-net-programming-blob -22.2.5.14 Preparing the MySQL Server +22.2.5.16 Preparing the MySQL Server .................................... -The first step is using MySQL with BLOB data is to configure the +The first step is using MySQL with `BLOB' data is to configure the server. Let's start by creating a table to be accessed. In my file -tables, I usually have four columns: an AUTO_INCREMENT column of -appropriate size (UNSIGNED SMALLINT) to serve as a primary key to -identify the file, a VARCHAR column that stores the file name, an -UNSIGNED MEDIUMINT column that stores the size of the file, and a -MEDIUMBLOB column that stores the file itself. For this example, I will -use the following table definition: +tables, I usually have four columns: an `AUTO_INCREMENT' column of +appropriate size (`UNSIGNED SMALLINT') to serve as a primary key to +identify the file, a `VARCHAR' column that stores the file name, an +`UNSIGNED MEDIUMINT' column that stores the size of the file, and a +`MEDIUMBLOB' column that stores the file itself. For this example, I +will use the following table definition: CREATE TABLE file( file_id SMALLINT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, @@ -184856,18 +186179,17 @@ `max_allowed_packet' system variable. This variable determines how large of a packet (that is, a single row) can be sent to the MySQL server. By default, the server only accepts a maximum size of 1MB from -the client application. If you do not intend to exceed 1MB, this -should be fine. If you do intend to exceed 1MB in your file transfers, -increase this number. +the client application. If you intend to exceed 1MB in your file +transfers, increase this number. The `max_allowed_packet' option can be modified using MySQL Administrator's Startup Variables screen. Adjust the Maximum permitted option in the Memory section of the Networking tab to an appropriate setting. After adjusting the value, click the `Apply Changes' button and restart the server using the `Service Control' screen of MySQL -Administrator. You can also adjust this value directly in the my.cnf -file (add a line that reads max_allowed_packet=xxM), or use the SET -max_allowed_packet=xxM; syntax from within MySQL. +Administrator. You can also adjust this value directly in the `my.cnf' +file (add a line that reads `max_allowed_packet=XXM'), or use the `SET +max_allowed_packet=XXM;' syntax from within MySQL. Try to be conservative when setting `max_allowed_packet', as transfers of BLOB data can take some time to complete. Try to set a value that @@ -184877,7 +186199,7 @@  File: manual.info, Node: connector-net-programming-blob-writing, Next: connector-net-programming-blob-reading, Prev: connector-net-programming-blob-serverprep, Up: connector-net-programming-blob -22.2.5.15 Writing a File to the Database +22.2.5.17 Writing a File to the Database ........................................ To write a file to a database, we need to convert the file to a byte @@ -184887,7 +186209,7 @@ The following code opens a file using a FileStream object, reads it into a byte array, and inserts it into the `file' table: -Visual Basic Example +* Visual Basic Example * Dim conn As New MySqlConnection Dim cmd As New MySqlCommand @@ -184932,7 +186254,7 @@ MessageBoxButtons.OK, MessageBoxIcon.Error) End Try -C# Example +* C# Example * MySql.Data.MySqlClient.MySqlConnection conn; MySql.Data.MySqlClient.MySqlCommand cmd; @@ -184982,16 +186304,16 @@ The `Read' method of the `FileStream' object is used to load the file into a byte array which is sized according to the `Length' property of -the FileStream object. +the `FileStream' object. After assigning the byte array as a parameter of the `MySqlCommand' -object, the `ExecuteNonQuery' method is called and the BLOB is inserted -into the `file' table. +object, the `ExecuteNonQuery' method is called and the `BLOB' is +inserted into the `file' table.  File: manual.info, Node: connector-net-programming-blob-reading, Prev: connector-net-programming-blob-writing, Up: connector-net-programming-blob -22.2.5.16 Reading a BLOB from the Database to a File on Disk +22.2.5.18 Reading a BLOB from the Database to a File on Disk ............................................................ Once a file is loaded into the `file' table, we can use the @@ -185000,7 +186322,7 @@ The following code retrieves a row from the `file' table, then loads the data into a `FileStream' object to be written to disk: -Visual Basic Example +* Visual Basic Example * Dim conn As New MySqlConnection Dim cmd As New MySqlCommand @@ -185046,7 +186368,7 @@ MessageBox.Show("There was an error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try -C# Example +* C# Example * MySql.Data.MySqlClient.MySqlConnection conn; MySql.Data.MySqlClient.MySqlCommand cmd; @@ -185082,10 +186404,10 @@ FileSize = myData.GetUInt32(myData.GetOrdinal("file_size")); rawData = new byte[FileSize]; - myData.GetBytes(myData.GetOrdinal("file"), 0, rawData, 0, FileSize); + myData.GetBytes(myData.GetOrdinal("file"), 0, rawData, 0, (int)FileSize); fs = new FileStream(@"C:\newfile.png", FileMode.OpenOrCreate, FileAccess.Write); - fs.Write(rawData, 0, FileSize); + fs.Write(rawData, 0, (int)FileSize); fs.Close(); MessageBox.Show("File successfully written to disk!", @@ -185101,9 +186423,9 @@ } After connecting, the contents of the `file' table are loaded into a -`MySqlDataReader' object. The `GetBytes' method of the MySqlDataReader -is used to load the BLOB into a byte array, which is then written to -disk using a FileStream object. +`MySqlDataReader' object. The `GetBytes' method of the +`MySqlDataReader' is used to load the `BLOB' into a byte array, which +is then written to disk using a `FileStream' object. The `GetOrdinal' method of the MySqlDataReader can be used to determine the integer index of a named column. Use of the GetOrdinal method @@ -185111,359 +186433,133 @@ query is changed.  -File: manual.info, Node: connector-net-programming-crystal, Next: connector-net-programming-datetime, Prev: connector-net-programming-blob, Up: connector-net-programming - -22.2.5.17 Using Connector/Net with Crystal Reports -.................................................. - -* Menu: - -* connector-net-programming-crystal-source:: Creating a Data Source -* connector-net-programming-crystal-creating:: Creating the Report -* connector-net-programming-crystal-displaying:: Displaying the Report - -*Introduction* - -Crystal Reports is a common tool used by Windows application developers -to perform reporting and document generation. In this section we will -show how to use Crystal Reports XI with MySQL and Connector/Net. - - -File: manual.info, Node: connector-net-programming-crystal-source, Next: connector-net-programming-crystal-creating, Prev: connector-net-programming-crystal, Up: connector-net-programming-crystal - -22.2.5.18 Creating a Data Source -................................ - -When creating a report in Crystal Reports there are two options for -accessing the MySQL data while designing your report. - -The first option is to use Connector/ODBC as an ADO data source when -designing your report. You will be able to browse your database and -choose tables and fields using drag and drop to build your report. The -disadvantage of this approach is that additional work must be performed -within your application to produce a data set that matches the one -expected by your report. - -The second option is to create a data set in VB.NET and save it as XML. -This XML file can then be used to design a report. This works quite -well when displaying the report in your application, but is less -versatile at design time because you must choose all relevant columns -when creating the data set. If you forget a column you must re-create -the data set before the column can be added to the report. - -The following code can be used to create a data set from a query and -write it to disk: - -Visual Basic Example - - Dim myData As New DataSet - Dim conn As New MySqlConnection - Dim cmd As New MySqlCommand - Dim myAdapter As New MySqlDataAdapter - - conn.ConnectionString = "server=127.0.0.1;" _ - & "uid=root;" _ - & "pwd=12345;" _ - & "database=world" - - Try - conn.Open() - cmd.CommandText = "SELECT city.name AS cityName, city.population AS CityPopulation, " _ - & "country.name, country.population, country.continent " _ - & "FROM country, city ORDER BY country.continent, country.name" - cmd.Connection = conn - - myAdapter.SelectCommand = cmd - myAdapter.Fill(myData) - - myData.WriteXml("C:\dataset.xml", XmlWriteMode.WriteSchema) - Catch ex As Exception - MessageBox.Show(ex.Message, "Report could not be created", MessageBoxButtons.OK, MessageBoxIcon.Error) - End Try - -C# Example - - DataSet myData = new DataSet(); - MySql.Data.MySqlClient.MySqlConnection conn; - MySql.Data.MySqlClient.MySqlCommand cmd; - MySql.Data.MySqlClient.MySqlDataAdapter myAdapter; - - conn = new MySql.Data.MySqlClient.MySqlConnection(); - cmd = new MySql.Data.MySqlClient.MySqlCommand(); - myAdapter = new MySql.Data.MySqlClient.MySqlDataAdapter(); - - conn.ConnectionString = "server=127.0.0.1;uid=root;" + - "pwd=12345;database=test;"; - - try - { - cmd.CommandText = "SELECT city.name AS cityName, city.population AS CityPopulation, " + - "country.name, country.population, country.continent " + - "FROM country, city ORDER BY country.continent, country.name"; - cmd.Connection = conn; - - myAdapter.SelectCommand = cmd; - myAdapter.Fill(myData); - - myData.WriteXml(@"C:\dataset.xml", XmlWriteMode.WriteSchema); - } - catch (MySql.Data.MySqlClient.MySqlException ex) - { - MessageBox.Show(ex.Message, "Report could not be created", - MessageBoxButtons.OK, MessageBoxIcon.Error); - } - -The resulting XML file can be used as an ADO.NET XML datasource when -designing your report. - -If you choose to design your reports using Connector/ODBC, it can be -downloaded from dev.mysql.com -(http://dev.mysql.com/downloads/connector/odbc/3.51.html). - - -File: manual.info, Node: connector-net-programming-crystal-creating, Next: connector-net-programming-crystal-displaying, Prev: connector-net-programming-crystal-source, Up: connector-net-programming-crystal - -22.2.5.19 Creating the Report -............................. - -For most purposes the Standard Report wizard should help with the -initial creation of a report. To start the wizard, open Crystal Reports -and choose the New > Standard Report option from the File menu. - -The wizard will first prompt you for a data source. If you are using -Connector/ODBC as your data source, use the OLEDB provider for ODBC -option from the OLE DB (ADO) tree instead of the ODBC (RDO) tree when -choosing a data source. If using a saved data set, choose the ADO.NET -(XML) option and browse to your saved data set. - -The remainder of the report creation process is done automatically by -the wizard. - -After the report is created, choose the Report Options... entry of the -File menu. Un-check the Save Data With Report option. This prevents -saved data from interfering with the loading of data within our -application. - - -File: manual.info, Node: connector-net-programming-crystal-displaying, Prev: connector-net-programming-crystal-creating, Up: connector-net-programming-crystal - -22.2.5.20 Displaying the Report -............................... - -To display a report we first populate a data set with the data needed -for the report, then load the report and bind it to the data set. -Finally we pass the report to the crViewer control for display to the -user. - -The following references are needed in a project that displays a report: - - * CrystalDecisions.CrystalReports.Engine - - * CrystalDecisions.ReportSource - - * CrystalDecisions.Shared - - * CrystalDecisions.Windows.Forms - -The following code assumes that you created your report using a data -set saved using the code shown in *Note -connector-net-programming-crystal-source::, and have a crViewer control -on your form named `myViewer'. - -Visual Basic Example - - Imports CrystalDecisions.CrystalReports.Engine - Imports System.Data - Imports MySql.Data.MySqlClient - - Dim myReport As New ReportDocument - Dim myData As New DataSet - Dim conn As New MySqlConnection - Dim cmd As New MySqlCommand - Dim myAdapter As New MySqlDataAdapter - - conn.ConnectionString = _ - "server=127.0.0.1;" _ - & "uid=root;" _ - & "pwd=12345;" _ - & "database=test" - - Try - conn.Open() - - cmd.CommandText = "SELECT city.name AS cityName, city.population AS CityPopulation, " _ - & "country.name, country.population, country.continent " _ - & "FROM country, city ORDER BY country.continent, country.name" - cmd.Connection = conn - - myAdapter.SelectCommand = cmd - myAdapter.Fill(myData) - - myReport.Load(".\world_report.rpt") - myReport.SetDataSource(myData) - myViewer.ReportSource = myReport - Catch ex As Exception - MessageBox.Show(ex.Message, "Report could not be created", MessageBoxButtons.OK, MessageBoxIcon.Error) - End Try - -C# Example - - using CrystalDecisions.CrystalReports.Engine; - using System.Data; - using MySql.Data.MySqlClient; - - ReportDocument myReport = new ReportDocument(); - DataSet myData = new DataSet(); - MySql.Data.MySqlClient.MySqlConnection conn; - MySql.Data.MySqlClient.MySqlCommand cmd; - MySql.Data.MySqlClient.MySqlDataAdapter myAdapter; - - conn = new MySql.Data.MySqlClient.MySqlConnection(); - cmd = new MySql.Data.MySqlClient.MySqlCommand(); - myAdapter = new MySql.Data.MySqlClient.MySqlDataAdapter(); - - conn.ConnectionString = "server=127.0.0.1;uid=root;" + - "pwd=12345;database=test;"; - - try - { - cmd.CommandText = "SELECT city.name AS cityName, city.population AS CityPopulation, " + - "country.name, country.population, country.continent " + - "FROM country, city ORDER BY country.continent, country.name"; - cmd.Connection = conn; - - myAdapter.SelectCommand = cmd; - myAdapter.Fill(myData); - - myReport.Load(@".\world_report.rpt"); - myReport.SetDataSource(myData); - myViewer.ReportSource = myReport; - } - catch (MySql.Data.MySqlClient.MySqlException ex) - { - MessageBox.Show(ex.Message, "Report could not be created", - MessageBoxButtons.OK, MessageBoxIcon.Error); - } - -A new data set it generated using the same query used to generate the -previously saved data set. Once the data set is filled, a -ReportDocument is used to load the report file and bind it to the data -set. The ReportDocument is the passed as the ReportSource of the -crViewer. - -This same approach is taken when a report is created from a single -table using Connector/ODBC. The data set replaces the table used in the -report and the report is displayed properly. - -When a report is created from multiple tables using Connector/ODBC, a -data set with multiple tables must be created in our application. This -enables each table in the report data source to be replaced with a -report in the data set. - -We populate a data set with multiple tables by providing multiple *Note -`SELECT': select. statements in our MySqlCommand object. These *Note -`SELECT': select. statements are based on the SQL query shown in -Crystal Reports in the Database menu's Show SQL Query option. Assume the -following query: - - SELECT `country`.`Name`, `country`.`Continent`, `country`.`Population`, `city`.`Name`, `city`.`Population` - FROM `world`.`country` `country` LEFT OUTER JOIN `world`.`city` `city` ON `country`.`Code`=`city`.`CountryCode` - ORDER BY `country`.`Continent`, `country`.`Name`, `city`.`Name` - -This query is converted to two *Note `SELECT': select. queries and -displayed with the following code: - -Visual Basic Example - - Imports CrystalDecisions.CrystalReports.Engine - Imports System.Data - Imports MySql.Data.MySqlClient - - Dim myReport As New ReportDocument - Dim myData As New DataSet - Dim conn As New MySqlConnection - Dim cmd As New MySqlCommand - Dim myAdapter As New MySqlDataAdapter - - conn.ConnectionString = "server=127.0.0.1;" _ - & "uid=root;" _ - & "pwd=12345;" _ - & "database=world" - - Try - conn.Open() - cmd.CommandText = "SELECT name, population, countrycode FROM city ORDER BY countrycode, name; " _ - & "SELECT name, population, code, continent FROM country ORDER BY continent, name" - cmd.Connection = conn - - myAdapter.SelectCommand = cmd - myAdapter.Fill(myData) - - myReport.Load(".\world_report.rpt") - myReport.Database.Tables(0).SetDataSource(myData.Tables(0)) - myReport.Database.Tables(1).SetDataSource(myData.Tables(1)) - myViewer.ReportSource = myReport - Catch ex As Exception - MessageBox.Show(ex.Message, "Report could not be created", MessageBoxButtons.OK, MessageBoxIcon.Error) - End Try - -C# Example - - using CrystalDecisions.CrystalReports.Engine; - using System.Data; - using MySql.Data.MySqlClient; - - ReportDocument myReport = new ReportDocument(); - DataSet myData = new DataSet(); - MySql.Data.MySqlClient.MySqlConnection conn; - MySql.Data.MySqlClient.MySqlCommand cmd; - MySql.Data.MySqlClient.MySqlDataAdapter myAdapter; - - conn = new MySql.Data.MySqlClient.MySqlConnection(); - cmd = new MySql.Data.MySqlClient.MySqlCommand(); - myAdapter = new MySql.Data.MySqlClient.MySqlDataAdapter(); - - conn.ConnectionString = "server=127.0.0.1;uid=root;" + - "pwd=12345;database=test;"; - - try - { - cmd.CommandText = "SELECT name, population, countrycode FROM city ORDER " + - "BY countrycode, name; *Note `SELECT': select. name, population, code, continent FROM " + - "country ORDER BY continent, name"; - cmd.Connection = conn; - - myAdapter.SelectCommand = cmd; - myAdapter.Fill(myData); +File: manual.info, Node: connector-net-interceptors, Next: connector-net-programming-datetime, Prev: connector-net-programming-blob, Up: connector-net-programming - myReport.Load(@".\world_report.rpt"); - myReport.Database.Tables(0).SetDataSource(myData.Tables(0)); - myReport.Database.Tables(1).SetDataSource(myData.Tables(1)); - myViewer.ReportSource = myReport; - } - catch (MySql.Data.MySqlClient.MySqlException ex) - { - MessageBox.Show(ex.Message, "Report could not be created", - MessageBoxButtons.OK, MessageBoxIcon.Error); - } +22.2.5.19 Using the Connector/Net Interceptor Classes +..................................................... -It is important to order the *Note `SELECT': select. queries in -alphabetic order, as this is the order the report will expect its source -tables to be in. One SetDataSource statement is needed for each table -in the report. +An interceptor is a software design pattern that provides a transparent +way to extend or modify some aspect of a program, similar to a user +exit. No recompiling is required. With Connector/Net, the interceptors +are enabled and disabled by updating the connection string to refer to +different sets of interceptor classes that you instantiate. + +Connector/Net includes the following interceptor classes: + + * The *Note `BaseCommandInterceptor': + connector-net-ref-mysqlclient-basecommandinterceptor. lets you + perform additional operations when a program issues a SQL command. + For example, you can examine the SQL statement for logging or + debugging purposes, substitute your own result set to implement a + caching mechanism, and so on. Depending on the use case, your code + can supplement the SQL command or replace it entirely. + + The `BaseCommandInterceptor' class has these methods that you can + override: + + public virtual bool ExecuteScalar(string sql, ref object returnValue); + public virtual bool ExecuteNonQuery(string sql, ref int returnValue); + public virtual bool ExecuteReader(string sql, CommandBehavior behavior, ref MySqlDataReader returnValue); + public virtual void Init(MySqlConnection connection); + + If your interceptor overrides one of the `Execute...' methods, set + the `returnValue' output parameter and return `true' if you + handled the event, or `false' if you did not handle the event. The + SQL command is processed normally only when all command + interceptors return `false'. + + The connection passed to the `Init' method is the connection that + is attached to this interceptor. + + * The *Note `BaseExceptionInterceptor': + connector-net-ref-mysqlclient-baseexceptioninterceptor. lets you + perform additional operations when a program encounters a SQL + exception. The exception interception mechanism is modeled after + the Connector/J model. You can code an interceptor class and + connect it to an existing program without recompiling, and + intercept exceptions when they are created. You can then change + the exception type and optionally attach information to it. This + capability lets you turn on and off logging and debugging code + without hardcoding anything in the application. This technique + applies to exceptions raised at the SQL level, not to lower-level + system or I/O errors. + + You develop an exception interceptor first by creating a subclass + of the `BaseExceptionInterceptor' class. You must override the + `InterceptException()' method. You can also override the `Init()' + method to do some one-time initialization. + + Each exception interceptor has 2 methods: + + public abstract Exception InterceptException(Exception exception, + MySqlConnection connection); + public virtual void Init(MySqlConnection connection); + + The connection passed to `Init()' is the connection that is + attached to this interceptor. + + Each interceptor is required to override `InterceptException' and + return an exception. It can return the exception it is given, or + it can wrap it in a new exception. We currently do not offer the + ability to suppress the exception. + +Here are examples of using the FQN (fully qualified name) on the +connection string: + + MySqlConnection c1 = new MySqlConnection(@"server=localhost;pooling=false; + commandinterceptors=CommandApp.MyCommandInterceptor,CommandApp"); + + MySqlConnection c2 = new MySqlConnection(@"server=localhost;pooling=false; + exceptioninterceptors=ExceptionStackTraceTest.MyExceptionInterceptor,ExceptionStackTraceTest"); + +In this example, the command interceptor is called +`CommandApp.MyCommandInterceptor' and exists in the `CommandApp' +assembly. The exception interceptor is called +`ExceptionStackTraceTest.MyExceptionInterceptor' and exists in the +`ExceptionStackTraceTest' assembly. + +To shorten the connection string, you can register your exception +interceptors in your `app.config' or `web.config' file like this: + + + +
+ + + + + + + + +
+ + + + + + + +Once you have done that, your connection strings can look like these: + + MySqlConnection c1 = new MySqlConnection(@"server=localhost;pooling=false; + commandinterceptors=myC"); -This approach can cause performance problems because Crystal Reports -must bind the tables together on the client-side, which will be slower -than using a pre-saved data set. + MySqlConnection c2 = new MySqlConnection(@"server=localhost;pooling=false; + exceptioninterceptors=myE");  -File: manual.info, Node: connector-net-programming-datetime, Next: connector-net-programming-asp-provider, Prev: connector-net-programming-crystal, Up: connector-net-programming +File: manual.info, Node: connector-net-programming-datetime, Next: connector-net-programming-bulk-loader, Prev: connector-net-interceptors, Up: connector-net-programming -22.2.5.21 Handling Date and Time Information in Connector/Net +22.2.5.20 Handling Date and Time Information in Connector/Net ............................................................. * Menu: +* connector-net-programming-datetime-fractional:: Fractional Seconds * connector-net-programming-datetime-problems:: Problems when Using Invalid Dates * connector-net-programming-datetime-restricting:: Restricting Invalid Dates * connector-net-programming-datetime-invalid:: Handling Invalid Dates @@ -185476,11 +186572,42 @@ .NET data type, such as '`0000-00-00 00:00:00''. These differences can cause problems if not properly handled. -In this section we will demonstrate how to properly handle date and -time information when using Connector/Net. +The following sections demonstrate how to properly handle date and time +information when using Connector/Net.  -File: manual.info, Node: connector-net-programming-datetime-problems, Next: connector-net-programming-datetime-restricting, Prev: connector-net-programming-datetime, Up: connector-net-programming-datetime +File: manual.info, Node: connector-net-programming-datetime-fractional, Next: connector-net-programming-datetime-problems, Prev: connector-net-programming-datetime, Up: connector-net-programming-datetime + +22.2.5.21 Fractional Seconds +............................ + +Connector/Net 6.5 and higher support the fractional seconds feature +introduced in MySQL 5.6.4. Fractional seconds could always be specified +in a date literal or passed back and forth as parameters and return +values, but the fractional part was always stripped off when stored in +a table column. In MySQL 5.6.4 and higher, the fractional part is now +preserved in data stored and retrieved through SQL. For fractional +second handling in MySQL 5.6.4 and higher, see Fractional Seconds in +Time Values +(http://dev.mysql.com/doc/refman/5.6/en/fractional-seconds.html). For +the behavior of fractional seconds prior to MySQL 5.6.4, see *Note +fractional-seconds::. + +To use the more precise date and time types, specify a value from 1 to +6 when creating the table column, for example `TIME(3)' or +`DATETIME(6)', representing the number of digits of precision after the +decimal point. Specifying a precision of 0 leaves the fractional part +out entirely. In your C# or Visual Basic code, refer to the +`Millisecond' member to retrieve the fractional second value from the +`MySqlDateTime' object returned by the `GetMySqlDateTime' function. +The `DateTime' object returned by the `GetDateTime' function also +contains the fractional value, but only the first 3 digits. + +For related code examples, see the following blog post: +`https://blogs.oracle.com/MySqlOnWindows/entry/milliseconds_value_support_on_datetime' + + +File: manual.info, Node: connector-net-programming-datetime-problems, Next: connector-net-programming-datetime-restricting, Prev: connector-net-programming-datetime-fractional, Up: connector-net-programming-datetime 22.2.5.22 Problems when Using Invalid Dates ........................................... @@ -185566,7 +186693,7 @@ When using a `MySqlDataReader', use the `.IsDBNull' method to check whether a value is `NULL' before making the assignment: -Visual Basic Example +* Visual Basic Example * If Not myReader.IsDBNull(myReader.GetOrdinal("mytime")) Then myTime = myReader.GetDateTime(myReader.GetOrdinal("mytime")) @@ -185574,7 +186701,7 @@ myTime = DateTime.MinValue End If -C# Example +* C# Example * if (! myReader.IsDBNull(myReader.GetOrdinal("mytime"))) myTime = myReader.GetDateTime(myReader.GetOrdinal("mytime")); @@ -185585,295 +186712,146 @@ without special handling.  -File: manual.info, Node: connector-net-programming-asp-provider, Next: connector-net-programming-binary-issues, Prev: connector-net-programming-datetime, Up: connector-net-programming +File: manual.info, Node: connector-net-programming-bulk-loader, Next: connector-net-programming-tracing, Prev: connector-net-programming-datetime, Up: connector-net-programming -22.2.5.26 ASP.NET Provider Model -................................ +22.2.5.26 Using the `MySqlBulkLoader' Class +........................................... -MySQL Connector/Net provides support for the ASP.NET 2.0 provider -model. This model enables application developers to focus on the -business logic of their application instead of having to recreate such -boilerplate items as membership and roles support. +MySQL Connector/Net features a bulk loader class that wraps the MySQL +statement *Note `LOAD DATA INFILE': load-data. This gives MySQL +Connector/Net the ability to load a data file from a local or remote +host to the server. The class concerned is `MySqlBulkLoader'. This +class has various methods, the main one being `load' to cause the +specified file to be loaded to the server. Various parameters can be +set to control how the data file is processed. This is achieved +through setting various properties of the class. For example, the +field separator used, such as comma or tab, can be specified, along +with the record terminator, such as newline. -MySQL Connector/Net supplies the following providers: +The following code shows a simple example of using the +`MySqlBulkLoader' class. First an empty table needs to be created, in +this case in the `test' database: - * Membership Provider + CREATE TABLE Career ( + Name VARCHAR(100) NOT NULL, + Age INTEGER, + Profession VARCHAR(200) + ); - * Role Provider +A simple tab-delimited data file is also created (it could use any +other field delimiter such as comma): - * Profile Provider + Table Career in Test Database + Name Age Profession - * Session State Provider (MySQL Connector/Net 6.1 and later) + Tony 47 Technical Writer + Ana 43 Nurse + Fred 21 IT Specialist + Simon 45 Hairy Biker -The following tables show the supported providers, their default -provider and the corresponding MySQL provider. +Note that with this test file the first three lines will need to be +ignored, as they do not contain table data. This can be achieved using +the `NumberOfLinesToSkip' property. This file can then be loaded and +used to populate the `Career' table in the `test' database: -*Membership Provider* + using System; + using System.Text; + using MySql.Data; + using MySql.Data.MySqlClient; -Default Provider MySQL Provider -System.Web.Security.SqlMembershipProviderMySql.Web.Security.MySQLMembershipProvider + namespace ConsoleApplication1 + { + class Program + { + static void Main(string[] args) + { -*Role Provider* + string connStr = "server=localhost;user=root;database=test;port=3306;password=******;"; + MySqlConnection conn = new MySqlConnection(connStr); -Default Provider MySQL Provider -System.Web.Security.SqlRoleProvider MySql.Web.Security.MySQLRoleProvider + MySqlBulkLoader bl = new MySqlBulkLoader(conn); + bl.TableName = "Career"; + bl.FieldTerminator = "\t"; + bl.LineTerminator = "\n"; + bl.FileName = "c:/career_data.txt"; + bl.NumberOfLinesToSkip = 3; -*Profile Provider* + try + { + Console.WriteLine("Connecting to MySQL..."); + conn.Open(); -Default Provider MySQL Provider -System.Web.Profile.SqlProfileProviderMySql.Web.Profile.MySQLProfileProvider + // Upload data from file + int count = bl.Load(); + Console.WriteLine(count + " lines uploaded."); -*SessionState Provider* + string sql = "SELECT Name, Age, Profession FROM Career"; + MySqlCommand cmd = new MySqlCommand(sql, conn); + MySqlDataReader rdr = cmd.ExecuteReader(); -Default Provider MySQL Provider -System.Web.SessionState.InProcSessionStateStoreMySql.Web.SessionState.MySqlSessionStateStore + while (rdr.Read()) + { + Console.WriteLine(rdr[0] + " -- " + rdr[1] + " -- " + rdr[2]); + } -*Note*: + rdr.Close(); -The MySQL Session State provider uses slightly different capitalization -on the class name compared to the other MySQL providers. + conn.Close(); + } + catch (Exception ex) + { + Console.WriteLine(ex.ToString()); + } + Console.WriteLine("Done."); + } + } + } -*Installing The Providers* +Further information on `LOAD DATA INFILE' can be found in *Note +load-data::. Further information on `MySqlBulkLoader' can be found in +the reference documentation that was included with your connector. -The installation of Connector/Net 5.1 or later will install the -providers and register them in your machine's .NET configuration file, -`machine.config'. The additional entries created will result in the -`system.web' section appearing similar to the following code: + +File: manual.info, Node: connector-net-programming-tracing, Next: connector-net-programming-binary-issues, Prev: connector-net-programming-bulk-loader, Up: connector-net-programming - - - - - - - - - - - - - - - - - - - - - - - +22.2.5.27 Using the MySQL Connector/Net Trace Source Object +........................................................... -Each provider type can have multiple provider implementations. The -default provider can also be set here using the `defaultProvider' -attribute, but usually this is set in the `web.config' file either -manually or by using the ASP.NET configuration tool. +* Menu: -At time of writing, the `MySqlSessionStateStore' is not added to -`machine.config' at install time, and so add the following: +* connector-net-programming-tracing-mysql:: Viewing MySQL Trace Information +* connector-net-programming-tracing-mysql-custom-listeners:: Building Custom Listeners - - - - - +MySQL Connector/Net 6.2 introduced support for .NET 2.0 compatible +tracing, using `TraceSource' objects. -The SessionState Provider uses the `customProvider' attribute, rather -than `defaultProvider', to set the provider as the default. A typical -`web.config' file might contain: +The .NET 2.0 tracing architecture consists of four main parts: - - - - - - - ... + * _Source_ - This is the originator of the trace information. The + source is used to send trace messages. The name of the source + provided by MySQL Connector/Net is `mysql'. -This sets the MySQL Providers as the defaults to be used in this web -application. + * _Switch_ - This defines the level of trace information to emit. + Typically, this is specified in the `app.config' file, so that it + is not necessary to recompile an application to change the trace + level. -The providers are implemented in the file `mysql.web.dll' and this file -can be found in your MySQL Connector/Net installation folder. There is -no need to run any type of SQL script to set up the database schema, as -the providers create and maintain the proper schema automatically. + * _Listener_ - Trace listeners define where the trace information + will be written to. Supported listeners include, for example, the + Visual Studio Output window, the Windows Event Log, and the + console. -* Using The Providers* + * _Filter_ - Filters can be attached to listeners. Filters determine + the level of trace information that will be written. While a + switch defines the level of information that will be written to + all listeners, a filter can be applied on a per-listener basis, + giving finer grained control of trace information. -The easiest way to start using the providers is to use the ASP.NET -configuration tool that is available on the Solution Explorer toolbar -when you have a website project loaded. +To use tracing a `TraceSource' object first needs to be created. To +create a `TraceSource' object in MySQL Connector/Net you would use code +similar to the following: -In the web pages that open, you can select the MySQL membership and -roles providers by picking a custom provider for each area. - -When the provider is installed, it creates a dummy connection string -named `LocalMySqlServer'. Although this has to be done so that the -provider will work in the ASP.NET configuration tool, you override this -connection string in your `web.config' file. You do this by first -removing the dummy connection string and then adding in the proper one, -as shown in the following example: - - - - - - -Note the database to connect to must be specified. - -Rather than manually editing configuration files, consider using the -MySQL Website Configuration tool to configure your desired provider -setup. From MySQL Connector/Net 6.1.1 onwards, all providers can be -selected and configured from this wizard. The tool modifies your -`website.config' file to the desired configuration. A tutorial on doing -this is available in the following section *Note -connector-net-website-config::. - -A tutorial demonstrating how to use the Membership and Role Providers -can be found in the following section *Note -connector-net-tutorials-asp-roles::. - -* Deployment* - -To use the providers on a production server, distribute the -`MySql.Data' and the `MySql.Web' assemblies, and either register them -in the remote systems Global Assembly Cache or keep them in your -application's `bin/' directory. - - -File: manual.info, Node: connector-net-programming-binary-issues, Next: connector-net-using-character-sets, Prev: connector-net-programming-asp-provider, Up: connector-net-programming - -22.2.5.27 Binary/Nonbinary Issues -................................. - -There are certain situations where MySQL will return incorrect metadata -about one or more columns. More specifically, the server will sometimes -report that a column is binary when it is not and vice versa. In these -situations, it becomes practically impossible for the connector to be -able to correctly identify the correct metadat. - -Some examples of situations that may return incorrect metadata are: - - * Execution of *Note `SHOW PROCESSLIST': show-processlist. Some of - the columns will be returned as binary even though they only hold - string data. - - * When a temp table is used to process a resultset, some columns may - be returned with incorrect binary flags. - - * Some server functions such `DATE_FORMAT' will incorrectly return - the column as binary. - -With the availability of `BINARY' and `VARBINARY' data types, it is -important that we respect the metadata returned by the sever. However, -we are aware that some existing applications may break with this -change, so we are creating a connection string option to enable or -disable it. By default, Connector/Net 5.1 respects the binary flags -returned by the server. You might need to make small changes to your -application to accommodate this change. - -In the event that the changes required to your application would be too -large, you can add 'respect binary flags=false' to your connection -string. This causes the connector to use the prior behavior. In a -nutshell, that behavior was that any column that is marked as string, -regardless of binary flags, will be returned as string. Only columns -that are specifically marked as a `BLOB' will be returned as `BLOB'. - - -File: manual.info, Node: connector-net-using-character-sets, Next: connector-net-medium-trust, Prev: connector-net-programming-binary-issues, Up: connector-net-programming - -22.2.5.28 Character Sets -........................ - -*Treating Binary Blobs As UTF8* - -MySQL doesn't currently support 4 byte UTF8 sequences. This makes it -difficult to represent some multi-byte languages such as Japanese. To -try and alleviate this, Connector/Net now supports a mode where binary -blobs can be treated as strings. - -To do this, you set the 'Treat Blobs As UTF8' connection string keyword -to yes. This is all that needs to be done to enable conversion of all -binary blobs to UTF8 strings. To convert only some of your blob -columns, you can make use of the 'BlobAsUTF8IncludePattern' and -'BlobAsUTF8ExcludePattern' keywords. Set these to a regular expression -pattern that matches the column names to include or exclude -respectively. - -When the regular expression patterns both match a single column, the -include pattern is applied before the exclude pattern. The result, in -this case, would be that the column would be excluded. Also, be aware -that this mode does not apply to columns of type `BINARY' or -`VARBINARY' and also do not apply to nonbinary `BLOB' columns. - -Currently, this mode only applies to reading strings out of MySQL. To -insert 4-byte UTF8 strings into blob columns, use the .NET -`Encoding.GetBytes' function to convert your string to a series of -bytes. You can then set this byte array as a parameter for a `BLOB' -column. - - -File: manual.info, Node: connector-net-medium-trust, Next: connector-net-programming-tracing, Prev: connector-net-using-character-sets, Up: connector-net-programming - -22.2.5.29 Working with medium trust -................................... - -.NET applications operate under a given trust level. Normal desktop -applications operate under full trust while web applications that are -hosted in shared environments are normally run under the medium trust -level. Some hosting providers host shared applications in their own app -pools and allow the application to run under full trust, but this seems -to be the exception rather than the rule. - -Connector/Net versions prior to 5.0.8 and 5.1.3 were not compatible -with medium trust hosting. Starting with these versions, Connector/Net -can be used under medium trust hosting that has been modified to allow -the use of sockets for communication. By default, medium trust does not -include `SocketPermission'. Connector/Net uses sockets to talk with the -MySQL server so it is required that a new trust level be created that -is an exact clone of medium trust but that has `SocketPermission' added. - - -File: manual.info, Node: connector-net-programming-tracing, Next: connector-net-programming-bulk-loader, Prev: connector-net-medium-trust, Up: connector-net-programming - -22.2.5.30 Using the MySQL Connector/Net Trace Source Object -........................................................... - -* Menu: - -* connector-net-programming-tracing-mysql:: Viewing MySQL Trace Information -* connector-net-programming-tracing-mysql-custom-listeners:: Building Custom Listeners - -MySQL Connector/Net 6.2 introduced support for .NET 2.0 compatible -tracing, using `TraceSource' objects. - -The .NET 2.0 tracing architecture consists of four main parts: - - * _Source_ - This is the originator of the trace information. The - source is used to send trace messages. The name of the source - provided by MySQL Connector/Net is `mysql'. - - * _Switch_ - This defines the level of trace information to emit. - Typically, this is specified in the `app.config' file, so that it - is not necessary to recompile an application to change the trace - level. - - * _Listener_ - Trace listeners define where the trace information - will be written to. Supported listeners include, for example, the - Visual Studio Output window, the Windows Event Log, and the - console. - - * _Filter_ - Filters can be attached to listeners. Filters determine - the level of trace information that will be written. While a - switch defines the level of information that will be written to - all listeners, a filter can be applied on a per-listener basis, - giving finer grained control of trace information. - -To use tracing a `TraceSource' object first needs to be created. To -create a `TraceSource' object in MySQL Connector/Net you would use code -similar to the following: - - TraceSource ts = new TraceSource("mysql"); + TraceSource ts = new TraceSource("mysql"); To enable trace messages, configure a trace switch. There are three main switch classes, `BooleanSwitch', `SourceSwitch', and @@ -185911,20 +186889,19 @@ ... -By default trace information is written to the Output window of -Microsoft Visual Studio. However, there are a wide range of listeners -than can be attached to the trace source, so that trace messages can be -written out to various destinations. It is also possible to create -custom listeners to allow trace messages to be written to other -destinations as mobile devices and web services. A commonly used -example of a listener is `ConsoleTraceListener', which writes trace -messages to the console. +By default, trace information is written to the Output window of +Microsoft Visual Studio. There are a wide range of listeners that can +be attached to the trace source, so that trace messages can be written +out to various destinations. You can also create custom listeners to +allow trace messages to be written to other destinations as mobile +devices and web services. A commonly used example of a listener is +`ConsoleTraceListener', which writes trace messages to the console. -To add a listener at run time you can use code such as the following: +To add a listener at run time, use code such as the following: ts.Listeners.Add(new ConsoleTraceListener()); -You can then call methods on trace source object to generate trace +Then, call methods on the trace source object to generate trace information. For example, the `TraceInformation()', `TraceEvent()', or `TraceData()' methods can be used. @@ -185938,11 +186915,11 @@ message. To ensure than these generated trace messages gets flushed from the -trace source buffers to listeners, you need to invoke the `Flush()' -method. When you are finished using a trace source, you should call the -`Close()' method. The `Close()' method first calls `Flush()', to ensure -any remaining data is written out. It then frees up resources, and -closes the listeners associated with the trace source. +trace source buffers to listeners, invoke the `Flush()' method. When +you are finished using a trace source, call the `Close()' method. The +`Close()' method first calls `Flush()', to ensure any remaining data is +written out. It then frees up resources, and closes the listeners +associated with the trace source. ts.TraceInformation("Informational message"); ts.TraceEvent(TraceEventType.Error, 3, "Optional error message"); @@ -185954,7 +186931,7 @@  File: manual.info, Node: connector-net-programming-tracing-mysql, Next: connector-net-programming-tracing-mysql-custom-listeners, Prev: connector-net-programming-tracing, Up: connector-net-programming-tracing -22.2.5.31 Viewing MySQL Trace Information +22.2.5.28 Viewing MySQL Trace Information ......................................... This section describes how to set up your application to view MySQL @@ -186121,13 +187098,13 @@ `MySqlTrace.EnableQueryAnalyzer(string host, int postInterval)' and `MySqlTrace.DisableQueryAnalyzer()'. The parameter `host' is the URL of the MySQL Enterprise Monitor server to monitor. The parameter -`postInterval' is how often the data should be periodically posted to -MySQL Enterprise Monitor, in seconds. +`postInterval' is how often to post the data to MySQL Enterprise +Monitor, in seconds.  File: manual.info, Node: connector-net-programming-tracing-mysql-custom-listeners, Prev: connector-net-programming-tracing-mysql, Up: connector-net-programming-tracing -22.2.5.32 Building Custom Listeners +22.2.5.29 Building Custom Listeners ................................... To build custom listeners that work with the MySQL Connector/Net Trace @@ -186231,104 +187208,686 @@ can actively monitor the MySQL-specific events.  -File: manual.info, Node: connector-net-programming-bulk-loader, Prev: connector-net-programming-tracing, Up: connector-net-programming +File: manual.info, Node: connector-net-programming-binary-issues, Next: connector-net-using-character-sets, Prev: connector-net-programming-tracing, Up: connector-net-programming + +22.2.5.30 Binary/Nonbinary Issues +................................. + +There are certain situations where MySQL will return incorrect metadata +about one or more columns. More specifically, the server will sometimes +report that a column is binary when it is not and vice versa. In these +situations, it becomes practically impossible for the connector to be +able to correctly identify the correct metadata. + +Some examples of situations that may return incorrect metadata are: + + * Execution of *Note `SHOW PROCESSLIST': show-processlist. Some of + the columns will be returned as binary even though they only hold + string data. + + * When a temporary table is used to process a resultset, some + columns may be returned with incorrect binary flags. + + * Some server functions such `DATE_FORMAT' will incorrectly return + the column as binary. + +With the availability of `BINARY' and `VARBINARY' data types, it is +important that we respect the metadata returned by the server. However, +we are aware that some existing applications may break with this +change, so we are creating a connection string option to enable or +disable it. By default, Connector/Net 5.1 respects the binary flags +returned by the server. You might need to make small changes to your +application to accommodate this change. + +In the event that the changes required to your application would be too +large, adding `'respect binary flags=false'' to your connection string +causes the connector to use the prior behavior: any column that is +marked as string, regardless of binary flags, will be returned as +string. Only columns that are specifically marked as a `BLOB' will be +returned as `BLOB'. + + +File: manual.info, Node: connector-net-using-character-sets, Next: connector-net-programming-crystal, Prev: connector-net-programming-binary-issues, Up: connector-net-programming + +22.2.5.31 Character Set Considerations for Connector/Net +........................................................ + +*Treating Binary Blobs As UTF8* + +MySQL doesn't currently support 4-byte UTF8 sequences. This makes it +difficult to represent some multi-byte languages such as Japanese. To +try and alleviate this, Connector/Net now supports a mode where binary +blobs can be treated as strings. + +To do this, you set the `'Treat Blobs As UTF8'' connection string +keyword to `yes'. This is all that needs to be done to enable +conversion of all binary blobs to UTF8 strings. To convert only some of +your BLOB columns, you can make use of the `'BlobAsUTF8IncludePattern'' +and`'BlobAsUTF8ExcludePattern'' keywords. Set these to a regular +expression pattern that matches the column names to include or exclude +respectively. + +When the regular expression patterns both match a single column, the +include pattern is applied before the exclude pattern. The result, in +this case, would be that the column would be excluded. Also, be aware +that this mode does not apply to columns of type `BINARY' or +`VARBINARY' and also do not apply to nonbinary `BLOB' columns. + +Currently, this mode only applies to reading strings out of MySQL. To +insert 4-byte UTF8 strings into blob columns, use the .NET +`Encoding.GetBytes' function to convert your string to a series of +bytes. You can then set this byte array as a parameter for a `BLOB' +column. + + +File: manual.info, Node: connector-net-programming-crystal, Next: connector-net-programming-asp-provider, Prev: connector-net-using-character-sets, Up: connector-net-programming + +22.2.5.32 Using Connector/Net with Crystal Reports +.................................................. + +* Menu: + +* connector-net-programming-crystal-source:: Creating a Data Source +* connector-net-programming-crystal-creating:: Creating the Report +* connector-net-programming-crystal-displaying:: Displaying the Report + +*Introduction* + +Crystal Reports is a common tool used by Windows application developers +to perform reporting and document generation. In this section we will +show how to use Crystal Reports XI with MySQL and Connector/Net. + + +File: manual.info, Node: connector-net-programming-crystal-source, Next: connector-net-programming-crystal-creating, Prev: connector-net-programming-crystal, Up: connector-net-programming-crystal + +22.2.5.33 Creating a Data Source +................................ + +When creating a report in Crystal Reports there are two options for +accessing the MySQL data while designing your report. + +The first option is to use Connector/ODBC as an ADO data source when +designing your report. You will be able to browse your database and +choose tables and fields using drag and drop to build your report. The +disadvantage of this approach is that additional work must be performed +within your application to produce a data set that matches the one +expected by your report. + +The second option is to create a data set in VB.NET and save it as XML. +This XML file can then be used to design a report. This works quite +well when displaying the report in your application, but is less +versatile at design time because you must choose all relevant columns +when creating the data set. If you forget a column you must re-create +the data set before the column can be added to the report. + +The following code can be used to create a data set from a query and +write it to disk: + +* Visual Basic Example * + + Dim myData As New DataSet + Dim conn As New MySqlConnection + Dim cmd As New MySqlCommand + Dim myAdapter As New MySqlDataAdapter + + conn.ConnectionString = "server=127.0.0.1;" _ + & "uid=root;" _ + & "pwd=12345;" _ + & "database=world" + + Try + conn.Open() + cmd.CommandText = "SELECT city.name AS cityName, city.population AS CityPopulation, " _ + & "country.name, country.population, country.continent " _ + & "FROM country, city ORDER BY country.continent, country.name" + cmd.Connection = conn + + myAdapter.SelectCommand = cmd + myAdapter.Fill(myData) + + myData.WriteXml("C:\dataset.xml", XmlWriteMode.WriteSchema) + Catch ex As Exception + MessageBox.Show(ex.Message, "Report could not be created", MessageBoxButtons.OK, MessageBoxIcon.Error) + End Try + +* C# Example * + + DataSet myData = new DataSet(); + MySql.Data.MySqlClient.MySqlConnection conn; + MySql.Data.MySqlClient.MySqlCommand cmd; + MySql.Data.MySqlClient.MySqlDataAdapter myAdapter; + + conn = new MySql.Data.MySqlClient.MySqlConnection(); + cmd = new MySql.Data.MySqlClient.MySqlCommand(); + myAdapter = new MySql.Data.MySqlClient.MySqlDataAdapter(); + + conn.ConnectionString = "server=127.0.0.1;uid=root;" + + "pwd=12345;database=test;"; + + try + { + cmd.CommandText = "SELECT city.name AS cityName, city.population AS CityPopulation, " + + "country.name, country.population, country.continent " + + "FROM country, city ORDER BY country.continent, country.name"; + cmd.Connection = conn; + + myAdapter.SelectCommand = cmd; + myAdapter.Fill(myData); + + myData.WriteXml(@"C:\dataset.xml", XmlWriteMode.WriteSchema); + } + catch (MySql.Data.MySqlClient.MySqlException ex) + { + MessageBox.Show(ex.Message, "Report could not be created", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + +The resulting XML file can be used as an ADO.NET XML datasource when +designing your report. + +If you choose to design your reports using Connector/ODBC, it can be +downloaded from dev.mysql.com +(http://dev.mysql.com/downloads/connector/odbc/3.51.html). + + +File: manual.info, Node: connector-net-programming-crystal-creating, Next: connector-net-programming-crystal-displaying, Prev: connector-net-programming-crystal-source, Up: connector-net-programming-crystal + +22.2.5.34 Creating the Report +............................. + +For most purposes, the Standard Report wizard helps with the initial +creation of a report. To start the wizard, open Crystal Reports and +choose the `New > Standard Report' option from the File menu. + +The wizard first prompts you for a data source. If you use +Connector/ODBC as your data source, use the OLEDB provider for ODBC +option from the OLE DB (ADO) tree instead of the ODBC (RDO) tree when +choosing a data source. If using a saved data set, choose the ADO.NET +(XML) option and browse to your saved data set. + +The remainder of the report creation process is done automatically by +the wizard. + +After the report is created, choose the Report Options... entry of the +File menu. Un-check the Save Data With Report option. This prevents +saved data from interfering with the loading of data within our +application. + + +File: manual.info, Node: connector-net-programming-crystal-displaying, Prev: connector-net-programming-crystal-creating, Up: connector-net-programming-crystal -22.2.5.33 Using the Bulk Loader +22.2.5.35 Displaying the Report ............................... -MySQL Connector/Net features a bulk loader class that wraps the MySQL -statement `LOAD DATA INFILE'. This gives MySQL Connector/Net the ability -to load a data file from a local or remote host to the server. The -class concerned is `MySqlBulkLoader'. This class has various methods, -the main one being `load' to cause the specified file to be loaded to -the server. Various parameters can be set to control how the data file -is processed. This is achieved through setting various properties of -the class. For example, the field separator used, such as comma or -tab, can be specified, along with the record terminator, such as -newline. +To display a report we first populate a data set with the data needed +for the report, then load the report and bind it to the data set. +Finally we pass the report to the crViewer control for display to the +user. -The following code shows a simple example of using the -`MySqlBulkLoader' class. First an empty table needs to be created, in -this case in the `test' database: +The following references are needed in a project that displays a report: - CREATE TABLE Career ( - Name VARCHAR(100) NOT NULL, - Age INTEGER, - Profession VARCHAR(200) - ); + * CrystalDecisions.CrystalReports.Engine -A simple tab-delimited data file is also created (it could use any -other field delimiter such as comma): + * CrystalDecisions.ReportSource - Table Career in Test Database - Name Age Profession + * CrystalDecisions.Shared - Tony 47 Technical Writer - Ana 43 Nurse - Fred 21 IT Specialist - Simon 45 Hairy Biker + * CrystalDecisions.Windows.Forms -Note that with this test file the first three lines will need to be -ignored, as they do not contain table data. This can be achieved using -the `NumberOfLinesToSkip' property. This file can then be loaded and -used to populate the `Career' table in the `test' database: +The following code assumes that you created your report using a data +set saved using the code shown in *Note +connector-net-programming-crystal-source::, and have a crViewer control +on your form named `myViewer'. - using System; - using System.Text; - using MySql.Data; +* Visual Basic Example * + + Imports CrystalDecisions.CrystalReports.Engine + Imports System.Data + Imports MySql.Data.MySqlClient + + Dim myReport As New ReportDocument + Dim myData As New DataSet + Dim conn As New MySqlConnection + Dim cmd As New MySqlCommand + Dim myAdapter As New MySqlDataAdapter + + conn.ConnectionString = _ + "server=127.0.0.1;" _ + & "uid=root;" _ + & "pwd=12345;" _ + & "database=test" + + Try + conn.Open() + + cmd.CommandText = "SELECT city.name AS cityName, city.population AS CityPopulation, " _ + & "country.name, country.population, country.continent " _ + & "FROM country, city ORDER BY country.continent, country.name" + cmd.Connection = conn + + myAdapter.SelectCommand = cmd + myAdapter.Fill(myData) + + myReport.Load(".\world_report.rpt") + myReport.SetDataSource(myData) + myViewer.ReportSource = myReport + Catch ex As Exception + MessageBox.Show(ex.Message, "Report could not be created", MessageBoxButtons.OK, MessageBoxIcon.Error) + End Try + +* C# Example * + + using CrystalDecisions.CrystalReports.Engine; + using System.Data; using MySql.Data.MySqlClient; - namespace ConsoleApplication1 + ReportDocument myReport = new ReportDocument(); + DataSet myData = new DataSet(); + MySql.Data.MySqlClient.MySqlConnection conn; + MySql.Data.MySqlClient.MySqlCommand cmd; + MySql.Data.MySqlClient.MySqlDataAdapter myAdapter; + + conn = new MySql.Data.MySqlClient.MySqlConnection(); + cmd = new MySql.Data.MySqlClient.MySqlCommand(); + myAdapter = new MySql.Data.MySqlClient.MySqlDataAdapter(); + + conn.ConnectionString = "server=127.0.0.1;uid=root;" + + "pwd=12345;database=test;"; + + try { - class Program - { - static void Main(string[] args) - { + cmd.CommandText = "SELECT city.name AS cityName, city.population AS CityPopulation, " + + "country.name, country.population, country.continent " + + "FROM country, city ORDER BY country.continent, country.name"; + cmd.Connection = conn; - string connStr = "server=localhost;user=root;database=test;port=3306;password=******;"; - MySqlConnection conn = new MySqlConnection(connStr); + myAdapter.SelectCommand = cmd; + myAdapter.Fill(myData); - MySqlBulkLoader bl = new MySqlBulkLoader(conn); - bl.TableName = "Career"; - bl.FieldTerminator = "\t"; - bl.LineTerminator = "\n"; - bl.FileName = "c:/career_data.txt"; - bl.NumberOfLinesToSkip = 3; + myReport.Load(@".\world_report.rpt"); + myReport.SetDataSource(myData); + myViewer.ReportSource = myReport; + } + catch (MySql.Data.MySqlClient.MySqlException ex) + { + MessageBox.Show(ex.Message, "Report could not be created", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } - try - { - Console.WriteLine("Connecting to MySQL..."); - conn.Open(); +A new data set it generated using the same query used to generate the +previously saved data set. Once the data set is filled, a +ReportDocument is used to load the report file and bind it to the data +set. The ReportDocument is the passed as the ReportSource of the +crViewer. - // Upload data from file - int count = bl.Load(); - Console.WriteLine(count + " lines uploaded."); +This same approach is taken when a report is created from a single +table using Connector/ODBC. The data set replaces the table used in the +report and the report is displayed properly. - string sql = "SELECT Name, Age, Profession FROM Career"; - MySqlCommand cmd = new MySqlCommand(sql, conn); - MySqlDataReader rdr = cmd.ExecuteReader(); +When a report is created from multiple tables using Connector/ODBC, a +data set with multiple tables must be created in our application. This +enables each table in the report data source to be replaced with a +report in the data set. - while (rdr.Read()) - { - Console.WriteLine(rdr[0] + " -- " + rdr[1] + " -- " + rdr[2]); - } +We populate a data set with multiple tables by providing multiple *Note +`SELECT': select. statements in our MySqlCommand object. These *Note +`SELECT': select. statements are based on the SQL query shown in +Crystal Reports in the Database menu's Show SQL Query option. Assume the +following query: - rdr.Close(); + SELECT `country`.`Name`, `country`.`Continent`, `country`.`Population`, `city`.`Name`, `city`.`Population` + FROM `world`.`country` `country` LEFT OUTER JOIN `world`.`city` `city` ON `country`.`Code`=`city`.`CountryCode` + ORDER BY `country`.`Continent`, `country`.`Name`, `city`.`Name` - conn.Close(); - } - catch (Exception ex) - { - Console.WriteLine(ex.ToString()); - } - Console.WriteLine("Done."); - } - } +This query is converted to two *Note `SELECT': select. queries and +displayed with the following code: + +* Visual Basic Example * + + Imports CrystalDecisions.CrystalReports.Engine + Imports System.Data + Imports MySql.Data.MySqlClient + + Dim myReport As New ReportDocument + Dim myData As New DataSet + Dim conn As New MySqlConnection + Dim cmd As New MySqlCommand + Dim myAdapter As New MySqlDataAdapter + + conn.ConnectionString = "server=127.0.0.1;" _ + & "uid=root;" _ + & "pwd=12345;" _ + & "database=world" + + Try + conn.Open() + cmd.CommandText = "SELECT name, population, countrycode FROM city ORDER BY countrycode, name; " _ + & "SELECT name, population, code, continent FROM country ORDER BY continent, name" + cmd.Connection = conn + + myAdapter.SelectCommand = cmd + myAdapter.Fill(myData) + + myReport.Load(".\world_report.rpt") + myReport.Database.Tables(0).SetDataSource(myData.Tables(0)) + myReport.Database.Tables(1).SetDataSource(myData.Tables(1)) + myViewer.ReportSource = myReport + Catch ex As Exception + MessageBox.Show(ex.Message, "Report could not be created", MessageBoxButtons.OK, MessageBoxIcon.Error) + End Try + +* C# Example * + + using CrystalDecisions.CrystalReports.Engine; + using System.Data; + using MySql.Data.MySqlClient; + + ReportDocument myReport = new ReportDocument(); + DataSet myData = new DataSet(); + MySql.Data.MySqlClient.MySqlConnection conn; + MySql.Data.MySqlClient.MySqlCommand cmd; + MySql.Data.MySqlClient.MySqlDataAdapter myAdapter; + + conn = new MySql.Data.MySqlClient.MySqlConnection(); + cmd = new MySql.Data.MySqlClient.MySqlCommand(); + myAdapter = new MySql.Data.MySqlClient.MySqlDataAdapter(); + + conn.ConnectionString = "server=127.0.0.1;uid=root;" + + "pwd=12345;database=test;"; + + try + { + cmd.CommandText = "SELECT name, population, countrycode FROM city ORDER " + + "BY countrycode, name; *Note `SELECT': select. name, population, code, continent FROM " + + "country ORDER BY continent, name"; + cmd.Connection = conn; + + myAdapter.SelectCommand = cmd; + myAdapter.Fill(myData); + + myReport.Load(@".\world_report.rpt"); + myReport.Database.Tables(0).SetDataSource(myData.Tables(0)); + myReport.Database.Tables(1).SetDataSource(myData.Tables(1)); + myViewer.ReportSource = myReport; + } + catch (MySql.Data.MySqlClient.MySqlException ex) + { + MessageBox.Show(ex.Message, "Report could not be created", + MessageBoxButtons.OK, MessageBoxIcon.Error); } -Further information on `LOAD DATA INFILE' can be found in *Note -load-data::. Further information on `MySqlBulkLoader' can be found in -the reference documentation that was included with your connector. +It is important to order the *Note `SELECT': select. queries in +alphabetic order, as this is the order the report will expect its source +tables to be in. One SetDataSource statement is needed for each table +in the report. + +This approach can cause performance problems because Crystal Reports +must bind the tables together on the client-side, which will be slower +than using a pre-saved data set. + + +File: manual.info, Node: connector-net-programming-asp-provider, Next: connector-net-medium-trust, Prev: connector-net-programming-crystal, Up: connector-net-programming + +22.2.5.36 ASP.NET Provider Model +................................ + +MySQL Connector/Net provides support for the ASP.NET 2.0 provider +model. This model enables application developers to focus on the +business logic of their application instead of having to recreate such +boilerplate items as membership and roles support. + +MySQL Connector/Net supplies the following providers: + + * Membership Provider + + * Role Provider + + * Profile Provider + + * Session State Provider (MySQL Connector/Net 6.1 and later) + +The following tables show the supported providers, their default +provider and the corresponding MySQL provider. + +*Membership Provider* + +Default Provider MySQL Provider +System.Web.Security.SqlMembershipProviderMySql.Web.Security.MySQLMembershipProvider + +*Role Provider* + +Default Provider MySQL Provider +System.Web.Security.SqlRoleProvider MySql.Web.Security.MySQLRoleProvider + +*Profile Provider* + +Default Provider MySQL Provider +System.Web.Profile.SqlProfileProviderMySql.Web.Profile.MySQLProfileProvider + +*SessionState Provider* + +Default Provider MySQL Provider +System.Web.SessionState.InProcSessionStateStoreMySql.Web.SessionState.MySqlSessionStateStore + +*Note*: + +The MySQL Session State provider uses slightly different capitalization +on the class name compared to the other MySQL providers. + +*Installing The Providers* + +The installation of Connector/Net 5.1 or later will install the +providers and register them in your machine's .NET configuration file, +`machine.config'. The additional entries created will result in the +`system.web' section appearing similar to the following code: + + + + + + + + + + + + + + + + + + + + + + + + + +Each provider type can have multiple provider implementations. The +default provider can also be set here using the `defaultProvider' +attribute, but usually this is set in the `web.config' file either +manually or by using the ASP.NET configuration tool. + +At time of writing, the `MySqlSessionStateStore' is not added to +`machine.config' at install time, and so add the following: + + + + + + + +The SessionState Provider uses the `customProvider' attribute, rather +than `defaultProvider', to set the provider as the default. A typical +`web.config' file might contain: + + + + + + + + ... + +This sets the MySQL Providers as the defaults to be used in this web +application. + +The providers are implemented in the file `mysql.web.dll' and this file +can be found in your MySQL Connector/Net installation folder. There is +no need to run any type of SQL script to set up the database schema, as +the providers create and maintain the proper schema automatically. + +* Using The Providers* + +The easiest way to start using the providers is to use the ASP.NET +configuration tool that is available on the Solution Explorer toolbar +when you have a website project loaded. + +In the web pages that open, you can select the MySQL membership and +roles providers by picking a custom provider for each area. + +When the provider is installed, it creates a dummy connection string +named `LocalMySqlServer'. Although this has to be done so that the +provider will work in the ASP.NET configuration tool, you override this +connection string in your `web.config' file. You do this by first +removing the dummy connection string and then adding in the proper one, +as shown in the following example: + + + + + + +Note the database to connect to must be specified. + +Rather than manually editing configuration files, consider using the +MySQL Website Configuration tool to configure your desired provider +setup. From MySQL Connector/Net 6.1.1 onwards, all providers can be +selected and configured from this wizard. The tool modifies your +`website.config' file to the desired configuration. A tutorial on doing +this is available in the following section *Note +connector-net-website-config::. + +A tutorial demonstrating how to use the Membership and Role Providers +can be found in the following section *Note +connector-net-tutorials-asp-roles::. + +* Deployment* + +To use the providers on a production server, distribute the +`MySql.Data' and the `MySql.Web' assemblies, and either register them +in the remote systems Global Assembly Cache or keep them in your +application's `bin/' directory. + + +File: manual.info, Node: connector-net-medium-trust, Prev: connector-net-programming-asp-provider, Up: connector-net-programming + +22.2.5.37 Working with Partial Trust +.................................... + +.NET applications operate under a given trust level. Normal desktop +applications operate under full trust, while web applications that are +hosted in shared environments are normally run under the partial trust +level (also known as `medium trust'). Some hosting providers host +shared applications in their own app pools and allow the application to +run under full trust, but this configuration is relatively rare. The +Connector/Net support for partial trust has improved over time to +simplify the configuration and deployment process for hosting providers. + +* 6.5.1 and Above: Full Support for Partial Trust * + +Connector/Net 6.5 fully enables our provider to run in a partial trust +environment when the library is installed in the Global Assembly Cache +(GAC). The new `MySqlClientPermission' class, derived from the .NET +`DBDataPermission' class, helps to simplify the permission setup. + +Starting from 6.5 you can use the Connector/Net library inside any +medium-trust level environment without any issue. + +The following list shows steps and code fragments needed to run a +Connector/Net application in a partial trust environment. For +illustration purposes, we use the Pipe Connections protocol in this +example. + + 1. Configure the MySQL server to accept pipe connections, by adding + the `--enable-named-pipe' option on the command line. If you need + more information about this, see *Note windows-installation::. + + 2. Confirm that the hosting provider has installed the Connector/Net + library (`MySql.Data.dll') in the GAC. + + 3. Optionally, the hosting provider can avoid granting permissions + globally by using the new `MySqlClientPermission' class in the + trust policies. (The alternative is to globally enable the + permissions `System.Net.SocketPermission', + `System.Security.Permissions.ReflectionPermission', + `System.Net.DnsPermission', and + `System.Security.Permissions.SecurityPermission'.) + + 4. Create a simple web application using Visual Studio 2010. + + 5. Add the reference in your application for the + `MySql.Data.MySqlClient' library. + + 6. Edit your `web.config' file so that your application runs using a + Medium trust level: + + + + + + + 7. Add the `MySql.Data.MySqlClient' namespace to your server-code + page. + + 8. Define the connection string: + + MySqlConnectionStringBuilder myconnString = new MySqlConnectionStringBuilder("server=localhost;User Id=root;database=test;" ); + myconnString.PipeName = "MySQL55"; + myconnString.ConnectionProtocol = MySqlConnectionProtocol.Pipe; + + 9. Define the `MySqlConnection' to use: + + MySqlConnection myconn = new MySqlConnection(myconnString.ConnectionString); + myconn.Open(); + + 10. Retrieve some data from your tables: + + MySqlCommand cmd = new MySqlCommand("Select * from products", myconn); + MySqlDataAdapter da = new MySqlDataAdapter(cmd); + DataSet1 tds = new DataSet1(); + da.Fill(tds, tds.Tables[0].TableName); + GridView1.DataSource = tds; + GridView1.DataBind(); + myconn.Close() + + 11. Run the program. It should execute successfully, without requiring + any special code or encountering any security problems. + +* 5.0.8 / 5.1.3 and Above: Partial Trust Requires Socket Permissions * + +Starting with these versions, Connector/Net can be used under partial +trust hosting that has been modified to allow the use of sockets for +communication. By default, partial trust does not include +`SocketPermission'. Connector/Net uses sockets to talk with the MySQL +server so the hosting provider must create a new trust level that is an +exact clone of partial trust but that has the following permissions +added: + + * `System.Net.SocketPermission' + + * `System.Security.Permissions.ReflectionPermission' + + * `System.Net.DnsPermission' + + * `System.Security.Permissions.SecurityPermission' + +* Prior to 5.0.8 / 5.1.3: Partial Trust Not Supported * + +Connector/Net versions prior to 5.0.8 and 5.1.3 were not compatible +with partial trust hosting.  File: manual.info, Node: connector-net-connection-options, Next: connector-net-ref, Prev: connector-net-programming, Up: connector-net @@ -186336,32 +187895,40 @@ 22.2.6 Connector/Net Connection String Options Reference -------------------------------------------------------- +For usage information about connection strings, see *Note +connector-net-programming-connecting-connection-string::. The first +table list options that apply generally to all server configurations. +The options related to systems using a connection pool are split into a +separate table. + +* General Options * + Name Default Description -`Allow Batch' true When true, multiple SQL statements can - be sent with one command execution. - -Note- Starting with MySQL 4.1.1, batch +`Allow Batch', true When true, multiple SQL statements can +`AllowBatch' be sent with one command execution. + Note: starting with MySQL 4.1.1, batch statements should be separated by the server-defined separator character. Commands sent to earlier versions of MySQL should be separated with ';'. -`Allow User Variables' false Setting this to `true' indicates that - the provider expects user variables in +`Allow User Variables', false Setting this to `true' indicates that +`AllowUserVariables' the provider expects user variables in the SQL. This option was added in Connector/Net version 5.2.2. -`Allow Zero Datetime' false If set to `True', - `MySqlDataReader.GetValue()' will - return a `MySqlDateTime' object for - date or datetime columns that have - illegal values, such as zero datetime - values, and a `System.DateTime' object - for legal values. If set to `False' (the +`Allow Zero Datetime', false If set to `True', +`AllowZeroDateTime' `MySqlDataReader.GetValue()' returns a + `MySqlDateTime' object for date or + datetime columns that have disallowed + values, such as zero datetime values, + and a `System.DateTime' object for + valid values. If set to `False' (the default setting) it will cause a `System.DateTime' object to be returned for all legal values and an exception - to be thrown for illegal values, such - as zero datetime values. -`AutoEnlist' true If `AutoEnlist' is set to `true', which - is the default, a connection opened + to be thrown for disallowed values, + such as zero datetime values. +`Auto Enlist', true If `AutoEnlist' is set to `true', which +`AutoEnlist' is the default, a connection opened using `TransactionScope' participates in this scope, it commits when the scope commits and rolls back if @@ -186369,62 +187936,76 @@ However, this feature is considered security sensitive and therefore cannot be used in a medium trust environment. -`BlobAsUTF8ExcludePattern'null -`BlobAsUTF8IncludePattern'null -`CertificateFile' null This option specifies the path to a - certificate file in PFX format. For an - example of usage see *Note - connector-net-tutorials-ssl::. Was +`BlobAsUTF8ExcludePattern'null A POSIX-style regular expression that + matches the names of BLOB columns that + do not contain UTF-8 character data. See + *Note + connector-net-using-character-sets:: for + usage details. +`BlobAsUTF8IncludePattern'null A POSIX-style regular expression that + matches the names of BLOB columns + containing UTF-8 character data. See + *Note + connector-net-using-character-sets:: for + usage details. +`Certificate File', null This option specifies the path to a +`CertificateFile' certificate file in PKCS #12 format + (`.pfx'). For an example of usage, see + *Note connector-net-tutorials-ssl::. Was introduced with 6.2.1. -`CertificatePassword' null This option enables you to specify a - password which is used in conjunction - with a certificate specified using the - option `CertificateFile'. For an - example of usage see *Note +`Certificate Password', null Specifies a password that is used in +`CertificatePassword' conjunction with a certificate + specified using the option + `CertificateFile'. For an example of + usage, see *Note connector-net-tutorials-ssl::. Was introduced with 6.2.1. -`Certificate Store null This option enables you to access a -Location' certificate held in a personal store, - rather than use a certificate file and - password combination. For an example of - usage see *Note +`Certificate Store null Enables you to access a certificate +Location', held in a personal store, rather than +`CertificateStoreLocation' use a certificate file and password + combination. For an example of usage, + see *Note connector-net-tutorials-ssl::. Was introduced with 6.2.1. -`Certificate Thumbprint' null This option enables you to specify a - certificate thumbprint to ensure - correct identifcation of a certificate - contained within a personal store. For - an example of usage see *Note - connector-net-tutorials-ssl::. Was +`Certificate Thumbprint', null Specifies a certificate thumbprint to +`CertificateThumbprint' ensure correct identification of a + certificate contained within a personal + store. For an example of usage, see + *Note connector-net-tutorials-ssl::. Was introduced with 6.2.1. `CharSet', `Character Specifies the character set that should -Set' be used to encode all queries sent to +Set', `CharacterSet' be used to encode all queries sent to the server. Resultsets are still returned in the character set of the - data returned. + result data. +`Check Parameters', true Indicates if stored routine parameters +`CheckParameters' should be checked against the server. +`Command Interceptors', The list of interceptors that can +`CommandInterceptors' intercept SQL command operations. `Connect Timeout', 15 The length of time (in seconds) to wait -`Connection Timeout' for a connection to the server before - terminating the attempt and generating +`Connection Timeout', for a connection to the server before +`ConnectionTimeout' terminating the attempt and generating an error. -`Connection Reset' false If true, the connection state will be - reset when it is retrieved from the - pool. If set to false this avoids - making an additional server round trip - when obtaining a connection, but the - connection state is not reset. -`Convert Zero Datetime' false True to have - `MySqlDataReader.GetValue()' and +`Convert Zero Datetime', false True to have +`ConvertZeroDateTime' `MySqlDataReader.GetValue()' and `MySqlDataReader.GetDateTime()' return - DateTime.MinValue for date or datetime - columns that have illegal values. -`Default Command Timeout' 30 Sets the default value of the command - timeout to be used. This does not - supercede the individual command + `DateTime.MinValue' for date or datetime + columns that have disallowed values. +`Default Command 30 Sets the default value of the command +Timeout', timeout to be used. This does not +`DefaultCommandTimeout' supercede the individual command timeout property on an individual command object. If you set the command timeout property, that will be used. This option was added in Connector/Net 5.1.4 +`Default Table Cache 60 Specifies how long a `TableDirect' +Age', result should be cached, in seconds. +`DefaultTableCacheAge' For usage information about table + caching, see *Note + connector-net-programming-tablecaching::. + This option was added in Connector/Net + 6.4. `Encrypt', `UseSSL' false For Connector/Net 5.0.3 and later, when `true', SSL encryption is used for all data sent between the client and server @@ -186432,50 +188013,52 @@ installed. Recognized values are `true', `false', `yes', and `no'. In versions before 5.0.3, this option had no - effect. From version 6.2.1 this option + effect. From version 6.2.1, this option is deprecated and is replaced by `SSL - Mode'. However, the option is still - supported if used. If this option is - set to true it is equivalent to `SSL - Mode = Preferred'. -`FunctionsReturnString' false This will cause the connector to return - binary/varbinary values as strings, if - they do not have a tablename in the + Mode'. The option still works if used. + If this option is set to true, it is + equivalent to `SSL Mode = Preferred'. +`Exception Interceptors', The list of interceptors that can +`ExceptionInterceptors' triage thrown `MySqlException' + exceptions. +`Functions Return false Causes the connector to return +String', binary/varbinary values as strings, if +`FunctionsReturnString' they do not have a tablename in the metadata. `Host', `Server', `Data localhostThe name or network address of the Source', `DataSource', instance of MySQL to which to connect. `Address', `Addr', Multiple hosts can be specified -`Network Address' separated by &. This can be useful +`Network Address' separated by commas. This can be useful where multiple MySQL servers are configured for replication and you are not concerned about the precise server you are connecting to. No attempt is made by the provider to synchronize - writes to the database so care should - be taken when using this option. In Unix + writes to the database, so take care + when using this option. In Unix environment with Mono, this can be a - fully qualified path to MySQL socket - file name. With this configuration, the - Unix socket will be used instead of - TCP/IP socket. Currently only a single - socket name can be given so accessing + fully qualified path to a MySQL socket + file. With this configuration, the Unix + socket will be used instead of the + TCP/IP socket. Currently, only a single + socket name can be given, so accessing MySQL in a replicated environment using Unix sockets is not currently supported. -`Ignore Prepare' true When true, instructs the provider to - ignore any calls to +`Ignore Prepare', true When true, instructs the provider to +`IgnorePrepare' ignore any calls to `MySqlCommand.Prepare()'. This option is provided to prevent issues with - corruption of the statements when use - with server side prepared statements. - If you want to use server-side prepare + corruption of the statements when used + with server-side prepared statements. + If you use server-side prepare statements, set this option to false. This option was added in Connector/Net 5.0.3 and Connector/Net 1.0.9. `Initial Catalog', mysql The case-sensitive name of the database `Database' to use initially. -`Interactive, false If set to true the client is -InteractiveSession' interactive. An interactive client is - one where the server variable +`Interactive', false If set to true, the client is +`Interactive Session', interactive. An interactive client is +`InteractiveSession' one where the server variable `CLIENT_INTERACTIVE' is set. If an interactive client is set, the `wait_timeout' variable is set to the @@ -186484,12 +188067,26 @@ period of inactivity. More details can be found in the server manual *Note server-system-variables::. +`Integrated Security', no Use Windows authentication when +`IntegratedSecurity' connecting to server. By default, it is + turned off. To enable, specify a value + of `yes'. (You can also use the value + `sspi' as an alternative to `yes'.) For + details, see *Note + connector-net-programming-authentication-windows-native::. + This option was introduced in + Connector/Net 6.4.4. +`Keep Alive', `Keepalive' 0 For TCP connections, idle connection + time measured in seconds, before the + first keepalive packet is sent. A value + of 0 indicates that keepalive is not + used. `Logging' false When true, various pieces of information is output to any configured TraceListeners. See *Note connector-net-programming-tracing:: for further details. -`Old Guids' false This option was introduced in +`Old Guids', `OldGuids' false This option was introduced in Connector/Net 6.1.1. The backend representation of a GUID type was changed from `BINARY(16)' to @@ -186497,68 +188094,71 @@ developers to use the server function `UUID()' to populate a GUID table - `UUID()' generates a 36-character - string. Developers of older - applications can add 'Old Guids=true' to - the connection string to use a GUID of - data type `BINARY(16)'. -`Old Syntax', `OldSyntax' false This option was deprecated in - Connector/Net 5.2.2. All code should now - be written using the '@' symbol as the + string. Developers of older + applications can add `'Old Guids=true'' + to the connection string to use a GUID + of data type *Note `BINARY(16)': + binary-varbinary. +`Old Syntax', false This option was deprecated in +`OldSyntax', `Use Old Connector/Net 5.2.2. All code should now +Syntax', `UseOldSyntax' be written using the '@' symbol as the parameter marker. `Password', `pwd' The password for the MySQL account being used. -`Persist Security Info' false When set to `false' or `no' (strongly - recommended), security-sensitive +`Persist Security Info', false When set to `false' or `no' (strongly +`PersistSecurityInfo' recommended), security-sensitive information, such as the password, is not returned as part of the connection if the connection is open or has ever been in an open state. Resetting the connection string resets all connection - string values including the password. + string values, including the password. Recognized values are `true', `false', `yes', and `no'. -`Pipe Name', `Pipe' mysql When set to the name of a named pipe, - the `MySqlConnection' will attempt to - connect to MySQL on that named - pipe.This settings only applies to the +`Pipe Name', `Pipe', mysql When set to the name of a named pipe, +`PipeName' the `MySqlConnection' will attempt to + connect to MySQL on that named pipe. + This setting only applies to the Windows platform. `Port' 3306 The port MySQL is using to listen for connections. This value is ignored if Unix socket is used. -`Procedure Cache Size' 25 Sets the size of the stored procedure - cache. By default, Connector/Net will - store the metadata (input/output data - types) about the last 25 stored - procedures used. To disable the stored - procedure cache, set the value to zero - (0). This option was added in - Connector/Net 5.0.2 and Connector/Net - 1.0.9. -`Protocol' socket Specifies the type of connection to - make to the server. Values can be: - `socket' or `tcp' for a socket +`Procedure Cache Size', 25 Sets the size of the stored procedure +`ProcedureCacheSize', cache. By default, Connector/Net stores +`procedure cache', the metadata (input/output data types) +`procedurecache' about the last 25 stored procedures + used. To disable the stored procedure + cache, set the value to zero (0). This + option was added in Connector/Net 5.0.2 + and Connector/Net 1.0.9. +`Protocol', `Connection socket Specifies the type of connection to +Protocol', make to the server. Values can be: +`ConnectionProtocol' `socket' or `tcp' for a socket connection, `pipe' for a named pipe connection, `unix' for a Unix socket connection, `memory' to use MySQL shared memory. -`Respect Binary Flags' true Setting this option to `false' means - that Connector/Net will ignore a - column's binary flags as set by the - server. This option was added in - Connector/Net version 5.1.3. -`Shared Memory Name' MYSQL The name of the shared memory object to - use for communication if the connection - protocol is set to memory. -`Sql Server Mode' false Allow SQL Server syntax. When set to - `true' enables Connector/Net to support - square brackets around symbols instead - of backticks. This enables Visual - Studio wizards that bracket symbols - with [] to work with Connector/Net. - This option incurs a performance hit, - so should only be used if necessary. - This option was added in version 6.3.1. -`SSL Mode' None This option has the following values: +`Replication' false Indicates if this connection is to use + replicated servers. +`Respect Binary Flags', true Setting this option to `false' means +`RespectBinaryFlags' that Connector/Net ignores a column's + binary flags as set by the server. This + option was added in Connector/Net + version 5.1.3. +`Shared Memory Name', MYSQL The name of the shared memory object to +`SharedMemoryName' use for communication if the connection + protocol is set to `memory'. +`Sql Server Mode', false Allow SQL Server syntax. When set to +`sqlservermode' `true', enables Connector/Net to + support square brackets around symbols + instead of backticks. This enables + Visual Studio wizards that bracket + symbols with [] to work with + Connector/Net. This option incurs a + performance hit, so should only be used + if necessary. This option was added in + version 6.3.1. +`SSL Mode', `SslMode' None This option has the following values: * *None* - do not use SSL. @@ -186579,51 +188179,60 @@ correct. This option was introduced in MySQL Connector/Net 6.2.1. -`TreatBlobsAsUTF8' false -`Treat Tiny As Boolean' true Setting this value to `false' indicates - that `TINYINT(1)' will be treated as an - *Note `INT': numeric-types. See also - *Note numeric-type-overview:: for a - further explanation of the *Note - `TINYINT': numeric-types. and *Note - `BOOL': numeric-types. data types. -`Use Affected Rows' false When `true' the connection will report - changed rows instead of found rows. +`Table Cache', false Enables or disables caching of +`tablecache', `TableDirect' commands. A value of +`tablecaching' `true' enables the cache while `false' + disables it. For usage information + about table caching, see *Note + connector-net-programming-tablecaching::. + This option was added in Connector/Net + 6.4. +`Treat BLOBs as UTF8', false +`TreatBlobsAsUTF8' +`Treat Tiny As Boolean', true Setting this value to `false' indicates +`TreatTinyAsBoolean' that `TINYINT(1)' will be treated as an + *Note `INT': numeric-types. See *Note + numeric-type-overview:: for a further + explanation of the *Note `TINYINT': + numeric-types. and *Note `BOOL': + numeric-types. data types. +`Use Affected Rows', false When `true' the connection will report +`UseAffectedRows' changed rows instead of found rows. This option was added in Connector/Net version 5.2.6. -`Use Procedure Bodies' true When set to `true', the default value, - MySQL Connector/Net expects the body of - the procedure to be viewable. This +`Use Procedure Bodies', true When set to `true', the default value, +`UseProcedureBodies', MySQL Connector/Net expects the body of +`procedure bodies' the procedure to be viewable. This enables it to determine the parameter - types and order. The option should be - set to `false' when the user connecting - to the database does not have the - `SELECT' privileges for the - `mysql.proc' (stored procedures) table, - or cannot view `I_S.ROUTINES'. In this - case, MySQL Connector/Net will not be - able to determine the types and order of - the parameters, and must be alerted to - this fact by setting this option to - `false'. When set to `false', MySQL - Connector/Net will not rely on this - information being available when the - procedure is called. Because MySQL - Connector/Net will not be able to - determine this information, you should + types and order. Set the option to + `false' when the user connecting to the + database does not have the `SELECT' + privileges for the `mysql.proc' (stored + procedures) table, or cannot view *Note + `INFORMATION_SCHEMA.ROUTINES': + routines-table. In this case, MySQL + Connector/Net cannot determine the + types and order of the parameters, and + must be alerted to this fact by setting + this option to `false'. When set to + `false', MySQL Connector/Net does not + rely on this information being + available when the procedure is called. + Because MySQL Connector/Net will not be + able to determine this information, explicitly set the types of all the - parameters before the call and the - parameters should be added to the - command in the same order as they - appear in the procedure definition. - This option was added in MySQL - Connector/Net 5.0.4 and MySQL + parameters before the call and add the + parameters to the command in the same + order as they appear in the procedure + definition. This option was added in + MySQL Connector/Net 5.0.4 and MySQL Connector/Net 1.0.10. -`User Id', `Username', The MySQL login account being used. -`Uid', `User name' -`Use Compression' false Setting this option to `true' enables - compression of packets exchanged - between the client and the server. This +`User Id', `UserID', The MySQL login account being used. +`Username', `Uid', `User +name', `User' +`Compress', `Use false Setting this option to `true' enables +Compression', compression of packets exchanged +`UseCompression' between the client and the server. This exchange is defined by the MySQL client/server protocol. @@ -186637,9 +188246,9 @@ byte), and Uncompressed Packet Length (3 bytes). The Uncompressed Packet Length is the number of bytes in the original, - uncompressed packet. If this is zero - then the data in this packet has not - been compressed. When the compression + uncompressed packet. If this is zero, + the data in this packet has not been + compressed. When the compression protocol is in use, either the client or the server may compress packets. However, compression will not occur if @@ -186647,22 +188256,34 @@ the original length. Thus, some packets will contain compressed data while other packets will not. -`Use Usage Advisor' false -`Use Performance Monitor' false - -The following table lists the valid names for connection pooling values -within the `ConnectionString'. For more information about connection -pooling, see Connection Pooling for the MySQL Data Provider. +`Use Usage Advisor', false Logs inefficient database operations. +`Usage Advisor', +`UseUsageAdvisor' +`Use Performance false Indicates that performance counters +Monitor', should be updated during execution. +`UsePerformanceMonitor', +`userperfmon', `perfmon' + +* Connection Pooling Options * + +The following table lists the valid names for options related to +connection pooling within the `ConnectionString'. For more information +about connection pooling, see *Note +connector-net-programming-connection-pooling::. Name Default Description -`Cache Server false Specifies whether server variables -Configuration', should be updated when a pooled -`CacheServerConfiguration', connection is returned. Turning this on -`CacheServerConfig' will yield faster opens but will also - not catch any server changes made by - other connections. -`Connection Lifetime' 0 When a connection is returned to the - pool, its creation time is compared +`Cache Server false Specifies whether server variable +Properties', settings are updated by a `SHOW +`CacheServerProperties' VARIABLES' command each time a pooled + connection is returned. Enabling this + setting speeds up connections in a + connection pool environment. Your + application will not be informed of any + changes to configuration variables made + by other connections. This option was + added in Connector/Net 6.3. +`Connection Lifetime', 0 When a connection is returned to the +`ConnectionLifeTime' pool, its creation time is compared with the current time, and the connection is destroyed if that time span (in seconds) exceeds the value @@ -186673,10 +188294,18 @@ just brought online. A value of zero (0) causes pooled connections to have the maximum connection timeout. -`Max Pool Size' 100 The maximum number of connections - allowed in the pool. -`Min Pool Size' 0 The minimum number of connections - allowed in the pool. +`Connection Reset', false If true, the connection state will be +`ConnectionReset' reset when it is retrieved from the + pool. The default value of false avoids + making an additional server round trip + when obtaining a connection, but the + connection state is not reset. +`Maximum Pool Size', 100 The maximum number of connections +`Max Pool Size', allowed in the pool. +`maximumpoolsize' +`Minimum Pool Size', 0 The minimum number of connections +`Min Pool Size', allowed in the pool. +`MinimumPoolSize' `Pooling' true When `true', the `MySqlConnection' object is drawn from the appropriate pool, or if necessary, is created and @@ -186708,6 +188337,8 @@ * Menu: * connector-net-ref-mysqlclienthierarchy:: `MySql.Data.MySqlClientHierarchy' +* connector-net-ref-mysqlclient-basecommandinterceptor:: `BaseCommandInterceptor' +* connector-net-ref-mysqlclient-baseexceptioninterceptor:: `BaseExceptionInterceptor' * connector-net-ref-mysqlclient-mysqlcommand:: `MySqlCommand' Class * connector-net-ref-mysqlclient-mysqlcommandbuilder:: `MySqlCommandBuilder' Class * connector-net-ref-mysqlclient-mysqlexception:: `MySqlException' Class @@ -186719,6 +188350,19 @@ *Classes* Class Description +*Note BaseCommandInterceptor: Provides a means of enhancing or +connector-net-ref-mysqlclient-basecommandinterceptor.replacing SQL commands through the + connection string rather than + recompiling. +*Note BaseExceptionInterceptor: Provides a means of enabling and +connector-net-ref-mysqlclient-baseexceptioninterceptor.disabling exception handling through + the connection string rather than + recompiling. +MySqlClientPermission Derived from the .NET + DBDataPermission + (http://msdn.microsoft.com/en-us/library/system.data.common.dbdatapermission.aspx) + class. For usage information, see + *Note connector-net-medium-trust::. *Note MySqlCommand: connector-net-ref-mysqlclient-mysqlcommand. *Note MySqlCommandBuilder: @@ -186743,8 +188387,8 @@ inherited. *Note MySqlParameter: Represents a parameter to a *Note connector-net-ref-mysqlclient-mysqlparameter.MySqlCommand: - connector-net-ref-mysqlclient-mysqlcommand - , and optionally, its mapping to + connector-net-ref-mysqlclient-mysqlcommand, + and optionally, its mapping to DataSetcolumns. This class cannot be inherited. *Note MySqlParameterCollection: Represents a collection of @@ -186774,27 +188418,24 @@ *Note MySqlRowUpdatedEventHandler: Represents the method that will connector-net-ref-mysqlclient-mysqlrowupdatedeventhandler.handle the RowUpdatedevent of a *Note MySqlDataAdapter: - connector-net-ref-mysqlclient-mysqldataadapter - . + connector-net-ref-mysqlclient-mysqldataadapter. *Note MySqlRowUpdatingEventHandler: Represents the method that will connector-net-ref-mysqlclient-mysqlrowupdatingeventhandler.handle the RowUpdatingevent of a *Note MySqlDataAdapter: - connector-net-ref-mysqlclient-mysqldataadapter - . + connector-net-ref-mysqlclient-mysqldataadapter. *Enumerations* Enumeration Description -*Note MySqlDbType: Specifies MySQL specific data type +*Note MySqlDbType: Specifies MySQL-specific data type connector-net-ref-mysqlclient-mysqldbtype.of a field, property, for use in a *Note MySqlParameter: - connector-net-ref-mysqlclient-mysqlparameter - . + connector-net-ref-mysqlclient-mysqlparameter. *Note MySqlErrorCode: connector-net-ref-mysqlclient-mysqlerrorcode.  -File: manual.info, Node: connector-net-ref-mysqlclienthierarchy, Next: connector-net-ref-mysqlclient-mysqlcommand, Prev: connector-net-ref-mysqlclient, Up: connector-net-ref-mysqlclient +File: manual.info, Node: connector-net-ref-mysqlclienthierarchy, Next: connector-net-ref-mysqlclient-basecommandinterceptor, Prev: connector-net-ref-mysqlclient, Up: connector-net-ref-mysqlclient 22.2.7.2 `MySql.Data.MySqlClientHierarchy' .......................................... @@ -186804,9 +188445,60 @@ *Note MySql.Data.MySqlClient Namespace: connector-net-ref-mysqlclient.  -File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommand, Next: connector-net-ref-mysqlclient-mysqlcommandbuilder, Prev: connector-net-ref-mysqlclienthierarchy, Up: connector-net-ref-mysqlclient +File: manual.info, Node: connector-net-ref-mysqlclient-basecommandinterceptor, Next: connector-net-ref-mysqlclient-baseexceptioninterceptor, Prev: connector-net-ref-mysqlclienthierarchy, Up: connector-net-ref-mysqlclient + +22.2.7.3 `BaseCommandInterceptor' +................................. + +The `BaseCommandInterceptor' class has these methods that you can +override: + + public virtual bool ExecuteScalar(string sql, ref object returnValue); + public virtual bool ExecuteNonQuery(string sql, ref int returnValue); + public virtual bool ExecuteReader(string sql, CommandBehavior behavior, ref MySqlDataReader returnValue); + public virtual void Init(MySqlConnection connection); + +If your interceptor overrides one of the `Execute...' methods, set the +`returnValue' output parameter and return `true' if you handled the +event, or `false' if you did not handle the event. The SQL command is +processed normally only when all command interceptors return `false'. + +The connection passed to the `Init' method is the connection that is +attached to this interceptor. + +For full usage and examples, see *Note connector-net-interceptors::. + + +File: manual.info, Node: connector-net-ref-mysqlclient-baseexceptioninterceptor, Next: connector-net-ref-mysqlclient-mysqlcommand, Prev: connector-net-ref-mysqlclient-basecommandinterceptor, Up: connector-net-ref-mysqlclient + +22.2.7.4 `BaseExceptionInterceptor' +................................... + +You develop an exception interceptor first by creating a subclass of +the `BaseExceptionInterceptor' class. You must override the +`InterceptException()' method. You can also override the `Init()' +method to do some one-time initialization. + +Each exception interceptor has 2 methods: + + public abstract Exception InterceptException(Exception exception, + MySqlConnection connection); + public virtual void Init(MySqlConnection connection); + +The connection passed to `Init()' is the connection that is attached to +this interceptor. + +Each interceptor is required to override `InterceptException' and +return an exception. It can return the exception it is given, or it +can wrap it in a new exception. We currently do not offer the ability +to suppress the exception. + +For full usage and examples, see *Note connector-net-interceptors::. + + +File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommand, Next: connector-net-ref-mysqlclient-mysqlcommandbuilder, Prev: connector-net-ref-mysqlclient-baseexceptioninterceptor, Up: connector-net-ref-mysqlclient -22.2.7.3 `MySqlCommand' Class +22.2.7.5 `MySqlCommand' Class ............................. * Menu: @@ -186814,7 +188506,7 @@ * connector-net-ref-mysqlclient-mysqlcommandmembers:: `MySqlCommand' Members For a list of all members of this type, see *Note MySqlCommand Members: -connector-net-ref-mysqlclient-mysqlcommandmembers . +connector-net-ref-mysqlclient-mysqlcommandmembers. *Syntax: Visual Basic* @@ -186847,7 +188539,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommandmembers, Prev: connector-net-ref-mysqlclient-mysqlcommand, Up: connector-net-ref-mysqlclient-mysqlcommand -22.2.7.4 `MySqlCommand' Members +22.2.7.6 `MySqlCommand' Members ............................... * Menu: @@ -186885,13 +188577,13 @@ connector-net-ref-mysqlclient-mysqlcommand-commandtype. *Note Connection: connector-net-ref-mysqlclient-mysqlcommand-connection. -Container(inherited from Component) Gets the IContainerthat contains +Container (inherited from Component) Gets the IContainer that contains the Component. *Note IsPrepared: connector-net-ref-mysqlclient-mysqlcommand-isprepared. *Note Parameters: connector-net-ref-mysqlclient-mysqlcommand-parameters. -Site(inherited from Component) Gets or sets the ISiteof the +Site (inherited from Component) Gets or sets the ISite of the Component. *Note Transaction: connector-net-ref-mysqlclient-mysqlcommand-transaction. @@ -186903,7 +188595,7 @@ *Note Cancel: Attempts to cancel the execution of connector-net-ref-mysqlclient-mysqlcommand-cancel.a MySqlCommand. This operation is not supported. -CreateObjRef(inherited from Creates an object that contains all +CreateObjRef (inherited from Creates an object that contains all MarshalByRefObject) the relevant information required to generate a proxy used to communicate with a remote object. @@ -186911,10 +188603,10 @@ connector-net-ref-mysqlclient-mysqlcommand-createparameter.MySqlParameter: connector-net-ref-mysqlclient-mysqlparameter. object. -Dispose(inherited from Component) Releases all resources used by the +Dispose (inherited from Component) Releases all resources used by the Component. -Equals(inherited from Object) Determines whether the specified - Objectis equal to the current +Equals (inherited from Object) Determines whether the specified + Object is equal to the current Object. *Note ExecuteNonQuery: connector-net-ref-mysqlclient-mysqlcommand-executenonquery. @@ -186922,29 +188614,29 @@ connector-net-ref-mysqlclient-mysqlcommand-executereader-overloads. *Note ExecuteScalar: connector-net-ref-mysqlclient-mysqlcommand-executescalar. -GetHashCode(inherited from Object) Serves as a hash function for a - particular type. GetHashCodeis +GetHashCode (inherited from Object) Serves as a hash function for a + particular type. GetHashCode is suitable for use in hashing algorithms and data structures like a hash table. -GetLifetimeService(inherited from Retrieves the current lifetime +GetLifetimeService (inherited from Retrieves the current lifetime MarshalByRefObject) service object that controls the lifetime policy for this instance. -GetType(inherited from Object) Gets the Typeof the current +GetType (inherited from Object) Gets the Type of the current instance. -InitializeLifetimeService(inherited Obtains a lifetime service object -from MarshalByRefObject) to control the lifetime policy for +InitializeLifetimeService Obtains a lifetime service object +(inherited from MarshalByRefObject) to control the lifetime policy for this instance. *Note Prepare: connector-net-ref-mysqlclient-mysqlcommand-prepare. -ToString(inherited from Component) Returns a Stringcontaining the name - of the Component, if any. This +ToString (inherited from Component) Returns a String containing the + name of the Component, if any. This method should not be overridden. *Public Instance Events* -Disposed(inherited from Component) Adds an event handler to listen to - the Disposedevent on the component. +Disposed (inherited from Component) Adds an event handler to listen to + the Disposed event on the component. *See Also* @@ -186954,7 +188646,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommandconstructor, Next: connector-net-ref-mysqlclient-mysqlcommand-commandtext, Prev: connector-net-ref-mysqlclient-mysqlcommandmembers, Up: connector-net-ref-mysqlclient-mysqlcommandmembers -22.2.7.5 `MySqlCommand' Constructor +22.2.7.7 `MySqlCommand' Constructor ................................... * Menu: @@ -186992,7 +188684,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommandconstructor1, Next: connector-net-ref-mysqlclient-mysqlcommandconstructor2, Prev: connector-net-ref-mysqlclient-mysqlcommandconstructor, Up: connector-net-ref-mysqlclient-mysqlcommandconstructor -22.2.7.6 `MySqlCommand' Constructor () +22.2.7.8 `MySqlCommand' Constructor () ...................................... Initializes a new instance of the *Note MySqlCommand: @@ -187016,7 +188708,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommandconstructor2, Next: connector-net-ref-mysqlclient-mysqlcommandconstructor3, Prev: connector-net-ref-mysqlclient-mysqlcommandconstructor1, Up: connector-net-ref-mysqlclient-mysqlcommandconstructor -22.2.7.7 `MySqlCommand' Constructor (String) +22.2.7.9 `MySqlCommand' Constructor (String) ............................................ *Syntax: Visual Basic* @@ -187041,8 +188733,8 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommandconstructor3, Next: connector-net-ref-mysqlclient-mysqlcommandconstructor4, Prev: connector-net-ref-mysqlclient-mysqlcommandconstructor2, Up: connector-net-ref-mysqlclient-mysqlcommandconstructor -22.2.7.8 `MySqlCommand' Constructor -................................... +22.2.7.10 `MySqlCommand' Constructor +.................................... * Menu: @@ -187072,8 +188764,8 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlconnection, Prev: connector-net-ref-mysqlclient-mysqlcommandconstructor3, Up: connector-net-ref-mysqlclient-mysqlcommandconstructor3 -22.2.7.9 `MySqlConnection' Class -................................ +22.2.7.11 `MySqlConnection' Class +................................. * Menu: @@ -187113,7 +188805,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlconnectionmembers, Prev: connector-net-ref-mysqlclient-mysqlconnection, Up: connector-net-ref-mysqlclient-mysqlconnection -22.2.7.10 `MySqlConnection' Members +22.2.7.12 `MySqlConnection' Members ................................... * Menu: @@ -187151,17 +188843,17 @@ connector-net-ref-mysqlclient-mysqlconnection-connectionstring. *Note ConnectionTimeout: connector-net-ref-mysqlclient-mysqlconnection-connectiontimeout. -Container(inherited from Component) Gets the IContainerthat contains +Container (inherited from Component) Gets the IContainer that contains the Component. *Note Database: connector-net-ref-mysqlclient-mysqlconnection-database. *Note DataSource: Gets the name of the MySQL server connector-net-ref-mysqlclient-mysqlconnection-datasource.to which to connect. -*Note ServerThread: Returns the id of the server thread -connector-net-ref-mysqlclient-mysqlconnection-serverthread.this connection is executing on +*Note ServerThread: Returns the ID of the server thread +connector-net-ref-mysqlclient-mysqlconnection-serverthread.this connection is executing on. *Note ServerVersion: connector-net-ref-mysqlclient-mysqlconnection-serverversion. -Site(inherited from Component) Gets or sets the ISiteof the +Site (inherited from Component) Gets or sets the ISite of the Component. *Note State: connector-net-ref-mysqlclient-mysqlconnection-state. @@ -187179,40 +188871,40 @@ connector-net-ref-mysqlclient-mysqlconnection-close. *Note CreateCommand: connector-net-ref-mysqlclient-mysqlconnection-createcommand. -CreateObjRef(inherited from Creates an object that contains all +CreateObjRef (inherited from Creates an object that contains all MarshalByRefObject) the relevant information required to generate a proxy used to communicate with a remote object. -Dispose(inherited from Component) Releases all resources used by the +Dispose (inherited from Component) Releases all resources used by the Component. -Equals(inherited from Object) Determines whether the specified - Objectis equal to the current +Equals (inherited from Object) Determines whether the specified + Object is equal to the current Object. -GetHashCode(inherited from Object) Serves as a hash function for a - particular type. GetHashCodeis +GetHashCode (inherited from Object) Serves as a hash function for a + particular type. GetHashCode is suitable for use in hashing algorithms and data structures like a hash table. -GetLifetimeService(inherited from Retrieves the current lifetime +GetLifetimeService (inherited from Retrieves the current lifetime MarshalByRefObject) service object that controls the lifetime policy for this instance. -GetType(inherited from Object) Gets the Typeof the current +GetType (inherited from Object) Gets the Type of the current instance. -InitializeLifetimeService(inherited Obtains a lifetime service object -from MarshalByRefObject) to control the lifetime policy for +InitializeLifetimeService Obtains a lifetime service object +(inherited from MarshalByRefObject) to control the lifetime policy for this instance. *Note Open: connector-net-ref-mysqlclient-mysqlconnection-open. *Note Ping: Ping connector-net-ref-mysqlclient-mysqlconnection-ping. -ToString(inherited from Component) Returns a Stringcontaining the name - of the Component, if any. This +ToString (inherited from Component) Returns a String containing the + name of the Component, if any. This method should not be overridden. *Public Instance Events* -Disposed(inherited from Component) Adds an event handler to listen to - the Disposedevent on the component. +Disposed (inherited from Component) Adds an event handler to listen to + the Disposed event on the component. *Note InfoMessage: connector-net-ref-mysqlclient-mysqlconnection-infomessage. *Note StateChange: @@ -187227,7 +188919,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlconnectionconstructor, Next: connector-net-ref-mysqlclient-mysqlconnection-connectionstring, Prev: connector-net-ref-mysqlclient-mysqlconnectionmembers, Up: connector-net-ref-mysqlclient-mysqlconnectionmembers -22.2.7.11 `MySqlConnection' Constructor +22.2.7.13 `MySqlConnection' Constructor ....................................... * Menu: @@ -187258,7 +188950,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlconnectionconstructor1, Next: connector-net-ref-mysqlclient-mysqlconnectionconstructor2, Prev: connector-net-ref-mysqlclient-mysqlconnectionconstructor, Up: connector-net-ref-mysqlclient-mysqlconnectionconstructor -22.2.7.12 `MySqlConnection' Constructor +22.2.7.14 `MySqlConnection' Constructor ....................................... Initializes a new instance of the *Note MySqlConnection: @@ -187283,7 +188975,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlconnectionconstructor2, Prev: connector-net-ref-mysqlclient-mysqlconnectionconstructor1, Up: connector-net-ref-mysqlclient-mysqlconnectionconstructor -22.2.7.13 `MySqlConnection' Constructor +22.2.7.15 `MySqlConnection' Constructor ....................................... *Syntax: Visual Basic* @@ -187309,7 +189001,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlconnection-connectionstring, Next: connector-net-ref-mysqlclient-mysqlconnection-connectiontimeout, Prev: connector-net-ref-mysqlclient-mysqlconnectionconstructor, Up: connector-net-ref-mysqlclient-mysqlconnectionmembers -22.2.7.14 ConnectionString Property +22.2.7.16 ConnectionString Property ................................... *Syntax: Visual Basic* @@ -187335,7 +189027,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlconnection-connectiontimeout, Next: connector-net-ref-mysqlclient-mysqlconnection-database, Prev: connector-net-ref-mysqlclient-mysqlconnection-connectionstring, Up: connector-net-ref-mysqlclient-mysqlconnectionmembers -22.2.7.15 ConnectionTimeout Property +22.2.7.17 ConnectionTimeout Property .................................... *Syntax: Visual Basic* @@ -187361,7 +189053,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlconnection-database, Next: connector-net-ref-mysqlclient-mysqlconnection-datasource, Prev: connector-net-ref-mysqlclient-mysqlconnection-connectiontimeout, Up: connector-net-ref-mysqlclient-mysqlconnectionmembers -22.2.7.16 Database Property +22.2.7.18 Database Property ........................... *Syntax: Visual Basic* @@ -187387,7 +189079,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlconnection-datasource, Next: connector-net-ref-mysqlclient-mysqlconnection-serverthread, Prev: connector-net-ref-mysqlclient-mysqlconnection-database, Up: connector-net-ref-mysqlclient-mysqlconnectionmembers -22.2.7.17 DataSource Property +22.2.7.19 DataSource Property ............................. Gets the name of the MySQL server to which to connect. @@ -187409,10 +189101,10 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlconnection-serverthread, Next: connector-net-ref-mysqlclient-mysqlconnection-serverversion, Prev: connector-net-ref-mysqlclient-mysqlconnection-datasource, Up: connector-net-ref-mysqlclient-mysqlconnectionmembers -22.2.7.18 ServerThread Property +22.2.7.20 ServerThread Property ............................... -Returns the id of the server thread this connection is executing on +Returns the ID of the server thread this connection is executing on *Syntax: Visual Basic* @@ -187431,7 +189123,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlconnection-serverversion, Next: connector-net-ref-mysqlclient-mysqlconnection-state, Prev: connector-net-ref-mysqlclient-mysqlconnection-serverthread, Up: connector-net-ref-mysqlclient-mysqlconnectionmembers -22.2.7.19 ServerVersion Property +22.2.7.21 ServerVersion Property ................................ *Syntax: Visual Basic* @@ -187451,7 +189143,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlconnection-state, Next: connector-net-ref-mysqlclient-mysqlconnection-usecompression, Prev: connector-net-ref-mysqlclient-mysqlconnection-serverversion, Up: connector-net-ref-mysqlclient-mysqlconnectionmembers -22.2.7.20 State Property +22.2.7.22 State Property ........................ *Syntax: Visual Basic* @@ -187477,7 +189169,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlconnection-usecompression, Next: connector-net-ref-mysqlclient-mysqlconnection-begintransaction-overloads, Prev: connector-net-ref-mysqlclient-mysqlconnection-state, Up: connector-net-ref-mysqlclient-mysqlconnectionmembers -22.2.7.21 UseCompression Property +22.2.7.23 UseCompression Property ................................. Indicates if this connection should use compression when communicating @@ -187500,7 +189192,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlconnection-begintransaction-overloads, Next: connector-net-ref-mysqlclient-mysqlconnection-changedatabase, Prev: connector-net-ref-mysqlclient-mysqlconnection-usecompression, Up: connector-net-ref-mysqlclient-mysqlconnectionmembers -22.2.7.22 BeginTransaction Method +22.2.7.24 BeginTransaction Method ................................. * Menu: @@ -187525,7 +189217,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlconnection-begintransaction-overload-1, Next: connector-net-ref-mysqlclient-mysqlconnection-begintransaction-overload-2, Prev: connector-net-ref-mysqlclient-mysqlconnection-begintransaction-overloads, Up: connector-net-ref-mysqlclient-mysqlconnection-begintransaction-overloads -22.2.7.23 `MySqlConnection.BeginTransaction' Method +22.2.7.25 `MySqlConnection.BeginTransaction' Method ................................................... * Menu: @@ -187551,7 +189243,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqltransaction, Prev: connector-net-ref-mysqlclient-mysqlconnection-begintransaction-overload-1, Up: connector-net-ref-mysqlclient-mysqlconnection-begintransaction-overload-1 -22.2.7.24 `MySqlTransaction' Class +22.2.7.26 `MySqlTransaction' Class .................................. * Menu: @@ -187572,8 +189264,8 @@ *Thread Safety* -Public static (Sharedin Visual Basic) members of this type are safe for -multithreaded operations. Instance members are notguaranteed to be +Public static (Shared in Visual Basic) members of this type are safe +for multithreaded operations. Instance members are not guaranteed to be thread-safe. *Requirements* @@ -187591,7 +189283,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqltransactionmembers, Prev: connector-net-ref-mysqlclient-mysqltransaction, Up: connector-net-ref-mysqlclient-mysqltransaction -22.2.7.25 `MySqlTransaction' Members +22.2.7.27 `MySqlTransaction' Members .................................... * Menu: @@ -187612,27 +189304,27 @@ transaction, or a null reference (Nothing in Visual Basic) if the transaction is no longer valid. -*Note IsolationLevel: Specifies the IsolationLevelfor +*Note IsolationLevel: Specifies the IsolationLevel for connector-net-ref-mysqlclient-mysqltransaction-isolationlevel.this transaction. *Public Instance Methods* *Note Commit: connector-net-ref-mysqlclient-mysqltransaction-commit. -Equals(inherited from Object) Determines whether the specified - Objectis equal to the current +Equals (inherited from Object) Determines whether the specified + Object is equal to the current Object. -GetHashCode(inherited from Object) Serves as a hash function for a - particular type. GetHashCodeis +GetHashCode (inherited from Object) Serves as a hash function for a + particular type. GetHashCode is suitable for use in hashing algorithms and data structures like a hash table. -GetType(inherited from Object) Gets the Typeof the current +GetType (inherited from Object) Gets the Type of the current instance. *Note Rollback: connector-net-ref-mysqlclient-mysqltransaction-rollback. -ToString(inherited from Object) Returns a Stringthat represents the - current Object. +ToString (inherited from Object) Returns a String that represents + the current Object. *See Also* @@ -187643,7 +189335,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqltransaction-connection, Next: connector-net-ref-mysqlclient-mysqltransaction-isolationlevel, Prev: connector-net-ref-mysqlclient-mysqltransactionmembers, Up: connector-net-ref-mysqlclient-mysqltransactionmembers -22.2.7.26 Connection Property +22.2.7.28 Connection Property ............................. Gets the *Note MySqlConnection: @@ -187671,8 +189363,7 @@ zero or more transactions. This property enables you to determine the connection object associated with a particular transaction created by *Note BeginTransaction: -connector-net-ref-mysqlclient-mysqlconnection-begintransaction-overload-1 -. +connector-net-ref-mysqlclient-mysqlconnection-begintransaction-overload-1. *See Also* @@ -187683,10 +189374,10 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqltransaction-isolationlevel, Next: connector-net-ref-mysqlclient-mysqltransaction-commit, Prev: connector-net-ref-mysqlclient-mysqltransaction-connection, Up: connector-net-ref-mysqlclient-mysqltransactionmembers -22.2.7.27 IsolationLevel Property +22.2.7.29 IsolationLevel Property ................................. -Specifies the IsolationLevelfor this transaction. +Specifies the IsolationLevel for this transaction. *Syntax: Visual Basic* @@ -187720,7 +189411,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqltransaction-commit, Next: connector-net-ref-mysqlclient-mysqltransaction-rollback, Prev: connector-net-ref-mysqlclient-mysqltransaction-isolationlevel, Up: connector-net-ref-mysqlclient-mysqltransactionmembers -22.2.7.28 `MySqlTransaction.Commit' Method +22.2.7.30 `MySqlTransaction.Commit' Method .......................................... *Syntax: Visual Basic* @@ -187746,7 +189437,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqltransaction-rollback, Prev: connector-net-ref-mysqlclient-mysqltransaction-commit, Up: connector-net-ref-mysqlclient-mysqltransactionmembers -22.2.7.29 `MySqlTransaction.Rollback' Method +22.2.7.31 `MySqlTransaction.Rollback' Method ............................................ *Syntax: Visual Basic* @@ -187772,7 +189463,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlconnection-begintransaction-overload-2, Prev: connector-net-ref-mysqlclient-mysqlconnection-begintransaction-overload-1, Up: connector-net-ref-mysqlclient-mysqlconnection-begintransaction-overloads -22.2.7.30 `MySqlConnection.BeginTransaction' Method +22.2.7.32 `MySqlConnection.BeginTransaction' Method ................................................... *Syntax: Visual Basic* @@ -187798,7 +189489,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlconnection-changedatabase, Next: connector-net-ref-mysqlclient-mysqlconnection-close, Prev: connector-net-ref-mysqlclient-mysqlconnection-begintransaction-overloads, Up: connector-net-ref-mysqlclient-mysqlconnectionmembers -22.2.7.31 `MySqlConnection.ChangeDatabase' Method +22.2.7.33 `MySqlConnection.ChangeDatabase' Method ................................................. *Syntax: Visual Basic* @@ -187828,7 +189519,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlconnection-close, Next: connector-net-ref-mysqlclient-mysqlconnection-createcommand, Prev: connector-net-ref-mysqlclient-mysqlconnection-changedatabase, Up: connector-net-ref-mysqlclient-mysqlconnectionmembers -22.2.7.32 `MySqlConnection.Close' Method +22.2.7.34 `MySqlConnection.Close' Method ........................................ *Syntax: Visual Basic* @@ -187854,7 +189545,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlconnection-createcommand, Next: connector-net-ref-mysqlclient-mysqlconnection-open, Prev: connector-net-ref-mysqlclient-mysqlconnection-close, Up: connector-net-ref-mysqlclient-mysqlconnectionmembers -22.2.7.33 `MySqlConnection.CreateCommand' Method +22.2.7.35 `MySqlConnection.CreateCommand' Method ................................................ *Syntax: Visual Basic* @@ -187874,7 +189565,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlconnection-open, Next: connector-net-ref-mysqlclient-mysqlconnection-ping, Prev: connector-net-ref-mysqlclient-mysqlconnection-createcommand, Up: connector-net-ref-mysqlclient-mysqlconnectionmembers -22.2.7.34 `MySqlConnection.Open' Method +22.2.7.36 `MySqlConnection.Open' Method ....................................... *Syntax: Visual Basic* @@ -187900,7 +189591,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlconnection-ping, Next: connector-net-ref-mysqlclient-mysqlconnection-infomessage, Prev: connector-net-ref-mysqlclient-mysqlconnection-open, Up: connector-net-ref-mysqlclient-mysqlconnectionmembers -22.2.7.35 `MySqlConnection.Ping' Method +22.2.7.37 `MySqlConnection.Ping' Method ....................................... Ping @@ -187924,7 +189615,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlconnection-infomessage, Next: connector-net-ref-mysqlclient-mysqlconnection-statechange, Prev: connector-net-ref-mysqlclient-mysqlconnection-ping, Up: connector-net-ref-mysqlclient-mysqlconnectionmembers -22.2.7.36 `MySqlConnection.InfoMessage' Event +22.2.7.38 `MySqlConnection.InfoMessage' Event ............................................. * Menu: @@ -187948,7 +189639,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlinfomessageeventhandler, Prev: connector-net-ref-mysqlclient-mysqlconnection-infomessage, Up: connector-net-ref-mysqlclient-mysqlconnection-infomessage -22.2.7.37 `MySqlInfoMessageEventHandler' Delegate +22.2.7.39 `MySqlInfoMessageEventHandler' Delegate ................................................. * Menu: @@ -187957,7 +189648,7 @@ Represents the method that will handle the *Note InfoMessage: connector-net-ref-mysqlclient-mysqlconnection-infomessage. event of a -*Note MySqlConnection: connector-net-ref-mysqlclient-mysqlconnection . +*Note MySqlConnection: connector-net-ref-mysqlclient-mysqlconnection. *Syntax: Visual Basic* @@ -187986,7 +189677,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlinfomessageeventargs, Prev: connector-net-ref-mysqlclient-mysqlinfomessageeventhandler, Up: connector-net-ref-mysqlclient-mysqlinfomessageeventhandler -22.2.7.38 `MySqlInfoMessageEventArgs' Class +22.2.7.40 `MySqlInfoMessageEventArgs' Class ........................................... * Menu: @@ -188010,8 +189701,8 @@ *Thread Safety* -Public static (Sharedin Visual Basic) members of this type are safe for -multithreaded operations. Instance members are notguaranteed to be +Public static (Shared in Visual Basic) members of this type are safe +for multithreaded operations. Instance members are not guaranteed to be thread-safe. *Requirements* @@ -188029,7 +189720,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlinfomessageeventargsmembers, Prev: connector-net-ref-mysqlclient-mysqlinfomessageeventargs, Up: connector-net-ref-mysqlclient-mysqlinfomessageeventargs -22.2.7.39 `MySqlInfoMessageEventArgs' Members +22.2.7.41 `MySqlInfoMessageEventArgs' Members ............................................. * Menu: @@ -188054,26 +189745,26 @@ *Public Instance Methods* -Equals(inherited from Object) Determines whether the specified - Objectis equal to the current +Equals (inherited from Object) Determines whether the specified + Object is equal to the current Object. -GetHashCode(inherited from Object) Serves as a hash function for a - particular type. GetHashCodeis +GetHashCode (inherited from Object) Serves as a hash function for a + particular type. GetHashCode is suitable for use in hashing algorithms and data structures like a hash table. -GetType(inherited from Object) Gets the Typeof the current +GetType (inherited from Object) Gets the Type of the current instance. -ToString(inherited from Object) Returns a Stringthat represents the - current Object. +ToString (inherited from Object) Returns a String that represents + the current Object. *Protected Instance Methods* -Finalize(inherited from Object) Allows an Objectto attempt to free +Finalize (inherited from Object) Allows an Object to attempt to free resources and perform other cleanup - operations before the Objectis + operations before the Object is reclaimed by garbage collection. -MemberwiseClone(inherited from Creates a shallow copy of the +MemberwiseClone (inherited from Creates a shallow copy of the Object) current Object. *See Also* @@ -188085,7 +189776,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlinfomessageeventargsconstructor, Next: connector-net-ref-mysqlclient-mysqlinfomessageeventargs-errors, Prev: connector-net-ref-mysqlclient-mysqlinfomessageeventargsmembers, Up: connector-net-ref-mysqlclient-mysqlinfomessageeventargsmembers -22.2.7.40 `MySqlInfoMessageEventArgs' Constructor +22.2.7.42 `MySqlInfoMessageEventArgs' Constructor ................................................. Initializes a new instance of the *Note MySqlInfoMessageEventArgs: @@ -188108,7 +189799,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlinfomessageeventargs-errors, Prev: connector-net-ref-mysqlclient-mysqlinfomessageeventargsconstructor, Up: connector-net-ref-mysqlclient-mysqlinfomessageeventargsmembers -22.2.7.41 `MySqlInfoMessageEventArgs.errors' Field +22.2.7.43 `MySqlInfoMessageEventArgs.errors' Field .................................................. * Menu: @@ -188132,7 +189823,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlerror, Prev: connector-net-ref-mysqlclient-mysqlinfomessageeventargs-errors, Up: connector-net-ref-mysqlclient-mysqlinfomessageeventargs-errors -22.2.7.42 `MySqlError' Class +22.2.7.44 `MySqlError' Class ............................ * Menu: @@ -188173,7 +189864,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlerrormembers, Prev: connector-net-ref-mysqlclient-mysqlerror, Up: connector-net-ref-mysqlclient-mysqlerror -22.2.7.43 `MySqlError' Members +22.2.7.45 `MySqlError' Members .............................. * Menu: @@ -188201,26 +189892,26 @@ *Public Instance Methods* -Equals(inherited from Object) Determines whether the specified - Objectis equal to the current +Equals (inherited from Object) Determines whether the specified + Object is equal to the current Object. -GetHashCode(inherited from Object) Serves as a hash function for a - particular type. GetHashCodeis +GetHashCode (inherited from Object) Serves as a hash function for a + particular type. GetHashCode is suitable for use in hashing algorithms and data structures like a hash table. -GetType(inherited from Object) Gets the Typeof the current +GetType (inherited from Object) Gets the Type of the current instance. -ToString(inherited from Object) Returns a Stringthat represents the - current Object. +ToString (inherited from Object) Returns a String that represents + the current Object. *Protected Instance Methods* -Finalize(inherited from Object) Allows an Objectto attempt to free +Finalize (inherited from Object) Allows an Object to attempt to free resources and perform other cleanup - operations before the Objectis + operations before the Object is reclaimed by garbage collection. -MemberwiseClone(inherited from Creates a shallow copy of the +MemberwiseClone (inherited from Creates a shallow copy of the Object) current Object. *See Also* @@ -188231,7 +189922,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlerrorconstructor, Next: connector-net-ref-mysqlclient-mysqlerror-code, Prev: connector-net-ref-mysqlclient-mysqlerrormembers, Up: connector-net-ref-mysqlclient-mysqlerrormembers -22.2.7.44 `MySqlError' Constructor +22.2.7.46 `MySqlError' Constructor .................................. *Syntax: Visual Basic* @@ -188266,7 +189957,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlerror-code, Next: connector-net-ref-mysqlclient-mysqlerror-level, Prev: connector-net-ref-mysqlclient-mysqlerrorconstructor, Up: connector-net-ref-mysqlclient-mysqlerrormembers -22.2.7.45 Code Property +22.2.7.47 Code Property ....................... Error code @@ -188287,7 +189978,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlerror-level, Next: connector-net-ref-mysqlclient-mysqlerror-message, Prev: connector-net-ref-mysqlclient-mysqlerror-code, Up: connector-net-ref-mysqlclient-mysqlerrormembers -22.2.7.46 Level Property +22.2.7.48 Level Property ........................ Error level @@ -188308,7 +189999,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlerror-message, Prev: connector-net-ref-mysqlclient-mysqlerror-level, Up: connector-net-ref-mysqlclient-mysqlerrormembers -22.2.7.47 Message Property +22.2.7.49 Message Property .......................... Error message @@ -188329,7 +190020,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlconnection-statechange, Prev: connector-net-ref-mysqlclient-mysqlconnection-infomessage, Up: connector-net-ref-mysqlclient-mysqlconnectionmembers -22.2.7.48 `MySqlConnection.StateChange' Event +22.2.7.50 `MySqlConnection.StateChange' Event ............................................. *Syntax: Visual Basic* @@ -188349,7 +190040,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommandconstructor4, Prev: connector-net-ref-mysqlclient-mysqlcommandconstructor3, Up: connector-net-ref-mysqlclient-mysqlcommandconstructor -22.2.7.49 `MySqlCommand' Constructor +22.2.7.51 `MySqlCommand' Constructor .................................... *Syntax: Visual Basic* @@ -188378,7 +190069,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommand-commandtext, Next: connector-net-ref-mysqlclient-mysqlcommand-commandtimeout, Prev: connector-net-ref-mysqlclient-mysqlcommandconstructor, Up: connector-net-ref-mysqlclient-mysqlcommandmembers -22.2.7.50 CommandText Property +22.2.7.52 CommandText Property .............................. *Syntax: Visual Basic* @@ -188403,7 +190094,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommand-commandtimeout, Next: connector-net-ref-mysqlclient-mysqlcommand-commandtype, Prev: connector-net-ref-mysqlclient-mysqlcommand-commandtext, Up: connector-net-ref-mysqlclient-mysqlcommandmembers -22.2.7.51 CommandTimeout Property +22.2.7.53 CommandTimeout Property ................................. *Syntax: Visual Basic* @@ -188428,7 +190119,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommand-commandtype, Next: connector-net-ref-mysqlclient-mysqlcommand-connection, Prev: connector-net-ref-mysqlclient-mysqlcommand-commandtimeout, Up: connector-net-ref-mysqlclient-mysqlcommandmembers -22.2.7.52 CommandType Property +22.2.7.54 CommandType Property .............................. *Syntax: Visual Basic* @@ -188453,7 +190144,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommand-connection, Next: connector-net-ref-mysqlclient-mysqlcommand-isprepared, Prev: connector-net-ref-mysqlclient-mysqlcommand-commandtype, Up: connector-net-ref-mysqlclient-mysqlcommandmembers -22.2.7.53 Connection Property +22.2.7.55 Connection Property ............................. *Syntax: Visual Basic* @@ -188472,7 +190163,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommand-isprepared, Next: connector-net-ref-mysqlclient-mysqlcommand-parameters, Prev: connector-net-ref-mysqlclient-mysqlcommand-connection, Up: connector-net-ref-mysqlclient-mysqlcommandmembers -22.2.7.54 IsPrepared Property +22.2.7.56 IsPrepared Property ............................. *Syntax: Visual Basic* @@ -188491,7 +190182,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommand-parameters, Next: connector-net-ref-mysqlclient-mysqlcommand-transaction, Prev: connector-net-ref-mysqlclient-mysqlcommand-isprepared, Up: connector-net-ref-mysqlclient-mysqlcommandmembers -22.2.7.55 Parameters Property +22.2.7.57 Parameters Property ............................. * Menu: @@ -188514,7 +190205,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparametercollection, Prev: connector-net-ref-mysqlclient-mysqlcommand-parameters, Up: connector-net-ref-mysqlclient-mysqlcommand-parameters -22.2.7.56 `MySqlParameterCollection' Class +22.2.7.58 `MySqlParameterCollection' Class .......................................... * Menu: @@ -188561,7 +190252,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparametercollectionmembers, Prev: connector-net-ref-mysqlclient-mysqlparametercollection, Up: connector-net-ref-mysqlclient-mysqlparametercollection -22.2.7.57 `MySqlParameterCollection' Members +22.2.7.59 `MySqlParameterCollection' Members ............................................ * Menu: @@ -188608,8 +190299,7 @@ connector-net-ref-mysqlclient-mysqlparameter. object to the *Note MySqlParameterCollection: - connector-net-ref-mysqlclient-mysqlparametercollection - . + connector-net-ref-mysqlclient-mysqlparametercollection. *Note Clear: Removes all items from the connector-net-ref-mysqlclient-mysqlparametercollection-clear.collection. *Note Contains: Overloaded. Gets a value indicating @@ -188619,29 +190309,29 @@ *Note CopyTo: Copies MySqlParameter objects from connector-net-ref-mysqlclient-mysqlparametercollection-copyto.the MySqlParameterCollection to the specified array. -CreateObjRef(inherited from Creates an object that contains all +CreateObjRef (inherited from Creates an object that contains all MarshalByRefObject) the relevant information required to generate a proxy used to communicate with a remote object. -Equals(inherited from Object) Determines whether the specified - Objectis equal to the current +Equals (inherited from Object) Determines whether the specified + Object is equal to the current Object. -GetHashCode(inherited from Object) Serves as a hash function for a - particular type. GetHashCodeis +GetHashCode (inherited from Object) Serves as a hash function for a + particular type. GetHashCode is suitable for use in hashing algorithms and data structures like a hash table. -GetLifetimeService(inherited from Retrieves the current lifetime +GetLifetimeService (inherited from Retrieves the current lifetime MarshalByRefObject) service object that controls the lifetime policy for this instance. -GetType(inherited from Object) Gets the Typeof the current +GetType (inherited from Object) Gets the Type of the current instance. *Note IndexOf: Overloaded. Gets the location of a connector-net-ref-mysqlclient-mysqlparametercollection-indexof-overloads.*Note MySqlParameter: connector-net-ref-mysqlclient-mysqlparameter. in the collection. -InitializeLifetimeService(inherited Obtains a lifetime service object -from MarshalByRefObject) to control the lifetime policy for +InitializeLifetimeService Obtains a lifetime service object +(inherited from MarshalByRefObject) to control the lifetime policy for this instance. *Note Insert: Inserts a MySqlParameter into the connector-net-ref-mysqlclient-mysqlparametercollection-insert.collection at the specified index. @@ -188651,8 +190341,8 @@ connector-net-ref-mysqlclient-mysqlparametercollection-removeat-overloads.*Note MySqlParameter: connector-net-ref-mysqlclient-mysqlparameter. from the collection. -ToString(inherited from Object) Returns a Stringthat represents the - current Object. +ToString (inherited from Object) Returns a String that represents + the current Object. *See Also* @@ -188663,7 +190353,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparametercollectionconstructor, Next: connector-net-ref-mysqlclient-mysqlparametercollection-count, Prev: connector-net-ref-mysqlclient-mysqlparametercollectionmembers, Up: connector-net-ref-mysqlclient-mysqlparametercollectionmembers -22.2.7.58 `MySqlParameterCollection' Constructor +22.2.7.60 `MySqlParameterCollection' Constructor ................................................ Initializes a new instance of the *Note MySqlParameterCollection: @@ -188686,7 +190376,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparametercollection-count, Next: connector-net-ref-mysqlclient-mysqlparametercollectionitem, Prev: connector-net-ref-mysqlclient-mysqlparametercollectionconstructor, Up: connector-net-ref-mysqlclient-mysqlparametercollectionmembers -22.2.7.59 Count Property +22.2.7.61 Count Property ........................ Gets the number of MySqlParameter objects in the collection. @@ -188714,7 +190404,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparametercollectionitem, Next: connector-net-ref-mysqlclient-mysqlparametercollection-add-overloads, Prev: connector-net-ref-mysqlclient-mysqlparametercollection-count, Up: connector-net-ref-mysqlclient-mysqlparametercollectionmembers -22.2.7.60 Item Property +22.2.7.62 Item Property ....................... * Menu: @@ -188752,7 +190442,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparameter, Next: connector-net-ref-mysqlclient-mysqlparametercollection-item1, Prev: connector-net-ref-mysqlclient-mysqlparametercollectionitem, Up: connector-net-ref-mysqlclient-mysqlparametercollectionitem -22.2.7.61 `MySqlParameter' Class +22.2.7.63 `MySqlParameter' Class ................................ * Menu: @@ -188760,8 +190450,8 @@ * connector-net-ref-mysqlclient-mysqlparametermembers:: `MySqlParameter' Members Represents a parameter to a *Note MySqlCommand: -connector-net-ref-mysqlclient-mysqlcommand , and optionally, its -mapping to DataSetcolumns. This class cannot be inherited. +connector-net-ref-mysqlclient-mysqlcommand, and optionally, its mapping +to DataSetcolumns. This class cannot be inherited. For a list of all members of this type, see *Note MySqlParameter Members: connector-net-ref-mysqlclient-mysqlparametermembers . @@ -188797,7 +190487,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparametermembers, Prev: connector-net-ref-mysqlclient-mysqlparameter, Up: connector-net-ref-mysqlclient-mysqlparameter -22.2.7.62 `MySqlParameter' Members +22.2.7.64 `MySqlParameter' Members .................................. * Menu: @@ -188827,7 +190517,7 @@ *Public Instance Properties* -*Note DbType: Gets or sets the DbTypeof the +*Note DbType: Gets or sets the DbType of the connector-net-ref-mysqlclient-mysqlparameter-dbtype.parameter. *Note Direction: Gets or sets a value indicating connector-net-ref-mysqlclient-mysqlparameter-direction.whether the parameter is input-only, @@ -188861,41 +190551,38 @@ connector-net-ref-mysqlclient-mysqlparameter-sourcecolumn.column that is mapped to the DataSetand used for loading or returning the *Note Value: - connector-net-ref-mysqlclient-mysqlparameter-value - . -*Note SourceVersion: Gets or sets the DataRowVersionto + connector-net-ref-mysqlclient-mysqlparameter-value. +*Note SourceVersion: Gets or sets the DataRowVersion to connector-net-ref-mysqlclient-mysqlparameter-sourceversion.use when loading *Note Value: - connector-net-ref-mysqlclient-mysqlparameter-value - . + connector-net-ref-mysqlclient-mysqlparameter-value. *Note Value: Gets or sets the value of the connector-net-ref-mysqlclient-mysqlparameter-value.parameter. *Public Instance Methods* -CreateObjRef(inherited from Creates an object that contains all +CreateObjRef (inherited from Creates an object that contains all MarshalByRefObject) the relevant information required to generate a proxy used to communicate with a remote object. -Equals(inherited from Object) Determines whether the specified - Objectis equal to the current +Equals (inherited from Object) Determines whether the specified + Object is equal to the current Object. -GetHashCode(inherited from Object) Serves as a hash function for a - particular type. GetHashCodeis +GetHashCode (inherited from Object) Serves as a hash function for a + particular type. GetHashCode is suitable for use in hashing algorithms and data structures like a hash table. -GetLifetimeService(inherited from Retrieves the current lifetime +GetLifetimeService (inherited from Retrieves the current lifetime MarshalByRefObject) service object that controls the lifetime policy for this instance. -GetType(inherited from Object) Gets the Typeof the current +GetType (inherited from Object) Gets the Type of the current instance. -InitializeLifetimeService(inherited Obtains a lifetime service object -from MarshalByRefObject) to control the lifetime policy for +InitializeLifetimeService Obtains a lifetime service object +(inherited from MarshalByRefObject) to control the lifetime policy for this instance. *Note ToString: Overridden. Gets a string connector-net-ref-mysqlclient-mysqlparameter-tostring.containing the *Note ParameterName: - connector-net-ref-mysqlclient-mysqlparameter-parametername - . + connector-net-ref-mysqlclient-mysqlparameter-parametername. *See Also* @@ -188906,7 +190593,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparameterconstructor, Next: connector-net-ref-mysqlclient-mysqlparameter-dbtype, Prev: connector-net-ref-mysqlclient-mysqlparametermembers, Up: connector-net-ref-mysqlclient-mysqlparametermembers -22.2.7.63 `MySqlParameter' Constructor +22.2.7.65 `MySqlParameter' Constructor ...................................... * Menu: @@ -188936,8 +190623,8 @@ Initializes a new instance of the *Note MySqlParameter: connector-net-ref-mysqlclient-mysqlparameter. class with the parameter -name, the *Note MySqlDbType: connector-net-ref-mysqlclient-mysqldbtype -, and the size. +name, the *Note MySqlDbType: connector-net-ref-mysqlclient-mysqldbtype, +and the size. * *Note public MySqlParameter(string: (MySqlDbType)connector-net-ref-mysqlclient-mysqlparameterconstructor4. @@ -188946,7 +190633,7 @@ connector-net-ref-mysqlclient-mysqlparameter. class with the parameter name, the type of the parameter, the size of the parameter, a ParameterDirection, the precision of the parameter, the scale of the -parameter, the source column, a DataRowVersionto use, and the value of +parameter, the source column, a DataRowVersion to use, and the value of the parameter. * *Note public MySqlParameter(string: @@ -188954,8 +190641,8 @@ Initializes a new instance of the *Note MySqlParameter: connector-net-ref-mysqlclient-mysqlparameter. class with the parameter -name, the *Note MySqlDbType: connector-net-ref-mysqlclient-mysqldbtype -, the size, and the source column name. +name, the *Note MySqlDbType: connector-net-ref-mysqlclient-mysqldbtype, +the size, and the source column name. * *Note public MySqlParameter(string: (MySqlDbType)connector-net-ref-mysqlclient-mysqlparameterconstructor5.string); @@ -188976,7 +190663,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparameterconstructor1, Next: connector-net-ref-mysqlclient-mysqlparameterconstructor3, Prev: connector-net-ref-mysqlclient-mysqlparameterconstructor, Up: connector-net-ref-mysqlclient-mysqlparameterconstructor -22.2.7.64 `MySqlParameter' Constructor () +22.2.7.66 `MySqlParameter' Constructor () ......................................... Initializes a new instance of the MySqlParameter class. @@ -189000,7 +190687,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparameterconstructor3, Next: connector-net-ref-mysqlclient-mysqlparameterconstructor4, Prev: connector-net-ref-mysqlclient-mysqlparameterconstructor1, Up: connector-net-ref-mysqlclient-mysqlparameterconstructor -22.2.7.65 `MySqlParameter' Constructor +22.2.7.67 `MySqlParameter' Constructor ...................................... * Menu: @@ -189043,11 +190730,11 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldbtype, Prev: connector-net-ref-mysqlclient-mysqlparameterconstructor3, Up: connector-net-ref-mysqlclient-mysqlparameterconstructor3 -22.2.7.66 `MySqlDbType' Enumeration +22.2.7.68 `MySqlDbType' Enumeration ................................... -Specifies MySQL specific data type of a field, property, for use in a -*Note MySqlParameter: connector-net-ref-mysqlclient-mysqlparameter . +Specifies MySQL-specific data type of a field, property, for use in a +*Note MySqlParameter: connector-net-ref-mysqlclient-mysqlparameter. *Syntax: Visual Basic* @@ -189062,14 +190749,24 @@ *Member Name* *Description* Newdate Obsolete. Use Datetime or Date type. Timestamp A timestamp. The range is - '1970-01-01 00:00:01' to sometime - in the year 2038. -Time The range is '-838:59:59' to - '838:59:59' -Date Date The supported range is - '1000-01-01' to '9999-12-31' + '1970-01-01 00:00:01.000000' to + '2038-01-19 03:14:07.999999'. + (Fractional seconds can only be + stored with a MySQL 5.6.4 or higher + database server.) +Time The range is '-838:59:59.000000' to + '838:59:59.000000'. (Fractional + seconds can only be stored with a + MySQL 5.6.4 or higher database + server.) +Date The supported range is '1000-01-01' + to '9999-12-31'. Datetime The supported range is '1000-01-01 - 00:00:00' to '9999-12-31 23:59:59' + 00:00:00.000000' to '9999-12-31 + 23:59:59.999999'. (Fractional + seconds can only be stored with a + MySQL 5.6.4 or higher database + server.) Year A year in 2- or 4-digit format (default is 4-digit). The allowable values are 1901 to 2155, 0000 in the @@ -189077,21 +190774,21 @@ if you use the 2-digit format (70-69). TinyBlob A BLOB column with a maximum length - of 255 (2^8 - 1) characters + of 255 (2^8 - 1) characters. Blob A BLOB column with a maximum length - of 65535 (2^16 - 1) characters + of 65535 (2^16 - 1) characters. MediumBlob A BLOB column with a maximum length - of 16777215 (2^24 - 1) characters + of 16777215 (2^24 - 1) characters. LongBlob A BLOB column with a maximum length of 4294967295 or 4G (2^32 - 1) - characters + characters. Int16 A 16-bit signed integer. The signed range is -32768 to 32767. The - unsigned range is 0 to 65535 + unsigned range is 0 to 65535. Int24 Specifies a 24 (3 byte) signed or - unsigned value -Int32 A 32-bit signed integer -Int64 A 64-bit signed integer + unsigned value. +Int32 A 32-bit signed integer. +Int64 A 64-bit signed integer. Byte The signed range is -128 to 127. The unsigned range is 0 to 255. Float A small (single-precision) @@ -189105,13 +190802,13 @@ to -2.2250738585072014E-308, 0, and 2.2250738585072014E-308 to 1.7976931348623157E+308. -UByte An 8-bit unsigned value -UInt16 A 16-bit unsigned value -UInt24 A 24-bit unsigned value -UInt32 A 32-bit unsigned value -UInt64 A 64-bit unsigned value +UByte An 8-bit unsigned value. +UInt16 A 16-bit unsigned value. +UInt24 A 24-bit unsigned value. +UInt32 A 32-bit unsigned value. +UInt64 A 64-bit unsigned value. Decimal A fixed precision and scale numeric - value between -1038 -1 and 10 38 -1 + value between -10^38-1 and 10^38-1. NewDecimal New Decimal Set A set. A string object that can have zero or more values, each of @@ -189119,11 +190816,11 @@ of values 'value1', 'value2', ... A SET can have a maximum of 64 members. -String Obsolete Use VarChar type +String Obsolete. Use VarChar type. VarChar A variable-length string containing - 0 to 255 characters + 0 to 255 characters. VarString A variable-length string containing - 0 to 65535 characters + 0 to 65535 characters. Enum An enumeration. A string object that can have only one value, chosen from the list of values 'value1', @@ -189131,19 +190828,19 @@ "" error value. An ENUM can have a maximum of 65535 distinct values. Geometry -Bit Bit-field data type +Bit Bit-field data type. TinyText A nonbinary string column supporting a maximum length of 255 - (2^8 - 1) characters + (2^8 - 1) characters. Text A nonbinary string column supporting a maximum length of - 65535 (2^16 - 1) characters + 65535 (2^16 - 1) characters. MediumText A nonbinary string column supporting a maximum length of - 16777215 (2^24 - 1) characters + 16777215 (2^24 - 1) characters. LongText A nonbinary string column supporting a maximum length of - 4294967295 (2^32 - 1) characters + 4294967295 (2^32 - 1) characters. *Requirements* @@ -189158,13 +190855,13 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparameterconstructor4, Next: connector-net-ref-mysqlclient-mysqlparameterconstructor6, Prev: connector-net-ref-mysqlclient-mysqlparameterconstructor3, Up: connector-net-ref-mysqlclient-mysqlparameterconstructor -22.2.7.67 `MySqlParameter' Constructor (String, MySqlDbType, Int32) +22.2.7.69 `MySqlParameter' Constructor (String, MySqlDbType, Int32) ................................................................... Initializes a new instance of the *Note MySqlParameter: connector-net-ref-mysqlclient-mysqlparameter. class with the parameter -name, the *Note MySqlDbType: connector-net-ref-mysqlclient-mysqldbtype -, and the size. +name, the *Note MySqlDbType: connector-net-ref-mysqlclient-mysqldbtype, +and the size. *Syntax: Visual Basic* @@ -189202,7 +190899,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparameterconstructor6, Next: connector-net-ref-mysqlclient-mysqlparameterconstructor5, Prev: connector-net-ref-mysqlclient-mysqlparameterconstructor4, Up: connector-net-ref-mysqlclient-mysqlparameterconstructor -22.2.7.68 `MySqlParameter' Constructor +22.2.7.70 `MySqlParameter' Constructor ...................................... * Menu: @@ -189213,7 +190910,7 @@ connector-net-ref-mysqlclient-mysqlparameter. class with the parameter name, the type of the parameter, the size of the parameter, a ParameterDirection, the precision of the parameter, the scale of the -parameter, the source column, a DataRowVersionto use, and the value of +parameter, the source column, a DataRowVersion to use, and the value of the parameter. *Syntax: Visual Basic* @@ -189271,8 +190968,8 @@ * `sourceVersion': One of the DataRowVersionvalues. - * `value': An Objectthat is the value of the *Note MySqlParameter: - connector-net-ref-mysqlclient-mysqlparameter . + * `value': An Object that is the value of the *Note MySqlParameter: + connector-net-ref-mysqlclient-mysqlparameter. *Exceptions* @@ -189290,7 +190987,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparameter-value, Prev: connector-net-ref-mysqlclient-mysqlparameterconstructor6, Up: connector-net-ref-mysqlclient-mysqlparameterconstructor6 -22.2.7.69 Value Property +22.2.7.71 Value Property ........................ Gets or sets the value of the parameter. @@ -189318,13 +191015,13 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparameterconstructor5, Next: connector-net-ref-mysqlclient-mysqlparameterconstructor2, Prev: connector-net-ref-mysqlclient-mysqlparameterconstructor6, Up: connector-net-ref-mysqlclient-mysqlparameterconstructor -22.2.7.70 `MySqlParameter' Constructor +22.2.7.72 `MySqlParameter' Constructor ...................................... Initializes a new instance of the *Note MySqlParameter: connector-net-ref-mysqlclient-mysqlparameter. class with the parameter -name, the *Note MySqlDbType: connector-net-ref-mysqlclient-mysqldbtype -, the size, and the source column name. +name, the *Note MySqlDbType: connector-net-ref-mysqlclient-mysqldbtype, +the size, and the source column name. *Syntax: Visual Basic* @@ -189366,7 +191063,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparameterconstructor2, Prev: connector-net-ref-mysqlclient-mysqlparameterconstructor5, Up: connector-net-ref-mysqlclient-mysqlparameterconstructor -22.2.7.71 `MySqlParameter' Constructor +22.2.7.73 `MySqlParameter' Constructor ...................................... Initializes a new instance of the *Note MySqlParameter: @@ -189391,8 +191088,8 @@ * `parameterName': The name of the parameter to map. - * `value': An Objectthat is the value of the *Note MySqlParameter: - connector-net-ref-mysqlclient-mysqlparameter . + * `value': An Object that is the value of the *Note MySqlParameter: + connector-net-ref-mysqlclient-mysqlparameter. *See Also* @@ -189405,10 +191102,10 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparameter-dbtype, Next: connector-net-ref-mysqlclient-mysqlparameter-direction, Prev: connector-net-ref-mysqlclient-mysqlparameterconstructor, Up: connector-net-ref-mysqlclient-mysqlparametermembers -22.2.7.72 DbType Property +22.2.7.74 DbType Property ......................... -Gets or sets the DbTypeof the parameter. +Gets or sets the DbType of the parameter. *Syntax: Visual Basic* @@ -189433,7 +191130,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparameter-direction, Next: connector-net-ref-mysqlclient-mysqlparameter-isnullable, Prev: connector-net-ref-mysqlclient-mysqlparameter-dbtype, Up: connector-net-ref-mysqlclient-mysqlparametermembers -22.2.7.73 Direction Property +22.2.7.75 Direction Property ............................ Gets or sets a value indicating whether the parameter is input-only, @@ -189464,7 +191161,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparameter-isnullable, Next: connector-net-ref-mysqlclient-mysqlparameter-isunsigned, Prev: connector-net-ref-mysqlclient-mysqlparameter-direction, Up: connector-net-ref-mysqlclient-mysqlparametermembers -22.2.7.74 IsNullable Property +22.2.7.76 IsNullable Property ............................. Gets or sets a value indicating whether the parameter accepts null @@ -189493,7 +191190,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparameter-isunsigned, Next: connector-net-ref-mysqlclient-mysqlparameter-mysqldbtype, Prev: connector-net-ref-mysqlclient-mysqlparameter-isnullable, Up: connector-net-ref-mysqlclient-mysqlparametermembers -22.2.7.75 IsUnsigned Property +22.2.7.77 IsUnsigned Property ............................. *Syntax: Visual Basic* @@ -189513,7 +191210,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparameter-mysqldbtype, Next: connector-net-ref-mysqlclient-mysqlparameter-parametername, Prev: connector-net-ref-mysqlclient-mysqlparameter-isunsigned, Up: connector-net-ref-mysqlclient-mysqlparametermembers -22.2.7.76 `MySqlDbType' Property +22.2.7.78 `MySqlDbType' Property ................................ Gets or sets the MySqlDbType of the parameter. @@ -189535,7 +191232,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparameter-parametername, Next: connector-net-ref-mysqlclient-mysqlparameter-precision, Prev: connector-net-ref-mysqlclient-mysqlparameter-mysqldbtype, Up: connector-net-ref-mysqlclient-mysqlparametermembers -22.2.7.77 ParameterName Property +22.2.7.79 ParameterName Property ................................ Gets or sets the name of the MySqlParameter. @@ -189563,7 +191260,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparameter-precision, Next: connector-net-ref-mysqlclient-mysqlparameter-scale, Prev: connector-net-ref-mysqlclient-mysqlparameter-parametername, Up: connector-net-ref-mysqlclient-mysqlparametermembers -22.2.7.78 Precision Property +22.2.7.80 Precision Property ............................ Gets or sets the maximum number of digits used to represent the *Note @@ -189592,7 +191289,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparameter-scale, Next: connector-net-ref-mysqlclient-mysqlparameter-size, Prev: connector-net-ref-mysqlclient-mysqlparameter-precision, Up: connector-net-ref-mysqlclient-mysqlparametermembers -22.2.7.79 Scale Property +22.2.7.81 Scale Property ........................ Gets or sets the number of decimal places to which *Note Value: @@ -189621,7 +191318,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparameter-size, Next: connector-net-ref-mysqlclient-mysqlparameter-sourcecolumn, Prev: connector-net-ref-mysqlclient-mysqlparameter-scale, Up: connector-net-ref-mysqlclient-mysqlparametermembers -22.2.7.80 Size Property +22.2.7.82 Size Property ....................... Gets or sets the maximum size, in bytes, of the data within the column. @@ -189649,12 +191346,12 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparameter-sourcecolumn, Next: connector-net-ref-mysqlclient-mysqlparameter-sourceversion, Prev: connector-net-ref-mysqlclient-mysqlparameter-size, Up: connector-net-ref-mysqlclient-mysqlparametermembers -22.2.7.81 SourceColumn Property +22.2.7.83 SourceColumn Property ............................... Gets or sets the name of the source column that is mapped to the DataSetand used for loading or returning the *Note Value: -connector-net-ref-mysqlclient-mysqlparameter-value . +connector-net-ref-mysqlclient-mysqlparameter-value. *Syntax: Visual Basic* @@ -189679,11 +191376,11 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparameter-sourceversion, Next: connector-net-ref-mysqlclient-mysqlparameter-tostring, Prev: connector-net-ref-mysqlclient-mysqlparameter-sourcecolumn, Up: connector-net-ref-mysqlclient-mysqlparametermembers -22.2.7.82 SourceVersion Property +22.2.7.84 SourceVersion Property ................................ -Gets or sets the DataRowVersionto use when loading *Note Value: -connector-net-ref-mysqlclient-mysqlparameter-value . +Gets or sets the DataRowVersion to use when loading *Note Value: +connector-net-ref-mysqlclient-mysqlparameter-value. *Syntax: Visual Basic* @@ -189708,11 +191405,11 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparameter-tostring, Prev: connector-net-ref-mysqlclient-mysqlparameter-sourceversion, Up: connector-net-ref-mysqlclient-mysqlparametermembers -22.2.7.83 `MySqlParameter.ToString' Method +22.2.7.85 `MySqlParameter.ToString' Method .......................................... Overridden. Gets a string containing the *Note ParameterName: -connector-net-ref-mysqlclient-mysqlparameter-parametername . +connector-net-ref-mysqlclient-mysqlparameter-parametername. *Syntax: Visual Basic* @@ -189733,7 +191430,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparametercollection-item1, Next: connector-net-ref-mysqlclient-mysqlparametercollection-item2, Prev: connector-net-ref-mysqlclient-mysqlparameter, Up: connector-net-ref-mysqlclient-mysqlparametercollectionitem -22.2.7.84 Item Property (Int32) +22.2.7.86 Item Property (Int32) ............................... Gets the *Note MySqlParameter: @@ -189762,7 +191459,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparametercollection-item2, Prev: connector-net-ref-mysqlclient-mysqlparametercollection-item1, Up: connector-net-ref-mysqlclient-mysqlparametercollectionitem -22.2.7.85 Item Property (String) +22.2.7.87 Item Property (String) ................................ Gets the *Note MySqlParameter: @@ -189791,7 +191488,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparametercollection-add-overloads, Next: connector-net-ref-mysqlclient-mysqlparametercollection-clear, Prev: connector-net-ref-mysqlclient-mysqlparametercollectionitem, Up: connector-net-ref-mysqlclient-mysqlparametercollectionmembers -22.2.7.86 Add Method +22.2.7.88 Add Method .................... * Menu: @@ -189806,14 +191503,14 @@ Adds the specified *Note MySqlParameter: connector-net-ref-mysqlclient-mysqlparameter. object to the *Note MySqlParameterCollection: -connector-net-ref-mysqlclient-mysqlparametercollection . +connector-net-ref-mysqlclient-mysqlparametercollection. *Overload List* Adds the specified *Note MySqlParameter: connector-net-ref-mysqlclient-mysqlparameter. object to the *Note MySqlParameterCollection: -connector-net-ref-mysqlclient-mysqlparametercollection . +connector-net-ref-mysqlclient-mysqlparametercollection. * *Note public MySqlParameter Add(MySqlParameter);: connector-net-ref-mysqlclient-mysqlparametercollection-add-overload-2. @@ -189821,7 +191518,7 @@ Adds the specified *Note MySqlParameter: connector-net-ref-mysqlclient-mysqlparameter. object to the *Note MySqlParameterCollection: -connector-net-ref-mysqlclient-mysqlparametercollection . +connector-net-ref-mysqlclient-mysqlparametercollection. * *Note public int Add(object);: connector-net-ref-mysqlclient-mysqlparametercollection-add-overload-1. @@ -189872,13 +191569,13 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparametercollection-add-overload-2, Next: connector-net-ref-mysqlclient-mysqlparametercollection-add-overload-1, Prev: connector-net-ref-mysqlclient-mysqlparametercollection-add-overloads, Up: connector-net-ref-mysqlclient-mysqlparametercollection-add-overloads -22.2.7.87 `MySqlParameterCollection.Add' Method +22.2.7.89 `MySqlParameterCollection.Add' Method ............................................... Adds the specified *Note MySqlParameter: connector-net-ref-mysqlclient-mysqlparameter. object to the *Note MySqlParameterCollection: -connector-net-ref-mysqlclient-mysqlparametercollection . +connector-net-ref-mysqlclient-mysqlparametercollection. *Syntax: Visual Basic* @@ -189914,13 +191611,13 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparametercollection-add-overload-1, Next: connector-net-ref-mysqlclient-mysqlparametercollection-add-overload-4, Prev: connector-net-ref-mysqlclient-mysqlparametercollection-add-overload-2, Up: connector-net-ref-mysqlclient-mysqlparametercollection-add-overloads -22.2.7.88 `MySqlParameterCollection.Add' Method +22.2.7.90 `MySqlParameterCollection.Add' Method ............................................... Adds the specified *Note MySqlParameter: connector-net-ref-mysqlclient-mysqlparameter. object to the *Note MySqlParameterCollection: -connector-net-ref-mysqlclient-mysqlparametercollection . +connector-net-ref-mysqlclient-mysqlparametercollection. *Syntax: Visual Basic* @@ -189962,7 +191659,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparametercollection-add-overload-4, Next: connector-net-ref-mysqlclient-mysqlparametercollection-add-overload-5, Prev: connector-net-ref-mysqlclient-mysqlparametercollection-add-overload-1, Up: connector-net-ref-mysqlclient-mysqlparametercollection-add-overloads -22.2.7.89 `MySqlParameterCollection.Add' Method +22.2.7.91 `MySqlParameterCollection.Add' Method ............................................... Adds a *Note MySqlParameter: @@ -190008,7 +191705,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparametercollection-add-overload-5, Next: connector-net-ref-mysqlclient-mysqlparametercollection-add-overload-6, Prev: connector-net-ref-mysqlclient-mysqlparametercollection-add-overload-4, Up: connector-net-ref-mysqlclient-mysqlparametercollection-add-overloads -22.2.7.90 `MySqlParameterCollection.Add' Method +22.2.7.92 `MySqlParameterCollection.Add' Method ............................................... Adds a *Note MySqlParameter: @@ -190058,7 +191755,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparametercollection-add-overload-6, Next: connector-net-ref-mysqlclient-mysqlparametercollection-add-overload-3, Prev: connector-net-ref-mysqlclient-mysqlparametercollection-add-overload-5, Up: connector-net-ref-mysqlclient-mysqlparametercollection-add-overloads -22.2.7.91 `MySqlParameterCollection.Add' Method +22.2.7.93 `MySqlParameterCollection.Add' Method ............................................... Adds a *Note MySqlParameter: @@ -190113,7 +191810,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparametercollection-add-overload-3, Prev: connector-net-ref-mysqlclient-mysqlparametercollection-add-overload-6, Up: connector-net-ref-mysqlclient-mysqlparametercollection-add-overloads -22.2.7.92 `MySqlParameterCollection.Add' Method +22.2.7.94 `MySqlParameterCollection.Add' Method ............................................... Adds a *Note MySqlParameter: @@ -190161,7 +191858,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparametercollection-clear, Next: connector-net-ref-mysqlclient-mysqlparametercollection-contains-overloads, Prev: connector-net-ref-mysqlclient-mysqlparametercollection-add-overloads, Up: connector-net-ref-mysqlclient-mysqlparametercollectionmembers -22.2.7.93 `MySqlParameterCollection.Clear' Method +22.2.7.95 `MySqlParameterCollection.Clear' Method ................................................. Removes all items from the collection. @@ -190189,7 +191886,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparametercollection-contains-overloads, Next: connector-net-ref-mysqlclient-mysqlparametercollection-copyto, Prev: connector-net-ref-mysqlclient-mysqlparametercollection-clear, Up: connector-net-ref-mysqlclient-mysqlparametercollectionmembers -22.2.7.94 Contains Method +22.2.7.96 Contains Method ......................... * Menu: @@ -190224,7 +191921,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparametercollection-contains-overload-1, Next: connector-net-ref-mysqlclient-mysqlparametercollection-contains-overload-2, Prev: connector-net-ref-mysqlclient-mysqlparametercollection-contains-overloads, Up: connector-net-ref-mysqlclient-mysqlparametercollection-contains-overloads -22.2.7.95 `MySqlParameterCollection.Contains' Method +22.2.7.97 `MySqlParameterCollection.Contains' Method .................................................... Gets a value indicating whether a MySqlParameter exists in the @@ -190269,7 +191966,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparametercollection-contains-overload-2, Prev: connector-net-ref-mysqlclient-mysqlparametercollection-contains-overload-1, Up: connector-net-ref-mysqlclient-mysqlparametercollection-contains-overloads -22.2.7.96 `MySqlParameterCollection.Contains' Method +22.2.7.98 `MySqlParameterCollection.Contains' Method .................................................... Gets a value indicating whether a *Note MySqlParameter: @@ -190314,7 +192011,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparametercollection-copyto, Next: connector-net-ref-mysqlclient-mysqlparametercollection-indexof-overloads, Prev: connector-net-ref-mysqlclient-mysqlparametercollection-contains-overloads, Up: connector-net-ref-mysqlclient-mysqlparametercollectionmembers -22.2.7.97 `MySqlParameterCollection.CopyTo' Method +22.2.7.99 `MySqlParameterCollection.CopyTo' Method .................................................. Copies MySqlParameter objects from the MySqlParameterCollection to the @@ -190355,8 +192052,8 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparametercollection-indexof-overloads, Next: connector-net-ref-mysqlclient-mysqlparametercollection-insert, Prev: connector-net-ref-mysqlclient-mysqlparametercollection-copyto, Up: connector-net-ref-mysqlclient-mysqlparametercollectionmembers -22.2.7.98 IndexOf Method -........................ +22.2.7.100 IndexOf Method +......................... * Menu: @@ -190390,8 +192087,8 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparametercollection-indexof-overload-1, Next: connector-net-ref-mysqlclient-mysqlparametercollection-indexof-overload-2, Prev: connector-net-ref-mysqlclient-mysqlparametercollection-indexof-overloads, Up: connector-net-ref-mysqlclient-mysqlparametercollection-indexof-overloads -22.2.7.99 `MySqlParameterCollection.IndexOf' Method -................................................... +22.2.7.101 `MySqlParameterCollection.IndexOf' Method +.................................................... Gets the location of a *Note MySqlParameter: connector-net-ref-mysqlclient-mysqlparameter. in the collection. @@ -190435,7 +192132,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparametercollection-indexof-overload-2, Prev: connector-net-ref-mysqlclient-mysqlparametercollection-indexof-overload-1, Up: connector-net-ref-mysqlclient-mysqlparametercollection-indexof-overloads -22.2.7.100 `MySqlParameterCollection.IndexOf' Method +22.2.7.102 `MySqlParameterCollection.IndexOf' Method .................................................... Gets the location of the *Note MySqlParameter: @@ -190481,7 +192178,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparametercollection-insert, Next: connector-net-ref-mysqlclient-mysqlparametercollection-remove, Prev: connector-net-ref-mysqlclient-mysqlparametercollection-indexof-overloads, Up: connector-net-ref-mysqlclient-mysqlparametercollectionmembers -22.2.7.101 `MySqlParameterCollection.Insert' Method +22.2.7.103 `MySqlParameterCollection.Insert' Method ................................................... Inserts a MySqlParameter into the collection at the specified index. @@ -190521,7 +192218,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparametercollection-remove, Next: connector-net-ref-mysqlclient-mysqlparametercollection-removeat-overloads, Prev: connector-net-ref-mysqlclient-mysqlparametercollection-insert, Up: connector-net-ref-mysqlclient-mysqlparametercollectionmembers -22.2.7.102 `MySqlParameterCollection.Remove' Method +22.2.7.104 `MySqlParameterCollection.Remove' Method ................................................... Removes the specified MySqlParameter from the collection. @@ -190557,7 +192254,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparametercollection-removeat-overloads, Prev: connector-net-ref-mysqlclient-mysqlparametercollection-remove, Up: connector-net-ref-mysqlclient-mysqlparametercollectionmembers -22.2.7.103 RemoveAt Method +22.2.7.105 RemoveAt Method .......................... * Menu: @@ -190593,7 +192290,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparametercollection-removeat-overload-1, Next: connector-net-ref-mysqlclient-mysqlparametercollection-removeat-overload-2, Prev: connector-net-ref-mysqlclient-mysqlparametercollection-removeat-overloads, Up: connector-net-ref-mysqlclient-mysqlparametercollection-removeat-overloads -22.2.7.104 `MySqlParameterCollection.RemoveAt' Method +22.2.7.106 `MySqlParameterCollection.RemoveAt' Method ..................................................... Removes the specified *Note MySqlParameter: @@ -190633,7 +192330,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlparametercollection-removeat-overload-2, Prev: connector-net-ref-mysqlclient-mysqlparametercollection-removeat-overload-1, Up: connector-net-ref-mysqlclient-mysqlparametercollection-removeat-overloads -22.2.7.105 `MySqlParameterCollection.RemoveAt' Method +22.2.7.107 `MySqlParameterCollection.RemoveAt' Method ..................................................... Removes the specified *Note MySqlParameter: @@ -190674,7 +192371,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommand-transaction, Next: connector-net-ref-mysqlclient-mysqlcommand-updatedrowsource, Prev: connector-net-ref-mysqlclient-mysqlcommand-parameters, Up: connector-net-ref-mysqlclient-mysqlcommandmembers -22.2.7.106 Transaction Property +22.2.7.108 Transaction Property ............................... *Syntax: Visual Basic* @@ -190693,7 +192390,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommand-updatedrowsource, Next: connector-net-ref-mysqlclient-mysqlcommand-cancel, Prev: connector-net-ref-mysqlclient-mysqlcommand-transaction, Up: connector-net-ref-mysqlclient-mysqlcommandmembers -22.2.7.107 UpdatedRowSource Property +22.2.7.109 UpdatedRowSource Property .................................... *Syntax: Visual Basic* @@ -190718,7 +192415,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommand-cancel, Next: connector-net-ref-mysqlclient-mysqlcommand-createparameter, Prev: connector-net-ref-mysqlclient-mysqlcommand-updatedrowsource, Up: connector-net-ref-mysqlclient-mysqlcommandmembers -22.2.7.108 `MySqlCommand.Cancel' Method +22.2.7.110 `MySqlCommand.Cancel' Method ....................................... Attempts to cancel the execution of a MySqlCommand. This operation is @@ -190756,7 +192453,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommand-createparameter, Next: connector-net-ref-mysqlclient-mysqlcommand-executenonquery, Prev: connector-net-ref-mysqlclient-mysqlcommand-cancel, Up: connector-net-ref-mysqlclient-mysqlcommandmembers -22.2.7.109 `MySqlCommand.CreateParameter' Method +22.2.7.111 `MySqlCommand.CreateParameter' Method ................................................ Creates a new instance of a *Note MySqlParameter: @@ -190787,7 +192484,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommand-executenonquery, Next: connector-net-ref-mysqlclient-mysqlcommand-executereader-overloads, Prev: connector-net-ref-mysqlclient-mysqlcommand-createparameter, Up: connector-net-ref-mysqlclient-mysqlcommandmembers -22.2.7.110 `MySqlCommand.ExecuteNonQuery' Method +22.2.7.112 `MySqlCommand.ExecuteNonQuery' Method ................................................ *Syntax: Visual Basic* @@ -190812,7 +192509,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommand-executereader-overloads, Next: connector-net-ref-mysqlclient-mysqlcommand-executescalar, Prev: connector-net-ref-mysqlclient-mysqlcommand-executenonquery, Up: connector-net-ref-mysqlclient-mysqlcommandmembers -22.2.7.111 ExecuteReader Method +22.2.7.113 ExecuteReader Method ............................... * Menu: @@ -190836,7 +192533,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommand-executereader-overload-1, Next: connector-net-ref-mysqlclient-mysqlcommand-executereader-overload-2, Prev: connector-net-ref-mysqlclient-mysqlcommand-executereader-overloads, Up: connector-net-ref-mysqlclient-mysqlcommand-executereader-overloads -22.2.7.112 `MySqlCommand.ExecuteReader' Method +22.2.7.114 `MySqlCommand.ExecuteReader' Method .............................................. * Menu: @@ -190861,7 +192558,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader, Prev: connector-net-ref-mysqlclient-mysqlcommand-executereader-overload-1, Up: connector-net-ref-mysqlclient-mysqlcommand-executereader-overload-1 -22.2.7.113 `MySqlDataReader' Class +22.2.7.115 `MySqlDataReader' Class .................................. * Menu: @@ -190905,7 +192602,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareadermembers, Prev: connector-net-ref-mysqlclient-mysqldatareader, Up: connector-net-ref-mysqlclient-mysqldatareader -22.2.7.114 `MySqlDataReader' Members +22.2.7.116 `MySqlDataReader' Members .................................... * Menu: @@ -190976,12 +192673,12 @@ *Note Close: Closes the MySqlDataReader object. connector-net-ref-mysqlclient-mysqldatareader-close. -CreateObjRef(inherited from Creates an object that contains all +CreateObjRef (inherited from Creates an object that contains all MarshalByRefObject) the relevant information required to generate a proxy used to communicate with a remote object. -Equals(inherited from Object) Determines whether the specified - Objectis equal to the current +Equals (inherited from Object) Determines whether the specified + Object is equal to the current Object. *Note GetBoolean: Gets the value of the specified connector-net-ref-mysqlclient-mysqldatareader-getboolean.column as a Boolean. @@ -191011,8 +192708,8 @@ connector-net-ref-mysqlclient-mysqldatareader-getfloat. *Note GetGuid: connector-net-ref-mysqlclient-mysqldatareader-getguid. -GetHashCode(inherited from Object) Serves as a hash function for a - particular type. GetHashCodeis +GetHashCode (inherited from Object) Serves as a hash function for a + particular type. GetHashCode is suitable for use in hashing algorithms and data structures like a hash table. @@ -191022,7 +192719,7 @@ connector-net-ref-mysqlclient-mysqldatareader-getint32. *Note GetInt64: connector-net-ref-mysqlclient-mysqldatareader-getint64. -GetLifetimeService(inherited from Retrieves the current lifetime +GetLifetimeService (inherited from Retrieves the current lifetime MarshalByRefObject) service object that controls the lifetime policy for this instance. *Note GetMySqlDateTime: @@ -191038,7 +192735,7 @@ connector-net-ref-mysqlclient-mysqldatareader-getstring. *Note GetTimeSpan: connector-net-ref-mysqlclient-mysqldatareader-gettimespan. -GetType(inherited from Object) Gets the Typeof the current +GetType (inherited from Object) Gets the Type of the current instance. *Note GetUInt16: connector-net-ref-mysqlclient-mysqldatareader-getuint16. @@ -191050,8 +192747,8 @@ connector-net-ref-mysqlclient-mysqldatareader-getvalue.column in its native format. *Note GetValues: Gets all attribute columns in the connector-net-ref-mysqlclient-mysqldatareader-getvalues.collection for the current row. -InitializeLifetimeService(inherited Obtains a lifetime service object -from MarshalByRefObject) to control the lifetime policy for +InitializeLifetimeService Obtains a lifetime service object +(inherited from MarshalByRefObject) to control the lifetime policy for this instance. *Note IsDBNull: Gets a value indicating whether the connector-net-ref-mysqlclient-mysqldatareader-isdbnull.column contains non-existent or @@ -191061,8 +192758,8 @@ results of batch SQL statements. *Note Read: Advances the MySqlDataReader to the connector-net-ref-mysqlclient-mysqldatareader-read.next record. -ToString(inherited from Object) Returns a Stringthat represents the - current Object. +ToString (inherited from Object) Returns a String that represents + the current Object. *See Also* @@ -191073,7 +192770,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-depth, Next: connector-net-ref-mysqlclient-mysqldatareader-fieldcount, Prev: connector-net-ref-mysqlclient-mysqldatareadermembers, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.115 Depth Property +22.2.7.117 Depth Property ......................... Gets a value indicating the depth of nesting for the current row. This @@ -191102,7 +192799,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-fieldcount, Next: connector-net-ref-mysqlclient-mysqldatareader-hasrows, Prev: connector-net-ref-mysqlclient-mysqldatareader-depth, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.116 FieldCount Property +22.2.7.118 FieldCount Property .............................. Gets the number of columns in the current row. @@ -191130,7 +192827,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-hasrows, Next: connector-net-ref-mysqlclient-mysqldatareader-isclosed, Prev: connector-net-ref-mysqlclient-mysqldatareader-fieldcount, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.117 HasRows Property +22.2.7.119 HasRows Property ........................... Gets a value indicating whether the MySqlDataReader contains one or @@ -191153,7 +192850,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-isclosed, Next: connector-net-ref-mysqlclient-mysqldatareaderitem, Prev: connector-net-ref-mysqlclient-mysqldatareader-hasrows, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.118 IsClosed Property +22.2.7.120 IsClosed Property ............................ Gets a value indicating whether the data reader is closed. @@ -191181,7 +192878,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareaderitem, Next: connector-net-ref-mysqlclient-mysqldatareader-recordsaffected, Prev: connector-net-ref-mysqlclient-mysqldatareader-isclosed, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.119 Item Property +22.2.7.121 Item Property ........................ * Menu: @@ -191215,7 +192912,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-item1, Next: connector-net-ref-mysqlclient-mysqldatareader-item2, Prev: connector-net-ref-mysqlclient-mysqldatareaderitem, Up: connector-net-ref-mysqlclient-mysqldatareaderitem -22.2.7.120 Item Property (Int32) +22.2.7.122 Item Property (Int32) ................................ Overloaded. Gets the value of a column in its native format. In C#, @@ -191252,7 +192949,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-item2, Prev: connector-net-ref-mysqlclient-mysqldatareader-item1, Up: connector-net-ref-mysqlclient-mysqldatareaderitem -22.2.7.121 Item Property (String) +22.2.7.123 Item Property (String) ................................. Gets the value of a column in its native format. In C#, this property @@ -191289,7 +192986,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-recordsaffected, Next: connector-net-ref-mysqlclient-mysqldatareader-close, Prev: connector-net-ref-mysqlclient-mysqldatareaderitem, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.122 RecordsAffected Property +22.2.7.124 RecordsAffected Property ................................... Gets the number of rows changed, inserted, or deleted by execution of @@ -191318,7 +193015,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-close, Next: connector-net-ref-mysqlclient-mysqldatareader-getboolean, Prev: connector-net-ref-mysqlclient-mysqldatareader-recordsaffected, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.123 `MySqlDataReader.Close' Method +22.2.7.125 `MySqlDataReader.Close' Method ......................................... Closes the MySqlDataReader object. @@ -191346,7 +193043,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-getboolean, Next: connector-net-ref-mysqlclient-mysqldatareader-getbyte, Prev: connector-net-ref-mysqlclient-mysqldatareader-close, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.124 `MySqlDataReader.GetBoolean' Method +22.2.7.126 `MySqlDataReader.GetBoolean' Method .............................................. Gets the value of the specified column as a Boolean. @@ -191384,7 +193081,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-getbyte, Next: connector-net-ref-mysqlclient-mysqldatareader-getbytes, Prev: connector-net-ref-mysqlclient-mysqldatareader-getboolean, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.125 `MySqlDataReader.GetByte' Method +22.2.7.127 `MySqlDataReader.GetByte' Method ........................................... Gets the value of the specified column as a byte. @@ -191422,7 +193119,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-getbytes, Next: connector-net-ref-mysqlclient-mysqldatareader-getchar, Prev: connector-net-ref-mysqlclient-mysqldatareader-getbyte, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.126 `MySqlDataReader.GetBytes' Method +22.2.7.128 `MySqlDataReader.GetBytes' Method ............................................ Reads a stream of bytes from the specified column offset into the @@ -191480,7 +193177,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-getchar, Next: connector-net-ref-mysqlclient-mysqldatareader-getchars, Prev: connector-net-ref-mysqlclient-mysqldatareader-getbytes, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.127 `MySqlDataReader.GetChar' Method +22.2.7.129 `MySqlDataReader.GetChar' Method ........................................... Gets the value of the specified column as a single character. @@ -191518,7 +193215,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-getchars, Next: connector-net-ref-mysqlclient-mysqldatareader-getdatatypename, Prev: connector-net-ref-mysqlclient-mysqldatareader-getchar, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.128 `MySqlDataReader.GetChars' Method +22.2.7.130 `MySqlDataReader.GetChars' Method ............................................ Reads a stream of characters from the specified column offset into the @@ -191573,7 +193270,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-getdatatypename, Next: connector-net-ref-mysqlclient-mysqldatareader-getdatetime, Prev: connector-net-ref-mysqlclient-mysqldatareader-getchars, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.129 `MySqlDataReader.GetDataTypeName' Method +22.2.7.131 `MySqlDataReader.GetDataTypeName' Method ................................................... Gets the name of the source data type. @@ -191611,7 +193308,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-getdatetime, Next: connector-net-ref-mysqlclient-mysqldatareader-getdecimal, Prev: connector-net-ref-mysqlclient-mysqldatareader-getdatatypename, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.130 `MySqlDataReader.GetDateTime' Method +22.2.7.132 `MySqlDataReader.GetDateTime' Method ............................................... *Syntax: Visual Basic* @@ -191641,7 +193338,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-getdecimal, Next: connector-net-ref-mysqlclient-mysqldatareader-getdouble, Prev: connector-net-ref-mysqlclient-mysqldatareader-getdatetime, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.131 `MySqlDataReader.GetDecimal' Method +22.2.7.133 `MySqlDataReader.GetDecimal' Method .............................................. *Syntax: Visual Basic* @@ -191671,7 +193368,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-getdouble, Next: connector-net-ref-mysqlclient-mysqldatareader-getfieldtype, Prev: connector-net-ref-mysqlclient-mysqldatareader-getdecimal, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.132 `MySqlDataReader.GetDouble' Method +22.2.7.134 `MySqlDataReader.GetDouble' Method ............................................. *Syntax: Visual Basic* @@ -191701,7 +193398,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-getfieldtype, Next: connector-net-ref-mysqlclient-mysqldatareader-getfloat, Prev: connector-net-ref-mysqlclient-mysqldatareader-getdouble, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.133 `MySqlDataReader.GetFieldType' Method +22.2.7.135 `MySqlDataReader.GetFieldType' Method ................................................ Gets the Type that is the data type of the object. @@ -191739,7 +193436,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-getfloat, Next: connector-net-ref-mysqlclient-mysqldatareader-getguid, Prev: connector-net-ref-mysqlclient-mysqldatareader-getfieldtype, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.134 `MySqlDataReader.GetFloat' Method +22.2.7.136 `MySqlDataReader.GetFloat' Method ............................................ *Syntax: Visual Basic* @@ -191769,7 +193466,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-getguid, Next: connector-net-ref-mysqlclient-mysqldatareader-getint16, Prev: connector-net-ref-mysqlclient-mysqldatareader-getfloat, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.135 `MySqlDataReader.GetGuid' Method +22.2.7.137 `MySqlDataReader.GetGuid' Method ........................................... *Syntax: Visual Basic* @@ -191799,7 +193496,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-getint16, Next: connector-net-ref-mysqlclient-mysqldatareader-getint32, Prev: connector-net-ref-mysqlclient-mysqldatareader-getguid, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.136 `MySqlDataReader.GetInt16' Method +22.2.7.138 `MySqlDataReader.GetInt16' Method ............................................ *Syntax: Visual Basic* @@ -191829,7 +193526,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-getint32, Next: connector-net-ref-mysqlclient-mysqldatareader-getint64, Prev: connector-net-ref-mysqlclient-mysqldatareader-getint16, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.137 `MySqlDataReader.GetInt32' Method +22.2.7.139 `MySqlDataReader.GetInt32' Method ............................................ *Syntax: Visual Basic* @@ -191859,7 +193556,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-getint64, Next: connector-net-ref-mysqlclient-mysqldatareader-getmysqldatetime, Prev: connector-net-ref-mysqlclient-mysqldatareader-getint32, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.138 `MySqlDataReader.GetInt64' Method +22.2.7.140 `MySqlDataReader.GetInt64' Method ............................................ *Syntax: Visual Basic* @@ -191889,7 +193586,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-getmysqldatetime, Next: connector-net-ref-mysqlclient-mysqldatareader-getname, Prev: connector-net-ref-mysqlclient-mysqldatareader-getint64, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.139 `MySqlDataReader.GetMySqlDateTime' Method +22.2.7.141 `MySqlDataReader.GetMySqlDateTime' Method .................................................... *Syntax: Visual Basic* @@ -191913,7 +193610,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-getname, Next: connector-net-ref-mysqlclient-mysqldatareader-getordinal, Prev: connector-net-ref-mysqlclient-mysqldatareader-getmysqldatetime, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.140 `MySqlDataReader.GetName' Method +22.2.7.142 `MySqlDataReader.GetName' Method ........................................... Gets the name of the specified column. @@ -191951,7 +193648,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-getordinal, Next: connector-net-ref-mysqlclient-mysqldatareader-getschematable, Prev: connector-net-ref-mysqlclient-mysqldatareader-getname, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.141 `MySqlDataReader.GetOrdinal' Method +22.2.7.143 `MySqlDataReader.GetOrdinal' Method .............................................. Gets the column ordinal, given the name of the column. @@ -191989,7 +193686,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-getschematable, Next: connector-net-ref-mysqlclient-mysqldatareader-getstring, Prev: connector-net-ref-mysqlclient-mysqldatareader-getordinal, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.142 `MySqlDataReader.GetSchemaTable' Method +22.2.7.144 `MySqlDataReader.GetSchemaTable' Method .................................................. Returns a DataTable that describes the column metadata of the @@ -192020,7 +193717,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-getstring, Next: connector-net-ref-mysqlclient-mysqldatareader-gettimespan, Prev: connector-net-ref-mysqlclient-mysqldatareader-getschematable, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.143 `MySqlDataReader.GetString' Method +22.2.7.145 `MySqlDataReader.GetString' Method ............................................. *Syntax: Visual Basic* @@ -192050,7 +193747,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-gettimespan, Next: connector-net-ref-mysqlclient-mysqldatareader-getuint16, Prev: connector-net-ref-mysqlclient-mysqldatareader-getstring, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.144 `MySqlDataReader.GetTimeSpan' Method +22.2.7.146 `MySqlDataReader.GetTimeSpan' Method ............................................... *Syntax: Visual Basic* @@ -192074,7 +193771,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-getuint16, Next: connector-net-ref-mysqlclient-mysqldatareader-getuint32, Prev: connector-net-ref-mysqlclient-mysqldatareader-gettimespan, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.145 `MySqlDataReader.GetUInt16' Method +22.2.7.147 `MySqlDataReader.GetUInt16' Method ............................................. *Syntax: Visual Basic* @@ -192098,7 +193795,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-getuint32, Next: connector-net-ref-mysqlclient-mysqldatareader-getuint64, Prev: connector-net-ref-mysqlclient-mysqldatareader-getuint16, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.146 `MySqlDataReader.GetUInt32' Method +22.2.7.148 `MySqlDataReader.GetUInt32' Method ............................................. *Syntax: Visual Basic* @@ -192122,7 +193819,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-getuint64, Next: connector-net-ref-mysqlclient-mysqldatareader-getvalue, Prev: connector-net-ref-mysqlclient-mysqldatareader-getuint32, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.147 `MySqlDataReader.GetUInt64' Method +22.2.7.149 `MySqlDataReader.GetUInt64' Method ............................................. *Syntax: Visual Basic* @@ -192146,7 +193843,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-getvalue, Next: connector-net-ref-mysqlclient-mysqldatareader-getvalues, Prev: connector-net-ref-mysqlclient-mysqldatareader-getuint64, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.148 `MySqlDataReader.GetValue' Method +22.2.7.150 `MySqlDataReader.GetValue' Method ............................................ Gets the value of the specified column in its native format. @@ -192184,7 +193881,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-getvalues, Next: connector-net-ref-mysqlclient-mysqldatareader-isdbnull, Prev: connector-net-ref-mysqlclient-mysqldatareader-getvalue, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.149 `MySqlDataReader.GetValues' Method +22.2.7.151 `MySqlDataReader.GetValues' Method ............................................. Gets all attribute columns in the collection for the current row. @@ -192222,7 +193919,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-isdbnull, Next: connector-net-ref-mysqlclient-mysqldatareader-nextresult, Prev: connector-net-ref-mysqlclient-mysqldatareader-getvalues, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.150 `MySqlDataReader.IsDBNull' Method +22.2.7.152 `MySqlDataReader.IsDBNull' Method ............................................ Gets a value indicating whether the column contains non-existent or @@ -192261,7 +193958,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-nextresult, Next: connector-net-ref-mysqlclient-mysqldatareader-read, Prev: connector-net-ref-mysqlclient-mysqldatareader-isdbnull, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.151 `MySqlDataReader.NextResult' Method +22.2.7.153 `MySqlDataReader.NextResult' Method .............................................. Advances the data reader to the next result, when reading the results @@ -192292,7 +193989,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldatareader-read, Prev: connector-net-ref-mysqlclient-mysqldatareader-nextresult, Up: connector-net-ref-mysqlclient-mysqldatareadermembers -22.2.7.152 `MySqlDataReader.Read' Method +22.2.7.154 `MySqlDataReader.Read' Method ........................................ Advances the MySqlDataReader to the next record. @@ -192322,7 +194019,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommand-executereader-overload-2, Prev: connector-net-ref-mysqlclient-mysqlcommand-executereader-overload-1, Up: connector-net-ref-mysqlclient-mysqlcommand-executereader-overloads -22.2.7.153 `MySqlCommand.ExecuteReader' Method +22.2.7.155 `MySqlCommand.ExecuteReader' Method .............................................. *Syntax: Visual Basic* @@ -192347,7 +194044,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommand-executescalar, Next: connector-net-ref-mysqlclient-mysqlcommand-prepare, Prev: connector-net-ref-mysqlclient-mysqlcommand-executereader-overloads, Up: connector-net-ref-mysqlclient-mysqlcommandmembers -22.2.7.154 `MySqlCommand.ExecuteScalar' Method +22.2.7.156 `MySqlCommand.ExecuteScalar' Method .............................................. *Syntax: Visual Basic* @@ -192372,7 +194069,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommand-prepare, Prev: connector-net-ref-mysqlclient-mysqlcommand-executescalar, Up: connector-net-ref-mysqlclient-mysqlcommandmembers -22.2.7.155 `MySqlCommand.Prepare' Method +22.2.7.157 `MySqlCommand.Prepare' Method ........................................ *Syntax: Visual Basic* @@ -192397,7 +194094,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommandbuilder, Next: connector-net-ref-mysqlclient-mysqlexception, Prev: connector-net-ref-mysqlclient-mysqlcommand, Up: connector-net-ref-mysqlclient -22.2.7.156 `MySqlCommandBuilder' Class +22.2.7.158 `MySqlCommandBuilder' Class ...................................... * Menu: @@ -192418,8 +194115,8 @@ *Thread Safety* -Public static (Sharedin Visual Basic) members of this type are safe for -multithreaded operations. Instance members are notguaranteed to be +Public static (Shared in Visual Basic) members of this type are safe +for multithreaded operations. Instance members are not guaranteed to be thread-safe. *Requirements* @@ -192437,7 +194134,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommandbuildermembers, Prev: connector-net-ref-mysqlclient-mysqlcommandbuilder, Up: connector-net-ref-mysqlclient-mysqlcommandbuilder -22.2.7.157 `MySqlCommandBuilder' Members +22.2.7.159 `MySqlCommandBuilder' Members ........................................ * Menu: @@ -192475,7 +194172,7 @@ *Public Instance Properties* -Container(inherited from Component) Gets the IContainerthat contains +Container (inherited from Component) Gets the IContainer that contains the Component. *Note DataAdapter: connector-net-ref-mysqlclient-mysqlcommandbuilder-dataadapter. @@ -192483,49 +194180,49 @@ connector-net-ref-mysqlclient-mysqlcommandbuilder-quoteprefix. *Note QuoteSuffix: connector-net-ref-mysqlclient-mysqlcommandbuilder-quotesuffix. -Site(inherited from Component) Gets or sets the ISiteof the +Site (inherited from Component) Gets or sets the ISite of the Component. *Public Instance Methods* -CreateObjRef(inherited from Creates an object that contains all +CreateObjRef (inherited from Creates an object that contains all MarshalByRefObject) the relevant information required to generate a proxy used to communicate with a remote object. -Dispose(inherited from Component) Releases all resources used by the +Dispose (inherited from Component) Releases all resources used by the Component. -Equals(inherited from Object) Determines whether the specified - Objectis equal to the current +Equals (inherited from Object) Determines whether the specified + Object is equal to the current Object. *Note GetDeleteCommand: connector-net-ref-mysqlclient-mysqlcommandbuilder-getdeletecommand. -GetHashCode(inherited from Object) Serves as a hash function for a - particular type. GetHashCodeis +GetHashCode (inherited from Object) Serves as a hash function for a + particular type. GetHashCode is suitable for use in hashing algorithms and data structures like a hash table. *Note GetInsertCommand: connector-net-ref-mysqlclient-mysqlcommandbuilder-getinsertcommand. -GetLifetimeService(inherited from Retrieves the current lifetime +GetLifetimeService (inherited from Retrieves the current lifetime MarshalByRefObject) service object that controls the lifetime policy for this instance. -GetType(inherited from Object) Gets the Typeof the current +GetType (inherited from Object) Gets the Type of the current instance. *Note GetUpdateCommand: connector-net-ref-mysqlclient-mysqlcommandbuilder-getupdatecommand. -InitializeLifetimeService(inherited Obtains a lifetime service object -from MarshalByRefObject) to control the lifetime policy for +InitializeLifetimeService Obtains a lifetime service object +(inherited from MarshalByRefObject) to control the lifetime policy for this instance. *Note RefreshSchema: connector-net-ref-mysqlclient-mysqlcommandbuilder-refreshschema. -ToString(inherited from Component) Returns a Stringcontaining the name - of the Component, if any. This +ToString (inherited from Component) Returns a String containing the + name of the Component, if any. This method should not be overridden. *Public Instance Events* -Disposed(inherited from Component) Adds an event handler to listen to - the Disposedevent on the component. +Disposed (inherited from Component) Adds an event handler to listen to + the Disposed event on the component. *See Also* @@ -192536,7 +194233,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommandbuilder-deriveparameters-overloads, Next: connector-net-ref-mysqlclient-mysqlcommandbuilderconstructor, Prev: connector-net-ref-mysqlclient-mysqlcommandbuildermembers, Up: connector-net-ref-mysqlclient-mysqlcommandbuildermembers -22.2.7.158 DeriveParameters Method +22.2.7.160 DeriveParameters Method .................................. * Menu: @@ -192571,7 +194268,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommandbuilder-deriveparameters-overload-1, Next: connector-net-ref-mysqlclient-mysqlcommandbuilder-deriveparameters-overload-2, Prev: connector-net-ref-mysqlclient-mysqlcommandbuilder-deriveparameters-overloads, Up: connector-net-ref-mysqlclient-mysqlcommandbuilder-deriveparameters-overloads -22.2.7.159 `MySqlCommandBuilder.DeriveParameters' Method +22.2.7.161 `MySqlCommandBuilder.DeriveParameters' Method ........................................................ Retrieves parameter information from the stored procedure specified in @@ -192615,7 +194312,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommandbuilder-deriveparameters-overload-2, Prev: connector-net-ref-mysqlclient-mysqlcommandbuilder-deriveparameters-overload-1, Up: connector-net-ref-mysqlclient-mysqlcommandbuilder-deriveparameters-overloads -22.2.7.160 `MySqlCommandBuilder.DeriveParameters' Method +22.2.7.162 `MySqlCommandBuilder.DeriveParameters' Method ........................................................ *Syntax: Visual Basic* @@ -192643,7 +194340,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommandbuilderconstructor, Next: connector-net-ref-mysqlclient-mysqlcommandbuilder-dataadapter, Prev: connector-net-ref-mysqlclient-mysqlcommandbuilder-deriveparameters-overloads, Up: connector-net-ref-mysqlclient-mysqlcommandbuildermembers -22.2.7.161 `MySqlCommandBuilder' Constructor +22.2.7.163 `MySqlCommandBuilder' Constructor ............................................ * Menu: @@ -192682,7 +194379,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommandbuilderconstructor1, Next: connector-net-ref-mysqlclient-mysqlcommandbuilderconstructor3, Prev: connector-net-ref-mysqlclient-mysqlcommandbuilderconstructor, Up: connector-net-ref-mysqlclient-mysqlcommandbuilderconstructor -22.2.7.162 `MySqlCommandBuilder' Constructor +22.2.7.164 `MySqlCommandBuilder' Constructor ............................................ Initializes a new instance of the *Note MySqlCommandBuilder: @@ -192707,7 +194404,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommandbuilderconstructor3, Next: connector-net-ref-mysqlclient-mysqlcommandbuilderconstructor4, Prev: connector-net-ref-mysqlclient-mysqlcommandbuilderconstructor1, Up: connector-net-ref-mysqlclient-mysqlcommandbuilderconstructor -22.2.7.163 `MySqlCommandBuilder' Constructor +22.2.7.165 `MySqlCommandBuilder' Constructor ............................................ * Menu: @@ -192737,7 +194434,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldataadapter, Prev: connector-net-ref-mysqlclient-mysqlcommandbuilderconstructor3, Up: connector-net-ref-mysqlclient-mysqlcommandbuilderconstructor3 -22.2.7.164 `MySqlDataAdapter' Class +22.2.7.166 `MySqlDataAdapter' Class ................................... * Menu: @@ -192758,8 +194455,8 @@ *Thread Safety* -Public static (Sharedin Visual Basic) members of this type are safe for -multithreaded operations. Instance members are notguaranteed to be +Public static (Shared in Visual Basic) members of this type are safe +for multithreaded operations. Instance members are not guaranteed to be thread-safe. *Requirements* @@ -192777,7 +194474,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldataadaptermembers, Prev: connector-net-ref-mysqlclient-mysqldataadapter, Up: connector-net-ref-mysqlclient-mysqldataadapter -22.2.7.165 `MySqlDataAdapter' Members +22.2.7.167 `MySqlDataAdapter' Members ..................................... * Menu: @@ -192801,45 +194498,45 @@ *Public Instance Properties* -AcceptChangesDuringFill(inherited Gets or sets a value indicating +AcceptChangesDuringFill (inherited Gets or sets a value indicating from DataAdapter) whether AcceptChangesis called on a DataRowafter it is added to the DataTableduring any of the Fill operations. -AcceptChangesDuringUpdate(inherited Gets or sets whether -from DataAdapter) AcceptChangesis called during a +AcceptChangesDuringUpdate Gets or sets whether +(inherited from DataAdapter) AcceptChangesis called during a Update. -Container(inherited from Component) Gets the IContainerthat contains +Container (inherited from Component) Gets the IContainer that contains the Component. -ContinueUpdateOnError(inherited Gets or sets a value that specifies +ContinueUpdateOnError (inherited Gets or sets a value that specifies from DataAdapter) whether to generate an exception when an error is encountered during a row update. *Note DeleteCommand: Overloaded. connector-net-ref-mysqlclient-mysqldataadapter-deletecommand1. -FillLoadOption(inherited from Gets or sets the LoadOptionthat +FillLoadOption (inherited from Gets or sets the LoadOption that DataAdapter) determines how the adapter fills the DataTablefrom the DbDataReader. *Note InsertCommand: Overloaded. connector-net-ref-mysqlclient-mysqldataadapter-insertcommand1. -MissingMappingAction(inherited from Determines the action to take when -DataAdapter) incoming data does not have a +MissingMappingAction (inherited Determines the action to take when +from DataAdapter) incoming data does not have a matching table or column. -MissingSchemaAction(inherited from Determines the action to take when +MissingSchemaAction (inherited from Determines the action to take when DataAdapter) existing DataSetschema does not match incoming data. -ReturnProviderSpecificTypes(inheritedGets or sets whether the Fillmethod -from DataAdapter) should return provider-specific +ReturnProviderSpecificTypes Gets or sets whether the Fillmethod +(inherited from DataAdapter) should return provider-specific values or common CLS-compliant values. *Note SelectCommand: Overloaded. connector-net-ref-mysqlclient-mysqldataadapter-selectcommand1. -Site(inherited from Component) Gets or sets the ISiteof the +Site (inherited from Component) Gets or sets the ISite of the Component. -TableMappings(inherited from Gets a collection that provides the +TableMappings (inherited from Gets a collection that provides the DataAdapter) master mapping between a source table and a DataTable. -UpdateBatchSize(inherited from Gets or sets a value that enables +UpdateBatchSize (inherited from Gets or sets a value that enables DbDataAdapter) or disables batch processing support, and specifies the number of commands that can be executed in @@ -192849,62 +194546,62 @@ *Public Instance Methods* -CreateObjRef(inherited from Creates an object that contains all +CreateObjRef (inherited from Creates an object that contains all MarshalByRefObject) the relevant information required to generate a proxy used to communicate with a remote object. -Dispose(inherited from Component) Releases all resources used by the +Dispose (inherited from Component) Releases all resources used by the Component. -Equals(inherited from Object) Determines whether the specified - Objectis equal to the current +Equals (inherited from Object) Determines whether the specified + Object is equal to the current Object. -Fill(inherited from DbDataAdapter) Overloaded. Adds or refreshes rows +Fill (inherited from DbDataAdapter) Overloaded. Adds or refreshes rows in the DataSetto match those in the data source using the DataSetname, and creates a DataTablenamed "Table." -FillSchema(inherited from Overloaded. Configures the schema +FillSchema (inherited from Overloaded. Configures the schema DbDataAdapter) of the specified DataTablebased on the specified SchemaType. -GetFillParameters(inherited from Gets the parameters set by the user +GetFillParameters (inherited from Gets the parameters set by the user DbDataAdapter) when executing an SQL *Note `SELECT': select. statement. -GetHashCode(inherited from Object) Serves as a hash function for a - particular type. GetHashCodeis +GetHashCode (inherited from Object) Serves as a hash function for a + particular type. GetHashCode is suitable for use in hashing algorithms and data structures like a hash table. -GetLifetimeService(inherited from Retrieves the current lifetime +GetLifetimeService (inherited from Retrieves the current lifetime MarshalByRefObject) service object that controls the lifetime policy for this instance. -GetType(inherited from Object) Gets the Typeof the current +GetType (inherited from Object) Gets the Type of the current instance. -InitializeLifetimeService(inherited Obtains a lifetime service object -from MarshalByRefObject) to control the lifetime policy for +InitializeLifetimeService Obtains a lifetime service object +(inherited from MarshalByRefObject) to control the lifetime policy for this instance. -ResetFillLoadOption(inherited from Resets FillLoadOptionto its default +ResetFillLoadOption (inherited from Resets FillLoadOptionto its default DataAdapter) state and causes Fillto honor AcceptChangesDuringFill. -ShouldSerializeAcceptChangesDuringFill(inheritedDetermines whether the -from DataAdapter) AcceptChangesDuringFillproperty +ShouldSerializeAcceptChangesDuringFillDetermines whether the +(inherited from DataAdapter) AcceptChangesDuringFillproperty should be persisted. -ShouldSerializeFillLoadOption(inheritedDetermines whether the -from DataAdapter) FillLoadOptionproperty should be +ShouldSerializeFillLoadOption Determines whether the +(inherited from DataAdapter) FillLoadOptionproperty should be persisted. -ToString(inherited from Component) Returns a Stringcontaining the name - of the Component, if any. This +ToString (inherited from Component) Returns a String containing the + name of the Component, if any. This method should not be overridden. -Update(inherited from DbDataAdapter) Overloaded. Calls the respective - INSERT, UPDATE, or DELETE statements +Update (inherited from Overloaded. Calls the respective +DbDataAdapter) INSERT, UPDATE, or DELETE statements for each inserted, updated, or deleted row in the specified DataSet. *Public Instance Events* -Disposed(inherited from Component) Adds an event handler to listen to - the Disposedevent on the component. -FillError(inherited from Returned when an error occurs +Disposed (inherited from Component) Adds an event handler to listen to + the Disposed event on the component. +FillError (inherited from Returned when an error occurs DataAdapter) during a fill operation. *Note RowUpdated: Occurs during Update after a connector-net-ref-mysqlclient-mysqldataadapter-rowupdated.command is executed against the data @@ -192917,7 +194614,7 @@ *Protected Internal Instance Properties* -FillCommandBehavior(inherited from Gets or sets the behavior of the +FillCommandBehavior (inherited from Gets or sets the behavior of the DbDataAdapter) command used to fill the data adapter. @@ -192930,7 +194627,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldataadapterconstructor, Next: connector-net-ref-mysqlclient-mysqldataadapter-deletecommand1, Prev: connector-net-ref-mysqlclient-mysqldataadaptermembers, Up: connector-net-ref-mysqlclient-mysqldataadaptermembers -22.2.7.166 `MySqlDataAdapter' Constructor +22.2.7.168 `MySqlDataAdapter' Constructor ......................................... * Menu: @@ -192969,7 +194666,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldataadapterconstructor1, Next: connector-net-ref-mysqlclient-mysqldataadapterconstructor2, Prev: connector-net-ref-mysqlclient-mysqldataadapterconstructor, Up: connector-net-ref-mysqlclient-mysqldataadapterconstructor -22.2.7.167 `MySqlDataAdapter' Constructor +22.2.7.169 `MySqlDataAdapter' Constructor ......................................... Initializes a new instance of the *Note MySqlDataAdapter: @@ -192994,7 +194691,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldataadapterconstructor2, Next: connector-net-ref-mysqlclient-mysqldataadapterconstructor3, Prev: connector-net-ref-mysqlclient-mysqldataadapterconstructor1, Up: connector-net-ref-mysqlclient-mysqldataadapterconstructor -22.2.7.168 `MySqlDataAdapter' Constructor +22.2.7.170 `MySqlDataAdapter' Constructor ......................................... *Syntax: Visual Basic* @@ -193020,7 +194717,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldataadapterconstructor3, Next: connector-net-ref-mysqlclient-mysqldataadapterconstructor4, Prev: connector-net-ref-mysqlclient-mysqldataadapterconstructor2, Up: connector-net-ref-mysqlclient-mysqldataadapterconstructor -22.2.7.169 `MySqlDataAdapter' Constructor +22.2.7.171 `MySqlDataAdapter' Constructor ......................................... *Syntax: Visual Basic* @@ -193048,7 +194745,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldataadapterconstructor4, Prev: connector-net-ref-mysqlclient-mysqldataadapterconstructor3, Up: connector-net-ref-mysqlclient-mysqldataadapterconstructor -22.2.7.170 `MySqlDataAdapter' Constructor +22.2.7.172 `MySqlDataAdapter' Constructor ......................................... *Syntax: Visual Basic* @@ -193076,7 +194773,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldataadapter-deletecommand1, Next: connector-net-ref-mysqlclient-mysqldataadapter-insertcommand1, Prev: connector-net-ref-mysqlclient-mysqldataadapterconstructor, Up: connector-net-ref-mysqlclient-mysqldataadaptermembers -22.2.7.171 DeleteCommand Property +22.2.7.173 DeleteCommand Property ................................. *Syntax: Visual Basic* @@ -193096,7 +194793,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldataadapter-insertcommand1, Next: connector-net-ref-mysqlclient-mysqldataadapter-selectcommand1, Prev: connector-net-ref-mysqlclient-mysqldataadapter-deletecommand1, Up: connector-net-ref-mysqlclient-mysqldataadaptermembers -22.2.7.172 InsertCommand Property +22.2.7.174 InsertCommand Property ................................. *Syntax: Visual Basic* @@ -193116,7 +194813,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldataadapter-selectcommand1, Next: connector-net-ref-mysqlclient-mysqldataadapter-updatecommand1, Prev: connector-net-ref-mysqlclient-mysqldataadapter-insertcommand1, Up: connector-net-ref-mysqlclient-mysqldataadaptermembers -22.2.7.173 SelectCommand Property +22.2.7.175 SelectCommand Property ................................. *Syntax: Visual Basic* @@ -193136,7 +194833,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldataadapter-updatecommand1, Next: connector-net-ref-mysqlclient-mysqldataadapter-rowupdated, Prev: connector-net-ref-mysqlclient-mysqldataadapter-selectcommand1, Up: connector-net-ref-mysqlclient-mysqldataadaptermembers -22.2.7.174 UpdateCommand Property +22.2.7.176 UpdateCommand Property ................................. *Syntax: Visual Basic* @@ -193156,7 +194853,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldataadapter-rowupdated, Next: connector-net-ref-mysqlclient-mysqldataadapter-rowupdating, Prev: connector-net-ref-mysqlclient-mysqldataadapter-updatecommand1, Up: connector-net-ref-mysqlclient-mysqldataadaptermembers -22.2.7.175 `MySqlDataAdapter.RowUpdated' Event +22.2.7.177 `MySqlDataAdapter.RowUpdated' Event .............................................. * Menu: @@ -193198,7 +194895,7 @@ in a batch of updated records. StatementType Gets the type of SQL statement executed. -Status Gets the UpdateStatusof the +Status Gets the UpdateStatus of the Commandproperty. TableMapping Gets the DataTableMappingsent through an Update. @@ -193212,7 +194909,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlrowupdatedeventhandler, Prev: connector-net-ref-mysqlclient-mysqldataadapter-rowupdated, Up: connector-net-ref-mysqlclient-mysqldataadapter-rowupdated -22.2.7.176 `MySqlRowUpdatedEventHandler' Delegate +22.2.7.178 `MySqlRowUpdatedEventHandler' Delegate ................................................. * Menu: @@ -193220,7 +194917,7 @@ * connector-net-ref-mysqlclient-mysqlrowupdatedeventargs:: `MySqlRowUpdatedEventArgs' Class Represents the method that will handle the RowUpdatedevent of a *Note -MySqlDataAdapter: connector-net-ref-mysqlclient-mysqldataadapter . +MySqlDataAdapter: connector-net-ref-mysqlclient-mysqldataadapter. *Syntax: Visual Basic* @@ -193233,7 +194930,7 @@ public delegate void MySqlRowUpdatedEventHandler( objectsender, - MySqlRowUpdatedEventArgse + MySqlRowUpdatedEventArgs ); *Requirements* @@ -193249,7 +194946,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlrowupdatedeventargs, Prev: connector-net-ref-mysqlclient-mysqlrowupdatedeventhandler, Up: connector-net-ref-mysqlclient-mysqlrowupdatedeventhandler -22.2.7.177 `MySqlRowUpdatedEventArgs' Class +22.2.7.179 `MySqlRowUpdatedEventArgs' Class ........................................... * Menu: @@ -193273,8 +194970,8 @@ *Thread Safety* -Public static (Sharedin Visual Basic) members of this type are safe for -multithreaded operations. Instance members are notguaranteed to be +Public static (Shared in Visual Basic) members of this type are safe +for multithreaded operations. Instance members are not guaranteed to be thread-safe. *Requirements* @@ -193292,7 +194989,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlrowupdatedeventargsmembers, Prev: connector-net-ref-mysqlclient-mysqlrowupdatedeventargs, Up: connector-net-ref-mysqlclient-mysqlrowupdatedeventargs -22.2.7.178 `MySqlRowUpdatedEventArgs' Members +22.2.7.180 `MySqlRowUpdatedEventArgs' Members ............................................. * Menu: @@ -193314,40 +195011,40 @@ *Note Command: Overloaded. Gets or sets the connector-net-ref-mysqlclient-mysqlrowupdatedeventargs-command1.MySqlCommand executed when Update is called. -Errors(inherited from Gets any errors generated by the +Errors (inherited from Gets any errors generated by the RowUpdatedEventArgs) .NET Framework data provider when the Commandwas executed. -RecordsAffected(inherited from Gets the number of rows changed, +RecordsAffected (inherited from Gets the number of rows changed, RowUpdatedEventArgs) inserted, or deleted by execution of the SQL statement. -Row(inherited from Gets the DataRowsent through an +Row (inherited from Gets the DataRowsent through an RowUpdatedEventArgs) Update. -RowCount(inherited from Gets the number of rows processed +RowCount (inherited from Gets the number of rows processed RowUpdatedEventArgs) in a batch of updated records. -StatementType(inherited from Gets the type of SQL statement +StatementType (inherited from Gets the type of SQL statement RowUpdatedEventArgs) executed. -Status(inherited from Gets the UpdateStatusof the +Status (inherited from Gets the UpdateStatus of the RowUpdatedEventArgs) Commandproperty. -TableMapping(inherited from Gets the DataTableMappingsent +TableMapping (inherited from Gets the DataTableMappingsent RowUpdatedEventArgs) through an Update. *Public Instance Methods* -CopyToRows(inherited from Overloaded. Copies references to +CopyToRows (inherited from Overloaded. Copies references to RowUpdatedEventArgs) the modified rows into the provided array. -Equals(inherited from Object) Determines whether the specified - Objectis equal to the current +Equals (inherited from Object) Determines whether the specified + Object is equal to the current Object. -GetHashCode(inherited from Object) Serves as a hash function for a - particular type. GetHashCodeis +GetHashCode (inherited from Object) Serves as a hash function for a + particular type. GetHashCode is suitable for use in hashing algorithms and data structures like a hash table. -GetType(inherited from Object) Gets the Typeof the current +GetType (inherited from Object) Gets the Type of the current instance. -ToString(inherited from Object) Returns a Stringthat represents the - current Object. +ToString (inherited from Object) Returns a String that represents + the current Object. *See Also* @@ -193358,7 +195055,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlrowupdatedeventargsconstructor, Next: connector-net-ref-mysqlclient-mysqlrowupdatedeventargs-command1, Prev: connector-net-ref-mysqlclient-mysqlrowupdatedeventargsmembers, Up: connector-net-ref-mysqlclient-mysqlrowupdatedeventargsmembers -22.2.7.179 `MySqlRowUpdatedEventArgs' Constructor +22.2.7.181 `MySqlRowUpdatedEventArgs' Constructor ................................................. Initializes a new instance of the MySqlRowUpdatedEventArgs class. @@ -193385,12 +195082,12 @@ * `row': The DataRowsent through an Update. - * `command': The IDbCommandexecuted when Updateis called. + * `command': The IDbCommand executed when Update is called. * `statementType': One of the StatementTypevalues that specifies the type of query executed. - * `tableMapping': The DataTableMappingsent through an Update. + * `tableMapping': The DataTableMapping sent through an Update. *See Also* @@ -193401,7 +195098,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlrowupdatedeventargs-command1, Prev: connector-net-ref-mysqlclient-mysqlrowupdatedeventargsconstructor, Up: connector-net-ref-mysqlclient-mysqlrowupdatedeventargsmembers -22.2.7.180 Command Property +22.2.7.182 Command Property ........................... Gets or sets the MySqlCommand executed when Update is called. @@ -193423,7 +195120,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqldataadapter-rowupdating, Prev: connector-net-ref-mysqlclient-mysqldataadapter-rowupdated, Up: connector-net-ref-mysqlclient-mysqldataadaptermembers -22.2.7.181 `MySqlDataAdapter.RowUpdating' Event +22.2.7.183 `MySqlDataAdapter.RowUpdating' Event ............................................... * Menu: @@ -193455,15 +195152,15 @@ connector-net-ref-mysqlclient-mysqlrowupdatingeventargs-command1.execute when performing the Update. Errors Gets any errors generated by the .NET Framework data provider when - the Commandexecutes. -Row Gets the DataRowthat will be sent + the Command executes. +Row Gets the DataRow that will be sent to the server as part of an insert, update, or delete operation. StatementType Gets the type of SQL statement to execute. -Status Gets or sets the UpdateStatusof the - Commandproperty. -TableMapping Gets the DataTableMappingto send +Status Gets or sets the UpdateStatus of + the Commandproperty. +TableMapping Gets the DataTableMapping to send through the Update. *See Also* @@ -193475,7 +195172,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlrowupdatingeventhandler, Prev: connector-net-ref-mysqlclient-mysqldataadapter-rowupdating, Up: connector-net-ref-mysqlclient-mysqldataadapter-rowupdating -22.2.7.182 `MySqlRowUpdatingEventHandler' Delegate +22.2.7.184 `MySqlRowUpdatingEventHandler' Delegate .................................................. * Menu: @@ -193483,7 +195180,7 @@ * connector-net-ref-mysqlclient-mysqlrowupdatingeventargs:: `MySqlRowUpdatingEventArgs' Class Represents the method that will handle the RowUpdatingevent of a *Note -MySqlDataAdapter: connector-net-ref-mysqlclient-mysqldataadapter . +MySqlDataAdapter: connector-net-ref-mysqlclient-mysqldataadapter. *Syntax: Visual Basic* @@ -193496,7 +195193,7 @@ public delegate void MySqlRowUpdatingEventHandler( objectsender, - MySqlRowUpdatingEventArgse + MySqlRowUpdatingEventArgs ); *Requirements* @@ -193512,7 +195209,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlrowupdatingeventargs, Prev: connector-net-ref-mysqlclient-mysqlrowupdatingeventhandler, Up: connector-net-ref-mysqlclient-mysqlrowupdatingeventhandler -22.2.7.183 `MySqlRowUpdatingEventArgs' Class +22.2.7.185 `MySqlRowUpdatingEventArgs' Class ............................................ * Menu: @@ -193536,8 +195233,8 @@ *Thread Safety* -Public static (Sharedin Visual Basic) members of this type are safe for -multithreaded operations. Instance members are notguaranteed to be +Public static (Shared in Visual Basic) members of this type are safe +for multithreaded operations. Instance members are not guaranteed to be thread-safe. *Requirements* @@ -193555,7 +195252,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlrowupdatingeventargsmembers, Prev: connector-net-ref-mysqlclient-mysqlrowupdatingeventargs, Up: connector-net-ref-mysqlclient-mysqlrowupdatingeventargs -22.2.7.184 `MySqlRowUpdatingEventArgs' Members +22.2.7.186 `MySqlRowUpdatingEventArgs' Members .............................................. * Menu: @@ -193577,33 +195274,33 @@ *Note Command: Overloaded. Gets or sets the connector-net-ref-mysqlclient-mysqlrowupdatingeventargs-command1.MySqlCommand to execute when performing the Update. -Errors(inherited from Gets any errors generated by the +Errors (inherited from Gets any errors generated by the RowUpdatingEventArgs) .NET Framework data provider when - the Commandexecutes. -Row(inherited from Gets the DataRowthat will be sent + the Command executes. +Row (inherited from Gets the DataRow that will be sent RowUpdatingEventArgs) to the server as part of an insert, update, or delete operation. -StatementType(inherited from Gets the type of SQL statement to +StatementType (inherited from Gets the type of SQL statement to RowUpdatingEventArgs) execute. -Status(inherited from Gets or sets the UpdateStatusof the -RowUpdatingEventArgs) Commandproperty. -TableMapping(inherited from Gets the DataTableMappingto send +Status (inherited from Gets or sets the UpdateStatus of +RowUpdatingEventArgs) the Commandproperty. +TableMapping (inherited from Gets the DataTableMapping to send RowUpdatingEventArgs) through the Update. *Public Instance Methods* -Equals(inherited from Object) Determines whether the specified - Objectis equal to the current +Equals (inherited from Object) Determines whether the specified + Object is equal to the current Object. -GetHashCode(inherited from Object) Serves as a hash function for a - particular type. GetHashCodeis +GetHashCode (inherited from Object) Serves as a hash function for a + particular type. GetHashCode is suitable for use in hashing algorithms and data structures like a hash table. -GetType(inherited from Object) Gets the Typeof the current +GetType (inherited from Object) Gets the Type of the current instance. -ToString(inherited from Object) Returns a Stringthat represents the - current Object. +ToString (inherited from Object) Returns a String that represents + the current Object. *See Also* @@ -193614,7 +195311,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlrowupdatingeventargsconstructor, Next: connector-net-ref-mysqlclient-mysqlrowupdatingeventargs-command1, Prev: connector-net-ref-mysqlclient-mysqlrowupdatingeventargsmembers, Up: connector-net-ref-mysqlclient-mysqlrowupdatingeventargsmembers -22.2.7.185 `MySqlRowUpdatingEventArgs' Constructor +22.2.7.187 `MySqlRowUpdatingEventArgs' Constructor .................................................. Initializes a new instance of the MySqlRowUpdatingEventArgs class. @@ -193657,7 +195354,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlrowupdatingeventargs-command1, Prev: connector-net-ref-mysqlclient-mysqlrowupdatingeventargsconstructor, Up: connector-net-ref-mysqlclient-mysqlrowupdatingeventargsmembers -22.2.7.186 Command Property +22.2.7.188 Command Property ........................... Gets or sets the MySqlCommand to execute when performing the Update. @@ -193679,7 +195376,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommandbuilderconstructor4, Next: connector-net-ref-mysqlclient-mysqlcommandbuilderconstructor2, Prev: connector-net-ref-mysqlclient-mysqlcommandbuilderconstructor3, Up: connector-net-ref-mysqlclient-mysqlcommandbuilderconstructor -22.2.7.187 `MySqlCommandBuilder' Constructor +22.2.7.189 `MySqlCommandBuilder' Constructor ............................................ *Syntax: Visual Basic* @@ -193707,7 +195404,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommandbuilderconstructor2, Prev: connector-net-ref-mysqlclient-mysqlcommandbuilderconstructor4, Up: connector-net-ref-mysqlclient-mysqlcommandbuilderconstructor -22.2.7.188 `MySqlCommandBuilder' Constructor +22.2.7.190 `MySqlCommandBuilder' Constructor ............................................ *Syntax: Visual Basic* @@ -193733,7 +195430,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommandbuilder-dataadapter, Next: connector-net-ref-mysqlclient-mysqlcommandbuilder-quoteprefix, Prev: connector-net-ref-mysqlclient-mysqlcommandbuilderconstructor, Up: connector-net-ref-mysqlclient-mysqlcommandbuildermembers -22.2.7.189 DataAdapter Property +22.2.7.191 DataAdapter Property ............................... *Syntax: Visual Basic* @@ -193753,7 +195450,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommandbuilder-quoteprefix, Next: connector-net-ref-mysqlclient-mysqlcommandbuilder-quotesuffix, Prev: connector-net-ref-mysqlclient-mysqlcommandbuilder-dataadapter, Up: connector-net-ref-mysqlclient-mysqlcommandbuildermembers -22.2.7.190 QuotePrefix Property +22.2.7.192 QuotePrefix Property ............................... *Syntax: Visual Basic* @@ -193773,7 +195470,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommandbuilder-quotesuffix, Next: connector-net-ref-mysqlclient-mysqlcommandbuilder-getdeletecommand, Prev: connector-net-ref-mysqlclient-mysqlcommandbuilder-quoteprefix, Up: connector-net-ref-mysqlclient-mysqlcommandbuildermembers -22.2.7.191 QuoteSuffix Property +22.2.7.193 QuoteSuffix Property ............................... *Syntax: Visual Basic* @@ -193793,7 +195490,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommandbuilder-getdeletecommand, Next: connector-net-ref-mysqlclient-mysqlcommandbuilder-getinsertcommand, Prev: connector-net-ref-mysqlclient-mysqlcommandbuilder-quotesuffix, Up: connector-net-ref-mysqlclient-mysqlcommandbuildermembers -22.2.7.192 `MySqlCommandBuilder.GetDeleteCommand' Method +22.2.7.194 `MySqlCommandBuilder.GetDeleteCommand' Method ........................................................ *Syntax: Visual Basic* @@ -193813,7 +195510,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommandbuilder-getinsertcommand, Next: connector-net-ref-mysqlclient-mysqlcommandbuilder-getupdatecommand, Prev: connector-net-ref-mysqlclient-mysqlcommandbuilder-getdeletecommand, Up: connector-net-ref-mysqlclient-mysqlcommandbuildermembers -22.2.7.193 `MySqlCommandBuilder.GetInsertCommand' Method +22.2.7.195 `MySqlCommandBuilder.GetInsertCommand' Method ........................................................ *Syntax: Visual Basic* @@ -193833,7 +195530,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommandbuilder-getupdatecommand, Next: connector-net-ref-mysqlclient-mysqlcommandbuilder-refreshschema, Prev: connector-net-ref-mysqlclient-mysqlcommandbuilder-getinsertcommand, Up: connector-net-ref-mysqlclient-mysqlcommandbuildermembers -22.2.7.194 `MySqlCommandBuilder.GetUpdateCommand' Method +22.2.7.196 `MySqlCommandBuilder.GetUpdateCommand' Method ........................................................ *Syntax: Visual Basic* @@ -193853,7 +195550,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlcommandbuilder-refreshschema, Prev: connector-net-ref-mysqlclient-mysqlcommandbuilder-getupdatecommand, Up: connector-net-ref-mysqlclient-mysqlcommandbuildermembers -22.2.7.195 `MySqlCommandBuilder.RefreshSchema' Method +22.2.7.197 `MySqlCommandBuilder.RefreshSchema' Method ..................................................... *Syntax: Visual Basic* @@ -193873,7 +195570,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlexception, Next: connector-net-ref-mysqlclient-mysqlhelper, Prev: connector-net-ref-mysqlclient-mysqlcommandbuilder, Up: connector-net-ref-mysqlclient -22.2.7.196 `MySqlException' Class +22.2.7.198 `MySqlException' Class ................................. * Menu: @@ -193897,8 +195594,8 @@ *Thread Safety* -Public static (Sharedin Visual Basic) members of this type are safe for -multithreaded operations. Instance members are notguaranteed to be +Public static (Shared in Visual Basic) members of this type are safe +for multithreaded operations. Instance members are not guaranteed to be thread-safe. *Requirements* @@ -193916,7 +195613,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlexceptionmembers, Prev: connector-net-ref-mysqlclient-mysqlexception, Up: connector-net-ref-mysqlclient-mysqlexception -22.2.7.197 `MySqlException' Members +22.2.7.199 `MySqlException' Members ................................... * Menu: @@ -193928,50 +195625,50 @@ *Public Instance Properties* -Data(inherited from Exception) Gets a collection of key/value +Data (inherited from Exception) Gets a collection of key/value pairs that provide additional, user-defined information about the exception. -HelpLink(inherited from Exception) Gets or sets a link to the help +HelpLink (inherited from Exception) Gets or sets a link to the help file associated with this exception. -InnerException(inherited from Gets the Exceptioninstance that +InnerException (inherited from Gets the `Exceptioninstance' that Exception) caused the current exception. -Message(inherited from Exception) Gets a message that describes the +Message (inherited from Exception) Gets a message that describes the current exception. *Note Number: Gets a number that identifies the connector-net-ref-mysqlclient-mysqlexception-number.type of error. This number corresponds to the error numbers given in *Note error-messages-server::. -Source(inherited from Exception) Gets or sets the name of the +Source (inherited from Exception) Gets or sets the name of the application or the object that causes the error. -StackTrace(inherited from Exception) Gets a string representation of the - frames on the call stack at the time +StackTrace (inherited from Gets a string representation of the +Exception) frames on the call stack at the time the current exception was thrown. -TargetSite(inherited from Exception) Gets the method that throws the - current exception. +TargetSite (inherited from Gets the method that throws the +Exception) current exception. *Public Instance Methods* -Equals(inherited from Object) Determines whether the specified - Objectis equal to the current +Equals (inherited from Object) Determines whether the specified + Object is equal to the current Object. -GetBaseException(inherited from When overridden in a derived class, -Exception) returns the Exceptionthat is the +GetBaseException (inherited from When overridden in a derived class, +Exception) returns the Exception that is the root cause of one or more subsequent exceptions. -GetHashCode(inherited from Object) Serves as a hash function for a - particular type. GetHashCodeis +GetHashCode (inherited from Object) Serves as a hash function for a + particular type. GetHashCode is suitable for use in hashing algorithms and data structures like a hash table. -GetObjectData(inherited from When overridden in a derived class, -Exception) sets the SerializationInfowith +GetObjectData (inherited from When overridden in a derived class, +Exception) sets the SerializationInfo with information about the exception. -GetType(inherited from Exception) Gets the runtime type of the +GetType (inherited from Exception) Gets the runtime type of the current instance. -ToString(inherited from Exception) Creates and returns a string +ToString (inherited from Exception) Creates and returns a string representation of the current exception. @@ -193984,7 +195681,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlexception-number, Prev: connector-net-ref-mysqlclient-mysqlexceptionmembers, Up: connector-net-ref-mysqlclient-mysqlexceptionmembers -22.2.7.198 Number Property +22.2.7.200 Number Property .......................... Gets a number that identifies the type of error. @@ -194006,7 +195703,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlhelper, Next: connector-net-ref-mysqlclient-mysqlerrorcode, Prev: connector-net-ref-mysqlclient-mysqlexception, Up: connector-net-ref-mysqlclient -22.2.7.199 `MySqlHelper' Class +22.2.7.201 `MySqlHelper' Class .............................. * Menu: @@ -194047,7 +195744,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlhelpermembers, Prev: connector-net-ref-mysqlclient-mysqlhelper, Up: connector-net-ref-mysqlclient-mysqlhelper -22.2.7.200 `MySqlHelper' Members +22.2.7.202 `MySqlHelper' Members ................................ * Menu: @@ -194089,18 +195786,18 @@ *Public Instance Methods* -Equals(inherited from Object) Determines whether the specified - Objectis equal to the current +Equals (inherited from Object) Determines whether the specified + Object is equal to the current Object. -GetHashCode(inherited from Object) Serves as a hash function for a - particular type. GetHashCodeis +GetHashCode (inherited from Object) Serves as a hash function for a + particular type. GetHashCode is suitable for use in hashing algorithms and data structures like a hash table. -GetType(inherited from Object) Gets the Typeof the current +GetType (inherited from Object) Gets the Type of the current instance. -ToString(inherited from Object) Returns a Stringthat represents the - current Object. +ToString (inherited from Object) Returns a String that represents + the current Object. *See Also* @@ -194110,7 +195807,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlhelper-executedatarow, Next: connector-net-ref-mysqlclient-mysqlhelper-executedataset-overloads, Prev: connector-net-ref-mysqlclient-mysqlhelpermembers, Up: connector-net-ref-mysqlclient-mysqlhelpermembers -22.2.7.201 `MySqlHelper.ExecuteDataRow' Method +22.2.7.203 `MySqlHelper.ExecuteDataRow' Method .............................................. Executes a single SQL statement and returns the first row of the @@ -194153,7 +195850,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlhelper-executedataset-overloads, Next: connector-net-ref-mysqlclient-mysqlhelper-executenonquery-overloads, Prev: connector-net-ref-mysqlclient-mysqlhelper-executedatarow, Up: connector-net-ref-mysqlclient-mysqlhelpermembers -22.2.7.202 ExecuteDataset Method +22.2.7.204 ExecuteDataset Method ................................ * Menu: @@ -194208,7 +195905,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlhelper-executedataset-overload-3, Next: connector-net-ref-mysqlclient-mysqlhelper-executedataset-overload-4, Prev: connector-net-ref-mysqlclient-mysqlhelper-executedataset-overloads, Up: connector-net-ref-mysqlclient-mysqlhelper-executedataset-overloads -22.2.7.203 `MySqlHelper.ExecuteDataset' Method +22.2.7.205 `MySqlHelper.ExecuteDataset' Method .............................................. Executes a single SQL statement and returns the resultset in a DataSet. @@ -194251,7 +195948,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlhelper-executedataset-overload-4, Next: connector-net-ref-mysqlclient-mysqlhelper-executedataset-overload-1, Prev: connector-net-ref-mysqlclient-mysqlhelper-executedataset-overload-3, Up: connector-net-ref-mysqlclient-mysqlhelper-executedataset-overloads -22.2.7.204 `MySqlHelper.ExecuteDataset' Method +22.2.7.206 `MySqlHelper.ExecuteDataset' Method .............................................. Executes a single SQL statement and returns the resultset in a DataSet. @@ -194298,7 +195995,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlhelper-executedataset-overload-1, Next: connector-net-ref-mysqlclient-mysqlhelper-executedataset-overload-2, Prev: connector-net-ref-mysqlclient-mysqlhelper-executedataset-overload-4, Up: connector-net-ref-mysqlclient-mysqlhelper-executedataset-overloads -22.2.7.205 `MySqlHelper.ExecuteDataset' Method +22.2.7.207 `MySqlHelper.ExecuteDataset' Method .............................................. Executes a single SQL statement and returns the resultset in a DataSet. @@ -194339,7 +196036,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlhelper-executedataset-overload-2, Prev: connector-net-ref-mysqlclient-mysqlhelper-executedataset-overload-1, Up: connector-net-ref-mysqlclient-mysqlhelper-executedataset-overloads -22.2.7.206 `MySqlHelper.ExecuteDataset' Method +22.2.7.208 `MySqlHelper.ExecuteDataset' Method .............................................. Executes a single SQL statement and returns the resultset in a DataSet. @@ -194384,7 +196081,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlhelper-executenonquery-overloads, Next: connector-net-ref-mysqlclient-mysqlhelper-executereader-overloads, Prev: connector-net-ref-mysqlclient-mysqlhelper-executedataset-overloads, Up: connector-net-ref-mysqlclient-mysqlhelpermembers -22.2.7.207 ExecuteNonQuery Method +22.2.7.209 ExecuteNonQuery Method ................................. * Menu: @@ -194423,7 +196120,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlhelper-executenonquery-overload-1, Next: connector-net-ref-mysqlclient-mysqlhelper-executenonquery-overload-2, Prev: connector-net-ref-mysqlclient-mysqlhelper-executenonquery-overloads, Up: connector-net-ref-mysqlclient-mysqlhelper-executenonquery-overloads -22.2.7.208 `MySqlHelper.ExecuteNonQuery' Method +22.2.7.210 `MySqlHelper.ExecuteNonQuery' Method ............................................... Executes a single command against a MySQL database. The *Note @@ -194470,7 +196167,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlhelper-executenonquery-overload-2, Prev: connector-net-ref-mysqlclient-mysqlhelper-executenonquery-overload-1, Up: connector-net-ref-mysqlclient-mysqlhelper-executenonquery-overloads -22.2.7.209 `MySqlHelper.ExecuteNonQuery' Method +22.2.7.211 `MySqlHelper.ExecuteNonQuery' Method ............................................... Executes a single command against a MySQL database. A new *Note @@ -194518,7 +196215,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlhelper-executereader-overloads, Next: connector-net-ref-mysqlclient-mysqlhelper-executescalar-overloads, Prev: connector-net-ref-mysqlclient-mysqlhelper-executenonquery-overloads, Up: connector-net-ref-mysqlclient-mysqlhelpermembers -22.2.7.210 ExecuteReader Method +22.2.7.212 ExecuteReader Method ............................... * Menu: @@ -194548,7 +196245,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlhelper-executereader-overload-1, Next: connector-net-ref-mysqlclient-mysqlhelper-executereader-overload-2, Prev: connector-net-ref-mysqlclient-mysqlhelper-executereader-overloads, Up: connector-net-ref-mysqlclient-mysqlhelper-executereader-overloads -22.2.7.211 `MySqlHelper.ExecuteReader' Method +22.2.7.213 `MySqlHelper.ExecuteReader' Method ............................................. Executes a single command against a MySQL database. @@ -194588,7 +196285,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlhelper-executereader-overload-2, Prev: connector-net-ref-mysqlclient-mysqlhelper-executereader-overload-1, Up: connector-net-ref-mysqlclient-mysqlhelper-executereader-overloads -22.2.7.212 `MySqlHelper.ExecuteReader' Method +22.2.7.214 `MySqlHelper.ExecuteReader' Method ............................................. Executes a single command against a MySQL database. @@ -194634,7 +196331,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlhelper-executescalar-overloads, Next: connector-net-ref-mysqlclient-mysqlhelper-updatedataset, Prev: connector-net-ref-mysqlclient-mysqlhelper-executereader-overloads, Up: connector-net-ref-mysqlclient-mysqlhelpermembers -22.2.7.213 ExecuteScalar Method +22.2.7.215 ExecuteScalar Method ............................... * Menu: @@ -194676,7 +196373,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlhelper-executescalar-overload-3, Next: connector-net-ref-mysqlclient-mysqlhelper-executescalar-overload-4, Prev: connector-net-ref-mysqlclient-mysqlhelper-executescalar-overloads, Up: connector-net-ref-mysqlclient-mysqlhelper-executescalar-overloads -22.2.7.214 `MySqlHelper.ExecuteScalar' Method +22.2.7.216 `MySqlHelper.ExecuteScalar' Method ............................................. Execute a single command against a MySQL database. @@ -194717,7 +196414,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlhelper-executescalar-overload-4, Next: connector-net-ref-mysqlclient-mysqlhelper-executescalar-overload-1, Prev: connector-net-ref-mysqlclient-mysqlhelper-executescalar-overload-3, Up: connector-net-ref-mysqlclient-mysqlhelper-executescalar-overloads -22.2.7.215 `MySqlHelper.ExecuteScalar' Method +22.2.7.217 `MySqlHelper.ExecuteScalar' Method ............................................. Execute a single command against a MySQL database. @@ -194762,7 +196459,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlhelper-executescalar-overload-1, Next: connector-net-ref-mysqlclient-mysqlhelper-executescalar-overload-2, Prev: connector-net-ref-mysqlclient-mysqlhelper-executescalar-overload-4, Up: connector-net-ref-mysqlclient-mysqlhelper-executescalar-overloads -22.2.7.216 `MySqlHelper.ExecuteScalar' Method +22.2.7.218 `MySqlHelper.ExecuteScalar' Method ............................................. Execute a single command against a MySQL database. @@ -194802,7 +196499,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlhelper-executescalar-overload-2, Prev: connector-net-ref-mysqlclient-mysqlhelper-executescalar-overload-1, Up: connector-net-ref-mysqlclient-mysqlhelper-executescalar-overloads -22.2.7.217 `MySqlHelper.ExecuteScalar' Method +22.2.7.219 `MySqlHelper.ExecuteScalar' Method ............................................. Execute a single command against a MySQL database. @@ -194846,7 +196543,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlhelper-updatedataset, Prev: connector-net-ref-mysqlclient-mysqlhelper-executescalar-overloads, Up: connector-net-ref-mysqlclient-mysqlhelpermembers -22.2.7.218 `MySqlHelper.UpdateDataSet' Method +22.2.7.220 `MySqlHelper.UpdateDataSet' Method ............................................. Updates the given table with data from the given DataSet @@ -194887,7 +196584,7 @@  File: manual.info, Node: connector-net-ref-mysqlclient-mysqlerrorcode, Prev: connector-net-ref-mysqlclient-mysqlhelper, Up: connector-net-ref-mysqlclient -22.2.7.219 `MySqlErrorCode' Enumeration +22.2.7.221 `MySqlErrorCode' Enumeration ....................................... *Syntax: Visual Basic* @@ -194924,7 +196621,7 @@  File: manual.info, Node: connector-net-ref-types, Prev: connector-net-ref-mysqlclient, Up: connector-net-ref -22.2.7.220 `MySql.Data.Types' +22.2.7.222 `MySql.Data.Types' ............................. * Menu: @@ -194948,7 +196645,7 @@  File: manual.info, Node: connector-net-ref-typeshierarchy, Next: connector-net-ref-types-mysqlconversionexception, Prev: connector-net-ref-types, Up: connector-net-ref-types -22.2.7.221 `MySql.Data.TypesHierarchy' +22.2.7.223 `MySql.Data.TypesHierarchy' ...................................... *See Also* @@ -194958,7 +196655,7 @@  File: manual.info, Node: connector-net-ref-types-mysqlconversionexception, Next: connector-net-ref-types-mysqldatetime, Prev: connector-net-ref-typeshierarchy, Up: connector-net-ref-types -22.2.7.222 `MySqlConversionException' Class +22.2.7.224 `MySqlConversionException' Class ........................................... * Menu: @@ -194982,8 +196679,8 @@ *Thread Safety* -Public static (Sharedin Visual Basic) members of this type are safe for -multithreaded operations. Instance members are notguaranteed to be +Public static (Shared in Visual Basic) members of this type are safe +for multithreaded operations. Instance members are not guaranteed to be thread-safe. *Requirements* @@ -195001,7 +196698,7 @@  File: manual.info, Node: connector-net-ref-types-mysqlconversionexceptionmembers, Prev: connector-net-ref-types-mysqlconversionexception, Up: connector-net-ref-types-mysqlconversionexception -22.2.7.223 `MySqlConversionException' Members +22.2.7.225 `MySqlConversionException' Members ............................................. * Menu: @@ -195019,61 +196716,61 @@ *Public Instance Properties* -Data(inherited from Exception) Gets a collection of key/value +Data (inherited from Exception) Gets a collection of key/value pairs that provide additional, user-defined information about the exception. -HelpLink(inherited from Exception) Gets or sets a link to the help +HelpLink (inherited from Exception) Gets or sets a link to the help file associated with this exception. -InnerException(inherited from Gets the Exceptioninstance that +InnerException (inherited from Gets the `Exceptioninstance' that Exception) caused the current exception. -Message(inherited from Exception) Gets a message that describes the +Message (inherited from Exception) Gets a message that describes the current exception. -Source(inherited from Exception) Gets or sets the name of the +Source (inherited from Exception) Gets or sets the name of the application or the object that causes the error. -StackTrace(inherited from Exception) Gets a string representation of the - frames on the call stack at the time +StackTrace (inherited from Gets a string representation of the +Exception) frames on the call stack at the time the current exception was thrown. -TargetSite(inherited from Exception) Gets the method that throws the - current exception. +TargetSite (inherited from Gets the method that throws the +Exception) current exception. *Public Instance Methods* -Equals(inherited from Object) Determines whether the specified - Objectis equal to the current +Equals (inherited from Object) Determines whether the specified + Object is equal to the current Object. -GetBaseException(inherited from When overridden in a derived class, -Exception) returns the Exceptionthat is the +GetBaseException (inherited from When overridden in a derived class, +Exception) returns the Exception that is the root cause of one or more subsequent exceptions. -GetHashCode(inherited from Object) Serves as a hash function for a - particular type. GetHashCodeis +GetHashCode (inherited from Object) Serves as a hash function for a + particular type. GetHashCode is suitable for use in hashing algorithms and data structures like a hash table. -GetObjectData(inherited from When overridden in a derived class, -Exception) sets the SerializationInfowith +GetObjectData (inherited from When overridden in a derived class, +Exception) sets the SerializationInfo with information about the exception. -GetType(inherited from Exception) Gets the runtime type of the +GetType (inherited from Exception) Gets the runtime type of the current instance. -ToString(inherited from Exception) Creates and returns a string +ToString (inherited from Exception) Creates and returns a string representation of the current exception. *Protected Instance Properties* -HResult(inherited from Exception) Gets or sets HRESULT, a coded +HResult (inherited from Exception) Gets or sets `HRESULT', a coded numeric value that is assigned to a specific exception. *Protected Instance Methods* -Finalize(inherited from Object) Allows an Objectto attempt to free +Finalize (inherited from Object) Allows an Object to attempt to free resources and perform other cleanup - operations before the Objectis + operations before the Object is reclaimed by garbage collection. -MemberwiseClone(inherited from Creates a shallow copy of the +MemberwiseClone (inherited from Creates a shallow copy of the Object) current Object. *See Also* @@ -195085,7 +196782,7 @@  File: manual.info, Node: connector-net-ref-types-mysqlconversionexceptionconstructor, Prev: connector-net-ref-types-mysqlconversionexceptionmembers, Up: connector-net-ref-types-mysqlconversionexceptionmembers -22.2.7.224 `MySqlConversionException' Constructor +22.2.7.226 `MySqlConversionException' Constructor ................................................. *Syntax: Visual Basic* @@ -195109,7 +196806,7 @@  File: manual.info, Node: connector-net-ref-types-mysqldatetime, Prev: connector-net-ref-types-mysqlconversionexception, Up: connector-net-ref-types -22.2.7.225 `MySqlDateTime' Class +22.2.7.227 `MySqlDateTime' Class ................................ * Menu: @@ -195152,7 +196849,7 @@  File: manual.info, Node: connector-net-ref-types-mysqldatetimemembers, Prev: connector-net-ref-types-mysqldatetime, Up: connector-net-ref-types-mysqldatetime -22.2.7.226 `MySqlDateTime' Members +22.2.7.228 `MySqlDateTime' Members .................................. * Menu: @@ -195162,6 +196859,7 @@ * connector-net-ref-types-mysqldatetime-hour:: Hour Property * connector-net-ref-types-mysqlvalue-isnull:: IsNull Property * connector-net-ref-types-mysqldatetime-isvaliddatetime:: IsValidDateTime Property +* connector-net-ref-types-mysqldatetime-millisecond:: Millisecond Property * connector-net-ref-types-mysqldatetime-minute:: Minute Property * connector-net-ref-types-mysqldatetime-month:: Month Property * connector-net-ref-types-mysqldatetime-second:: Second Property @@ -195195,6 +196893,8 @@ connector-net-ref-types-mysqldatetime-month.datetime *Note Second: Returns the second portion of this connector-net-ref-types-mysqldatetime-second.datetime +*Note Millisecond: Returns the millisecond portion of +connector-net-ref-types-mysqldatetime-millisecond.this datetime *Note ValueAsObject: Returns the value of this field as connector-net-ref-types-mysqlvalue-valueasobject.an object (inherited from MySqlValue) @@ -195203,19 +196903,19 @@ *Public Instance Methods* -Equals(inherited from Object) Determines whether the specified - Objectis equal to the current +Equals (inherited from Object) Determines whether the specified + Object is equal to the current Object. *Note GetDateTime: Returns this value as a DateTime connector-net-ref-types-mysqldatetime-getdatetime. -GetHashCode(inherited from Object) Serves as a hash function for a - particular type. GetHashCodeis +GetHashCode (inherited from Object) Serves as a hash function for a + particular type. GetHashCode is suitable for use in hashing algorithms and data structures like a hash table. -GetType(inherited from Object) Gets the Typeof the current +GetType (inherited from Object) Gets the Type of the current instance. -*Note ToString: Returns a MySQL specific string +*Note ToString: Returns a MySQL-specific string connector-net-ref-types-mysqldatetime-tostring.representation of this value *Protected Instance Fields* @@ -195232,7 +196932,7 @@ *Note mySqlDbType: The specific MySQL db type connector-net-ref-types-mysqlvalue-mysqldbtype. (inherited from MySqlValue) -*Note mySqlTypeName: The MySQL specific typename of this +*Note mySqlTypeName: The MySQL-specific typename of this connector-net-ref-types-mysqlvalue-mysqltypename.value (inherited from MySqlValue) *Note objectValue: @@ -195241,11 +196941,11 @@ *Protected Instance Methods* -Finalize(inherited from Object) Allows an Objectto attempt to free +Finalize (inherited from Object) Allows an Object to attempt to free resources and perform other cleanup - operations before the Objectis + operations before the Object is reclaimed by garbage collection. -MemberwiseClone(inherited from Creates a shallow copy of the +MemberwiseClone (inherited from Creates a shallow copy of the Object) current Object. *See Also* @@ -195256,7 +196956,7 @@  File: manual.info, Node: connector-net-ref-types-mysqldatetime-op-explicit, Next: connector-net-ref-types-mysqldatetime-day, Prev: connector-net-ref-types-mysqldatetimemembers, Up: connector-net-ref-types-mysqldatetimemembers -22.2.7.227 `MySqlDateTime' Explicit `MySqlDateTime' to `DateTime' Conversion +22.2.7.229 `MySqlDateTime' Explicit `MySqlDateTime' to `DateTime' Conversion ............................................................................ *Syntax: Visual Basic* @@ -195283,7 +196983,7 @@  File: manual.info, Node: connector-net-ref-types-mysqldatetime-day, Next: connector-net-ref-types-mysqldatetime-hour, Prev: connector-net-ref-types-mysqldatetime-op-explicit, Up: connector-net-ref-types-mysqldatetimemembers -22.2.7.228 Day Property +22.2.7.230 Day Property ....................... Returns the day portion of this datetime @@ -195304,7 +197004,7 @@  File: manual.info, Node: connector-net-ref-types-mysqldatetime-hour, Next: connector-net-ref-types-mysqlvalue-isnull, Prev: connector-net-ref-types-mysqldatetime-day, Up: connector-net-ref-types-mysqldatetimemembers -22.2.7.229 Hour Property +22.2.7.231 Hour Property ........................ Returns the hour portion of this datetime @@ -195325,7 +197025,7 @@  File: manual.info, Node: connector-net-ref-types-mysqlvalue-isnull, Next: connector-net-ref-types-mysqldatetime-isvaliddatetime, Prev: connector-net-ref-types-mysqldatetime-hour, Up: connector-net-ref-types-mysqldatetimemembers -22.2.7.230 IsNull Property +22.2.7.232 IsNull Property .......................... * Menu: @@ -195348,7 +197048,7 @@  File: manual.info, Node: connector-net-ref-types-mysqlvalue, Prev: connector-net-ref-types-mysqlvalue-isnull, Up: connector-net-ref-types-mysqlvalue-isnull -22.2.7.231 `MySqlValue' Class +22.2.7.233 `MySqlValue' Class ............................. * Menu: @@ -195386,7 +197086,7 @@  File: manual.info, Node: connector-net-ref-types-mysqlvaluemembers, Prev: connector-net-ref-types-mysqlvalue, Up: connector-net-ref-types-mysqlvalue -22.2.7.232 `MySqlValue' Members +22.2.7.234 `MySqlValue' Members ............................... * Menu: @@ -195424,15 +197124,15 @@ *Public Instance Methods* -Equals(inherited from Object) Determines whether the specified - Objectis equal to the current +Equals (inherited from Object) Determines whether the specified + Object is equal to the current Object. -GetHashCode(inherited from Object) Serves as a hash function for a - particular type. GetHashCodeis +GetHashCode (inherited from Object) Serves as a hash function for a + particular type. GetHashCode is suitable for use in hashing algorithms and data structures like a hash table. -GetType(inherited from Object) Gets the Typeof the current +GetType (inherited from Object) Gets the Type of the current instance. *Note ToString: Returns a string representation of connector-net-ref-types-mysqlvalue-tostring.this value @@ -195447,18 +197147,18 @@ connector-net-ref-types-mysqlvalue-isnull. *Note mySqlDbType: The specific MySQL db type connector-net-ref-types-mysqlvalue-mysqldbtype. -*Note mySqlTypeName: The MySQL specific typename of this +*Note mySqlTypeName: The MySQL-specific typename of this connector-net-ref-types-mysqlvalue-mysqltypename.value *Note objectValue: connector-net-ref-types-mysqlvalue-objectvalue. *Protected Instance Methods* -Finalize(inherited from Object) Allows an Objectto attempt to free +Finalize (inherited from Object) Allows an Object to attempt to free resources and perform other cleanup - operations before the Objectis + operations before the Object is reclaimed by garbage collection. -MemberwiseClone(inherited from Creates a shallow copy of the +MemberwiseClone (inherited from Creates a shallow copy of the Object) current Object. *See Also* @@ -195469,7 +197169,7 @@  File: manual.info, Node: connector-net-ref-types-mysqlvalue-numberformat, Next: connector-net-ref-types-mysqlvalueconstructor, Prev: connector-net-ref-types-mysqlvaluemembers, Up: connector-net-ref-types-mysqlvaluemembers -22.2.7.233 `MySqlValue.numberFormat' Field +22.2.7.235 `MySqlValue.numberFormat' Field .......................................... *Syntax: Visual Basic* @@ -195488,7 +197188,7 @@  File: manual.info, Node: connector-net-ref-types-mysqlvalueconstructor, Next: connector-net-ref-types-mysqlvalue-valueasobject, Prev: connector-net-ref-types-mysqlvalue-numberformat, Up: connector-net-ref-types-mysqlvaluemembers -22.2.7.234 `MySqlValue' Constructor +22.2.7.236 `MySqlValue' Constructor ................................... Initializes a new instance of the *Note MySqlValue: @@ -195510,7 +197210,7 @@  File: manual.info, Node: connector-net-ref-types-mysqlvalue-valueasobject, Next: connector-net-ref-types-mysqlvalue-tostring, Prev: connector-net-ref-types-mysqlvalueconstructor, Up: connector-net-ref-types-mysqlvaluemembers -22.2.7.235 ValueAsObject Property +22.2.7.237 ValueAsObject Property ................................. Returns the value of this field as an object @@ -195531,7 +197231,7 @@  File: manual.info, Node: connector-net-ref-types-mysqlvalue-tostring, Next: connector-net-ref-types-mysqlvalue-classtype, Prev: connector-net-ref-types-mysqlvalue-valueasobject, Up: connector-net-ref-types-mysqlvaluemembers -22.2.7.236 `MySqlValue.ToString' Method +22.2.7.238 `MySqlValue.ToString' Method ....................................... Returns a string representation of this value @@ -195552,7 +197252,7 @@  File: manual.info, Node: connector-net-ref-types-mysqlvalue-classtype, Next: connector-net-ref-types-mysqlvalue-dbtype, Prev: connector-net-ref-types-mysqlvalue-tostring, Up: connector-net-ref-types-mysqlvaluemembers -22.2.7.237 `MySqlValue.classType' Field +22.2.7.239 `MySqlValue.classType' Field ....................................... The system type represented by this value @@ -195573,7 +197273,7 @@  File: manual.info, Node: connector-net-ref-types-mysqlvalue-dbtype, Next: connector-net-ref-types-mysqlvalue-mysqldbtype, Prev: connector-net-ref-types-mysqlvalue-classtype, Up: connector-net-ref-types-mysqlvaluemembers -22.2.7.238 `MySqlValue.dbType' Field +22.2.7.240 `MySqlValue.dbType' Field .................................... The generic dbtype of this value @@ -195594,7 +197294,7 @@  File: manual.info, Node: connector-net-ref-types-mysqlvalue-mysqldbtype, Next: connector-net-ref-types-mysqlvalue-mysqltypename, Prev: connector-net-ref-types-mysqlvalue-dbtype, Up: connector-net-ref-types-mysqlvaluemembers -22.2.7.239 `MySqlValue.mySqlDbType' Field +22.2.7.241 `MySqlValue.mySqlDbType' Field ......................................... The specific MySQL db type @@ -195615,10 +197315,10 @@  File: manual.info, Node: connector-net-ref-types-mysqlvalue-mysqltypename, Next: connector-net-ref-types-mysqlvalue-objectvalue, Prev: connector-net-ref-types-mysqlvalue-mysqldbtype, Up: connector-net-ref-types-mysqlvaluemembers -22.2.7.240 `MySqlValue.mySqlTypeName' Field +22.2.7.242 `MySqlValue.mySqlTypeName' Field ........................................... -The MySQL specific typename of this value +The MySQL-specific typename of this value *Syntax: Visual Basic* @@ -195636,7 +197336,7 @@  File: manual.info, Node: connector-net-ref-types-mysqlvalue-objectvalue, Prev: connector-net-ref-types-mysqlvalue-mysqltypename, Up: connector-net-ref-types-mysqlvaluemembers -22.2.7.241 `MySqlValue.objectValue' Field +22.2.7.243 `MySqlValue.objectValue' Field ......................................... *Syntax: Visual Basic* @@ -195653,9 +197353,9 @@ MySql.Data.Types Namespace: connector-net-ref-types.  -File: manual.info, Node: connector-net-ref-types-mysqldatetime-isvaliddatetime, Next: connector-net-ref-types-mysqldatetime-minute, Prev: connector-net-ref-types-mysqlvalue-isnull, Up: connector-net-ref-types-mysqldatetimemembers +File: manual.info, Node: connector-net-ref-types-mysqldatetime-isvaliddatetime, Next: connector-net-ref-types-mysqldatetime-millisecond, Prev: connector-net-ref-types-mysqlvalue-isnull, Up: connector-net-ref-types-mysqldatetimemembers -22.2.7.242 IsValidDateTime Property +22.2.7.244 IsValidDateTime Property ................................... Indicates if this object contains a value that can be represented as a @@ -195675,9 +197375,30 @@ MySql.Data.Types Namespace: connector-net-ref-types.  -File: manual.info, Node: connector-net-ref-types-mysqldatetime-minute, Next: connector-net-ref-types-mysqldatetime-month, Prev: connector-net-ref-types-mysqldatetime-isvaliddatetime, Up: connector-net-ref-types-mysqldatetimemembers +File: manual.info, Node: connector-net-ref-types-mysqldatetime-millisecond, Next: connector-net-ref-types-mysqldatetime-minute, Prev: connector-net-ref-types-mysqldatetime-isvaliddatetime, Up: connector-net-ref-types-mysqldatetimemembers + +22.2.7.245 Millisecond Property +............................... + +Returns the millisecond portion of this datetime + +*Syntax: Visual Basic* + + Public Property Millisecond As Integer + +*Syntax: C#* + + public int Millisecond {get; set;} + +*See Also* + +*Note MySqlDateTime Class: connector-net-ref-types-mysqldatetime, *Note +MySql.Data.Types Namespace: connector-net-ref-types. + + +File: manual.info, Node: connector-net-ref-types-mysqldatetime-minute, Next: connector-net-ref-types-mysqldatetime-month, Prev: connector-net-ref-types-mysqldatetime-millisecond, Up: connector-net-ref-types-mysqldatetimemembers -22.2.7.243 Minute Property +22.2.7.246 Minute Property .......................... Returns the minute portion of this datetime @@ -195698,7 +197419,7 @@  File: manual.info, Node: connector-net-ref-types-mysqldatetime-month, Next: connector-net-ref-types-mysqldatetime-second, Prev: connector-net-ref-types-mysqldatetime-minute, Up: connector-net-ref-types-mysqldatetimemembers -22.2.7.244 Month Property +22.2.7.247 Month Property ......................... Returns the month portion of this datetime @@ -195719,7 +197440,7 @@  File: manual.info, Node: connector-net-ref-types-mysqldatetime-second, Next: connector-net-ref-types-mysqldatetime-year, Prev: connector-net-ref-types-mysqldatetime-month, Up: connector-net-ref-types-mysqldatetimemembers -22.2.7.245 Second Property +22.2.7.248 Second Property .......................... Returns the second portion of this datetime @@ -195740,7 +197461,7 @@  File: manual.info, Node: connector-net-ref-types-mysqldatetime-year, Next: connector-net-ref-types-mysqldatetime-getdatetime, Prev: connector-net-ref-types-mysqldatetime-second, Up: connector-net-ref-types-mysqldatetimemembers -22.2.7.246 Year Property +22.2.7.249 Year Property ........................ Returns the year portion of this datetime @@ -195761,7 +197482,7 @@  File: manual.info, Node: connector-net-ref-types-mysqldatetime-getdatetime, Next: connector-net-ref-types-mysqldatetime-tostring, Prev: connector-net-ref-types-mysqldatetime-year, Up: connector-net-ref-types-mysqldatetimemembers -22.2.7.247 `MySqlDateTime.GetDateTime' Method +22.2.7.250 `MySqlDateTime.GetDateTime' Method ............................................. Returns this value as a DateTime @@ -195782,10 +197503,10 @@  File: manual.info, Node: connector-net-ref-types-mysqldatetime-tostring, Prev: connector-net-ref-types-mysqldatetime-getdatetime, Up: connector-net-ref-types-mysqldatetimemembers -22.2.7.248 `MySqlDateTime.ToString' Method +22.2.7.251 `MySqlDateTime.ToString' Method .......................................... -Returns a MySQL specific string representation of this value +Returns a MySQL-specific string representation of this value *Syntax: Visual Basic* @@ -195809,7 +197530,7 @@ * Menu: * connector-net-support-community:: Connector/Net Community Support -* connector-net-support-bug-report:: How to report Connector/Net Problems or Bugs +* connector-net-support-bug-report:: How to Report Connector/Net Problems or Bugs * connector-net-support-changehistory:: Connector/Net Change History The developers of Connector/Net greatly value the input of our users in @@ -195835,28 +197556,29 @@  File: manual.info, Node: connector-net-support-bug-report, Next: connector-net-support-changehistory, Prev: connector-net-support-community, Up: connector-net-support -22.2.8.2 How to report Connector/Net Problems or Bugs +22.2.8.2 How to Report Connector/Net Problems or Bugs ..................................................... If you encounter difficulties or problems with Connector/Net, contact -the Connector/Net community *Note connector-net-support-community::. +the Connector/Net community, as explained in *Note +connector-net-support-community::. -You should first try to execute the same SQL statements and commands -from the *Note `mysql': mysql. client program or from `admndemo'. This -helps you determine whether the error is in Connector/Net or MySQL. +First try to execute the same SQL statements and commands from the +*Note `mysql': mysql. client program or from `admndemo'. This helps you +determine whether the error is in Connector/Net or MySQL. -If reporting a problem, you should ideally include the following -information with the email: +If reporting a problem, ideally include the following information with +the email: - * Operating system and version + * Operating system and version. - * Connector/Net version + * Connector/Net version. - * MySQL server version + * MySQL server version. - * Copies of error messages or other unexpected output + * Copies of error messages or other unexpected output. - * Simple reproducible sample + * Simple reproducible sample. Remember that the more information you can supply to us, the more likely it is that we can fix the problem. @@ -195982,13 +197704,26 @@ * Menu: +* connector-j-overview:: Overview of MySQL Connector/J * connector-j-versions:: Connector/J Versions * connector-j-installing:: Connector/J Installation * connector-j-examples:: Connector/J Examples * connector-j-reference:: Connector/J (JDBC) Reference -* connector-j-usagenotes:: Connector/J Notes and Tips +* connector-j-usagenotes-basic:: JDBC Concepts +* connector-j-usagenotes-j2ee-concepts:: J2EE Concepts +* connector-j-usagenotes-tomcat:: Using Connector/J with Tomcat +* connector-j-usagenotes-jboss:: Using Connector/J with JBoss +* connector-j-usagenotes-spring-config:: Using Connector/J with Spring +* connector-j-usagenotes-glassfish-config:: Using Connector/J with GlassFish +* connector-j-usagenotes-troubleshooting:: Troubleshooting Connector/J * connector-j-support:: Connector/J Support + +File: manual.info, Node: connector-j-overview, Next: connector-j-versions, Prev: connector-j, Up: connector-j + +22.3.1 Overview of MySQL Connector/J +------------------------------------ + MySQL provides connectivity for client applications developed in the Java programming language through a JDBC driver, which is called MySQL Connector/J. @@ -195999,14 +197734,12 @@ pure-Java implementation of the MySQL protocol and does not rely on the MySQL client libraries. -Although JDBC is useful by itself, we would hope that if you are not -familiar with JDBC that after reading the first few sections of this -manual, that you would avoid using naked JDBC for all but the most -trivial problems and consider using one of the popular persistence -frameworks such as Hibernate (http://www.hibernate.org/), Spring's JDBC -templates (http://www.springframework.org/) or Ibatis SQL Maps -(http://ibatis.apache.org/) to do the majority of repetitive work and -heavier lifting that is sometimes required with JDBC. +For large-scale programs that use common design patterns of data +access, consider using one of the popular persistence frameworks such +as Hibernate (http://www.hibernate.org/), Spring's JDBC templates +(http://www.springframework.org/) or Ibatis SQL Maps +(http://ibatis.apache.org/) to reduce the amount of JDBC code for you to +debug, tune, secure, and maintain. This section is not designed to be a complete JDBC tutorial. If you need more information about using JDBC you might be interested in the @@ -196021,30 +197754,16 @@ (http://java.sun.com/developer/onlineTraining/Database/JDBCShortCourse/index.html): A more in-depth tutorial from Sun and JGuru -*Key topics:* +* Key Topics * - * For help with connection strings, connection options setting up - your connection through JDBC, see *Note + * For help with connection strings, connection options, and setting + up your connection through JDBC, see *Note connector-j-reference-configuration-properties::. - * For tips on using Connector/J and JDBC with generic J2EE toolkits, - see *Note connector-j-usagenotes-j2ee::. - - * Developers using the Tomcat server platform, see *Note - connector-j-usagenotes-tomcat::. - - * Developers using JBoss, see *Note connector-j-usagenotes-jboss::. - - * Developers using Spring, see *Note - connector-j-usagenotes-spring-config::. - - * Developers using GlassFish (Sun Application Server), see *Note - connector-j-usagenotes-glassfish-config::. -  -File: manual.info, Node: connector-j-versions, Next: connector-j-installing, Prev: connector-j, Up: connector-j +File: manual.info, Node: connector-j-versions, Next: connector-j-installing, Prev: connector-j-overview, Up: connector-j -22.3.1 Connector/J Versions +22.3.2 Connector/J Versions --------------------------- * Menu: @@ -196097,7 +197816,7 @@  File: manual.info, Node: connector-j-versions-java, Prev: connector-j-versions, Up: connector-j-versions -22.3.1.1 Java Versions Supported +22.3.2.1 Java Versions Supported ................................ The following table summarizes Connector/J Java dependencies: @@ -196126,15 +197845,15 @@ java.util.LinkedHashMap which was first available in JDK-1.4.0. If you are building Connector/J from source code using the source -distribution (see *Note connector-j-installing-source::) then you must -use JDK 1.4.2 or newer to compile the Connector package. For -Connector/J 5.1 you must have both JDK-1.6.x. and JDK-1.5.x installed -to be able to build the source code. +distribution (see *Note connector-j-installing-source::), you must use +JDK 1.4.2 or newer to compile the Connector package. For Connector/J +5.1, you must have both JDK-1.6.x and JDK-1.5.x installed to be able to +build the source code.  File: manual.info, Node: connector-j-installing, Next: connector-j-examples, Prev: connector-j-versions, Up: connector-j -22.3.2 Connector/J Installation +22.3.3 Connector/J Installation ------------------------------- * Menu: @@ -196146,100 +197865,100 @@ You can install the Connector/J package using either the binary or source distribution. The binary distribution provides the easiest -method for installation; the source distribution enables you to -customize your installation further. With either solution, you must -manually add the Connector/J location to your Java `CLASSPATH'. +method for installation; the source distribution lets you customize +your installation further. With either solution, you manually add the +Connector/J location to your Java `CLASSPATH'. If you are upgrading from a previous version, read the upgrade -information before continuing. See *Note -connector-j-installing-upgrading::. +information in *Note connector-j-installing-upgrading:: before +continuing. -Connector/J is also available as part of the Maven project. More -information, and the Connector/J JAR files can be found at the Maven +Connector/J is also available as part of the Maven project. For more +information, and to download the Connector/J JAR files, see the Maven repository (http://www.ibiblio.org/maven/).  File: manual.info, Node: connector-j-binary-installation, Next: connector-j-installing-classpath, Prev: connector-j-installing, Up: connector-j-installing -22.3.2.1 Installing Connector/J from a Binary Distribution +22.3.3.1 Installing Connector/J from a Binary Distribution .......................................................... -The easiest method of installation is to use the binary distribution of +For the easiest method of installation, use the binary distribution of the Connector/J package. The binary distribution is available either as -a Tar/Gzip or Zip file which you must extract to a suitable location -and then optionally make the information about the package available by -changing your `CLASSPATH' (see *Note -connector-j-installing-classpath::). +a tar/gzip or zip file. Extract it to a suitable location, then +optionally make the information about the package available by changing +your `CLASSPATH' (see *Note connector-j-installing-classpath::). -MySQL Connector/J is distributed as a .zip or .tar.gz archive +MySQL Connector/J is distributed as a `.zip' or `.tar.gz' archive containing the sources, the class files, and the JAR archive named -`mysql-connector-java-[VERSION]-bin.jar', and starting with Connector/J -3.1.8 a debug build of the driver in a file named -`mysql-connector-java-[VERSION]-bin-g.jar'. +`mysql-connector-java-[VERSION]-bin.jar'. Starting with Connector/J 3.1.9, the `.class' files that constitute the JAR files are only included as part of the driver JAR file. -You should not use the debug build of the driver unless instructed to -do so when reporting a problem or a bug, as it is not designed to be -run in production environments, and will have adverse performance -impact when used. The debug binary also depends on the Aspect/J runtime -library, which is located in the `src/lib/aspectjrt.jar' file that -comes with the Connector/J distribution. - -You will need to use the appropriate graphical or command-line utility -to extract the distribution (for example, WinZip for the .zip archive, -and `tar' for the .tar.gz archive). Because there are potentially long -file names in the distribution, we use the GNU tar archive format. You -will need to use GNU tar (or an application that understands the GNU tar -archive format) to unpack the .tar.gz variant of the distribution. +Starting with Connector/J 3.1.8, the archive also includes a debug +build of the driver in a file named +`mysql-connector-java-[VERSION]-bin-g.jar'. Do not use the debug build +of the driver unless instructed to do so when reporting a problem or a +bug, as it is not designed to be run in production environments, and +will have adverse performance impact when used. The debug binary also +depends on the Aspect/J runtime library, which is located in the +`src/lib/aspectjrt.jar' file that comes with the Connector/J +distribution. + +Use the appropriate graphical or command-line utility to extract the +distribution (for example, WinZip for the .zip archive, and `tar' for +the .tar.gz archive). Because there are potentially long file names in +the distribution, we use the GNU tar archive format. Use GNU tar (or an +application that understands the GNU tar archive format) to unpack the +.tar.gz variant of the distribution.  File: manual.info, Node: connector-j-installing-classpath, Next: connector-j-installing-upgrading, Prev: connector-j-binary-installation, Up: connector-j-installing -22.3.2.2 Installing the Driver and Configuring the `CLASSPATH' +22.3.3.2 Installing the Driver and Configuring the `CLASSPATH' .............................................................. Once you have extracted the distribution archive, you can install the driver by placing `mysql-connector-java-[version]-bin.jar 'in your classpath, either by adding the full path to it to your `CLASSPATH' environment variable, or by directly specifying it with the command -line switch -cp when starting your JVM. +line switch `-cp' when starting the JVM. -If you are going to use the driver with the JDBC DriverManager, you -would use `com.mysql.jdbc.Driver' as the class that implements -java.sql.Driver. +To use the driver with the JDBC DriverManager, use +`com.mysql.jdbc.Driver' as the class that implements java.sql.Driver. You can set the `CLASSPATH' environment variable under UNIX, Linux or Mac OS X either locally for a user within their `.profile', `.login' or other login file. You can also set it globally by editing the global `/etc/profile' file. -For example, under a C shell (csh, tcsh) you would add the Connector/J -driver to your `CLASSPATH' using the following: - - shell> setenv CLASSPATH /path/mysql-connector-java-[ver]-bin.jar:$CLASSPATH +For example, add the Connector/J driver to your `CLASSPATH' using one +of the following forms, depending on your command shell: -Or with a Bourne-compatible shell (sh, ksh, bash): + # Bourne-compatible shell (sh, ksh, bash, zsh): + shell> export CLASSPATH=/path/mysql-connector-java-[ver]-bin.jar:$CLASSPATH - shell> export set CLASSPATH=/path/mysql-connector-java-[ver]-bin.jar:$CLASSPATH + # C shell (csh, tcsh): + shell> setenv CLASSPATH /path/mysql-connector-java-[ver]-bin.jar:$CLASSPATH Within Windows 2000, Windows XP, Windows Server 2003 and Windows Vista, -you must set the environment variable through the System Control Panel. +you set the environment variable through the System Control Panel. To use MySQL Connector/J with an application server such as GlassFish, Tomcat or JBoss, read your vendor's documentation for more information on how to configure third-party class libraries, as most application servers ignore the `CLASSPATH' environment variable. For configuration examples for some J2EE application servers, see *Note -connector-j-usagenotes-j2ee::. However, the authoritative source for -JDBC connection pool configuration information for your particular -application server is the documentation for that application server. +connector-j-usagenotes-j2ee-concepts::. However, the authoritative +source for JDBC connection pool configuration information for your +particular application server is the documentation for that application +server. If you are developing servlets or JSPs, and your application server is -J2EE-compliant, you can put the driver's .jar file in the WEB-INF/lib -subdirectory of your webapp, as this is a standard location for third -party class libraries in J2EE web applications. +J2EE-compliant, you can put the driver's `.jar' file in the +`WEB-INF/lib' subdirectory of your webapp, as this is a standard +location for third party class libraries in J2EE web applications. You can also use the MysqlDataSource or MysqlConnectionPoolDataSource classes in the `com.mysql.jdbc.jdbc2.optional' package, if your J2EE @@ -196252,20 +197971,20 @@ The various MysqlDataSource classes support the following parameters (through standard set mutators): - * user + * `user' - * password + * `password' - * serverName (see the previous section about fail-over hosts) + * `serverName' (see the previous section about fail-over hosts) - * databaseName + * `databaseName' - * port + * `port'  File: manual.info, Node: connector-j-installing-upgrading, Next: connector-j-installing-source, Prev: connector-j-installing-classpath, Up: connector-j-installing -22.3.2.3 Upgrading from an Older Version +22.3.3.3 Upgrading from an Older Version ........................................ * Menu: @@ -196274,33 +197993,30 @@ * connector-j-installing-upgrading-5-1:: Upgrading to MySQL Connector/J 5.1.x * connector-j-installing-upgrading-issues:: JDBC-Specific Issues When Upgrading to MySQL Server 4.1 or Newer -We try to keep the upgrade process as easy as possible, however as is -the case with any software, sometimes changes need to be made in new -versions to support new features, improve existing functionality, or -comply with new standards. - -This section has information about what users who are upgrading from -one version of Connector/J to another (or to a new version of the MySQL -server, with respect to JDBC functionality) should be aware of. +This section has information for users who are upgrading from one +version of Connector/J to another, or to a new version of the MySQL +server that supports a more recent level of JDBC. A newer version of +Connector/J might include changes to support new features, improve +existing functionality, or comply with new standards.  File: manual.info, Node: connector-j-installing-upgrading-3-0-to-3-1, Next: connector-j-installing-upgrading-5-1, Prev: connector-j-installing-upgrading, Up: connector-j-installing-upgrading -22.3.2.4 Upgrading from MySQL Connector/J 3.0 to 3.1 +22.3.3.4 Upgrading from MySQL Connector/J 3.0 to 3.1 .................................................... Connector/J 3.1 is designed to be backward-compatible with Connector/J 3.0 as much as possible. Major changes are isolated to new functionality exposed in MySQL-4.1 and newer, which includes Unicode -character sets, server-side prepared statements, SQLState codes +character sets, server-side prepared statements, `SQLState' codes returned in error messages by the server and various performance enhancements that can be enabled or disabled using configuration properties. * *Unicode Character Sets*: See the next section, as well as *Note - charset::, for information on this new feature of MySQL. If you - have something misconfigured, it will usually show up as an error - with a message similar to `Illegal mix of collations'. + charset::, for information on this MySQL feature. If you have + something misconfigured, it will usually show up as an error with + a message similar to `Illegal mix of collations'. * *Server-side Prepared Statements*: Connector/J 3.1 will automatically detect and use server-side prepared statements when @@ -196318,14 +198034,14 @@ statements, you can revert to the older client-side emulated prepared statement code that is still presently used for MySQL servers older than 4.1.0 with the connection property - useServerPrepStmts=false + useServerPrepStmts=false. * *Datetimes* with all-zero components (`0000-00-00 ...'): These - values can not be represented reliably in Java. Connector/J 3.0.x + values cannot be represented reliably in Java. Connector/J 3.0.x always converted them to `NULL' when being read from a ResultSet. Connector/J 3.1 throws an exception by default when these values - are encountered as this is the most correct behavior according to + are encountered, as this is the most correct behavior according to the JDBC and SQL standards. This behavior can be modified using the zeroDateTimeBehavior configuration property. The permissible values are: @@ -196341,10 +198057,9 @@ Starting with Connector/J 3.1.7, `ResultSet.getString()' can be decoupled from this behavior using noDatetimeStringSync=true (the default value is `false') so that you can retrieve the unaltered - all-zero value as a String. It should be noted that this also - precludes using any time zone conversions, therefore the driver - will not allow you to enable noDatetimeStringSync and useTimezone - at the same time. + all-zero value as a String. Note that this also precludes using + any time zone conversions, therefore the driver will not allow you + to enable noDatetimeStringSync and useTimezone at the same time. * *New SQLState Codes*: Connector/J 3.1 uses SQL:1999 SQLState codes returned by the MySQL server (if supported), which are different @@ -196371,22 +198086,21 @@ the normal binary jar file that is named `mysql-connector-java-[VERSION]-bin.jar'. - Starting with Connector/J 3.1.9, we do not ship the .class files + Starting with Connector/J 3.1.9, we do not ship the `.class' files unbundled, they are only available in the JAR archives that ship with the driver. - You should not use the debug build of the driver unless instructed - to do so when reporting a problem or bug, as it is not designed to - be run in production environments, and will have adverse - performance impact when used. The debug binary also depends on the - Aspect/J runtime library, which is located in the - `src/lib/aspectjrt.jar' file that comes with the Connector/J - distribution. + Do not use the debug build of the driver unless instructed to do + so when reporting a problem or bug, as it is not designed to be + run in production environments, and will have adverse performance + impact when used. The debug binary also depends on the Aspect/J + runtime library, which is located in the `src/lib/aspectjrt.jar' + file that comes with the Connector/J distribution.  File: manual.info, Node: connector-j-installing-upgrading-5-1, Next: connector-j-installing-upgrading-issues, Prev: connector-j-installing-upgrading-3-0-to-3-1, Up: connector-j-installing-upgrading -22.3.2.5 Upgrading to MySQL Connector/J 5.1.x +22.3.3.5 Upgrading to MySQL Connector/J 5.1.x ............................................. * In Connector/J 5.0.x and earlier, the alias for a table in a *Note @@ -196406,25 +198120,25 @@ `useOldAliasMetadataBehavior' option and set the value to `true'. In Connector/J 5.0.x the default value of - `useOldAliasMetadataBehavior' was true, but in Connector/J 5.1 - this was changed to a default value of false. + `useOldAliasMetadataBehavior' was `true', but in Connector/J 5.1 + this was changed to a default value of `false'.  File: manual.info, Node: connector-j-installing-upgrading-issues, Prev: connector-j-installing-upgrading-5-1, Up: connector-j-installing-upgrading -22.3.2.6 JDBC-Specific Issues When Upgrading to MySQL Server 4.1 or Newer +22.3.3.6 JDBC-Specific Issues When Upgrading to MySQL Server 4.1 or Newer ......................................................................... * _Using the UTF-8 Character Encoding_ - Prior to MySQL server version 4.1, the UTF-8 character encoding was not supported by the server, however the JDBC driver could use it, allowing storage of - multiple character sets in latin1 tables on the server. + multiple character sets in `latin1' tables on the server. Starting with MySQL-4.1, this functionality is deprecated. If you have applications that rely on this functionality, and can not upgrade them to use the official Unicode character support in - MySQL server version 4.1 or newer, you should add the following - property to your connection URL: + MySQL server version 4.1 or newer, add the following property to + your connection URL: useOldUTF8Behavior=true @@ -196441,14 +198155,14 @@  File: manual.info, Node: connector-j-installing-source, Prev: connector-j-installing-upgrading, Up: connector-j-installing -22.3.2.7 Installing from the Development Source Tree +22.3.3.7 Installing from the Development Source Tree .................................................... *Caution*: Read this section only if you are interested in helping us test our new -code. If you just want to get MySQL Connector/J up and running on your -system, use a standard binary release distribution. +code. To just get MySQL Connector/J up and running on your system, use +a standard binary release distribution. To install MySQL Connector/J from the development source tree, make sure that you have the following prerequisites: @@ -196460,13 +198174,10 @@ `http://ant.apache.org/'). * JDK 1.4.2 or later. Although MySQL Connector/J can be be used with - older JDKs, to compile it from source you must have at least JDK - 1.4.2. If you are building Connector/J 5.1 you will need JDK 1.6.x - and an older JDK such as JDK 1.5.x. You will then need to point - your JAVA_HOME environment variable at the older installation. - -The source code repository for MySQL Connector/J is located on -Launchpad at `https://code.launchpad.net/connectorj'. + older JDKs, compiling it from source requires at least JDK 1.4.2. + To build Connector/J 5.1 requires JDK 1.6.x _and_ an older JDK + such as JDK 1.5.x; point your `JAVA_HOME' environment variable at + the older installation. To check out and compile a specific branch of MySQL Connector/J, follow these steps: @@ -196474,35 +198185,33 @@ 1. Check out the latest code from the branch that you want with one of the following commands. - To check out the latest development branch use: + The source code repository for MySQL Connector/J is located on + Launchpad at `https://code.launchpad.net/connectorj'. To check out + the latest development branch, use: shell> bzr branch lp:connectorj This creates a `connectorj' subdirectory in the current directory that contains the latest sources for the requested branch. - To check out the latest 5.1 code use: + To check out the latest 5.1 code, use: shell> bzr branch lp:connectorj/5.1 - This will create a `5.1' subdirectory in the current directory + This creates a `5.1' subdirectory in the current directory containing the latest 5.1 code. - 2. If you are building Connector/J 5.1 make sure that you have both - JDK 1.6.x installed and an older JDK such as JDK 1.5.x. This is - because Connector/J supports both JDBC 3.0 (which was prior to JDK - 1.6.x) and JDBC 4.0. Set your JAVA_HOME environment variable to - the path of the older JDK installation. - - 3. Change location to either the `connectorj' or `5.1' directory, - depending on which branch you want to build, to make it your - current working directory. For example: - - shell> cd connectorj - - 4. If you are building Connector/J 5.1 you need to edit the - `build.xml' to reflect the location of your JDK 1.6.x - installation. The lines that you need to change are: + 2. To build Connector/J 5.1, make sure that you have both JDK 1.6.x + installed and an older JDK such as JDK 1.5.x. This is because + Connector/J supports both JDBC 3.0 (which was prior to JDK 1.6.x) + and JDBC 4.0. Set your `JAVA_HOME' environment variable to the + path of the older JDK installation. + + 3. Change your current working directory to either the `connectorj' + or `5.1' directory, depending on which branch you intend to build. + + 4. To build Connector/J 5.1, edit the `build.xml' to reflect the + location of your JDK 1.6.x installation. The lines to change are: @@ -196529,7 +198238,7 @@ placed in the directory `build/mysql-connector-java-[VERSION]'. Install the newly created JDBC driver as you would a binary `.jar' - file that you download from MySQL by following the instructions in + file that you download from MySQL, by following the instructions in *Note connector-j-installing-classpath::. A package containing both the binary and source code for Connector/J @@ -196539,11 +198248,11 @@  File: manual.info, Node: connector-j-examples, Next: connector-j-reference, Prev: connector-j-installing, Up: connector-j -22.3.3 Connector/J Examples +22.3.4 Connector/J Examples --------------------------- -Examples of using Connector/J are located throughout this document, -this section provides a summary and links to these examples. +Examples of using Connector/J are located throughout this document. +This section provides a summary and links to these examples. * *Note connector-j-examples-connection-drivermanager:: @@ -196570,9 +198279,9 @@ * *Note connector-j-examples-transaction-retry::  -File: manual.info, Node: connector-j-reference, Next: connector-j-usagenotes, Prev: connector-j-examples, Up: connector-j +File: manual.info, Node: connector-j-reference, Next: connector-j-usagenotes-basic, Prev: connector-j-examples, Up: connector-j -22.3.4 Connector/J (JDBC) Reference +22.3.5 Connector/J (JDBC) Reference ----------------------------------- * Menu: @@ -196592,14 +198301,14 @@  File: manual.info, Node: connector-j-reference-configuration-properties, Next: connector-j-reference-implementation-notes, Prev: connector-j-reference, Up: connector-j-reference -22.3.4.1 Driver/Datasource Class Names, URL Syntax and Configuration Properties for Connector/J +22.3.5.1 Driver/Datasource Class Names, URL Syntax and Configuration Properties for Connector/J ............................................................................................... The name of the class that implements java.sql.Driver in MySQL Connector/J is `com.mysql.jdbc.Driver'. The `org.gjt.mm.mysql.Driver' class name is also usable to remain backward-compatible with MM.MySQL. -You should use this class name when registering the driver, or when -otherwise configuring software to use MySQL Connector/J. +Use this class name when registering the driver, or when otherwise +configuring software to use MySQL Connector/J. The JDBC URL format for MySQL Connector/J is as follows, with items in square brackets ([, ]) being optional: @@ -196607,30 +198316,29 @@ jdbc:mysql://[host][,failoverhost...][:port]/[database] » [?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]... -If the host name is not specified, it defaults to 127.0.0.1. If the -port is not specified, it defaults to 3306, the default port number for -MySQL servers. +If the host name is not specified, it defaults to `127.0.0.1'. If the +port is not specified, it defaults to `3306', the default port number +for MySQL servers. jdbc:mysql://[host:port],[host:port].../[database] » [?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]... -Here is an example connection URL: +Here is a sample connection URL: jdbc:mysql://localhost:3306/sakila?profileSQL=true -If the database is not specified, the connection will be made with no -default database. In this case, you will need to either call the -`setCatalog()' method on the Connection instance or fully specify table -names using the database name (that is, `SELECT dbname.tablename.colname -FROM dbname.tablename...') in your SQL. Not specifying the database to -use upon connection is generally only useful when building tools that -work with multiple databases, such as GUI database managers. +If the database is not specified, the connection is made with no +default database. In this case, either call the `setCatalog()' method +on the Connection instance, or fully specify table names using the +database name (that is, `SELECT dbname.tablename.colname FROM +dbname.tablename...') in your SQL. Not specifying the database to use +upon connection is generally only useful when building tools that work +with multiple databases, such as GUI database managers. *Note*: -JDBC clients should never employ the `USE database' statement to -specify the desired database, they should always use the -`Connection.setCatalog()' method instead. +Always use the `Connection.setCatalog()' method to specify the desired +database in JDBC applications, rather than the `USE DATABASE' statement. MySQL Connector/J has fail-over support. This enables the driver to fail-over to any number of slave hosts and still perform read-only @@ -196659,17 +198367,17 @@ Configuration properties define how Connector/J will make a connection to a MySQL server. Unless otherwise noted, properties can be set for a -DataSource object or for a Connection object. +`DataSource' object or for a `Connection' object. -Configuration Properties can be set in one of the following ways: +Configuration properties can be set in one of the following ways: - * Using the set*() methods on MySQL implementations of - java.sql.DataSource (which is the preferred method when using - implementations of java.sql.DataSource): + * Using the `set*()' methods on MySQL implementations of + `java.sql.DataSource' (which is the preferred method when using + implementations of `java.sql.DataSource'): - * com.mysql.jdbc.jdbc2.optional.MysqlDataSource + * `com.mysql.jdbc.jdbc2.optional.MysqlDataSource' - * com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource + * `com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource' * As a key/value pair in the java.util.Properties instance passed to `DriverManager.getConnection()' or `Driver.connect()' @@ -196681,10 +198389,9 @@ *Note*: - If the mechanism you use to configure a JDBC URL is XML-based, you - will need to use the XML character literal & to separate - configuration parameters, as the ampersand is a reserved character - for XML. + If the mechanism you use to configure a JDBC URL is XML-based, use + the XML character literal & to separate configuration + parameters, as the ampersand is a reserved character for XML. The properties are listed in the following tables. @@ -196892,7 +198599,10 @@ allowMultiQueries Allow the use of ';' to delimit false 3.1.1 multiple queries during one statement (true/false), defaults to - 'false' + 'false', and does not affect the + addBatch() and executeBatch() + methods, which instead rely on + rewriteBatchStatements. useSSL Use SSL when communicating with the false 3.0.2 server (true/false), defaults to 'false' @@ -197485,7 +199195,9 @@ disabled and transactions are explicitly committed or rolled back. loadBalanceBlacklistTimeoutTime in milliseconds between checks 0 5.1.0 - of servers which are unavailable. + of servers which are unavailable, by + controlling how long a server lives + in the global blacklist. loadBalanceConnectionGroupLogical group of load-balanced 5.1.13 connections within a classloader, used to manage different groups @@ -197767,9 +199479,9 @@ Connector/J also supports access to MySQL using named pipes on Windows NT/2000/XP using the NamedPipeSocketFactory as a plugin-socket factory using the socketFactory property. If you do not use a namedPipePath -property, the default of '\\.\pipe\MySQL' will be used. If you use the +property, the default of `'\\.\pipe\MySQL'' is used. If you use the `NamedPipeSocketFactory', the host name and port number values in the -JDBC url will be ignored. You can enable this feature using: +JDBC url are ignored. To enable this feature, use: socketFactory=com.mysql.jdbc.NamedPipeSocketFactory @@ -197780,43 +199492,41 @@ system, and named pipes are slower than TCP/IP in many Windows configurations. -You can create your own socket factories by following the example code -in com.mysql.jdbc.NamedPipeSocketFactory, or +To create your own socket factories, follow the example code in +com.mysql.jdbc.NamedPipeSocketFactory, or com.mysql.jdbc.StandardSocketFactory.  File: manual.info, Node: connector-j-reference-implementation-notes, Next: connector-j-reference-type-conversions, Prev: connector-j-reference-configuration-properties, Up: connector-j-reference -22.3.4.2 JDBC API Implementation Notes +22.3.5.2 JDBC API Implementation Notes ...................................... MySQL Connector/J passes all of the tests in the publicly available -version of Sun's JDBC compliance test suite. However, in many places -the JDBC specification is vague about how certain functionality should -be implemented, or the specification enables leeway in implementation. - -This section gives details on a interface-by-interface level about how -certain implementation decisions may affect how you use MySQL -Connector/J. - - * *Blob* +version of Sun's JDBC compliance test suite. this section gives details +on a interface-by-interface level about implementation decisions that +might affect how you code applications with MySQL Connector/J. The JDBC +specification is vague about how certain functionality should be +implemented, or the specification enables leeway in implementation. + + * *BLOB* + + Starting with Connector/J version 3.1.0, you can emulate BLOBs + with locators by adding the property `emulateLocators=true' to + your JDBC URL. Using this method, the driver will delay loading + the actual BLOB data until you retrieve the other data and then use + retrieval methods (`getInputStream()', `getBytes()', and so forth) + on the blob data stream. - Starting with Connector/J version 3.1.0, you can emulate Blobs - with locators by adding the property 'emulateLocators=true' to - your JDBC URL. Using this method, the driver will delay loading - the actual Blob data until you retrieve the other data and then - use retrieval methods (`getInputStream()', `getBytes()', and so - forth) on the blob data stream. - - For this to work, you must use a column alias with the value of - the column to the actual name of the Blob, for example: + You must use a column alias with the value of the column to the + actual name of the BLOB, for example: SELECT id, 'data' as blob_data from blobtable - For this to work, you must also follow these rules: + You must also follow these rules: - * The *Note `SELECT': select. must also reference only one - table, the table must have a primary key. + * The *Note `SELECT': select. must reference only one table. + The table must have a primary key. * The *Note `SELECT': select. must alias the original blob column name, specified as a string, to an alternate name. @@ -197824,13 +199534,12 @@ * The *Note `SELECT': select. must cover all columns that make up the primary key. - The Blob implementation does not allow in-place modification (they + The BLOB implementation does not allow in-place modification (they are copies, as reported by the `DatabaseMetaData.locatorsUpdateCopies()' method). Because of - this, you should use the corresponding - `PreparedStatement.setBlob()' or `ResultSet.updateBlob()' (in the - case of updatable result sets) methods to save changes back to the - database. + this, use the corresponding `PreparedStatement.setBlob()' or + `ResultSet.updateBlob()' (in the case of updatable result sets) + methods to save changes back to the database. * *CallableStatement* @@ -197842,31 +199551,31 @@ * *Clob* - The Clob implementation does not allow in-place modification (they + The CLOB implementation does not allow in-place modification (they are copies, as reported by the `DatabaseMetaData.locatorsUpdateCopies()' method). Because of - this, you should use the `PreparedStatement.setClob()' method to - save changes back to the database. The JDBC API does not have a + this, use the `PreparedStatement.setClob()' method to save changes + back to the database. The JDBC API does not have a `ResultSet.updateClob()' method. * *Connection* - Unlike older versions of MM.MySQL the `isClosed()' method does not - ping the server to determine if it is available. In accordance with - the JDBC specification, it only returns true if `closed()' has - been called on the connection. If you need to determine if the - connection is still valid, you should issue a simple query, such as - `SELECT 1'. The driver will throw an exception if the connection - is no longer valid. + Unlike older versions of MM.MySQL, the `isClosed()' method does + not ping the server to determine if it is available. In accordance + with the JDBC specification, it only returns true if `closed()' + has been called on the connection. If you need to determine if the + connection is still valid, issue a simple query, such as `SELECT + 1'. The driver will throw an exception if the connection is no + longer valid. * *DatabaseMetaData* - Foreign Key information (`getImportedKeys()'/`getExportedKeys()' + Foreign key information (`getImportedKeys()'/`getExportedKeys()' and `getCrossReference()') is only available from InnoDB tables. - However, the driver uses *Note `SHOW CREATE TABLE': - show-create-table. to retrieve this information, so when other - storage engines support foreign keys, the driver will - transparently support them as well. + The driver uses *Note `SHOW CREATE TABLE': show-create-table. to + retrieve this information, so if any other storage engines add + support for foreign keys, the driver would transparently support + them as well. * *PreparedStatement* @@ -197914,12 +199623,12 @@ memory. In most cases this is the most efficient way to operate, and due to the design of the MySQL network protocol is easier to implement. If you are working with ResultSets that have a large - number of rows or large values, and can not allocate heap space in + number of rows or large values, and cannot allocate heap space in your JVM for the memory required, you can tell the driver to stream the results back one row at a time. - To enable this functionality, you need to create a Statement - instance in the following manner: + To enable this functionality, create a `Statement' instance in the + following manner: stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY, java.sql.ResultSet.CONCUR_READ_ONLY); @@ -197927,13 +199636,12 @@ The combination of a forward-only, read-only result set, with a fetch size of `Integer.MIN_VALUE' serves as a signal to the driver - to stream result sets row-by-row. After this any result sets + to stream result sets row-by-row. After this, any result sets created with the statement will be retrieved row-by-row. - There are some caveats with this approach. You will have to read - all of the rows in the result set (or close it) before you can - issue any other queries on the connection, or an exception will be - thrown. + There are some caveats with this approach. You must read all of + the rows in the result set (or close it) before you can issue any + other queries on the connection, or an exception will be thrown. The earliest the locks these statements hold can be released (whether they be `MyISAM' table-level locks or row-level locks in @@ -197981,14 +199689,14 @@ *Note*: The MySQL statement *Note `KILL QUERY': kill. (which is what the - driver uses to implement `Statement.cancel()') is rather - non-deterministic, and thus the use of `Statement.cancel()' should - be avoided if possible. If no query is in process, the next query - issued will be killed by the server. This race condition is - guarded against as of Connector/J 5.1.18. + driver uses to implement `Statement.cancel()') is + non-deterministic; thus, avoid the use of `Statement.cancel()' if + possible. If no query is in process, the next query issued will be + killed by the server. This race condition is guarded against as of + Connector/J 5.1.18. MySQL does not support SQL cursors, and the JDBC driver doesn't - emulate them, so "setCursorName()" has no effect. + emulate them, so `setCursorName()' has no effect. Connector/J 5.1.3 and later include two additional methods: @@ -198018,7 +199726,7 @@  File: manual.info, Node: connector-j-reference-type-conversions, Next: connector-j-reference-charsets, Prev: connector-j-reference-implementation-notes, Up: connector-j-reference -22.3.4.3 Java, JDBC and MySQL Types +22.3.5.3 Java, JDBC and MySQL Types ................................... MySQL Connector/J is flexible in the way it handles conversions between @@ -198028,8 +199736,23 @@ and any numeric type can be converted to any of the Java numeric types, although round-off, overflow, or loss of precision may occur. -Starting with Connector/J 3.1.0, the JDBC driver will issue warnings or -throw DataTruncation exceptions as is required by the JDBC +*Note*: + +All `TEXT' types return `Types.LONGVARCHAR' with different +`getPrecision()' values (65535, 255, 16777215, and 2147483647 +respectively) with `getColumnType()' returning `-1'. This behavior is +intentional even though TINYTEXT does not fall, regarding to its size, +within the `LONGVARCHAR' category. This is to avoid different handling +inside the same base type. And `getColumnType()' returns `-1' because +the internal server handling is of type `TEXT', which is similar to +`BLOB'. + +Also note that `getColumnTypeName()' will return `VARCHAR' even though +`getColumnType()' returns `Types.LONGVARCHAR', because `VARCHAR' is the +designated column database-specific name for this type. + +Starting with Connector/J 3.1.0, the JDBC driver issues warnings or +throws `DataTruncation' exceptions as is required by the JDBC specification unless the connection was configured not to do so by using the property jdbcCompliantTruncation and setting it to `false'. @@ -198096,12 +199819,14 @@ TIMESTAMP[(M)] TIMESTAMP java.sql.Timestamp TIME TIME java.sql.Time YEAR[(2|4)] YEAR If `yearIsDateType' configuration - property is set to false, then the - returned object type is - java.sql.Short. If set to true (the - default) then an object of type - java.sql.Date (with the date set to - January 1st, at midnight). + property is set to `false', then + the returned object type is + java.sql.Short. If set to `true' + (the default), then the returned + object is of type java.sql.Date + with the date + + set to January 1st, at midnight. CHAR(M) CHAR java.lang.String (unless the character set for the column is BINARY, then byte[] is returned. @@ -198124,7 +199849,7 @@  File: manual.info, Node: connector-j-reference-charsets, Next: connector-j-reference-using-ssl, Prev: connector-j-reference-type-conversions, Up: connector-j-reference -22.3.4.4 Using Character Sets and Unicode +22.3.5.4 Using Character Sets and Unicode ......................................... All strings sent from the JDBC driver to the server are converted @@ -198161,9 +199886,9 @@ To override the automatically detected encoding on the client side, use the characterEncoding property in the URL used to connect to the server. -When specifying character encodings on the client side, Java-style -names should be used. The following table lists Java-style names for -MySQL character sets: +When specifying character encodings on the client side, use Java-style +names. The following table lists Java-style names for MySQL character +sets: MySQL to Java Encoding Name Translations @@ -198198,15 +199923,15 @@ not detect that the character set has changed, and will continue to use the character set detected during the initial connection setup. -To allow multiple character sets to be sent from the client, the UTF-8 -encoding should be used, either by configuring `utf8' as the default -server character set, or by configuring the JDBC driver to use UTF-8 -through the characterEncoding property. +To allow multiple character sets to be sent from the client, use the +UTF-8 encoding, either by configuring `utf8' as the default server +character set, or by configuring the JDBC driver to use UTF-8 through +the characterEncoding property.  File: manual.info, Node: connector-j-reference-using-ssl, Next: connector-j-reference-replication-connection, Prev: connector-j-reference-charsets, Up: connector-j-reference -22.3.4.5 Connecting Securely Using SSL +22.3.5.5 Connecting Securely Using SSL ...................................... SSL in MySQL Connector/J encrypts all data (other than the initial @@ -198246,14 +199971,14 @@ To use Java's `keytool' to create a truststore in the current directory , and import the server's CA certificate (`cacert.pem'), you can do the -following (assuming that `keytool' is in your path. The `keytool' -should be located in the `bin' subdirectory of your JDK or JRE): +following (assuming that `keytool' is in your path. The `keytool' is +typically located in the `bin' subdirectory of your JDK or JRE): shell> keytool -import -alias mysqlServerCACert \ - -file cacert.pem -keystore truststore + -file cacert.pem -keystore truststore -You will need to enter the password when prompted for the keystore -file. Interaction with `keytool' will look like this: +Enter the password when prompted for the keystore file. Interaction +with `keytool' looks like this: Enter keystore password: ********* Owner: EMAILADDRESS=walrus@example.com, CN=Walrus, @@ -198269,18 +199994,17 @@ Trust this certificate? [no]: yes Certificate was added to keystore -You then have two options, you can either import the client certificate -that matches the CA certificate you just imported, or you can create a -new client certificate. +You then have two options: either import the client certificate that +matches the CA certificate you just imported, or create a new client +certificate. -To import an existing certificate, the certificate should be in DER +Importing an existing certificate requires the certificate to be in DER format. You can use `openssl' to convert an existing certificate into the new format. For example: shell> openssl x509 -outform DER -in client-cert.pem -out client.cert -You now need to import the converted certificate into your keystore -using `keytool': +Now import the converted certificate into your keystore using `keytool': shell> keytool -import -file client.cert -keystore keystore -alias mysqlClientCertificate @@ -198293,8 +200017,7 @@ Keytool will prompt you for the following information, and create a keystore named `keystore' in the current directory. -You should respond with information that is appropriate for your -situation: +Respond with information that is appropriate for your situation: Enter keystore password: ********* What is your first and last name? @@ -198391,7 +200114,7 @@  File: manual.info, Node: connector-j-reference-replication-connection, Next: connector-j-reference-error-sqlstates, Prev: connector-j-reference-using-ssl, Up: connector-j-reference -22.3.4.6 Using Master/Slave Replication with ReplicationConnection +22.3.5.6 Using Master/Slave Replication with ReplicationConnection .................................................................. Starting with Connector/J 3.1.7, we've made available a variant of the @@ -198490,7 +200213,7 @@  File: manual.info, Node: connector-j-reference-error-sqlstates, Prev: connector-j-reference-replication-connection, Up: connector-j-reference -22.3.4.7 Mapping MySQL Error Numbers to SQLStates +22.3.5.7 Mapping MySQL Error Numbers to SQLStates ................................................. The table below provides a mapping of the MySQL Error Numbers to `SQL @@ -198636,22 +200359,10 @@ 1286 ER_UNKNOWN_STORAGE_ENGINE S1000 42000  -File: manual.info, Node: connector-j-usagenotes, Next: connector-j-support, Prev: connector-j-reference, Up: connector-j - -22.3.5 Connector/J Notes and Tips ---------------------------------- - -* Menu: - -* connector-j-usagenotes-basic:: Basic JDBC Concepts -* connector-j-usagenotes-j2ee:: Using Connector/J with J2EE and Other Java Frameworks -* connector-j-usagenotes-troubleshooting:: Connector/J: Common Problems and Solutions - - -File: manual.info, Node: connector-j-usagenotes-basic, Next: connector-j-usagenotes-j2ee, Prev: connector-j-usagenotes, Up: connector-j-usagenotes +File: manual.info, Node: connector-j-usagenotes-basic, Next: connector-j-usagenotes-j2ee-concepts, Prev: connector-j-reference, Up: connector-j -22.3.5.1 Basic JDBC Concepts -............................ +22.3.6 JDBC Concepts +-------------------- * Menu: @@ -198665,26 +200376,26 @@  File: manual.info, Node: connector-j-usagenotes-connect-drivermanager, Next: connector-j-usagenotes-statements, Prev: connector-j-usagenotes-basic, Up: connector-j-usagenotes-basic -22.3.5.2 Connecting to MySQL Using the `DriverManager' Interface +22.3.6.1 Connecting to MySQL Using the `DriverManager' Interface ................................................................ When you are using JDBC outside of an application server, the `DriverManager' class manages the establishment of Connections. -The `DriverManager' needs to be told which JDBC drivers it should try -to make Connections with. The easiest way to do this is to use +Specify to the `DriverManager' which JDBC drivers to try to make +Connections with. The easiest way to do this is to use `Class.forName()' on the class that implements the `java.sql.Driver' -interface. With MySQL Connector/J, the name of this class is +interface. With MySQL Connector/J, the name of this class is `com.mysql.jdbc.Driver'. With this method, you could use an external configuration file to supply the driver class name and driver parameters to use when connecting to a database. The following section of Java code shows how you might register MySQL Connector/J from the `main()' method of your application. If testing -this code please ensure you read the installation section first at -*Note connector-j-installing::, to make sure you have connector -installed correctly and the `CLASSPATH' set up. Also, ensure that MySQL -is configured to accept external TCP/IP connections. +this code, first read the installation section at *Note +connector-j-installing::, to make sure you have connector installed +correctly and the `CLASSPATH' set up. Also, ensure that MySQL is +configured to accept external TCP/IP connections. import java.sql.Connection; import java.sql.DriverManager; @@ -198716,8 +200427,8 @@ This example shows how you can obtain a `Connection' instance from the `DriverManager'. There are a few different signatures for the -`getConnection()' method. You should see the API documentation that -comes with your JDK for more specific information on how to use them. +`getConnection()' method. Consult the API documentation that comes with +your JDK for more specific information on how to use them. import java.sql.Connection; import java.sql.DriverManager; @@ -198747,7 +200458,7 @@  File: manual.info, Node: connector-j-usagenotes-statements, Next: connector-j-usagenotes-statements-callable, Prev: connector-j-usagenotes-connect-drivermanager, Up: connector-j-usagenotes-basic -22.3.5.3 Using Statements to Execute SQL +22.3.6.2 Using Statements to Execute SQL ........................................ Statement objects allow you to execute basic SQL queries and retrieve @@ -198835,7 +200546,7 @@  File: manual.info, Node: connector-j-usagenotes-statements-callable, Next: connector-j-usagenotes-last-insert-id, Prev: connector-j-usagenotes-statements, Up: connector-j-usagenotes-basic -22.3.5.4 Using `CallableStatements' to Execute Stored Procedures +22.3.6.3 Using `CallableStatements' to Execute Stored Procedures ................................................................ Starting with MySQL server version 5.0 when used with Connector/J 3.1.1 @@ -198899,9 +200610,9 @@ `Connection.prepareCall()' is an expensive method, due to the metadata retrieval that the driver performs to support output - parameters. For performance reasons, you should try to minimize - unnecessary calls to `Connection.prepareCall()' by reusing - CallableStatement instances in your code. + parameters. For performance reasons, minimize unnecessary calls to + `Connection.prepareCall()' by reusing CallableStatement instances + in your code. 2. Register the output parameters (if any exist) @@ -199022,7 +200733,7 @@  File: manual.info, Node: connector-j-usagenotes-last-insert-id, Prev: connector-j-usagenotes-statements-callable, Up: connector-j-usagenotes-basic -22.3.5.5 Retrieving `AUTO_INCREMENT' Column Values +22.3.6.4 Retrieving `AUTO_INCREMENT' Column Values .................................................. Before version 3.0 of the JDBC API, there was no standard way of @@ -199264,38 +200975,24 @@ } } -When you run the preceding example code, you should get the following -output: Key returned from `getGeneratedKeys()': 1 Key returned from -`SELECT LAST_INSERT_ID()': 1 Key returned for inserted row: 2 You -should be aware, that at times, it can be tricky to use the `SELECT -LAST_INSERT_ID()' query, as that function's value is scoped to a -connection. So, if some other query happens on the same connection, the -value will be overwritten. On the other hand, the `getGeneratedKeys()' -method is scoped by the Statement instance, so it can be used even if -other queries happen on the same connection, but not on the same -Statement instance. - - -File: manual.info, Node: connector-j-usagenotes-j2ee, Next: connector-j-usagenotes-troubleshooting, Prev: connector-j-usagenotes-basic, Up: connector-j-usagenotes - -22.3.5.6 Using Connector/J with J2EE and Other Java Frameworks -.............................................................. - -* Menu: +Running the preceding example code should produce the following output: -* connector-j-usagenotes-j2ee-concepts:: General J2EE Concepts -* connector-j-usagenotes-tomcat:: Using Connector/J with Tomcat -* connector-j-usagenotes-jboss:: Using Connector/J with JBoss -* connector-j-usagenotes-spring-config:: Using Connector/J with Spring -* connector-j-usagenotes-glassfish-config:: Using Connector/J with GlassFish + Key returned from getGeneratedKeys(): 1 + Key returned from SELECT LAST_INSERT_ID(): 1 + Key returned for inserted row: 2 -This section describes how to use Connector/J in several contexts. +At times, it can be tricky to use the `SELECT LAST_INSERT_ID()' query, +as that function's value is scoped to a connection. So, if some other +query happens on the same connection, the value is overwritten. On the +other hand, the `getGeneratedKeys()' method is scoped by the Statement +instance, so it can be used even if other queries happen on the same +connection, but not on the same Statement instance.  -File: manual.info, Node: connector-j-usagenotes-j2ee-concepts, Next: connector-j-usagenotes-tomcat, Prev: connector-j-usagenotes-j2ee, Up: connector-j-usagenotes-j2ee +File: manual.info, Node: connector-j-usagenotes-j2ee-concepts, Next: connector-j-usagenotes-tomcat, Prev: connector-j-usagenotes-basic, Up: connector-j -22.3.5.7 General J2EE Concepts -.............................. +22.3.7 J2EE Concepts +-------------------- * Menu: @@ -199309,19 +201006,21 @@  File: manual.info, Node: connector-j-usagenotes-j2ee-concepts-connection-pooling, Next: connector-j-usagenotes-j2ee-concepts-managing-load-balanced-connections, Prev: connector-j-usagenotes-j2ee-concepts, Up: connector-j-usagenotes-j2ee-concepts -22.3.5.8 Understanding Connection Pooling +22.3.7.1 Understanding Connection Pooling ......................................... Connection pooling is a technique of creating and managing a pool of connections that are ready for use by any thread that needs them. +Connection pooling can greatly increase the performance of your Java +application, while reducing overall resource usage. -This technique of pooling connections is based on the fact that most -applications only need a thread to have access to a JDBC connection -when they are actively processing a transaction, which usually take -only milliseconds to complete. When not processing a transaction, the -connection would otherwise sit idle. Instead, connection pooling -enables the idle connection to be used by some other thread to do -useful work. +* How Connection Pooling Works * + +Most applications only need a thread to have access to a JDBC +connection when they are actively processing a transaction, which often +takes only milliseconds to complete. When not processing a transaction, +the connection sits idle. Connection pooling enables the idle +connection to be used by some other thread to do useful work. In practice, when a thread needs to do work against a MySQL or other database with JDBC, it requests a connection from the pool. When the @@ -199331,48 +201030,39 @@ When the connection is loaned out from the pool, it is used exclusively by the thread that requested it. From a programming point of view, it is the same as if your thread called `DriverManager.getConnection()' -every time it needed a JDBC connection, however with connection -pooling, your thread may end up using either a new, or already-existing +every time it needed a JDBC connection. With connection pooling, your +thread may end up using either a new connection or an already-existing connection. -Connection pooling can greatly increase the performance of your Java -application, while reducing overall resource usage. The main benefits -to connection pooling are: +* Benefits of Connection Pooling * - * Reduced connection creation time +The main benefits to connection pooling are: + + * Reduced connection creation time. Although this is not usually an issue with the quick connection setup that MySQL offers compared to other databases, creating new JDBC connections still incurs networking and JDBC driver overhead that will be avoided if connections are recycled. - * Simplified programming model + * Simplified programming model. When using connection pooling, each individual thread can act as though it has created its own JDBC connection, allowing you to use - straight-forward JDBC programming techniques. + straightforward JDBC programming techniques. - * Controlled resource usage + * Controlled resource usage. - If you do not use connection pooling, and instead create a new - connection every time a thread needs one, your application's - resource usage can be quite wasteful and lead to unpredictable - behavior under load. - -Remember that each connection to MySQL has overhead (memory, CPU, -context switches, and so forth) on both the client and server side. -Every connection limits how many resources there are available to your -application as well as the MySQL server. Many of these resources will -be used whether or not the connection is actually doing any useful work! - -Connection pools can be tuned to maximize performance, while keeping -resource utilization below the point where your application will start -to fail rather than just run slower. - -Luckily, Sun has standardized the concept of connection pooling in JDBC -through the JDBC-2.0 Optional interfaces, and all major application -servers have implementations of these APIs that work fine with MySQL -Connector/J. + If you create a new connection every time a thread needs one, + rather than using connection pooling, your application's resource + usage can be wasteful and lead to unpredictable behavior under + load. + +* Using Connection Pooling with Connector/J * + +Sun has standardized the concept of connection pooling in JDBC through +the JDBC-2.0 Optional interfaces, and all major application servers +have implementations of these APIs that work with MySQL Connector/J. Generally, you configure a connection pool in your application server configuration files, and access it through the Java Naming and @@ -199475,32 +201165,40 @@ } } -As shown in the example above, after obtaining the JNDI InitialContext, -and looking up the DataSource, the rest of the code should look -familiar to anyone who has done JDBC programming in the past. - -The most important thing to remember when using connection pooling is -to make sure that no matter what happens in your code (exceptions, -flow-of-control, and so forth), connections, and anything created by -them (such as statements or result sets) are closed, so that they may be -re-used, otherwise they will be stranded, which in the best case means -that the MySQL server resources they represent (such as buffers, locks, -or sockets) may be tied up for some time, or worst case, may be tied up -forever. - -*What Is the Best Size for my Connection Pool?* - -As with all other configuration rules-of-thumb, the answer is: it -depends. Although the optimal size depends on anticipated load and -average database transaction time, the optimum connection pool size is -smaller than you might expect. If you take Sun's Java Petstore blueprint -application for example, a connection pool of 15-20 connections can -serve a relatively moderate load (600 concurrent users) using MySQL and -Tomcat with response times that are acceptable. - -To correctly size a connection pool for your application, you should -create load test scripts with tools such as Apache JMeter or The -Grinder, and load test your application. +As shown in the example above, after obtaining the JNDI +`InitialContext', and looking up the `DataSource', the rest of the code +follows familiar JDBC conventions. + +When using connection pooling, always make sure that connections, and +anything created by them (such as statements or result sets) are +closed. This rule applies no matter what happens in your code +(exceptions, flow-of-control, and so forth). When these objects are +closed, they can be re-used; otherwise, they will be stranded, which +means that the MySQL server resources they represent (such as buffers, +locks, or sockets) are tied up for some time, or in the worst case can +be tied up forever. + +* Sizing the Connection Pool * + +Each connection to MySQL has overhead (memory, CPU, context switches, +and so forth) on both the client and server side. Every connection +limits how many resources there are available to your application as +well as the MySQL server. Many of these resources will be used whether +or not the connection is actually doing any useful work! Connection +pools can be tuned to maximize performance, while keeping resource +utilization below the point where your application will start to fail +rather than just run slower. + +The optimal size for the connection pool depends on anticipated load +and average database transaction time. In practice, the optimal +connection pool size can be smaller than you might expect. If you take +Sun's Java Petstore blueprint application for example, a connection +pool of 15-20 connections can serve a relatively moderate load (600 +concurrent users) using MySQL and Tomcat with acceptable response times. + +To correctly size a connection pool for your application, create load +test scripts with tools such as Apache JMeter or The Grinder, and load +test your application. An easy way to determine a starting point is to configure your connection pool's maximum number of connections to be unbounded, run a @@ -199509,15 +201207,15 @@ values of minimum and maximum pooled connections give the best performance for your particular application. -*Validating Connections* +* Validating Connections * -MySQL Connector/J has the ability to execute a lightweight ping against -a server, in order to validate the connection. In the case of -load-balanced connections, this is performed against all active pooled -internal connections that are retained. This is beneficial to Java -applications using connection pools, as the pool can use this feature to -validate connections. Depending on your connection pool and -configuration, this validation can be carried out at different times: +MySQL Connector/J can validate the connection by executing a +lightweight ping against a server. In the case of load-balanced +connections, this is performed against all active pooled internal +connections that are retained. This is beneficial to Java applications +using connection pools, as the pool can use this feature to validate +connections. Depending on your connection pool and configuration, this +validation can be carried out at different times: 1. Before the pool returns a connection to the application. @@ -199525,26 +201223,16 @@ 3. During periodic checks of idle connections. -In order to use this feature you need to specify a validation query in -your connection pool that starts with `/* ping */'. Note the syntax -must be exactly as specified. This will cause the driver send a ping to -the server and return a fake, light-weight, result set. When using a +To use this feature, specify a validation query in your connection pool +that starts with `/* ping */'. Note that the syntax must be exactly as +specified. This will cause the driver send a ping to the server and +return a dummy lightweight result set. When using a `ReplicationConnection' or `LoadBalancedConnection', the ping will be sent across all active connections. -It is critical that the syntax be specified correctly. For example, -consider the following snippets: - - sql = "/* PING */ SELECT 1"; - sql = "SELECT 1 /* ping*/"; - sql = "/*ping*/ SELECT 1"; - sql = " /* ping */ SELECT 1"; - sql = "/*to ping or not to ping*/ SELECT 1"; - -None of the above statements will work. This is because the ping syntax -is sensitive to whitespace, capitalization, and placement. The syntax -needs to be exact for reasons of efficiency, as this test is done for -every statement that is executed: +It is critical that the syntax be specified correctly. The syntax needs +to be exact for reasons of efficiency, as this test is done for every +statement that is executed: protected static final String PING_MARKER = "/* ping */"; @@ -199554,29 +201242,37 @@ doPingInstead(); ... +None of the following snippets will work, because the ping syntax is +sensitive to whitespace, capitalization, and placement: + + sql = "/* PING */ SELECT 1"; + sql = "SELECT 1 /* ping*/"; + sql = "/*ping*/ SELECT 1"; + sql = " /* ping */ SELECT 1"; + sql = "/*to ping or not to ping*/ SELECT 1"; + All of the previous statements will issue a normal `SELECT' statement and will *not* be transformed into the lightweight ping. Further, for -load-balanced connections the statement will be executed against one +load-balanced connections, the statement will be executed against one connection in the internal pool, rather than validating each underlying -physical connection. This results in the non-active physical -connections assuming a stale state, and they may die. If Connector/J -then re-balances it may select a dead connection, resulting in an -exception being passed to the application. To help prevent this you can -use `loadBalanceValidateConnectionOnSwapServer' to validate the +physical connection. This results in the non-active physical connections +assuming a stale state, and they may die. If Connector/J then +re-balances, it might select a dead connection, resulting in an +exception being passed to the application. To help prevent this, you +can use `loadBalanceValidateConnectionOnSwapServer' to validate the connection before use. If your Connector/J deployment uses a connection pool that allows you -to specify a validation query, this should be taken advantage of, but -ensure that the query starts _exactly_ with `/* ping */'. This is -particularly important if you are using the load-balancing or -replication-aware features of Connector/J, as it will help keep alive -connections which otherwise will go stale and die, causing problems -later. +to specify a validation query, take advantage of it, but ensure that +the query starts _exactly_ with `/* ping */'. This is particularly +important if you are using the load-balancing or replication-aware +features of Connector/J, as it will help keep alive connections which +otherwise will go stale and die, causing problems later.  File: manual.info, Node: connector-j-usagenotes-j2ee-concepts-managing-load-balanced-connections, Next: connector-j-usagenotes-j2ee-concepts-load-balancing-failover, Prev: connector-j-usagenotes-j2ee-concepts-connection-pooling, Up: connector-j-usagenotes-j2ee-concepts -22.3.5.9 Managing Load Balanced Connections +22.3.7.2 Managing Load Balanced Connections ........................................... Connector/J has long provided an effective means to distribute @@ -199591,8 +201287,8 @@ online upgrades, as the alternative is to take a MySQL Cluster server instance down hard, which will lose any in-process transactions and will also generate application exceptions, if any application is trying -to use that particular server instance. Connector/J now has the ability -to dynamically configure load-balanced connections. +to use that particular server instance. Connector/J now has the +ability to dynamically configure load-balanced connections. There are two connection string options associated with this functionality: @@ -199614,7 +201310,7 @@ property to `true'. This enables a JMX implementation, which exposes the management and monitoring operations of a connection group. Further, start your application with the - `-Dcom.sun.management.jmxremote' JVM flag. You can then perform + `-Dcom.sun.management.jmxremote' JVM flag. You can then perform connect and perform operations using a JMX client such as `jconsole'. @@ -199722,7 +201418,7 @@ After compiling, the application can be started with the `-Dcom.sun.management.jmxremote' flag, to enable remote management. `jconsole' can then be started. The Test main class will be listed by -jconsole. Select this and click `Connect'. You can then navigate to the +jconsole. Select this and click `Connect'. You can then navigate to the `com.mysql.jdbc.jmx.LoadBalanceConnectionGroupManager' bean. At this point you can click on various operations and examine the returned result. @@ -199736,8 +201432,8 @@  File: manual.info, Node: connector-j-usagenotes-j2ee-concepts-load-balancing-failover, Prev: connector-j-usagenotes-j2ee-concepts-managing-load-balanced-connections, Up: connector-j-usagenotes-j2ee-concepts -22.3.5.10 Load Balancing Failover Policies -.......................................... +22.3.7.3 Load Balancing Failover Policies +......................................... Connector/J provides a useful load-balancing implementation for Cluster or multi-master deployments. As of Connector/J 5.1.12, this same @@ -199765,8 +201461,8 @@ trigger failover. * `loadBalanceExceptionChecker' - The `loadBalanceExceptionChecker' - property is really the key. This takes a fully-qualified class - name which implements the new + property is really the key. This takes a fully-qualified class name + which implements the new `com.mysql.jdbc.LoadBalanceExceptionChecker' interface. This interface is very simple, and you only need to implement the following method: @@ -199841,8 +201537,8 @@ balanced. * `loadBalanceAutoCommitStatementRegex' - the regular expression - against which statements must match. The default value, blank, - matches all statements. So, for example, using the following + against which statements must match. The default value, blank, + matches all statements. So, for example, using the following properties will cause Connector/J to re-balance after every third statement that contains the string `test': @@ -199858,10 +201554,10 @@ executed when it is safe to swap physical connections.  -File: manual.info, Node: connector-j-usagenotes-tomcat, Next: connector-j-usagenotes-jboss, Prev: connector-j-usagenotes-j2ee-concepts, Up: connector-j-usagenotes-j2ee +File: manual.info, Node: connector-j-usagenotes-tomcat, Next: connector-j-usagenotes-jboss, Prev: connector-j-usagenotes-j2ee-concepts, Up: connector-j -22.3.5.11 Using Connector/J with Tomcat -....................................... +22.3.8 Using Connector/J with Tomcat +------------------------------------ The following instructions are based on the instructions for Tomcat-5.x, available at @@ -200019,20 +201715,28 @@ Note that `/* ping */' has to be specified exactly. -In general, you should follow the installation instructions that come -with your version of Tomcat, as the way you configure datasources in -Tomcat changes from time-to-time, and unfortunately if you use the -wrong syntax in your XML file, you will most likely end up with an -exception similar to the following: +In general, follow the installation instructions that come with your +version of Tomcat, as the way you configure datasources in Tomcat +changes from time-to-time, and if you use the wrong syntax in your XML +file, you will most likely end up with an exception similar to the +following: Error: java.sql.SQLException: Cannot load JDBC driver class 'null ' SQL state: null +Note that the auto-loading of drivers having the +`META-INF/service/java.sql.Driver' class in JDBC 4.0 causes an improper +undeployment of the Connector/J driver in Tomcat on Windows. Namely, +the Connector/J jar remains locked. This is an initialization problem +that is not related to the driver. The possible workarounds, if viable, +are as follows: use "`antiResourceLocking=true'" as a Tomcat Context +attribute, or remove the `META-INF/' directory. +  -File: manual.info, Node: connector-j-usagenotes-jboss, Next: connector-j-usagenotes-spring-config, Prev: connector-j-usagenotes-tomcat, Up: connector-j-usagenotes-j2ee +File: manual.info, Node: connector-j-usagenotes-jboss, Next: connector-j-usagenotes-spring-config, Prev: connector-j-usagenotes-tomcat, Up: connector-j -22.3.5.12 Using Connector/J with JBoss -...................................... +22.3.9 Using Connector/J with JBoss +----------------------------------- These instructions cover JBoss-4.x. To make the JDBC driver classes available to the application server, copy the .jar file that comes with @@ -200085,16 +201789,16 @@  -File: manual.info, Node: connector-j-usagenotes-spring-config, Next: connector-j-usagenotes-glassfish-config, Prev: connector-j-usagenotes-jboss, Up: connector-j-usagenotes-j2ee +File: manual.info, Node: connector-j-usagenotes-spring-config, Next: connector-j-usagenotes-glassfish-config, Prev: connector-j-usagenotes-jboss, Up: connector-j -22.3.5.13 Using Connector/J with Spring -....................................... +22.3.10 Using Connector/J with Spring +------------------------------------- * Menu: * connector-j-usagenotes-spring-config-jdbctemplate:: Using JdbcTemplate * connector-j-usagenotes-spring-config-transactional:: Transactional JDBC Access -* connector-j-usagenotes-spring-config-connpooling:: Connection Pooling +* connector-j-usagenotes-spring-config-connpooling:: Connection Pooling with Spring The Spring Framework is a Java-based application framework designed for assisting in application design by providing a way to configure @@ -200107,7 +201811,7 @@ Spring.NET. Spring is not only a system for configuring components, but also -includes support for aspect oriented programming (AOP). This is one of +includes support for aspect oriented programming (AOP). This is one of the main benefits and the foundation for Spring's resource and transaction management. Spring also provides utilities for integrating resource management with JDBC and Hibernate. @@ -200197,15 +201901,15 @@  File: manual.info, Node: connector-j-usagenotes-spring-config-jdbctemplate, Next: connector-j-usagenotes-spring-config-transactional, Prev: connector-j-usagenotes-spring-config, Up: connector-j-usagenotes-spring-config -22.3.5.14 Using JdbcTemplate +22.3.10.1 Using JdbcTemplate ............................ Spring makes extensive use of the Template method design pattern (see Template Method Pattern (http://en.wikipedia.org/wiki/Template_method_pattern)). Our immediate focus will be on the `JdbcTemplate' and related classes, specifically -`NamedParameterJdbcTemplate'. The template classes handle obtaining -and releasing a connection for data access when one is needed. +`NamedParameterJdbcTemplate'. The template classes handle obtaining and +releasing a connection for data access when one is needed. The next example shows how to use `NamedParameterJdbcTemplate' inside of a DAO (Data Access Object) class to retrieve a random city given a @@ -200283,11 +201987,11 @@  File: manual.info, Node: connector-j-usagenotes-spring-config-transactional, Next: connector-j-usagenotes-spring-config-connpooling, Prev: connector-j-usagenotes-spring-config-jdbctemplate, Up: connector-j-usagenotes-spring-config -22.3.5.15 Transactional JDBC Access +22.3.10.2 Transactional JDBC Access ................................... You might be wondering how we can add transactions into our code if we -do not deal directly with the JDBC classes. Spring provides a +do not deal directly with the JDBC classes. Spring provides a transaction management package that not only replaces JDBC transaction management, but also enables declarative transaction management (configuration instead of code). @@ -200369,8 +202073,8 @@ The preceding code creates a transaction manager that handles transactions for the data source provided to it. The `txAdvice' uses this transaction manager and the attributes specify to create a -transaction for all methods. Finally you need to apply this advice with -an AOP pointcut. +transaction for all methods. Finally you need to apply this advice +with an AOP pointcut.  -File: manual.info, Node: connector-j-usagenotes-glassfish-config, Prev: connector-j-usagenotes-spring-config, Up: connector-j-usagenotes-j2ee +File: manual.info, Node: connector-j-usagenotes-glassfish-config, Next: connector-j-usagenotes-troubleshooting, Prev: connector-j-usagenotes-spring-config, Up: connector-j -22.3.5.17 Using Connector/J with GlassFish -.......................................... +22.3.11 Using Connector/J with GlassFish +---------------------------------------- * Menu: @@ -200456,8 +202160,8 @@ (https://glassfish.dev.java.net/public/downloadsindex.html#top). Once Glassfish is installed you will need to make sure it can access -MySQL Connector/J. To do this copy the MySQL Connector/J JAR file to the -directory `GLASSFISH_INSTALL/glassfish/lib'. For example, copy +MySQL Connector/J. To do this copy the MySQL Connector/J JAR file to +the directory `GLASSFISH_INSTALL/glassfish/lib'. For example, copy `mysql-connector-java-5.1.12-bin.jar' to `C:\glassfishv3\glassfish\lib'. Restart the Glassfish Application Server. @@ -200498,7 +202202,7 @@ * *DatabaseName* - The database to connect to, for example the sample MySQL database `World'. - 8. Click `Finish' to exit the wizard. You will be taken to the `JDBC + 8. Click `Finish' to exit the wizard. You will be taken to the `JDBC Connection Pools' page where all current connection pools, including the one you just created, will be displayed. @@ -200508,8 +202212,8 @@ 10. To test your connection pool click the `Ping' button at the top of the frame. A message will be displayed confirming correct - operation or otherwise. If an error message is received recheck - the previous steps, and ensure that MySQL Connector/J has been + operation or otherwise. If an error message is received recheck the + previous steps, and ensure that MySQL Connector/J has been correctly copied into the previously specified location. Now that you have created a connection pool you will also need to @@ -200544,7 +202248,7 @@  File: manual.info, Node: connector-j-usagenotes-glassfish-config-jsp, Next: connector-j-usagenotes-glassfish-config-servlet, Prev: connector-j-usagenotes-glassfish-config, Up: connector-j-usagenotes-glassfish-config -22.3.5.18 A Simple JSP Application with Glassfish, Connector/J and MySQL +22.3.11.1 A Simple JSP Application with Glassfish, Connector/J and MySQL ........................................................................ This section shows how to deploy a simple JSP application on Glassfish, @@ -200665,7 +202369,7 @@ are ready to deploy the application: 1. In the navigation tree, navigate to `Applications' - the - `Applications' frame will be displayed. Click `Deploy'. + `Applications' frame will be displayed. Click `Deploy'. 2. You can now deploy an application packaged into a single WAR file from a remote client, or you can choose a packaged file or @@ -200681,14 +202385,14 @@ Now, when you navigate to the `Applications' frame, you will have the option to `Launch', `Redeploy', or `Restart' your application. You can -test your application by clicking `Launch'. The application will +test your application by clicking `Launch'. The application will connection to the MySQL database and display the Name and Population of countries in the `Country' table.  File: manual.info, Node: connector-j-usagenotes-glassfish-config-servlet, Prev: connector-j-usagenotes-glassfish-config-jsp, Up: connector-j-usagenotes-glassfish-config -22.3.5.19 A Simple Servlet with Glassfish, Connector/J and MySQL +22.3.11.2 A Simple Servlet with Glassfish, Connector/J and MySQL ................................................................ This section describes a simple servlet that can be used in the @@ -200853,17 +202557,17 @@ the application will return a population of 59225700.  -File: manual.info, Node: connector-j-usagenotes-troubleshooting, Prev: connector-j-usagenotes-j2ee, Up: connector-j-usagenotes +File: manual.info, Node: connector-j-usagenotes-troubleshooting, Next: connector-j-support, Prev: connector-j-usagenotes-glassfish-config, Up: connector-j -22.3.5.20 Connector/J: Common Problems and Solutions -.................................................... +22.3.12 Troubleshooting Connector/J +----------------------------------- There are a few issues that seem to be commonly encountered often by users of MySQL Connector/J. This section deals with their symptoms, and their resolutions. *Questions* - * 22.3.5.3.1: When I try to connect to the database with MySQL + * 22.3.12.1: When I try to connect to the database with MySQL Connector/J, I get the following exception: SQLException: Server configuration denies access to data source @@ -200873,10 +202577,10 @@ What is going on? I can connect just fine with the MySQL command-line client. - * 22.3.5.3.2: My application throws an SQLException 'No Suitable - Driver'. Why is this happening? + * 22.3.12.2: My application throws an SQLException 'No Suitable + Driver'. Why is this happening? - * 22.3.5.3.3: I'm trying to use MySQL Connector/J in an applet or + * 22.3.12.3: I'm trying to use MySQL Connector/J in an applet or application and I get an exception similar to: SQLException: Cannot connect to MySQL server on host:3306. @@ -200887,16 +202591,16 @@ SQLState: 08S01 VendorError: 0 - * 22.3.5.3.4: I have a servlet/application that works fine for a day, + * 22.3.12.4: I have a servlet/application that works fine for a day, and then stops working overnight - * 22.3.5.3.5: I'm trying to use JDBC-2.0 updatable result sets, and I + * 22.3.12.5: I'm trying to use JDBC-2.0 updatable result sets, and I get an exception saying my result set is not updatable. - * 22.3.5.3.6: I cannot connect to the MySQL server using Connector/J, - and I'm sure the connection paramters are correct. + * 22.3.12.6: I cannot connect to the MySQL server using Connector/J, + and I'm sure the connection parameters are correct. - * 22.3.5.3.7: I am trying to connect to my MySQL server within my + * 22.3.12.7: I am trying to connect to my MySQL server within my application, but I get the following error and stack trace: java.net.SocketException @@ -200914,41 +202618,41 @@ at com.mysql.jdbc.Connection.(Connection.java:452) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:411) - * 22.3.5.3.8: My application is deployed through JBoss and I am using - transactions to handle the statements on the MySQL database. Under - heavy loads I am getting a error and stack trace, but these only - occur after a fixed period of heavy activity. + * 22.3.12.8: My application is deployed through JBoss and I am using + transactions to handle the statements on the MySQL database. + Under heavy loads I am getting a error and stack trace, but these + only occur after a fixed period of heavy activity. - * 22.3.5.3.9: When using `gcj' an `java.io.CharConversionException' + * 22.3.12.9: When using `gcj' an `java.io.CharConversionException' is raised when working with certain character sequences. - * 22.3.5.3.10: Updating a table that contains a primary key that is + * 22.3.12.10: Updating a table that contains a primary key that is either *Note `FLOAT': numeric-types. or compound primary key that - uses *Note `FLOAT': numeric-types. fails to update the table and + uses *Note `FLOAT': numeric-types. fails to update the table and raises an exception. - * 22.3.5.3.11: You get an `ER_NET_PACKET_TOO_LARGE' exception, even + * 22.3.12.11: You get an `ER_NET_PACKET_TOO_LARGE' exception, even though the binary blob size you want to insert using JDBC is safely below the `max_allowed_packet' size. - * 22.3.5.3.12: What should you do if you receive error messages + * 22.3.12.12: What should you do if you receive error messages similar to the following: `Communications link failure - Last packet sent to the server was X ms ago'? - * 22.3.5.3.13: Why does Connector/J not reconnect to MySQL and + * 22.3.12.13: Why does Connector/J not reconnect to MySQL and re-issue the statement after a communication failure, instead of throwing an Exception, even though I use the `autoReconnect' connection string option? - * 22.3.5.3.14: How can I use 3-byte UTF8 with Connector/J? + * 22.3.12.14: How can I use 3-byte UTF8 with Connector/J? - * 22.3.5.3.15: How can I use 4-byte UTF8, `utf8mb4' with Connector/J? + * 22.3.12.15: How can I use 4-byte UTF8, `utf8mb4' with Connector/J? - * 22.3.5.3.16: Using `useServerPrepStmts=false' and certain - character encodings can lead to corruption when inserting BLOBs. - How can this be avoided? + * 22.3.12.16: Using `useServerPrepStmts=false' and certain character + encodings can lead to corruption when inserting BLOBs. How can + this be avoided? -*Questions and Answers* *22.3.5.3.1: ** When I try to connect to the +*Questions and Answers* *22.3.12.1: ** When I try to connect to the database with MySQL Connector/J, I get the following exception: * SQLException: Server configuration denies access to data source SQLState: 08001 @@ -200959,7 +202663,7 @@ MySQL Connector/J must use TCP/IP sockets to connect to MySQL, as Java does not support Unix Domain Sockets. Therefore, when MySQL Connector/J connects to MySQL, the security manager in MySQL server -will use its grant tables to determine whether the connection should be +will use its grant tables to determine whether the connection is permitted. You must add the necessary security credentials to the MySQL server for @@ -200980,8 +202684,8 @@ Changing privileges and permissions improperly in MySQL can potentially cause your server installation to not have optimal security properties. -*22.3.5.3.2: ** My application throws an SQLException 'No Suitable -Driver'. Why is this happening? * +*22.3.12.2: ** My application throws an SQLException 'No Suitable +Driver'. Why is this happening? * There are three possible causes for this error: @@ -200994,7 +202698,7 @@ * When using DriverManager, the `jdbc.drivers' system property has not been populated with the location of the Connector/J driver. -*22.3.5.3.3: ** I'm trying to use MySQL Connector/J in an applet or +*22.3.12.3: ** I'm trying to use MySQL Connector/J in an applet or application and I get an exception similar to: * SQLException: Cannot connect to MySQL server on host:3306. Is there a MySQL server running on the machine/port you @@ -201016,7 +202720,7 @@ deploy them to a web server. MySQL Connector/J can only communicate with MySQL using TCP/IP, as Java -does not support Unix domain sockets. TCP/IP communication with MySQL +does not support Unix domain sockets. TCP/IP communication with MySQL might be affected if MySQL was started with the "-skip-networking" flag, or if it is firewalled. @@ -201025,13 +202729,13 @@ to comment it out in the file /etc/mysql/my.cnf or /etc/my.cnf. Of course your my.cnf file might also exist in the `data' directory of your MySQL server, or anywhere else (depending on how MySQL was -compiled for your system). Binaries created by us always look in +compiled for your system). Binaries created by us always look in /etc/my.cnf and [datadir]/my.cnf. If your MySQL server has been firewalled, you will need to have the firewall configured to allow TCP/IP connections from the host where your Java code is running to the MySQL server on the port that MySQL is listening to (by default, 3306). -*22.3.5.3.4: ** I have a servlet/application that works fine for a day, +*22.3.12.4: ** I have a servlet/application that works fine for a day, and then stops working overnight * MySQL closes connections after 8 hours of inactivity. You either need @@ -201039,14 +202743,12 @@ "autoReconnect" parameter (see *Note connector-j-reference-configuration-properties::). -Also, you should be catching SQLExceptions in your application and -dealing with them, rather than propagating them all the way until your -application exits, this is just good programming practice. MySQL -Connector/J will set the SQLState (see -`java.sql.SQLException.getSQLState()' in your APIDOCS) to "08S01" when -it encounters network-connectivity issues during the processing of a -query. Your application code should then attempt to re-connect to MySQL -at this point. +Also, catch SQLExceptions in your application and deal with them, +rather than propagating them all the way until your application exits. +This is just good programming practice. MySQL Connector/J will set the +SQLState (see `java.sql.SQLException.getSQLState()' in your API docs) +to "08S01" when it encounters network-connectivity issues during the +processing of a query. Attempt to reconnect to MySQL at this point. The following (simplistic) example shows what code that can handle these exceptions might look like: @@ -201176,12 +202878,12 @@ Use of the `autoReconnect' option is not recommended because there is no safe method of reconnecting to the MySQL server without risking some corruption of the connection state or database state information. -Instead, you should use a connection pool which will enable your -application to connect to the MySQL server using an available -connection from the pool. The `autoReconnect' facility is deprecated, -and may be removed in a future release. +Instead, use a connection pool, which will enable your application to +connect to the MySQL server using an available connection from the +pool. The `autoReconnect' facility is deprecated, and may be removed in +a future release. -*22.3.5.3.5: ** I'm trying to use JDBC-2.0 updatable result sets, and I +*22.3.12.5: ** I'm trying to use JDBC-2.0 updatable result sets, and I get an exception saying my result set is not updatable. * Because MySQL does not have row identifiers, MySQL Connector/J can only @@ -201193,13 +202895,13 @@ Note that this issue only occurs when using updatable result sets, and is caused because Connector/J is unable to guarantee that it can identify the correct rows within the result set to be updated without -having a unique reference to each row. There is no requirement to have a -unique field on a table if you are using *Note `UPDATE': update. or +having a unique reference to each row. There is no requirement to have +a unique field on a table if you are using *Note `UPDATE': update. or *Note `DELETE': delete. statements on a table where you can individually specify the criteria to be matched using a `WHERE' clause. -*22.3.5.3.6: ** I cannot connect to the MySQL server using Connector/J, -and I'm sure the connection paramters are correct. * +*22.3.12.6: ** I cannot connect to the MySQL server using Connector/J, +and I'm sure the connection parameters are correct. * Make sure that the `skip-networking' option has not been enabled on your server. Connector/J must be able to communicate with your server @@ -201207,7 +202909,7 @@ not filtering connections through a Firewall or other network security system. For more information, see *Note can-not-connect-to-server::. -*22.3.5.3.7: ** I am trying to connect to my MySQL server within my +*22.3.12.7: ** I am trying to connect to my MySQL server within my application, but I get the following error and stack trace: * java.net.SocketException MESSAGE: Software caused connection abort: recv failed @@ -201231,11 +202933,11 @@ authentication mechanisms. It is likely that the older version of the Connector/J driver exists -within your application directory or your `CLASSPATH' includes the older -Connector/J package. +within your application directory or your `CLASSPATH' includes the +older Connector/J package. -*22.3.5.3.8: ** My application is deployed through JBoss and I am using -transactions to handle the statements on the MySQL database. Under +*22.3.12.8: ** My application is deployed through JBoss and I am using +transactions to handle the statements on the MySQL database. Under heavy loads I am getting a error and stack trace, but these only occur after a fixed period of heavy activity. * @@ -201251,18 +202953,18 @@ (http://wiki.jboss.org/wiki/Wiki.jsp?page=TransactionTimeout) within the JBoss wiki for more information. -*22.3.5.3.9: ** When using `gcj' an `java.io.CharConversionException' is +*22.3.12.9: ** When using `gcj' an `java.io.CharConversionException' is raised when working with certain character sequences. * This is a known issue with `gcj' which raises an exception when it -reaches an unknown character or one it cannot convert. You should add +reaches an unknown character or one it cannot convert. Add `useJvmCharsetConverters=true' to your connection string to force character conversion outside of the `gcj' libraries, or try a different JDK. -*22.3.5.3.10: ** Updating a table that contains a primary key that is +*22.3.12.10: ** Updating a table that contains a primary key that is either *Note `FLOAT': numeric-types. or compound primary key that uses -*Note `FLOAT': numeric-types. fails to update the table and raises an +*Note `FLOAT': numeric-types. fails to update the table and raises an exception. * Connector/J adds conditions to the `WHERE' clause during an *Note @@ -201280,7 +202982,7 @@ your primary key use *Note `DOUBLE': numeric-types. or *Note `DECIMAL': numeric-types. types in place of *Note `FLOAT': numeric-types. -*22.3.5.3.11: ** You get an `ER_NET_PACKET_TOO_LARGE' exception, even +*22.3.12.11: ** You get an `ER_NET_PACKET_TOO_LARGE' exception, even though the binary blob size you want to insert using JDBC is safely below the `max_allowed_packet' size. * @@ -201288,7 +202990,7 @@ `com.mysql.jdbc.PreparedStatement.streamToBytes()' may almost double the size of your data. -*22.3.5.3.12: ** What should you do if you receive error messages +*22.3.12.12: ** What should you do if you receive error messages similar to the following: `Communications link failure - Last packet sent to the server was X ms ago'? * @@ -201307,7 +203009,7 @@ versions simply display the last time a packet was sent to the server, which is frequently 0 ms ago. This is of limited use, as it may be that a packet was just sent, while a packet from the server has not been -received for several hours. Knowing the period of time since +received for several hours. Knowing the period of time since Connector/J last received a packet from the server is useful information, so if this is not displayed in your exception message, it is recommended that you update Connector/J. @@ -201345,7 +203047,7 @@ after being idle for any length of time, ensure that you explicitly test it before reusing it. -*22.3.5.3.13: ** Why does Connector/J not reconnect to MySQL and +*22.3.12.13: ** Why does Connector/J not reconnect to MySQL and re-issue the statement after a communication failure, instead of throwing an Exception, even though I use the `autoReconnect' connection string option? * @@ -201388,8 +203090,8 @@ If you are running with `auto-commit' enabled, it is not possible to guarantee the state of data on the server when a communication -exception is encountered. The statement may have reached the server, or -it may not. All you know is that communication failed at some point, +exception is encountered. The statement may have reached the server, +or it may not. All you know is that communication failed at some point, before the client received confirmation (or data) from the server. This does not only affect `auto-commit' statements though. If the communication problem occurred during `Connection.commit()', the @@ -201416,12 +203118,12 @@ application developer to decide how to proceed in the event of connection errors and failures. -*22.3.5.3.14: ** How can I use 3-byte UTF8 with Connector/J? * +*22.3.12.14: ** How can I use 3-byte UTF8 with Connector/J? * To use 3-byte UTF8 with Connector/J set `characterEncoding=utf8' and set `useUnicode=true' in the connection string. -*22.3.5.3.15: ** How can I use 4-byte UTF8, `utf8mb4' with Connector/J? +*22.3.12.15: ** How can I use 4-byte UTF8, `utf8mb4' with Connector/J? * To use 4-byte UTF8 with Connector/J configure the MySQL server with @@ -201429,7 +203131,7 @@ as long as `characterEncoding' has not been set in the connection string. This is equivalent to autodetection of the character set. -*22.3.5.3.16: ** Using `useServerPrepStmts=false' and certain character +*22.3.12.16: ** Using `useServerPrepStmts=false' and certain character encodings can lead to corruption when inserting BLOBs. How can this be avoided? * @@ -201444,10 +203146,10 @@ 2. Set `SQL_MODE' to `NO_BACKSLASH_ESCAPES'.  -File: manual.info, Node: connector-j-support, Prev: connector-j-usagenotes, Up: connector-j +File: manual.info, Node: connector-j-support, Prev: connector-j-usagenotes-troubleshooting, Up: connector-j -22.3.6 Connector/J Support --------------------------- +22.3.13 Connector/J Support +--------------------------- * Menu: @@ -201458,8 +203160,8 @@  File: manual.info, Node: connector-j-support-community, Next: connector-j-support-bug-report, Prev: connector-j-support, Up: connector-j-support -22.3.6.1 Connector/J Community Support -...................................... +22.3.13.1 Connector/J Community Support +....................................... Oracle provides assistance to the user community by means of its mailing lists. For Connector/J related issues, you can get help from @@ -201479,8 +203181,8 @@  File: manual.info, Node: connector-j-support-bug-report, Next: connector-j-support-changelog, Prev: connector-j-support-community, Up: connector-j-support -22.3.6.2 How to Report Connector/J Bugs or Problems -................................................... +22.3.13.2 How to Report Connector/J Bugs or Problems +.................................................... The normal place to report bugs is `http://bugs.mysql.com/', which is the address for our bugs database. This database is public, and can be @@ -201530,8 +203232,8 @@ impossible for us to fix anything without knowing the operating system and the version number of the platform. -If at all possible, you should create a repeatable, standalone testcase -that doesn't involve any third-party classes. +If at all possible, create a repeatable, standalone testcase that +doesn't involve any third-party classes. To streamline this process, we ship a base class for testcases with Connector/J, named 'com.mysql.jdbc.util.BaseBugReport'. To create a @@ -201548,8 +203250,8 @@ In the `tearDown()' method, drop any tables you created in the `setUp()' method. -In any of the above three methods, you should use one of the variants -of the `getConnection()' method to create a JDBC connection to MySQL: +In any of the above three methods, use one of the variants of the +`getConnection()' method to create a JDBC connection to MySQL: * `getConnection()' - Provides a connection to the JDBC URL specified in `getUrl()'. If a connection already exists, that @@ -201588,8 +203290,8 @@  File: manual.info, Node: connector-j-support-changelog, Prev: connector-j-support-bug-report, Up: connector-j-support -22.3.6.3 Connector/J Change History -................................... +22.3.13.3 Connector/J Change History +.................................... The Connector/J Change History (Changelog) is located with the main Changelog for MySQL. See *Note cj-news::. @@ -201602,7 +203304,7 @@ * Menu: -* connector-mxj-overview:: Connector/MXJ Overview +* connector-mxj-overview:: Overview of Connector/MXJ * connector-mxj-versions:: Connector/MXJ Versions * connector-mxj-install:: Connector/MXJ Installation * connector-mxj-configuration:: Connector/MXJ Configuration @@ -201613,12 +203315,12 @@ MySQL Connector/MXJ is a Java Utility package for deploying and managing a MySQL database. Deploying and using MySQL can be as easy as -adding another parameter to the JDBC connection url, which will result +adding another parameter to the JDBC connection URL, which will result in the database being started when the first connection is made. This makes it easy for Java developers to deploy applications which require a database by reducing installation barriers for their end-users. -MySQL Connector/MXJ makes the MySQL database appear to be a java-based +MySQL Connector/MXJ makes the MySQL database appear to be a Java-based component. It does this by determining what platform the system is running on, selecting the appropriate binary, and launching the executable. It will also optionally deploy an initial database, with @@ -201638,8 +203340,8 @@  File: manual.info, Node: connector-mxj-overview, Next: connector-mxj-versions, Prev: connector-mxj, Up: connector-mxj -22.4.1 Connector/MXJ Overview ------------------------------ +22.4.1 Overview of Connector/MXJ +-------------------------------- Connector/MXJ consists of a Java class, a copy of the `mysqld' binary for a specific list of platforms, and associated files and support @@ -201813,8 +203515,8 @@ `mysql-connector-mxj-gpl-[ver]'. Copy and optionally rename this directory to your desired location. - 3. For best results, you should update your global `CLASSPATH' - variable with the location of the required `jar' files. + 3. For best results, update your global `CLASSPATH' variable with the + location of the required `jar' files. Within Unix/Linux you can do this globally by editing the global shell profile, or on a user by user basis by editing their @@ -201920,9 +203622,9 @@ *Warning*: -You should avoid running your Connector/MXJ application as the `root' -user, because this will cause the *Note `mysqld': mysqld. to also be -executed with root privileges. For more information, see *Note +Avoid running your Connector/MXJ application as the `root' user, +because this will cause the *Note `mysqld': mysqld. to also be executed +with root privileges. For more information, see *Note changing-mysql-user::.  @@ -202050,18 +203752,18 @@ 22.4.3.8 Running the JUnit Tests ................................ - 1. The tests attempt to launch MySQL on the port 3336. If you have a - MySQL running, it may conflict, but this isn't very likely because - the default port for MySQL is 3306. However, You may set the - "c-mxj_test_port" Java property to a port of your choosing. - Alternatively, you may wish to start by shutting down any + 1. The tests attempt to launch MySQL on the port 3336. That MySQL + instance is unlikely to conflict with another MySQL server on the + same machine, because the default port for MySQL is 3306. If you + do encounter a port conflict, either set the `c-mxj_test_port' + Java property to a port of your choosing, or shut down any instances of MySQL you have running on the target machine. The tests suppress output to the console by default. For verbose - output, you may set the "c-mxj_test_silent" Java property to - "false". + output, you may set the `c-mxj_test_silent' Java property to + `false'. - 2. To run the JUnit test suite, the $CLASSPATH must include the + 2. To run the JUnit test suite, the `$CLASSPATH' must include the following: * JUnit @@ -202079,7 +203781,7 @@ ant dist Then add `$TEMP/cmxj/stage/connector-mxj/connector-mxj.jar' to the - CLASSPATH. + `CLASSPATH'. 4. If you have `junit', execute the unit tests. From the command line, type: @@ -202184,7 +203886,7 @@ } } -To run the above program, be sure to have connector-mxj.jar and +To run the above program, be sure to have `connector-mxj.jar' and Connector/J in the CLASSPATH. Then type: java ConnectorMXJUrlTestExample @@ -202195,12 +203897,12 @@ 22.4.4.2 Running within a Java Object ..................................... -If you have a java application and wish to `embed' a MySQL database, -make use of the `com.mysql.management.MysqldResource' class directly. -This class may be instantiated with the default (no argument) -constructor, or by passing in a java.io.File object representing the -directory you wish the server to be "unzipped" into. It may also be -instantiated with printstreams for "stdout" and "stderr" for logging. +To `embed' a MySQL database within a Java application, use the +`com.mysql.management.MysqldResource' class directly. This class may be +instantiated with the default (no argument) constructor, or by passing +in a `java.io.File' object representing the directory into which to +unzip the server. It may also be instantiated with printstreams for +`stdout' and `stderr' for logging. Once instantiated, a `java.util.Map', the object will be able to provide a `java.util.Map' of server options appropriate for the @@ -202302,11 +204004,10 @@ 22.4.4.3 Setting server options ............................... -Of course there are many options we may wish to set for a MySQL -database. These options may be specified as part of the JDBC connection -string simply by prefixing each server option with `server.'. In the -following example we set two driver parameters and two server -parameters: +There are many options you might set for a MySQL database. These +options may be specified as part of the JDBC connection string simply +by prefixing each server option with `server.'. The following example +sets two driver parameters and two server parameters: String url = "jdbc:mysql://" + hostColonPort + "/" + "?" @@ -202318,7 +204019,7 @@ + "&" + "server.datadir=/mnt/bigdisk/myapp/data"; -Starting with Connector/MXJ 5.0.6 you can use the `initialize-user' +Starting with Connector/MXJ 5.0.6, you can use the `initialize-user' property to a connection string. If set to true, the default anonymous and root users will be removed and the user/password combination from the connection URL will be used to create a new user. For example: @@ -202585,13 +204286,13 @@ shell> cd custom-mxj shell> jar -cf ../connector-mxj.jar * -For Connector/MXJ v5.0.4 and later, you should repackage to the +For Connector/MXJ v5.0.4 and later, repackage to the `connector-mxj-db-files.jar': shell> cd custom-mxj shell> jar -cf ../mysql-connector-mxj-gpl-[ver]-db-files.jar * -You should test this package using the steps outlined in *Note +Test this package using the steps outlined in *Note connector-mxj-install-quickstart::. *Note*: @@ -202627,10 +204328,10 @@ 3. Shutdown the instance of MySQL. 4. Create a JAR file of the data directory and databases that you - intend to include your Connector/MXJ package. You should include - the `mysql' database, which includes user authentication - information, in addition to the specific databases to include. For - example, to create a JAR of the `mysql' and `mxjtest' databases: + intend to include your Connector/MXJ package. Include the `mysql' + database, which includes user authentication information, in + addition to the specific databases to include. For example, to + create a JAR of the `mysql' and `mxjtest' databases: shell> jar -cf ../data_dir.jar mysql mxjtest @@ -202659,8 +204360,8 @@ which are appropriate for that platform. If you are not using the SUN Reference implementation of the JMX -libraries, you should skip this section. Or, if you are deploying to -JBoss, you also may wish to skip to the next section. +libraries, skip this section. Or, if you are deploying to JBoss, you +can also skip to the next section. We want to see the MysqldDynamicMBean in action inside of a JMX agent. In the `com.mysql.management.jmx.sunri' package is a custom JMX agent @@ -202790,11 +204491,12 @@ without a return value.' Click `Back to MBean View' 13. To confirm MySQL is running, open a web browser to - `http://localhost:8080/mxjtest/' and you should see that + `http://localhost:8080/mxjtest/' and you should see that the + following query: SELECT 1 - returned with a result of + returned with the following result: 1 @@ -203086,8 +204788,8 @@ * connector-mxj-support-changelog:: Connector/MXJ Change History There are a wide variety of options available for obtaining support for -using Connector/MXJ. You should contact the Connector/MXJ community for -help before reporting a potential bug or problem. See *Note +using Connector/MXJ. Contact the Connector/MXJ community for help +before reporting a potential bug or problem. See *Note connector-mxj-support-community::.  @@ -203120,8 +204822,8 @@ If you encounter difficulties or problems with Connector/MXJ, contact the Connector/MXJ community *Note connector-mxj-support-community::. -If reporting a problem, you should ideally include the following -information with the email: +If reporting a problem, ideally include the following information with +the email: * Operating system and version @@ -203156,10 +204858,10 @@ * Menu: -* connector-cpp-installation-binary:: MySQL Connector/C++ Binary Installation -* connector-cpp-installation-source:: MySQL Connector/C++ Source Installation -* connector-cpp-apps-windows-visual-studio:: MySQL Connector/C++ Building Windows applications with Microsoft Visual Studio -* connector-cpp-apps-linux-netbeans:: MySQL Connector/C++ Building Linux applications with NetBeans +* connector-cpp-installation-binary:: Installing the MySQL Connector/C++ Binary +* connector-cpp-installation-source:: Installing MySQL Connector/C++ from Source +* connector-cpp-apps-windows-visual-studio:: MySQL Connector/C++ Building Windows Applications with Microsoft Visual Studio +* connector-cpp-apps-linux-netbeans:: MySQL Connector/C++ Building Linux Applications with NetBeans * connector-cpp-getting-started-examples:: MySQL Connector/C++ Getting Started: Usage Examples * connector-cpp-tutorials:: MySQL Connector/C++ Tutorials * connector-cpp-debug-tracing:: MySQL Connector/C++ Debug Tracing @@ -203344,8 +205046,8 @@  File: manual.info, Node: connector-cpp-installation-binary, Next: connector-cpp-installation-source, Prev: connector-cpp, Up: connector-cpp -22.5.1 MySQL Connector/C++ Binary Installation ----------------------------------------------- +22.5.1 Installing the MySQL Connector/C++ Binary +------------------------------------------------ *Caution*: @@ -203372,16 +205074,16 @@ builds use Microsoft.VC90.CRT (9.0.21022.8). 3. Your application should use the same linker configuration as MySQL - Connector/C++, for example use one of /MD, /MDd, /MT, /MTd. + Connector/C++, for example use one of `/MD', `/MDd', `/MT', or + `/MTd'. To use a variation of the requirements previously listed, such as a different compiler version, release configuration, or run time library, -you must compile MySQL Connector/C++ from source using your desired -settings, and then ensure that your application is built with these -same settings. The three variables of compiler version, run time -library, and run time linker configuration settings should always be -the same for both application and MySQL Connector/C++ itself, in order -to avoid issues. +compile MySQL Connector/C++ from source using your desired settings, +and then ensure that your application is built with these same +settings. Ensure that the three variables of compiler version, run time +library, and run time linker configuration settings are the same for +both application and MySQL Connector/C++ itself, to avoid issues. For your convenience the same information, but more frequently updated, can be found on the MySQL Forge site @@ -203433,13 +205135,13 @@  File: manual.info, Node: connector-cpp-installation-source, Next: connector-cpp-apps-windows-visual-studio, Prev: connector-cpp-installation-binary, Up: connector-cpp -22.5.2 MySQL Connector/C++ Source Installation ----------------------------------------------- +22.5.2 Installing MySQL Connector/C++ from Source +------------------------------------------------- * Menu: -* connector-cpp-installation-source-unix:: Building source on Unix, Solaris and Mac OS X -* connector-cpp-installation-source-windows:: Building source on Windows +* connector-cpp-installation-source-unix:: Building MySQL Connector/C++ from Source on Unix, Solaris and Mac OS X +* connector-cpp-installation-source-windows:: Building MySQL Connector/C++ from Source on Windows * connector-cpp-dynamic-linking-client-library:: Dynamically Linking MySQL Connector/C++ against the MySQL Client Library The MySQL Connector/C++ is based on the MySQL Client Library (MySQL C @@ -203456,26 +205158,26 @@ is installed. However, check your operating system documentation for other installation options. -As of MySQL Connector/C++ version 1.1.0 it is necessary to have the +As of MySQL Connector/C++ version 1.1.0, it is necessary to have the Boost C++ libraries 1.34.0 or newer installed. Boost is only required to build the connector, it is not required to use the connector. You can -obtain Boost from the official site (http://www.boost.org) and -installation instructions can be obtained from the same site. Once -Boost is installed, tell the make system where the Boost files are. -This is done by setting the define `-DBOOST_ROOT:STRING='. This can be -done when initially invoking `CMake', for example: +obtain Boost and its installation instructions from the official site +(http://www.boost.org). Once Boost is installed, tell the make system +where the Boost files are, by setting the define +`-DBOOST_ROOT:STRING='. This can be done when initially invoking +`CMake', for example: shell> CMake . -DBOOST_ROOT:STRING=/usr/local/boost_1_40_0 -You may need to change /USR/LOCAL/BOOST_1_40_0/ to match your +You might need to change /USR/LOCAL/BOOST_1_40_0/ to match your installation. See the *Note connector-cpp-installation-source-unix:: and *Note connector-cpp-installation-source-windows:: for further details.  File: manual.info, Node: connector-cpp-installation-source-unix, Next: connector-cpp-installation-source-windows, Prev: connector-cpp-installation-source, Up: connector-cpp-installation-source -22.5.2.1 Building source on Unix, Solaris and Mac OS X -...................................................... +22.5.2.1 Building MySQL Connector/C++ from Source on Unix, Solaris and Mac OS X +............................................................................... 1. Run `CMake' to build a `Makefile': @@ -203518,12 +205220,12 @@ make install Unless you have changed this in the configuration step, the header - files will be copied to the directory `/usr/local/include'. The - header files copied are `mysql_connection.h' and `mysql_driver.h'. + files are copied to the directory `/usr/local/include'. The header + files copied are `mysql_connection.h' and `mysql_driver.h'. - Again, unless you have specified otherwise, the library files will - be copied to `/usr/local/lib'. The files copied are - `libmysqlcppcon.so', the dynamic library, and + Again, unless you have specified otherwise, the library files are + copied to `/usr/local/lib'. The files copied are + `libmysqlcppconn.so', the dynamic library, and `libmysqlcppconn-static.a', the static library. If you encounter any errors, please first carry out the checks shown @@ -203582,13 +205284,13 @@ shell> g++ -o test_install -I/usr/local/include -I/usr/local/include/cppconn -Wl,-Bdynamic -lmysqlcppconn standalone_example.cpp 2. Make sure the dynamic library which is used in this case can be - found at run time. To do this, enter: + found at runtime: shell> export LD_LIBRARY_PATH=/usr/local/lib - 3. Now run the program to test your installation, exchanging the - host, user, password and database to be accessed given below to - match your system: + 3. Now run the program to test your installation, substituting the + appropriate host, user, password and database names for your + system: ./test_install localhost root password database @@ -203603,14 +205305,14 @@ ... find more at http://www.mysql.com - If you see any errors take note of them and go through the + If you see any errors, take note of them and go through the troubleshooting procedures discussed earlier.  File: manual.info, Node: connector-cpp-installation-source-windows, Next: connector-cpp-dynamic-linking-client-library, Prev: connector-cpp-installation-source-unix, Up: connector-cpp-installation-source -22.5.2.2 Building source on Windows -................................... +22.5.2.2 Building MySQL Connector/C++ from Source on Windows +............................................................ *Note*: @@ -203784,8 +205486,8 @@ Connector/C++ source code. To use the ability to dynamically link the client library to MySQL -Connector/C++ the `MYSQLCLIENT_STATIC_BINDING:BOOL' needs to be defined -when building the MySQL Connector/C++ source code: +Connector/C++, define the `MYSQLCLIENT_STATIC_BINDING:BOOL' when +building the MySQL Connector/C++ source code: rm CMakeCache.txt cmake -DMYSQLCLIENT_STATIC_BINDING:BOOL=1 . @@ -203799,8 +205501,8 @@ Now, in your application, when creating a connection, MySQL Connector/C++ will select and load a client library at runtime. It will choose the client library by searching defined locations and -environment variables depending on the host operating system. It also -possible when creating a connection in an application to define an +environment variables depending on the host operating system. It is +also possible when creating a connection in an application to define an absolute path to the client library to be loaded at runtime. This can be convenient if you have defined a standard location from which you want the client library to be loaded. This is sometimes done to @@ -203810,7 +205512,7 @@  File: manual.info, Node: connector-cpp-apps-windows-visual-studio, Next: connector-cpp-apps-linux-netbeans, Prev: connector-cpp-installation-source, Up: connector-cpp -22.5.3 MySQL Connector/C++ Building Windows applications with Microsoft Visual Studio +22.5.3 MySQL Connector/C++ Building Windows Applications with Microsoft Visual Studio ------------------------------------------------------------------------------------- MySQL Connector/C++ is available as a static or dynamic library to use @@ -203835,7 +205537,7 @@ *Dynamic library* The MySQL Connector/C++ dynamic library file is `mysqlcppconn.dll'. To -build your client application, you must link it with the file +build your client application, link it with the file `mysqlcppconn.lib'. At run time, the application will require access to the files `mysqlcppconn.dll' and `libmysql.dll'. @@ -203851,17 +205553,17 @@ FIGURE GOES HERE: Creating a New Project - 2. In the wizard select `Visual C++', `Win32'. From `Visual Studio - Installed Templates' select the application type `Win32 Console - Application'. Enter a name for the application, and then click - `OK', to move to the Win32 Application Wizard. + 2. In the wizard, select `Visual C++', `Win32'. From `Visual Studio + Installed Templates', select the application type `Win32 Console + Application'. Enter a name for the application, then click `OK', to + move to the Win32 Application Wizard. FIGURE GOES HERE: The New Project Dialog Box 3. In the Win32 Application Wizard, click `Application Settings' and ensure the defaults are selected. The radio button `Console - application', and the check box `Precompiled headers' will be - selected. Click `Finish' to close the wizard. + application' and the check box `Precompiled headers' are selected. + Click `Finish' to close the wizard. FIGURE GOES HERE: The Win32 Application Wizard @@ -203887,8 +205589,8 @@ FIGURE GOES HERE: MySQL Include Directory - 9. Then in the `Additional Include Directories' text field, add the - MySQL `include/' directory. + 9. In the `Additional Include Directories' text field, add the MySQL + `include/' directory. FIGURE GOES HERE: Select Directory Dialog @@ -203899,7 +205601,7 @@ FIGURE GOES HERE: Typical Contents of MySQL lib/opt Directory - 11. In the tree view open `Linker', `General', `Additional Library + 11. In the tree view, open `Linker', `General', `Additional Library Directories'. FIGURE GOES HERE: Additional Library Directories @@ -203926,10 +205628,10 @@ 3. By default `CPPCONN_PUBLIC_FUNC' is defined to declare functions to be compatible with an application that calls a DLL. If building - an application to call the static library, you must ensure that - function prototypes are compatible with this. In this case - `CPPCONN_PUBLIC_FUNC' needs to be defined to be an empty string, - so that functions are declared with the correct prototype. + an application to call the static library, ensure that function + prototypes are compatible with this. In this case, define + `CPPCONN_PUBLIC_FUNC' to be an empty string, so that functions are + declared with the correct prototype. In the `Project', `Properties' tree view, under `C++', `Preprocessor', enter `CPPCONN_PUBLIC_FUNC=' into the @@ -203940,8 +205642,7 @@ *Note*: Make sure you enter `CPPCONN_PUBLIC_FUNC=' and not - `CPPCONN_PUBLIC_FUNC', as it needs to be defined as an empty - string. + `CPPCONN_PUBLIC_FUNC', so that it is defined as an empty string. If building an application to use the MySQL Connector/C++ dynamically linked library carry out these steps: @@ -203949,10 +205650,10 @@ 1. Under `Linker', `Input', add `mysqlcppconn.lib' into the `Additional Dependencies' text field. - 2. The application needs to access the MySQL Connector/C++ Dynamic - Linked Library at run time. Therefore, `mysqlcppconn.dll' must be - in the same directory as the application executable, or somewhere - on the system's path. + 2. `mysqlcppconn.dll' must be in the same directory as the + application executable, or somewhere on the system's path, so that + the application can access the MySQL Connector/C++ Dynamic Linked + Library at runtime. Copy `mysqlcppconn.dll' to the same directory as the application. Alternatively, extend the `PATH' environment variable using `SET @@ -203963,11 +205664,11 @@  File: manual.info, Node: connector-cpp-apps-linux-netbeans, Next: connector-cpp-getting-started-examples, Prev: connector-cpp-apps-windows-visual-studio, Up: connector-cpp -22.5.4 MySQL Connector/C++ Building Linux applications with NetBeans +22.5.4 MySQL Connector/C++ Building Linux Applications with NetBeans -------------------------------------------------------------------- -This section describes how you can build MySQL Connector/C++ -applications for Linux using the NetBeans IDE. +This section describes how to build MySQL Connector/C++ applications +for Linux using the NetBeans IDE. FIGURE GOES HERE: The NetBeans IDE @@ -203995,7 +205696,7 @@ MySQL Connector/C++ installation and navigate to the `examples' directory. - 6. Select a suitable example such as `standalone_example_docs1.cpp'. + 6. Select a suitable example, such as `standalone_example_docs1.cpp'. Copy all the code in this file, and use it to replace the code in your existing main source file. Amend the code to reflect the connection properties required for your test database. You now @@ -204003,8 +205704,8 @@ MySQL Connector/C++. 7. At this point, NetBeans is showing some errors in the source code. - You must direct NetBeans to the necessary header files to include. - Select `File', `Project Properties' from the main menu. + Direct NetBeans to the necessary header files to include. Select + `File', `Project Properties' from the main menu. 8. In the `Categories:' tree view panel, navigate to `Build', `C++ Compiler'. @@ -204013,7 +205714,7 @@ 10. Click the `...' button. - 11. Click `Add' and then navigate to the directory where the MySQL + 11. Click `Add', then navigate to the directory where the MySQL Connector/C++ header files are located. This will be `/usr/local/include' unless you have installed the files to a different location. Click `Select'. Click `OK'. @@ -204022,7 +205723,7 @@ 12. Click `OK' again to close the `Project Properties' dialog. -At this point you have created a NetBeans project, containing a single +At this point, you have created a NetBeans project, containing a single C++ source file. You have also ensured that the necessary include files are accessible. Before continuing, decide whether your project is to use the MySQL Connector/C++ static or dynamic library. The project @@ -204033,25 +205734,25 @@ To use the static library, link against two library files, `libmysqlcppconn-static.a' and `libmysqlclient.a'. The locations of the -files depend on your setup, but typically the former will be found in +files depend on your setup, but typically the former are in `/usr/local/lib' and the latter in `/usr/lib'. Note the file `libmysqlclient.a' is not part of MySQL Connector/C++, but is the MySQL Client Library file distributed with MySQL Server. Remember, the MySQL Client Library is an optional component as part of the MySQL Server installation process. Note the MySQL Client Library is also available -as part of the new MySQL Connector/C distribution. +as part of the MySQL Connector/C distribution. 1. The first step is to set the project to link the necessary library files. Select `File', `Project Properties' from the main menu. - 2. In the `Categories:' tree view navigate to `Linker'. + 2. In the `Categories:' tree view, navigate to `Linker'. - 3. In the `General' panel select `Additional Library Directories'. + 3. In the `General' panel, select `Additional Library Directories'. Click the `...' button. 4. Select and add the `/usr/lib' and `/usr/local/lib' directories. - 5. In the same panel add the two library files required for static + 5. In the same panel, add the two library files required for static linking as discussed earlier. The properties panel should then look similar to the following screenshot: @@ -204062,36 +205763,35 @@ *Using the dynamic library* -If you require your application to use the MySQL Connector/C++ dynamic -library, you simply need to link your project with a single library -file, `libmysqlcppconn.so'. The location of this file will depend on -how you configured your installation of MySQL Connector/C++, but will -typically be `/usr/local/lib'. +For your application to use the MySQL Connector/C++ dynamic library, +you link your project with a single library file, `libmysqlcppconn.so'. +The location of this file depends on how you configured your +installation of MySQL Connector/C++, but is typically `/usr/local/lib'. 1. The first step is to set the project to link the necessary library file. Select `File', `Project Properties' from the main menu. - 2. In the `Categories:' tree view navigate to `Linker'. + 2. In the `Categories:' tree view, navigate to `Linker'. - 3. In the `General' panel select `Additional Library Directories'. + 3. In the `General' panel, select `Additional Library Directories'. Click the `...' button. 4. Select and add the `/usr/local/lib' directories. - 5. In the same panel add the library file required for static linking - as discussed earlier. The properties panel should then look - similar to the following screenshot: + 5. In the same panel, add the library file required for static + linking as discussed earlier. The properties panel should then + look similar to the following screenshot: FIGURE GOES HERE: Setting the Dynamic Library Directory and File Name 6. Click OK to close the Project Properties dialog. -Having configured your project you can build it by selecting `Run', -`Build Main Project' from the main menu. You can then run the project -using `Run', `Run Main Project'. +Having configured your project, you build it by selecting `Run', `Build +Main Project' from the main menu. You then run the project using `Run', +`Run Main Project'. -On running the application you should see a screen similar to the +On running the application, you should see a screen similar to the following (this is actually the static version of the application shown): @@ -204152,10 +205852,9 @@ provide a brief overview on the API. They are not complete programs. Please check the `examples/' directory of your MySQL Connector/C++ installation for complete programs. Please also read the `README' file -in the `examples/' directory. Note to test the example code you will -first need to edit the `examples.h' file in the `examples/' directory, -to add your connection information. Then simply rebuild the code by -issuing a `make' command. +in the `examples/' directory. To test the example code, first edit the +`examples.h' file in the `examples/' directory, to add your connection +information. Then rebuild the code by issuing a `make' command. The examples in the `examples/' directory include: @@ -204242,12 +205941,12 @@ 22.5.5.2 MySQL Connector/C++ Running a simple query ................................................... -For running simple queries you can use the methods +For running simple queries, you can use the methods sql::Statement::execute(), sql::Statement::executeQuery() and -sql::Statement::executeUpdate(). The method sql::Statement::execute() -should be used if your query does not return a result set or if your -query returns more than one result set. See the `examples/' directory -for more on this. +sql::Statement::executeUpdate(). Use the method +sql::Statement::execute() if your query does not return a result set or +if your query returns more than one result set. See the `examples/' +directory for more on this. sql::mysql::MySQL_Driver *driver; sql::Connection *con; @@ -204275,11 +205974,11 @@ ............................................. The API for fetching result sets is identical for (simple) statements -and prepared statements. If your query returns one result set you -should use sql::Statement::executeQuery() or -sql::PreparedStatement::executeQuery() to run your query. Both methods -return sql::ResultSet objects. The preview version does buffer all -result sets on the client to support cursors. +and prepared statements. If your query returns one result set, use +sql::Statement::executeQuery() or sql::PreparedStatement::executeQuery() +to run your query. Both methods return sql::ResultSet objects. The +preview version does buffer all result sets on the client to support +cursors. // ... @@ -204563,25 +206262,19 @@ * connector-cpp-tutorials-stored-routines-statements:: Tutorial: Calling Stored Procedures with Statements in MySQL Connector/C++ * connector-cpp-tutorials-stored-routines-prepared-statements:: Tutorial: Calling Stored Procedures with Prepared Statements in MySQL Connector/C++ -Here are some tutorials on using MySQL Connector/C++. You should also -have a look at the examples which can be found in the following section -*Note connector-cpp-getting-started-examples::. +Here are some tutorials on using MySQL Connector/C++. Also consult the +examples in *Note connector-cpp-getting-started-examples::. *Setting up the World database for use in the tutorials* -These tutorials primarily use the `World' database, so you need to have -that installed. You can download the `World' database, and -documentation on how to install it, from the MySQL Documentation -(http://dev.mysql.com/doc/index-other.html) page - look for the section +These tutorials refer to tables and sample data from the `World' +database, which you can download from the MySQL Documentation +(http://dev.mysql.com/doc/index-other.html) page. Look for the section called `Example Databases'. *Tutorial framework code* -Rather than repeating the same code, a framework is given here. You can -reuse this framework with all the tutorials unless otherwise stated. -This boiler plate code can then simply be reused for each tutorial. - -The framework code is given here: +These examples all use the following framework, to avoid repeating code: #include @@ -204664,27 +206357,31 @@ 22.5.6.1 Tutorial: Calling Stored Procedures with Statements in MySQL Connector/C++ ................................................................................... -Stored Procedures can be called using both Statements and Prepared -Statements. This tutorial looks at calling Stored Procedures using +Stored procedures can be called using both Statements and Prepared +Statements. This tutorial looks at calling stored procedures using Statements. The following tutorial *Note connector-cpp-tutorials-stored-routines-prepared-statements:: will cover the use of Prepared Statements. -When considering calling Stored Procedures there are several scenarios -that can occur: +You can construct and call various combinations of stored procedures: - 1. A Stored Procedure that does not return a result set. + 1. A stored procedure that does not return any result. For example, + such a stored procedure can log non-critical information, or + change database data in a straightforward way. - 2. A Stored Procedure that returns an output parameter. + 2. A stored procedure that returns an output parameter. For example, + such a procedure can indicate success or failure, query a single + item of data, or combine multiple data items into a single result. - 3. A Stored Procedure that returns a result set. + 3. A stored procedure that returns a result set. The procedure can + execute a query that matches an arbitrary number of table rows. + Your application loops through the result set to display, + transform, or otherwise process each item. -Stored Procedures are given below that illustrate each of the above -scenarios. +The following stored procedures illustrate each of these scenarios. -The following routine enables you to add a country into the World -database, but does not return a result. This corresponds to Scenario 1 -above. +The following routine adds a country into the World database, but does +not return a result. This corresponds to Scenario 1 above. CREATE PROCEDURE add_country (IN country_code CHAR(3), IN country_name CHAR(52), IN continent_name CHAR(30)) BEGIN @@ -204711,14 +206408,14 @@ SELECT Code, Name, Population, Continent FROM Country WHERE Continent = "North America" AND Population < 10000; END -Enter and test the Stored Procedures to ensure no errors have been -introduced. You are now ready to start writing routines to test out the -use of Stored Procedures using Connector/C++. +Enter and test the stored procedures to ensure no errors have been +introduced. You are now ready to start writing applications using +Connector/C++ that call stored procedures. -*Scenario 1 - Stored Procedure does not return a result set* +*Scenario 1 - Stored procedure does not return a result set* -In the first case you will examine Scenario 1, you call a Stored -procedure that does not return a result set. +The first case illustrates Scenario 1, calling a Stored procedure that +does not return a result set. 1. Make a copy of the tutorial framework code. @@ -204743,25 +206440,24 @@ shell> ./sp_scenario1 - 5. Using the MySQL Command Line Client, or other suitable tool, check - the World database to determine that it has been updated - correctly. You can use a query such as: + 5. Using the *Note `mysql': mysql. Command Line Client, or other + suitable tool, check the World database to determine that it has + been updated correctly. You can use a query such as: SELECT Code, Name, Continent FROM Country WHERE Code="ATL"; The code in this case simply creates a statement and then invokes the -execute method on it, passing the call to the Stored Procedure as a -parameter. The Stored Procedure itself does not return a value, +execute method on it, passing the call to the stored procedure as a +parameter. The stored procedure itself does not return a value, although it is important to note there will always be a return value from the call - this is simply the call status. MySQL Connector/C++ handles this status for you, so you do not need code to handle it -explicitly. If the call should fail for some reason an exception will -be raised, and this will be handled by the `catch' statement in the -code. +explicitly. If the call fails for some reason, an exception will be +raised, and this will be handled by the `catch' statement in the code. -*Scenario 2 - Stored Procedure returns an output parameter* +*Scenario 2 - Stored procedure returns an output parameter* -You will now see how to handle a Stored Procedure that returns an +You will now see how to handle a stored procedure that returns an output parameter. 1. Enter the following code into the tutorial framework code: @@ -204800,26 +206496,27 @@ Note the output generated by the program. -In this scenario the Stored Procedure sets an output parameter. This +In this scenario, the stored procedure sets an output parameter. This is not returned as such, but needs to be obtained using a query. If -running the SQL statements directly this might be similar to the +running the SQL statements directly, this might be similar to the following: CALL get_world_pop(@pop); SELECT @pop; -In the C++ code a similar sequence is carried out. First, the `CALL' is -executed as seen earlier. To obtain the output parameter an additional -query must be executed. This query results in a `ResultSet' that can -then be processed in a `while' loop. The simplest way to retrieve the -data in this case is to use a getString method on the ResultSet, -passing the name of the variable to access. In this example `_reply' is -used as a placeholder for the variable and therefore is used as the key -to access the correct element of the result dictionary. +In the C++ code, a similar sequence is carried out. First, the `CALL' +is executed as seen earlier. To obtain the output parameter, an +additional query must be executed. This query results in a `ResultSet' +that can then be processed in a `while' loop. The simplest way to +retrieve the data in this case is to use a `getString' method on the +`ResultSet', passing the name of the variable to access. In this +example `_reply' is used as a placeholder for the variable and +therefore is used as the key to access the correct element of the +result dictionary. -*Scenario 3 - Stored Procedure returns a Result Set* +*Scenario 3 - Stored procedure returns a Result Set* -You will now see how to handle a Stored Procedure that returns a result +You will now see how to handle a stored procedure that returns a result set. 1. Enter the following code into the tutorial framework code: @@ -204864,13 +206561,12 @@ The `CALL' is executed as before, with the results being returned into multiple `ResultSet's. This is because the Stored Procedure in this -case uses multiple `SELECT' statements. In this example the output +case uses multiple `SELECT' statements. In this example, the output shows that three Result Sets are processed, because there are three `SELECT' statements in the Stored Procedure. All of the Result Sets have more than one row. -Studying the code it should be noted that the results are processed -using the pattern: +The results are processed using the pattern: do { @@ -204882,9 +206578,9 @@ *Note*: -Note this pattern would be used even if the Stored Procedure carried -out a single `SELECT' and you knew there was only one result set. This -is a requirement of the underlying protocol. +This pattern would be used even if the Stored Procedure carried out a +single `SELECT' and you knew there was only one result set. This is a +requirement of the underlying protocol.  File: manual.info, Node: connector-cpp-tutorials-stored-routines-prepared-statements, Prev: connector-cpp-tutorials-stored-routines-statements, Up: connector-cpp-tutorials @@ -204892,7 +206588,7 @@ 22.5.6.2 Tutorial: Calling Stored Procedures with Prepared Statements in MySQL Connector/C++ ............................................................................................ -Before working through this tutorial it is recommended you first work +Before working through this tutorial, it is recommended you first work through the previous tutorial *Note connector-cpp-tutorials-stored-routines-statements::. @@ -204935,8 +206631,8 @@ pstmt->execute(); } - You will also need to add `#include ' to the top of your - code as vectors are used to store sample data. + Also, add `#include ' to the top of your code, because + vectors are used to store sample data. 2. Compile the code using the following command: @@ -205105,13 +206801,12 @@ 2. Trace file generated internally by MySQL Connector/C++ The first trace file can be generated by the underlying MySQL Client -Library (libmysql). To enable this trace the connector will call the -C-API function `mysql_debug()' internally. Only debug versions of the -MySQL Client Library are capable of writing a trace file. Therefore you -need to compile MySQL Connector/C++ against a debug version of the -library, if you want utilize this trace. The trace shows the internal -function calls and the addresses of internal objects as you can see -below: +Library (libmysql). To enable this trace, the connector will call the +C-API function `mysql_debug()' internally. As only debug versions of +the MySQL Client Library are capable of writing a trace file, compile +MySQL Connector/C++ against a debug version of the library if you want +to utilize this trace. The trace shows the internal function calls and +the addresses of internal objects as shown below: >mysql_stmt_init | >_mymalloc @@ -205133,8 +206828,8 @@ Compiling the connector with tracing functionality enabled will cause two additional tracing function calls per each connector function call. -You will need to run your own benchmark to find out how much this will -impact the performance of your application. +Run your own benchmark to find out how much this will impact the +performance of your application. A simple test using a loop running 30,000 INSERT SQL statements showed no significant real-time impact. The two variants of this application @@ -205195,8 +206890,6 @@ for information on JDBC 4.0. Please also check the `examples/' directory of the download package. -*Notes on using the MySQL Connector/C++ API* - * `DatabaseMetaData::supportsBatchUpdates()' returns `true' because MySQL supports batch updates in general. However, no API calls for batch updates are provided by the MySQL Connector/C++ API. @@ -205297,17 +206990,15 @@ * When inserting or updating `BLOB' or `TEXT' columns, MySQL Connector/C++ developers are advised not to use `setString()'. - Instead it is recommended that the dedicated API function - `setBlob()' be used instead. + Instead, use the dedicated API function `setBlob()'. - The use of `setString()' can cause a Packet too large - (http://dev.mysql.com/doc/refman/5.1/en/packet-too-large.html) - error message. The error will occur if the length of the string - passed to the connector using `setString()' exceeds - `max_allowed_packet' (minus a few bytes reserved in the protocol - for control purposes). This situation is not handled in MySQL - Connector/C++, as this could lead to security issues, such as - extremely large memory allocation requests due to malevolently + The use of `setString()' can cause a *Note Packet too large: + packet-too-large. error message. The error will occur if the + length of the string passed to the connector using `setString()' + exceeds `max_allowed_packet' (minus a few bytes reserved in the + protocol for control purposes). This situation is not handled in + MySQL Connector/C++, as this could lead to security issues, such + as extremely large memory allocation requests due to malevolently long strings. However, if `setBlob()' is used, this problem does not arise. This @@ -205335,7 +207026,7 @@ connecting to MySQL 5.0. This is because the Information Schema is used to obtain the requested information. There are no plans to improve the support for 5.0 because the current GA version of - MySQL Server is 5.1. As a new product, MySQL Connector/C++ is + MySQL Server is 5.5. As a new product, MySQL Connector/C++ is primarily targeted at the MySQL Server GA version that was available on its release. @@ -205368,13 +207059,12 @@ The connection option `metadataUseInfoSchema' controls whether to use the `Information_Schemata' for returning the meta data of - `SHOW' commands. In the case of `metadataUseInfoSchema' the - `optionValue' argument should be interpreted as a boolean upon - return. + `SHOW' commands. In the case of `metadataUseInfoSchema', interpret + the `optionValue' argument as a boolean upon return. In the case of both `defaultStatementResultType' and - `defaultPreparedStatementResultType', the `optionValue' argument - should be interpreted as an integer upon return. + `defaultPreparedStatementResultType', interpret the `optionValue' + argument as an integer upon return. The connection property can be either set when establishing the connection through the connection property map or using `void @@ -205424,9 +207114,9 @@ defined as of type `BIGINT'. The most negative `BIGINT' value is then inserted into the column. If a Statement and Prepared Statement are created that perform a `GetUInt64()' call, then the - results will be found to be different in each case. The Statement - returns the maximum positive value for `BIGINT'. The Prepared - Statement returns 0. + results will be different in each case. The Statement returns the + maximum positive value for `BIGINT'. The Prepared Statement + returns 0. The reason for the different results is due to the fact that Statements use a text protocol, and Prepared Statements use a @@ -205440,11 +207130,11 @@ In the case of the Statement, which uses the text protocol, values are returned from the server as strings, and then converted as required. When a string value is returned from the server in the - above scenario the large negative value will need to be converted - by the runtime library function `strtoul()', which `GetUInt64()' - calls. The behavior of `strtoul()' is dependent upon the specific - runtime and host operating system, so the results can be variable. - In the case given a large positive value was actually returned. + above scenario, the large negative value must be converted by the + runtime library function `strtoul()', which `GetUInt64()' calls. + The behavior of `strtoul()' is dependent upon the specific runtime + and host operating system, so the results can be variable. In the + case given a large positive value was actually returned. Although it is very rare, there are some cases where Statements and Prepared Statements can return different values unexpectedly, @@ -205460,9 +207150,9 @@ certain values for those fields. Internally enumerations are used and the compiler determines the values to assign to a field. - To compare a value with the field, code such as the following - should be used, rather than making assumptions about specific - values for the attribute: + To compare a value with the field, use code such as the following, + rather than making assumptions about specific values for the + attribute: // dbmeta is an instance of DatabaseMetaData if (myvalue == dbmeta->attributeNoNulls) { @@ -205473,12 +207163,11 @@ metadata information. MySQL Connector/C++ does not guarantee that `attributeNoNulls' is 0. It can be any value. - * When programming Stored Procedures JDBC has available an extra + * When programming Stored Procedures, JDBC has available an extra class, an extra abstraction layer for callable statements, the - `CallableStatement' class. This is not present in MySQL - Connector/C++. You therefore need to use the methods from the - `Statement' and `Prepared Statement' classes to run a Stored - Procedure using `CALL'. + `CallableStatement' class. As this class is not present in MySQL + Connector/C++, use the methods from the `Statement' and `Prepared + Statement' classes to run a Stored Procedure using `CALL'.  File: manual.info, Node: connector-cpp-bugs, Next: connector-cpp-requests, Prev: connector-cpp-usage-notes, Up: connector-cpp @@ -205496,13 +207185,13 @@ * Known issues: * - * When linking against a static library for 1.0.3 on Windows you - need to define `CPPDBC_PUBLIC_FUNC' either in the compiler options - (preferable) or with `/D "CPPCONN_PUBLIC_FUNC="'. You can also - explicitly define it in your code by placing `#define - CPPCONN_PUBLIC_FUNC' before the header inclusions. + * When linking against a static library for 1.0.3 on Windows, define + `CPPDBC_PUBLIC_FUNC' either in the compiler options (preferable) + or with `/D "CPPCONN_PUBLIC_FUNC="'. You can also explicitly + define it in your code by placing `#define CPPCONN_PUBLIC_FUNC' + before the header inclusions. - * Generally speaking C++ library binaries are less portable than C + * Generally speaking, C++ library binaries are less portable than C library binaries. Issues can be caused by name mangling, different Standard Template Library (STL) versions and using different compilers and linkers for linking against the libraries than were @@ -205673,19 +207362,19 @@ *Obtaining the Source Code* -A TAR file containing the source code can be downloaded +You can download a tar file containing the source code (http://dev.mysql.com/downloads/connector/c/#downloads) from the MySQL Developers site. Select the source code package from the drop down list. The source code for development releases of the connector can be found -at Launchpad. The project home page can be found here -(http://launchpad.net/libmysql). +at `http://launchpad.net/libmysql' on the Launchpad site. -The source code for the 1.0 branch can be found here -(https://code.launchpad.net/~libmysql-team/libmysql/1.0). +The source code for the 1.0 branch +(https://code.launchpad.net/~libmysql-team/libmysql/1.0) is also +available on the Launchpad site. -To obtain the code, you must have Bazaar installed. Use the command -`bzr branch lp:libmysql'. +To get the code, you must have Bazaar installed. Use the command `bzr +branch lp:libmysql'. * *Building on Unix* @@ -205713,14 +207402,14 @@ *To Build* - If using GNU AutoTools change to the MySQL Connector/C source + If using GNU AutoTools, change to the MySQL Connector/C source directory and follow the procedure below. - 1. To generate the makefile enter: + 1. To generate the makefile, enter: shell> cmake -G "Unix Makefiles" - or for a Debug build enter: + or for a Debug build, enter: shell> cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug @@ -205730,9 +207419,9 @@ *To Install* - By default make install will install the MySQL Connector/C files - in the `/usr/local' directory. You can change this behavior by - specifying another directory when generating the `makefile': + By default, `make install' installs the MySQL Connector/C files in + the `/usr/local' directory. To change this location, specify + another directory when generating the `makefile': shell> cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/mypath @@ -205741,7 +207430,7 @@ root-shell> make install - At this point all of the MySQL Connector/C files will be in place. + At this point, all of the MySQL Connector/C files will be in place. * *Building on Microsoft Windows* @@ -205752,11 +207441,11 @@ *Compiler Tools* Microsoft Visual Studio 8 and 9 are recommended. The Express - Edition of Visual Studio and other compilers may work, but are + Edition of Visual Studio and other compilers might work, but are untested. You also need `CMake' 2.6 or newer, available at - http://www.cmake.org + `http://www.cmake.org'. *To Build* @@ -206626,13 +208315,13 @@ If, after an upgrade, you experience problems with compiled client programs, such as `Commands out of sync' or unexpected core dumps, you probably have used old header or library files when compiling your -programs. In this case, you should check the date for your `mysql.h' -file and `libmysqlclient.a' library to verify that they are from the -new MySQL distribution. If not, recompile your programs with the new -headers and libraries. Recompilation might also be necessary for -programs compiled against the shared client library if the library -major version number has changed (for example from -`libmysqlclient.so.15' to `libmysqlclient.so.16'. +programs. In this case, check the date for your `mysql.h' file and +`libmysqlclient.a' library to verify that they are from the new MySQL +distribution. If not, recompile your programs with the new headers and +libraries. Recompilation might also be necessary for programs compiled +against the shared client library if the library major version number +has changed (for example from `libmysqlclient.so.15' to +`libmysqlclient.so.16'.  File: manual.info, Node: c-api-data-structures, Next: c-api-function-overview, Prev: c, Up: c @@ -206647,9 +208336,9 @@ * `MYSQL' This structure represents a handle to one database connection. It - is used for almost all MySQL functions. You should not try to make - a copy of a `MYSQL' structure. There is no guarantee that such a - copy will be usable. + is used for almost all MySQL functions. Do not try to make a copy + of a `MYSQL' structure. There is no guarantee that such a copy + will be usable. * `MYSQL_RES' @@ -206837,7 +208526,6 @@ `ZEROFILL_FLAG' Field has the `ZEROFILL' attribute `BINARY_FLAG' Field has the `BINARY' attribute `AUTO_INCREMENT_FLAG' Field has the `AUTO_INCREMENT' attribute - `NUM_FLAG' Field is numeric `ENUM_FLAG' Field is an *Note `ENUM': enum. (deprecated) `SET_FLAG' Field is a *Note `SET': set. @@ -206846,6 +208534,8 @@ `TEXT': blob. (deprecated) `TIMESTAMP_FLAG' Field is a *Note `TIMESTAMP': datetime. (deprecated) + `NUM_FLAG' Field is numeric; see additional notes + following table `NO_DEFAULT_VALUE_FLAG' Field has no default value; see additional notes following table @@ -207312,8 +209002,8 @@ For *Note `SELECT': select. queries, you retrieve the selected rows as a result set. (Note that some statements are *Note `SELECT': select.-like in that they return rows. These include *Note `SHOW': show, -*Note `DESCRIBE': describe, and *Note `EXPLAIN': explain. They should -be treated the same way as *Note `SELECT': select. statements.) +*Note `DESCRIBE': describe, and *Note `EXPLAIN': explain. Treat these +statements the same way as *Note `SELECT': select. statements.) There are two ways for a client to process result sets. One way is to retrieve the entire result set all at once by calling *Note @@ -207336,10 +209026,10 @@ After you are done with a result set, call *Note `mysql_free_result()': mysql-free-result. to free the memory used for it. -The two retrieval mechanisms are complementary. Client programs should -choose the approach that is most appropriate for their requirements. In -practice, clients tend to use *Note `mysql_store_result()': -mysql-store-result. more commonly. +The two retrieval mechanisms are complementary. Choose the approach +that is most appropriate for each client application. In practice, +clients tend to use *Note `mysql_store_result()': mysql-store-result. +more commonly. An advantage of *Note `mysql_store_result()': mysql-store-result. is that because the rows have all been fetched to the client, you not only @@ -207746,8 +209436,8 @@ The action of this function is subject to the value of the `completion_type' system variable. In particular, if the value of `completion_type' is `RELEASE' (or 2), the server performs a release -after terminating a transaction and closes the client connection. The -client program should call *Note `mysql_close()': mysql-close. to close +after terminating a transaction and closes the client connection. Call +*Note `mysql_close()': mysql-close. from the client program to close the connection from the client side. * Return Values * @@ -207854,7 +209544,7 @@ * Description * Seeks to an arbitrary row in a query result set. The `offset' value is -a row number and should be in the range from `0' to *Note +a row number. Specify a value in the range from `0' to *Note `mysql_num_rows(result)-1': mysql-num-rows. This function requires that the result set structure contains the @@ -208160,8 +209850,8 @@ 22.9.3.16 `mysql_escape_string()' ................................. -You should use *Note `mysql_real_escape_string()': -mysql-real-escape-string. instead! +Use *Note `mysql_real_escape_string()': mysql-real-escape-string. +instead! This function is identical to *Note `mysql_real_escape_string()': mysql-real-escape-string. except that *Note @@ -208234,8 +209924,8 @@ Given a field number `fieldnr' for a column within a result set, returns that column's field definition as a `MYSQL_FIELD' structure. -You may use this function to retrieve the definition for an arbitrary -column. The value of `fieldnr' should be in the range from 0 to *Note +Use this function to retrieve the definition for an arbitrary column. +Specify a value for `fieldnr' in the range from 0 to *Note `mysql_num_fields(result)-1': mysql-num-fields. * Return Values * @@ -209050,17 +210740,16 @@ * Description * -This function finalizes the MySQL library. You should call it when you -are done using the library (for example, after disconnecting from the -server). The action taken by the call depends on whether your -application is linked to the MySQL client library or the MySQL embedded -server library. For a client program linked against the -`libmysqlclient' library by using the `-lmysqlclient' flag, *Note -`mysql_library_end()': mysql-library-end. performs some memory -management to clean up. For an embedded server application linked -against the `libmysqld' library by using the `-lmysqld' flag, *Note -`mysql_library_end()': mysql-library-end. shuts down the embedded -server and then cleans up. +This function finalizes the MySQL library. Call it when you are done +using the library (for example, after disconnecting from the server). +The action taken by the call depends on whether your application is +linked to the MySQL client library or the MySQL embedded server +library. For a client program linked against the `libmysqlclient' +library by using the `-lmysqlclient' flag, *Note `mysql_library_end()': +mysql-library-end. performs some memory management to clean up. For an +embedded server application linked against the `libmysqld' library by +using the `-lmysqld' flag, *Note `mysql_library_end()': +mysql-library-end. shuts down the embedded server and then cleans up. For usage information, see *Note c-api-function-overview::, and *Note mysql-library-init::. @@ -209075,11 +210764,11 @@ * Description * -This function should be called to initialize the MySQL library before -you call any other MySQL function, whether your application is a -regular client program or uses the embedded server. If the application -uses the embedded server, this call starts the server and initializes -any subsystems (`mysys', `InnoDB', and so forth) that the server uses. +Call this function to initialize the MySQL library before you call any +other MySQL function, whether your application is a regular client +program or uses the embedded server. If the application uses the +embedded server, this call starts the server and initializes any +subsystems (`mysys', `InnoDB', and so forth) that the server uses. After your application is done using the MySQL library, call *Note `mysql_library_end()': mysql-library-end. to clean up. See *Note @@ -209101,8 +210790,8 @@ `mysql_library_init()': mysql-library-init. prior to spawning any threads, or else use a mutex to protect the call, whether you invoke *Note `mysql_library_init()': mysql-library-init. or indirectly through -*Note `mysql_init()': mysql-init. This should be done prior to any -other client library call. +*Note `mysql_init()': mysql-init. Do this prior to any other client +library call. The `argc' and `argv' arguments are analogous to the arguments to `main()', and enable passing of options to the embedded server. For @@ -209137,11 +210826,11 @@ without starting the embedded server, you have to specify a negative value for `argc'. -The `groups' argument should be an array of strings that indicate the -groups in option files from which options should be read. See *Note -option-files::. The final entry in the array should be `NULL'. For -convenience, if the `groups' argument itself is `NULL', the `[server]' -and `[embedded]' groups are used by default. +The `groups' argument is an array of strings that indicate the groups +in option files from which to read options. See *Note option-files::. +Make the final entry in the array `NULL'. For convenience, if the +`groups' argument itself is `NULL', the `[server]' and `[embedded]' +groups are used by default. #include #include @@ -209420,9 +211109,9 @@ because each *Note `CALL': call. returns a result to indicate the call status, in addition to any result sets that might be returned by statements executed within the procedure. Because *Note `CALL': call. -can return multiple results, you should process them using a loop that -calls *Note `mysql_next_result()': mysql-next-result. to determine -whether there are more results. +can return multiple results, process them using a loop that calls *Note +`mysql_next_result()': mysql-next-result. to determine whether there +are more results. `CLIENT_MULTI_RESULTS' can be enabled when you call *Note `mysql_real_connect()': mysql-real-connect, either explicitly by @@ -209593,13 +211282,13 @@ connection. This function may be called multiple times to set several options. -*Note `mysql_options()': mysql-options. should be called after *Note +Call *Note `mysql_options()': mysql-options. after *Note `mysql_init()': mysql-init. and before *Note `mysql_connect()': mysql-connect. or *Note `mysql_real_connect()': mysql-real-connect. The `option' argument is the option that you want to set; the `arg' argument is the value for the option. If the option is an integer, -`arg' should point to the value of the integer. +specify a pointer to the value of the integer as the `arg' argument. The following list describes the possible options, their effect, and how `arg' is used for each option. Several of the options apply only @@ -209651,7 +211340,7 @@ * `MYSQL_OPT_PROTOCOL' (argument type: `unsigned int *') - Type of protocol to use. Should be one of the enum values of + Type of protocol to use. Specify one of the enum values of `mysql_protocol_type' defined in `mysql.h'. * `MYSQL_OPT_READ_TIMEOUT' (argument type: `unsigned int *') @@ -209670,20 +211359,6 @@ default; this option provides a way to set reconnection behavior explicitly. - * `MYSQL_PLUGIN_DIR' (argument type: `char *') - - The directory in which to look for client plugins. This option was - added in MySQL 5.5.7. - - * `MYSQL_SET_CLIENT_IP' (argument type: `char *') - - For an application linked against the `libmysqld' embedded server - library (when `libmysqld' is compiled with authentication - support), this means that the user is considered to have connected - from the specified IP address (specified as a string) for - authentication purposes. This option is ignored for applications - linked against the `libmysqlclient' client library. - * `MYSQL_OPT_SSL_VERIFY_SERVER_CERT' (argument type: `my_bool *') Enable or disable verification of the server's Common Name value @@ -209717,6 +211392,11 @@ retries if necessary, so the total effective timeout value is `net_retry_count' times the option value. + * `MYSQL_PLUGIN_DIR' (argument type: `char *') + + The directory in which to look for client plugins. This option was + added in MySQL 5.5.7. + * `MYSQL_READ_DEFAULT_FILE' (argument type: `char *') Read options from the named option file instead of from `my.cnf'. @@ -209749,11 +211429,20 @@ character set to be autodetected based on the operating system setting (see *Note charset-connection::). + * `MYSQL_SET_CLIENT_IP' (argument type: `char *') + + For an application linked against the `libmysqld' embedded server + library (when `libmysqld' is compiled with authentication + support), this means that the user is considered to have connected + from the specified IP address (specified as a string) for + authentication purposes. This option is ignored for applications + linked against the `libmysqlclient' client library. + * `MYSQL_SHARED_MEMORY_BASE_NAME' (argument type: `char *') The name of the shared-memory object for communication to the server on Windows, if the server supports shared-memory - connections. Should have the same value as the + connections. Specify the same value as the `--shared-memory-base-name' option used for the *Note `mysqld': mysqld. server you want to connect to. @@ -209912,10 +211601,9 @@ Executes the SQL statement pointed to by the null-terminated string `stmt_str'. Normally, the string must consist of a single SQL statement -and you should not add a terminating semicolon (``;'') or `\g' to the -statement. If multiple-statement execution has been enabled, the string -can contain several statements separated by semicolons. See *Note -c-api-multiple-queries::. +without a terminating semicolon (``;'') or `\g'. If multiple-statement +execution has been enabled, the string can contain several statements +separated by semicolons. See *Note c-api-multiple-queries::. *Note `mysql_query()': mysql-query. cannot be used for statements that contain binary data; you must use *Note `mysql_real_query()': @@ -209969,16 +211657,16 @@ The parameters are specified as follows: - * The first parameter should be the address of an existing `MYSQL' - structure. Before calling *Note `mysql_real_connect()': - mysql-real-connect. you must call *Note `mysql_init()': - mysql-init. to initialize the `MYSQL' structure. You can change a - lot of connect options with the *Note `mysql_options()': - mysql-options. call. See *Note mysql-options::. + * For the first parameter, specify the address of an existing + `MYSQL' structure. Before calling *Note `mysql_real_connect()': + mysql-real-connect, call *Note `mysql_init()': mysql-init. to + initialize the `MYSQL' structure. You can change a lot of connect + options with the *Note `mysql_options()': mysql-options. call. See + *Note mysql-options::. * The value of `host' may be either a host name or an IP address. If `host' is `NULL' or the string `"localhost"', a connection to the - local host is assumed: For Windows, the client connects using a + local host is assumed. For Windows, the client connects using a shared-memory connection, if the server has shared-memory connections enabled. Otherwise, TCP/IP is used. For Unix, the client connects using a Unix socket file. For local connections, @@ -210023,8 +211711,8 @@ type of the connection. * If `unix_socket' is not `NULL', the string specifies the socket or - named pipe that should be used. Note that the `host' parameter - determines the type of the connection. + named pipe to use. Note that the `host' parameter determines the + type of the connection. * The value of `client_flag' is usually 0, but can be set to a combination of the following flags to enable certain features. @@ -210066,8 +211754,8 @@ syntax, which is useful for trapping bugs in some ODBC programs. `CLIENT_ODBC' Unused. - `CLIENT_SSL' Use SSL (encrypted protocol). This option - should not be set by application programs; + `CLIENT_SSL' Use SSL (encrypted protocol). Do not set + this option within an application program; it is set internally in the client library. Instead, use *Note `mysql_ssl_set()': mysql-ssl-set. before calling *Note @@ -210087,9 +211775,9 @@ because each *Note `CALL': call. returns a result to indicate the call status, in addition to any result sets that might be returned by statements executed within the procedure. Because *Note `CALL': call. -can return multiple results, you should process them using a loop that -calls *Note `mysql_next_result()': mysql-next-result. to determine -whether there are more results. +can return multiple results, process them using a loop that calls *Note +`mysql_next_result()': mysql-next-result. to determine whether there +are more results. `CLIENT_MULTI_RESULTS' can be enabled when you call *Note `mysql_real_connect()': mysql-real-connect, either explicitly by @@ -210257,11 +211945,11 @@ length of the encoded string, not including the terminating null character. -If you need to change the character set of the connection, you should -use the *Note `mysql_set_character_set()': mysql-set-character-set. -function rather than executing a `SET NAMES' (or `SET CHARACTER SET') -statement. *Note `mysql_set_character_set()': mysql-set-character-set. -works like `SET NAMES' but also affects the character set used by *Note +If you need to change the character set of the connection, use the +*Note `mysql_set_character_set()': mysql-set-character-set. function +rather than executing a `SET NAMES' (or `SET CHARACTER SET') statement. +*Note `mysql_set_character_set()': mysql-set-character-set. works like +`SET NAMES' but also affects the character set used by *Note `mysql_real_escape_string()': mysql-real-escape-string, which `SET NAMES' does not. @@ -210309,12 +211997,11 @@ * Description * -Executes the SQL statement pointed to by `stmt_str', which should be a -string `length' bytes long. Normally, the string must consist of a -single SQL statement and you should not add a terminating semicolon -(``;'') or `\g' to the statement. If multiple-statement execution has -been enabled, the string can contain several statements separated by -semicolons. See *Note c-api-multiple-queries::. +Executes the SQL statement pointed to by `stmt_str', a string `length' +bytes long. Normally, the string must consist of a single SQL statement +without a terminating semicolon (``;'') or `\g'. If multiple-statement +execution has been enabled, the string can contain several statements +separated by semicolons. See *Note c-api-multiple-queries::. *Note `mysql_query()': mysql-query. cannot be used for statements that contain binary data; you must use *Note `mysql_real_query()': @@ -210478,8 +212165,8 @@ The action of this function is subject to the value of the `completion_type' system variable. In particular, if the value of `completion_type' is `RELEASE' (or 2), the server performs a release -after terminating a transaction and closes the client connection. The -client program should call *Note `mysql_close()': mysql-close. to close +after terminating a transaction and closes the client connection. Call +*Note `mysql_close()': mysql-close. from the client program to close the connection from the client side. * Return Values * @@ -210502,11 +212189,11 @@ * Description * Sets the row cursor to an arbitrary row in a query result set. The -`offset' value is a row offset that should be a value returned from -*Note `mysql_row_tell()': mysql-row-tell. or from *Note -`mysql_row_seek()': mysql-row-seek. This value is not a row number; if -you want to seek to a row within a result set by number, use *Note -`mysql_data_seek()': mysql-data-seek. instead. +`offset' value is a row offset, typically a value returned from *Note +`mysql_row_tell()': mysql-row-tell. or from *Note `mysql_row_seek()': +mysql-row-seek. This value is not a row number; to seek to a row within +a result set by number, use *Note `mysql_data_seek()': mysql-data-seek. +instead. This function requires that the result set structure contains the entire result of the query, so *Note `mysql_row_seek()': @@ -210537,8 +212224,8 @@ `mysql_fetch_row()': mysql-fetch-row. This value can be used as an argument to *Note `mysql_row_seek()': mysql-row-seek. -You should use *Note `mysql_row_tell()': mysql-row-tell. only after -*Note `mysql_store_result()': mysql-store-result, not after *Note +Use *Note `mysql_row_tell()': mysql-row-tell. only after *Note +`mysql_store_result()': mysql-store-result, not after *Note `mysql_use_result()': mysql-use-result. * Return Values * @@ -210696,9 +212383,9 @@ local_infile_read(void *ptr, char *buf, unsigned int buf_len); The data-reading function. This is called repeatedly to read the data -file. `buf' points to the buffer where the read data should be stored, -and `buf_len' is the maximum number of bytes that the callback can read -and store in the buffer. (It can read fewer bytes, but should not read +file. `buf' points to the buffer where the read data is stored, and +`buf_len' is the maximum number of bytes that the callback can read and +store in the buffer. (It can read fewer bytes, but should not read more.) The return value is the number of bytes read, or zero when no more data @@ -210709,10 +212396,10 @@ local_infile_end(void *ptr) The termination function. This is called once after -`local_infile_read()' has returned zero (EOF) or an error. This -function should deallocate any memory allocated by -`local_infile_init()' and perform any other cleanup necessary. It is -invoked even if the initialization function returns an error. +`local_infile_read()' has returned zero (EOF) or an error. Within this +function, deallocate any memory allocated by `local_infile_init()' and +perform any other cleanup necessary. It is invoked even if the +initialization function returns an error. int local_infile_error(void *ptr, @@ -210722,9 +212409,9 @@ The error-handling function. This is called to get a textual error message to return to the user in case any of your other functions returns an error. `error_msg' points to the buffer into which the -message should be written, and `error_msg_len' is the length of the -buffer. The message should be written as a null-terminated string, so -the message can be at most `error_msg_len'-1 bytes long. +message is written, and `error_msg_len' is the length of the buffer. +Write the message as a null-terminated string, at most +`error_msg_len'-1 bytes long. The return value is the error number. @@ -210864,7 +212551,7 @@ Returns a null-terminated string containing the SQLSTATE error code for the most recently executed SQL statement. The error code consists of -five characters. `'00000'' means `no error'. The values are specified +five characters. `'00000'' means `no error.' The values are specified by ANSI SQL and ODBC. For a list of possible values, see *Note error-handling::. @@ -214252,7 +215939,7 @@ * There was a `malloc()' failure (for example, if the result set was too large). - * The data couldn't be read (an error occurred on the connection). + * The data could not be read (an error occurred on the connection). * The query returned no data (for example, it was an *Note `INSERT': insert, *Note `UPDATE': update, or *Note `DELETE': delete.). @@ -214374,7 +216061,7 @@ mysql-insert-id::. * For information on obtaining the auto-incremented value when using - Connector/J, see *Note connector-j-usagenotes::. + Connector/J, see *Note connector-j-usagenotes-last-insert-id::. * For information on obtaining the auto-incremented value when using Connector/ODBC, see *Note @@ -214834,14 +216521,14 @@ information from the procedure therefore consists of multiple result sets and a final status: - * One result set containing the initial parameter values: `10', - `NULL', `30'. (The `OUT' parameter is assigned a value by the - caller, but this assignment is expected to be ineffective: `OUT' - parameters are seen as `NULL' within a procedure until assigned a - value within the procedure.) + * One result set from a *Note `SELECT': select. that displays the + initial parameter values: `10', `NULL', `30'. (The `OUT' parameter + is assigned a value by the caller, but this assignment is expected + to be ineffective: `OUT' parameters are seen as `NULL' within a + procedure until assigned a value within the procedure.) - * One result set containing the modified parameter values: `100', - `200', `300'. + * One result set from a *Note `SELECT': select. that displays the + modified parameter values: `100', `200', `300'. * One result set containing the final `OUT' and `INOUT' parameter values: `200', `300'. @@ -214852,8 +216539,8 @@ MYSQL_STMT *stmt; MYSQL_BIND ps_params[3]; /* input parameter buffers */ - int int_data[3]; /* input parameter values */ - my_bool is_null[3]; /* input parameter nullability */ + int int_data[3]; /* input/output values */ + my_bool is_null[3]; /* output value nullability */ int status; /* set up stored procedure */ @@ -214906,7 +216593,7 @@ /* assign values to parameters and execute statement */ int_data[0]= 10; /* p_in */ - int_data[1]= 20; /* p_inout */ + int_data[1]= 20; /* p_out */ int_data[2]= 30; /* p_inout */ status = mysql_stmt_execute(stmt); @@ -215036,8 +216723,8 @@ { if (status) { - printf("Error: %s (errno: %d)\n", - mysql_error(mysql), mysql_errno(mysql)); + fprintf(stderr, "Error: %s (errno: %d)\n", + mysql_error(mysql), mysql_errno(mysql)); exit(1); } } @@ -215046,8 +216733,8 @@ { if (status) { - printf("Error: %s (errno: %d)\n", - mysql_stmt_error(stmt), mysql_stmt_errno(stmt)); + fprintf(stderr, "Error: %s (errno: %d)\n", + mysql_stmt_error(stmt), mysql_stmt_errno(stmt)); exit(1); } } @@ -215290,16 +216977,16 @@ PHP may be run as a separate program or compiled as a module for use with the Apache Web server. -PHP actually provides two different MySQL API extensions: +PHP provides three different MySQL API extensions: - * `mysql': Available for PHP versions 4 and 5, this extension is - intended for use with MySQL versions prior to MySQL 4.1. This - extension does not support the improved authentication protocol - used in MySQL 4.1, nor does it support prepared statements or - multiple statements. To use this extension with MySQL 4.1, you - will likely configure the MySQL server to use the - `--old-passwords' option (see *Note old-client::). This extension - is documented on the PHP Web site at `http://php.net/mysql'. + * See section "apis-php-mysql" in the online manual: Available for + PHP versions 4 and 5, this extension is intended for use with + MySQL versions prior to MySQL 4.1. This extension does not support + the improved authentication protocol used in MySQL 4.1, nor does + it support prepared statements or multiple statements. To use this + extension with MySQL 4.1, you will likely configure the MySQL + server to use the `--old-passwords' option (see *Note + old-client::). * See section "apis-php-mysqli" in the online manual - Stands for `MySQL, Improved'; this extension is available only in PHP 5. It @@ -215307,10 +216994,13 @@ fully supports the authentication protocol used in MySQL 5.0, as well as the Prepared Statements and Multiple Statements APIs. In addition, this extension provides an advanced, object-oriented - programming interface. You can read the documentation for the - `mysqli' extension at `http://php.net/mysqli'. Helpful article can - be found at `http://devzone.zend.com/node/view/id/686' and - `http://devzone.zend.com/node/view/id/687'. + programming interface. + + * See section "apis-php-ref.pdo-mysql" in the online manual Not its + own API, but instead it's a MySQL driver for the PHP database + abstraction layer PDO (PHP Data Objects). The PDO MySQL driver + sits in the layer below PDO itself, and provides MySQL-specific + functionality. This extension is available as of PHP 5.1. If you're experiencing problems with enabling both the `mysql' and the `mysqli' extension when building PHP on Linux yourself, see *Note @@ -215375,10 +217065,6 @@ extension; or configure the MySQL server with `--old-passwords'. (See *Note old-client::, for more information.) -Those with PHP4 legacy code can make use of a compatibility layer for -the old and new MySQL libraries, such as this one: -`http://www.coggeshall.org/oss/mysql2i'. -  File: manual.info, Node: php-mysql-mysqli, Prev: apis-php-problems, Up: apis-php @@ -215419,15 +217105,39 @@ The Perl `DBI' module provides a generic interface for database access. You can write a DBI script that works with many different database -engines without change. To use DBI, you must install the `DBI' module, -as well as a DataBase Driver (DBD) module for each type of server you -want to access. For MySQL, this driver is the `DBD::mysql' module. +engines without change. To use DBI with MySQL, install the following: + + 1. The `DBI' module. + + 2. The `DBD::mysql' module. This is the DataBase Driver (DBD) module + for Perl. + + 3. Optionally, the DBD module for any other type of database server + you want to access. Perl DBI is the recommended Perl interface. It replaces an older interface called `mysqlperl', which should be considered obsolete. -Installation instructions for Perl DBI support are given in *Note -perl-support::. +These sections contain information about using Perl with MySQL and +writing MySQL applications in Perl: + + * For installation instructions for Perl DBI support, see *Note + perl-support::. + + * For an example of reading options from option files, see *Note + multiple-server-clients::. + + * For secure coding tips, see *Note security-guidelines::. + + * For debugging tips, see *Note using-gdb-on-mysqld::. + + * For some Perl-specific environment variables, see *Note + environment-variables::. + + * For considerations for running on Mac OS X, see *Note + macosx-installation-server::. + + * For ways to quote string literals, see *Note string-literals::. DBI information is available at the command line, online, or in printed form: @@ -215440,8 +217150,8 @@ shell> perldoc DBI::FAQ shell> perldoc DBD::mysql - You can also use `pod2man', `pod2html', and so forth to translate - this information into other formats. + You can also use `pod2man', `pod2html', and so on to translate this + information into other formats. * For online information about Perl DBI, visit the DBI Web site, `http://dbi.perl.org/'. That site hosts a general DBI mailing @@ -215467,6 +217177,94 @@ DB API version 2.0. It can be found at `http://sourceforge.net/projects/mysql-python/'. +* Guidelines for Python Developers * + +The following guidelines cover aspects of developing MySQL applications +that might not be immediately obvious to developers coming from a +Python background: + + * For security, do not hardcode the values needed to connect and log + into the database in your main script. Python has the convention + of a `config.py' module, where you can keep such values separate + from the rest of your code. + + * Python scripts often build up and tear down large data structures + in memory, up to the limits of available RAM. Because MySQL often + deals with data sets that are many times larger than available + memory, techniques that optimize storage space and disk I/O are + especially important. For example, in MySQL tables, you typically + use numeric IDs rather than string-based dictionary keys, so that + the key values are compact and have a predictable length. + + * Any application that accepts input must expect to handle bad data. + + The bad data might be accidental, such as out-of-range values or + misformatted strings. The application can use server-side checks + such as unique constraints and NOT NULL constraints, to keep the + bad data from ever reaching the database. On the client side, use + techniques such as exception handlers to report any problems and + take corrective action. + + The bad data might also be deliberate, representing a `SQL + injection' attack. For example, input values might contain + quotation marks, semicolons, `%' and `_' wildcard characters and + other characters significant in SQL statements. Validate input + values to make sure they have only the expected characters. Escape + any special characters that could change the intended behavior when + substituted into a SQL statement. Never concatenate a user input + value into a SQL statement without doing validation and escaping + first. Even when accepting input generated by some other program, + expect that the other program could also be hacked and be sending + you incorrect or malicious data. + + * Because the result sets from SQL queries can be very large, use + the appropriate method to retrieve items from the result set as + you loop through them. `fetchone()' retrieves a single item, when + you know the result set contains a single row. `fetchall()' + retrieves all the items, when you know the result set contains a + limited number of rows that can fit comfortably into memory. + `fetchmany()' is the general-purpose method when you cannot + predict the size of the result set: you keep calling it and + looping through the returned items, until there are no more + results to process. + + * Since Python already has convenient modules such as `pickle' and + `cPickle' to read and write data structures on disk, the data that + you choose store in MySQL instead is likely to have special + characteristics: + + * *Too large to all fit in memory at one time.* You use *Note + `SELECT': select. statements to query only the precise items + you need, and *Note aggregate functions: group-by-functions. + to perform calculations across multiple items. + + * *Too complex to be represented by a single data structure.* + You divide the data between different SQL tables. You can + recombine data from multiple tables by using a join query. + You make sure that related data is kept in sync between + different tables by setting up foreign key relationships. + + * *Updated frequently, perhaps by multiple users + simultaneously.* The updates might only affect a small + portion of the data, making it wasteful to wrote the whole + structure each time. You use the SQL *Note `INSERT': insert, + *Note `UPDATE': update, and *Note `DELETE': delete. + statements to update different items concurrently, writing + only the changed values to disk. You use *Note `InnoDB': + innodb-storage-engine. tables and transactions to keep write + operations from conflicting with each other, and to return + consistent query results even as the underlying data is being + updated. + + * Issuing SQL statements from Python typically involves declaring + very long, possibly multi-line string literals. Because string + literals within the SQL statements could be enclosed by single + quotation, double quotation marks, or contain either of those + characters, for simplicity you can use Python's triple-quoting + mechanism to enclose the entire statement. For example, `'''It + doesn't matter if this string contains 'single' or "double" + quotes, as long as there aren't 3 in a row.'''' +  File: manual.info, Node: apis-ruby, Next: apis-tcl, Prev: apis-python, Up: connectors-apis @@ -215478,18 +217276,19 @@ * apis-ruby-mysqlruby:: The MySQL/Ruby API * apis-ruby-rubymysql:: The Ruby/MySQL API -Two APIs available for Ruby programmers. The MySQL/Ruby API is based on -the `libmysql' API library. The Ruby/MySQL API is written to use the -native MySQL network protocol (a native driver). +Two APIs are available for Ruby programmers developing MySQL +applications: -For more information on Ruby, see Ruby Programming Language -(http://www.ruby-lang.org). + * The MySQL/Ruby API is based on the `libmysql' API library. For + information on installing and using the MySQL/Ruby API, see *Note + apis-ruby-mysqlruby::. + + * The Ruby/MySQL API is written to use the native MySQL network + protocol (a native driver). For information on installing and + using the Ruby/MySQL API, see *Note apis-ruby-rubymysql::. -For information on installing and using the MySQL/Ruby API, see *Note -apis-ruby-mysqlruby::. - -For information on installing and using the Ruby/MySQL API, see *Note -apis-ruby-rubymysql::. +For background and syntax information about the Ruby language, see Ruby +Programming Language (http://www.ruby-lang.org).  File: manual.info, Node: apis-ruby-mysqlruby, Next: apis-ruby-rubymysql, Prev: apis-ruby, Up: apis-ruby @@ -215522,8 +217321,8 @@ =================== `MySQLtcl' is a simple API for accessing a MySQL database server from -the Tcl programming language. It can be found at -`http://www.xdobry.de/mysqltcl/'. +the Tcl programming language (http://en.wikipedia.org/wiki/Tcl). It can +be found at `http://www.xdobry.de/mysqltcl/'.  File: manual.info, Node: apis-eiffel, Prev: apis-tcl, Up: connectors-apis @@ -215532,8 +217331,10 @@ ========================== Eiffel MySQL is an interface to the MySQL database server using the -Eiffel programming language, written by Michael Ravits. It can be found -at `http://efsa.sourceforge.net/archive/ravits/mysql.htm'. +Eiffel programming language +(http://en.wikipedia.org/wiki/Eiffel_(programming_language)), written +by Michael Ravits. It can be found at +`http://efsa.sourceforge.net/archive/ravits/mysql.htm'.  File: manual.info, Node: extending-mysql, Next: mysql-enterprise-monitor, Prev: connectors-apis, Up: Top @@ -217864,10 +219665,10 @@ These header files are located in the `sql' directory of MySQL source distributions. They contain C++ structures, so the source file for an -`INFORMATION_SCHEMA' plugin must be compled as C++ (not C) code. +`INFORMATION_SCHEMA' plugin must be compiled as C++ (not C) code. The source file for the example plugin developed here is named -`simple_i_s_table.cc'. It creates a simple `INFORMATION_SHEMA' table +`simple_i_s_table.cc'. It creates a simple `INFORMATION_SCHEMA' table named `SIMPLE_I_S_TABLE' that has two columns named `NAME' and `VALUE'. The general descriptor for a plugin library that implements the table looks like this: @@ -218532,7 +220333,7 @@ plugins (although with a different type-specific descriptor). Client-side plugins use the client plugin API. -Several header files contain information relevent to authentication +Several header files contain information relevant to authentication plugins: * `plugin.h': Defines the `MYSQL_AUTHENTICATION_PLUGIN' server @@ -221007,24 +222808,20 @@ 25 MySQL Enterprise Backup ************************** -The MySQL Enterprise Backup product performs hot backup -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_hot_backup) -operations for MySQL databases. The product is architected for -efficient and reliable backups of tables created by the InnoDB storage -engine -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_innodb). For +The MySQL Enterprise Backup product performs hot backup operations for +MySQL databases. The product is architected for efficient and reliable +backups of tables created by the InnoDB storage engine. For completeness, it can also back up tables from MyISAM and other storage engines. -Hot backups -(http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_hot_backup) -are performed while the database is running. This type of backup does -not block normal database operations, and it captures even changes that -occur while the backup is happening. For these reasons, hot backups are -desirable when your database `grows up' - when the data is large enough -that the backup takes significant time, and when your data is important -enough to your business so that you must capture every last change, -without taking your application, web site, or web service offline. +Hot backups are performed while the database is running. This type of +backup does not block normal database operations, and it captures even +changes that occur while the backup is happening. For these reasons, +hot backups are desirable when your database `grows up' - when the data +is large enough that the backup takes significant time, and when your +data is important enough to your business so that you must capture +every last change, without taking your application, web site, or web +service offline. MySQL Enterprise Backup does a hot backup of all tables that use the InnoDB storage engine. For tables using MyISAM or other non-InnoDB @@ -221104,7 +222901,9 @@ * license-google-tcmalloc:: Google Perftools (TCMalloc utility) License * license-google-smp-patch:: Google SMP Patch License * license-lib-sql:: `lib_sql.cc' License +* license-libaio:: Libaio License * license-libevent:: `libevent' License +* license-libiconv-proxy:: Libiconv License * license-linux-pam:: Linux-PAM License * license-lpeg:: `LPeg' Library License * license-lua:: Lua (liblua) License @@ -221150,6 +222949,8 @@ * *Note license-gnu-gpl-2-0:: + * *Note license-gnu-lgpl-2-1:: + * *Note license-gnu-libtool:: * *Note license-gnu-readline:: @@ -221162,6 +222963,8 @@ * *Note license-lib-sql:: + * *Note license-libaio:: + * *Note license-libevent:: * *Note license-linux-pam:: @@ -221210,6 +223013,9 @@ * *Note license-zlib-net:: +*MySQL Connector/ODBC* + * *Note license-gnu-libtool:: + *MySQL Proxy* * *Note license-glib-proxy:: @@ -221217,6 +223023,8 @@ * *Note license-libevent:: + * *Note license-libiconv-proxy:: + * *Note license-lpeg:: * *Note license-lua:: @@ -222825,7 +224633,7 @@ POSSIBILITY OF SUCH DAMAGE.  -File: manual.info, Node: license-lib-sql, Next: license-libevent, Prev: license-google-smp-patch, Up: licenses-third-party +File: manual.info, Node: license-lib-sql, Next: license-libaio, Prev: license-google-smp-patch, Up: licenses-third-party A.17 `lib_sql.cc' License ========================= @@ -222850,9 +224658,21 @@ This code was modified by the MySQL team.  -File: manual.info, Node: license-libevent, Next: license-linux-pam, Prev: license-lib-sql, Up: licenses-third-party +File: manual.info, Node: license-libaio, Next: license-libevent, Prev: license-lib-sql, Up: licenses-third-party + +A.18 Libaio License +=================== + +The following software may be included in this product: + + libaio + +This component is licensed under *Note license-gnu-lgpl-2-1::. + + +File: manual.info, Node: license-libevent, Next: license-libiconv-proxy, Prev: license-libaio, Up: licenses-third-party -A.18 `libevent' License +A.19 `libevent' License ======================= The following software may be included in this product: @@ -222990,9 +224810,27 @@ ==  -File: manual.info, Node: license-linux-pam, Next: license-lpeg, Prev: license-libevent, Up: licenses-third-party +File: manual.info, Node: license-libiconv-proxy, Next: license-linux-pam, Prev: license-libevent, Up: licenses-third-party + +A.20 Libiconv License +===================== + +The following software may be included in this product: + + Libiconv + + You are receiving a copy of the GNU LIBICONV Library. The terms of the Oracle + license do NOT apply to the GNU LIBICONV Library; it is licensed under the + following license, separately from the Oracle programs you receive. If you do + not wish to install this program, you may delete [agent install + dir]/lib/libiconv.* and [agent install dir]/licenses/lgpl/iconv files. + +This component is licensed under *Note license-gnu-lgpl-2-1::. + + +File: manual.info, Node: license-linux-pam, Next: license-lpeg, Prev: license-libiconv-proxy, Up: licenses-third-party -A.19 Linux-PAM License +A.21 Linux-PAM License ====================== The following software may be included in this product: @@ -223041,7 +224879,7 @@  File: manual.info, Node: license-lpeg, Next: license-lua, Prev: license-linux-pam, Up: licenses-third-party -A.20 `LPeg' Library License +A.22 `LPeg' Library License =========================== The following software may be included in this product: @@ -223072,7 +224910,7 @@  File: manual.info, Node: license-lua, Next: license-luafilesystem, Prev: license-lpeg, Up: licenses-third-party -A.21 Lua (liblua) License +A.23 Lua (liblua) License ========================= The following software may be included in this product: @@ -223104,7 +224942,7 @@  File: manual.info, Node: license-luafilesystem, Next: license-md5, Prev: license-lua, Up: licenses-third-party -A.22 `LuaFileSystem' Library License +A.24 `LuaFileSystem' Library License ==================================== The following software may be included in this product: @@ -223135,7 +224973,7 @@  File: manual.info, Node: license-md5, Next: license-nt-servc, Prev: license-luafilesystem, Up: licenses-third-party -A.23 md5 (Message-Digest Algorithm 5) License +A.25 md5 (Message-Digest Algorithm 5) License ============================================= The following software may be included in this product: @@ -223160,7 +224998,7 @@  File: manual.info, Node: license-nt-servc, Next: license-openpam, Prev: license-md5, Up: licenses-third-party -A.24 nt_servc (Windows NT Service class library) License +A.26 nt_servc (Windows NT Service class library) License ======================================================== The following software may be included in this product: @@ -223174,7 +225012,7 @@  File: manual.info, Node: license-openpam, Next: license-pcre, Prev: license-nt-servc, Up: licenses-third-party -A.25 OpenPAM License +A.27 OpenPAM License ==================== The following software may be included in this product: @@ -223223,7 +225061,7 @@  File: manual.info, Node: license-pcre, Next: license-percona-io-threads-patch, Prev: license-openpam, Up: licenses-third-party -A.26 PCRE License +A.28 PCRE License ================= The following software may be included in this product: @@ -223301,7 +225139,7 @@  File: manual.info, Node: license-percona-io-threads-patch, Next: license-regex, Prev: license-pcre, Up: licenses-third-party -A.27 Percona Multiple I/O Threads Patch License +A.29 Percona Multiple I/O Threads Patch License =============================================== The following software may be included in this product: @@ -223340,7 +225178,7 @@  File: manual.info, Node: license-regex, Next: license-us-secure-hash, Prev: license-percona-io-threads-patch, Up: licenses-third-party -A.28 RegEX-Spencer Library License +A.30 RegEX-Spencer Library License ================================== The following software may be included in this product: Henry Spencer's @@ -223370,7 +225208,7 @@  File: manual.info, Node: license-us-secure-hash, Next: license-libstring, Prev: license-regex, Up: licenses-third-party -A.29 RFC 3174 - US Secure Hash Algorithm 1 (SHA1) License +A.31 RFC 3174 - US Secure Hash Algorithm 1 (SHA1) License ========================================================= The following software may be included in this product: @@ -223412,7 +225250,7 @@  File: manual.info, Node: license-libstring, Next: license-sha1-in-c, Prev: license-us-secure-hash, Up: licenses-third-party -A.30 Richard A. O'Keefe String Library License +A.32 Richard A. O'Keefe String Library License ============================================== The following software may be included in this product: @@ -223445,7 +225283,7 @@  File: manual.info, Node: license-sha1-in-c, Next: license-slf4j, Prev: license-libstring, Up: licenses-third-party -A.31 SHA-1 in C License +A.33 SHA-1 in C License ======================= The following software may be included in this product: @@ -223459,7 +225297,7 @@  File: manual.info, Node: license-slf4j, Next: license-zlib, Prev: license-sha1-in-c, Up: licenses-third-party -A.32 Simple Logging Facade for Java (SLF4J) License +A.34 Simple Logging Facade for Java (SLF4J) License =================================================== The following software may be included in this product: @@ -223496,7 +225334,7 @@  File: manual.info, Node: license-zlib, Next: license-zlib-net, Prev: license-slf4j, Up: licenses-third-party -A.33 `zlib' License +A.35 `zlib' License =================== The following software may be included in this product: @@ -223538,7 +225376,7 @@  File: manual.info, Node: license-zlib-net, Prev: license-zlib, Up: licenses-third-party -A.34 ZLIB.NET License +A.36 ZLIB.NET License ===================== The following software may be included in this product: @@ -223596,7 +225434,7 @@ * faqs-information-schema:: MySQL 5.5 FAQ: `INFORMATION_SCHEMA' * faqs-migration:: MySQL 5.5 FAQ: Migration * faqs-security:: MySQL 5.5 FAQ: Security -* faqs-mysql-cluster:: MySQL 5.5 FAQ: MySQL Cluster +* faqs-mysql-cluster:: MySQL FAQ: MySQL 5.5 and MySQL Cluster * faqs-cjk:: MySQL 5.5 FAQ: MySQL Chinese, Japanese, and Korean Character Sets * faqs-connectors-apis:: MySQL 5.5 FAQ: Connectors & APIs * faqs-replication:: MySQL 5.5 FAQ: Replication @@ -223656,7 +225494,7 @@ MySQL follows a milestone release model that introduces pre-production-quality features and stabilizes them to release quality -(see `http://forge.mysql.com/wiki/Development_Cycle'). This process +(see `http://forge.mysql.com/wiki/Development_Cycle'). This process then repeats, so releases cycle between pre-production and release quality status. Please check the change logs to identify the status of a given release. @@ -223777,8 +225615,13 @@ *B.2.2: ** Are there any new storage engines in MySQL 5.5? * -No, but the `InnoDB Plugin' is the built-in version of the `InnoDB' -storage engine. +The features from the optional `InnoDB Plugin' from MySQL 5.1 are +folded into the built-in `InnoDB' storage engine, so you can take +advantage of features such as the Barracuda file format, `InnoDB' table +compression, and the new configuration options for performance. See +*Note innodb-5-5:: for details. `InnoDB' also becomes the default +storage engine for new tables. See *Note innodb-default-se:: for +details. *B.2.3: ** Have any storage engines been removed in MySQL 5.5? * @@ -223840,7 +225683,7 @@ You can set the default SQL mode (for *Note `mysqld': mysqld. startup) with the `--sql-mode' option. Using the statement *Note `SET -[GLOBAL|SESSION] sql_mode='MODES'': set-option, you can change the +[GLOBAL|SESSION] sql_mode='MODES'': set-statement, you can change the settings from within a connection, either locally to the connection, or to take effect globally. You can retrieve the current mode by issuing a `SELECT @@sql_mode' statement. @@ -223850,7 +225693,7 @@ A mode is not linked to a particular database. Modes can be set locally to the session (connection), or globally for the server. you can change these settings using *Note `SET [GLOBAL|SESSION] -sql_mode='MODES'': set-option. +sql_mode='MODES'': set-statement. *B.3.5: ** Can the rules for strict mode be extended? * @@ -224603,8 +226446,8 @@  File: manual.info, Node: faqs-mysql-cluster, Next: faqs-cjk, Prev: faqs-security, Up: faqs -B.10 MySQL 5.5 FAQ: MySQL Cluster -================================= +B.10 MySQL FAQ: MySQL 5.5 and MySQL Cluster +=========================================== In the following section, we answer questions that are frequently asked about MySQL Cluster and the *Note `NDBCLUSTER': mysql-cluster. storage @@ -224614,26 +226457,932 @@ * B.10.1: Which versions of the MySQL software support Cluster? Do I have to compile from source? + * B.10.2: What do `NDB' and `NDBCLUSTER' mean? + + * B.10.3: What is the difference between using MySQL Cluster _vs_ + using MySQL Replication? + + * B.10.4: Do I need any special networking to run MySQL Cluster? How + do computers in a cluster communicate? + + * B.10.5: How many computers do I need to run a MySQL Cluster, and + why? + + * B.10.6: What do the different computers do in a MySQL Cluster? + + * B.10.7: When I run the `SHOW' command in the MySQL Cluster + management client, I see a line of output that looks like this: + + id=2 @10.100.10.32 (Version: 5.5.23, Nodegroup: 0, Master) + + What is a `master node', and what does it do? How do I configure a + node so that it is the master? + + * B.10.8: With which operating systems can I use MySQL Cluster? + + * B.10.9: What are the hardware requirements for running MySQL + Cluster? + + * B.10.10: How much RAM do I need to use MySQL Cluster? Is it + possible to use disk memory at all? + + * B.10.11: What file systems can I use with MySQL Cluster? What about + network file systems or network shares? + + * B.10.12: Can I run MySQL Cluster nodes inside virtual machines + (such as those created by VMWare, Parallels, or Xen)? + + * B.10.13: I am trying to populate a MySQL Cluster database. The + loading process terminates prematurely and I get an error message + like this one: + + ``ERROR 1114: The table 'my_cluster_table' is full'' + + Why is this happening? + + * B.10.14: MySQL Cluster uses TCP/IP. Does this mean that I can run + it over the Internet, with one or more nodes in remote locations? + + * B.10.15: Do I have to learn a new programming or query language to + use MySQL Cluster? + + * B.10.16: How do I find out what an error or warning message means + when using MySQL Cluster? + + * B.10.17: Is MySQL Cluster transaction-safe? What isolation levels + are supported? + + * B.10.18: What storage engines are supported by MySQL Cluster? + + * B.10.19: In the event of a catastrophic failure--say, for instance, + the whole city loses power _and_ my UPS fails--would I lose all my + data? + + * B.10.20: Is it possible to use `FULLTEXT' indexes with MySQL + Cluster? + + * B.10.21: Can I run multiple nodes on a single computer? + + * B.10.22: Are there any limitations that I should be aware of when + using MySQL Cluster? + + * B.10.23: How do I import an existing MySQL database into a MySQL + Cluster? + + * B.10.24: How do MySQL Cluster nodes communicate with one another? + + * B.10.25: What is an _arbitrator_? + + * B.10.26: What data types are supported by MySQL Cluster? + + * B.10.27: How do I start and stop MySQL Cluster? + + * B.10.28: What happens to MySQL Cluster data when the MySQL Cluster + is shut down? + + * B.10.29: Is it a good idea to have more than one management node + for a MySQL Cluster? + + * B.10.30: Can I mix different kinds of hardware and operating + systems in one MySQL Cluster? + + * B.10.31: Can I run two data nodes on a single host? Two SQL nodes? + + * B.10.32: Can I use host names with MySQL Cluster? + + * B.10.33: Does MySQL Cluster support IPv6? + + * B.10.34: How do I handle MySQL users in a MySQL Cluster having + multiple MySQL servers? + + * B.10.35: How do I continue to send queries in the event that one + of the SQL nodes fails? + + * B.10.36: How do I back up and restore a MySQL Cluster? + + * B.10.37: What is an `angel process'? + *Questions and Answers* *B.10.1: ** Which versions of the MySQL software support Cluster? Do I have to compile from source? * -MySQL Cluster is not supported in MySQL Server 5.5 releases. Instead, -MySQL Cluster is released as a separate product, available as MySQL -Cluster NDB 6.3 and MySQL Cluster NDB 7.0. You should use one of these -for new deployments, and plan to upgrade to one of them if you are -using a previous version of MySQL with clustering support. For an -overview of improvements in MySQL Cluster NDB 6.2 and 6.3, see MySQL -Cluster Development in MySQL Cluster NDB 6.3 -(http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-development-5-1-ndb-6-3.html), -and MySQL Cluster Development in MySQL Cluster NDB 7.0 -(http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-development-5-1-ndb-7-0.html). - -For answers to frequently asked questions about MySQL Cluster, see -MySQL 5.1 FAQ: MySQL Cluster -(http://dev.mysql.com/doc/refman/5.1/en/faqs-mysql-cluster.html). For -detailed information about deploying and using MySQL Cluster, see MySQL -Cluster NDB 6.X/7.X -(http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster.html). +MySQL Cluster is not supported in standard MySQL Server 5.5 releases. +Instead, MySQL Cluster is provided as a separate product. Currently, +the following MySQL Cluster release series are available for production +use: + + * MySQL Cluster NDB 6.3 + + This series is still maintained and available for use but is not + recommended for new deployments. The most recent MySQL Cluster NDB + 6.3 release can be obtained from + http://dev.mysql.com/downloads/cluster/ . + + * MySQL Cluster NDB 7.0 + + This series is still available for use in production, although + MySQL Cluster NDB 7.2 is recommended for new deployments. The most + recent MySQL Cluster NDB 7.0 release can be obtained from + `http://dev.mysql.com/downloads/cluster/'. + + * MySQL Cluster NDB 7.1 + + This series is the previous Generally Available (GA) version of + MySQL Cluster, still available for production, although we + recommend that new deployments use the latest MySQL Cluster NDB + 7.2 release. The most recent MySQL Cluster NDB 7.1 release can be + obtained from `http://dev.mysql.com/downloads/cluster/'. + +MySQL Cluster NDB 7.2 + +This series is the latest Generally Available (GA) version of MySQL +Cluster, based on version 7.2 of the *Note `NDBCLUSTER': mysql-cluster. +storage engine and MySQL Server 5.5. New deployments should use the +latest release in this series. The most recent MySQL Cluster NDB 7.2 +release can be obtained from `http://dev.mysql.com/downloads/cluster/'. + +You should use MySQL NDB Cluster NDB 7.1 or MySQL NDB Cluster NDB 7.2 +for any new deployments; if you are using an older version of MySQL +Cluster, you should upgrade to one of these soon as possible. For an +overview of improvements made in MySQL Cluster NDB 7.1, see MySQL +Cluster Development in MySQL Cluster NDB 7.1 +(http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-development-5-1-ndb-7-1.html); +for information about improvements made in MySQL Cluster NDB 7.2, see +*Note mysql-cluster-development-5-5-ndb-7-2::. + +You can determine whether your MySQL Server has *Note `NDBCLUSTER': +mysql-cluster. support using one of the statements `SHOW VARIABLES LIKE +'have_%'', *Note `SHOW ENGINES': show-engines, or *Note `SHOW PLUGINS': +show-plugins. + +*B.10.2: ** What do `NDB' and `NDBCLUSTER' mean? * + +`NDB' stands for `*N*etwork *D*ata*b*ase'. *Note `NDB': mysql-cluster. +and *Note `NDBCLUSTER': mysql-cluster. are both names for the storage +engine that enables clustering support in MySQL. While our developers +prefer *Note `NDB': mysql-cluster, either name is correct; both names +appear in our documentation, and either name can be used in the +`ENGINE' option of a *Note `CREATE TABLE': create-table. statement for +creating a MySQL Cluster table. + +*B.10.3: ** What is the difference between using MySQL Cluster _vs_ +using MySQL Replication? * + +In traditional MySQL replication, a master MySQL server updates one or +more slaves. Transactions are committed sequentially, and a slow +transaction can cause the slave to lag behind the master. This means +that if the master fails, it is possible that the slave might not have +recorded the last few transactions. If a transaction-safe engine such as +*Note `InnoDB': innodb-storage-engine. is being used, a transaction +will either be complete on the slave or not applied at all, but +replication does not guarantee that all data on the master and the +slave will be consistent at all times. In MySQL Cluster, all data nodes +are kept in synchrony, and a transaction committed by any one data node +is committed for all data nodes. In the event of a data node failure, +all remaining data nodes remain in a consistent state. + +In short, whereas standard MySQL replication is _asynchronous_, MySQL +Cluster is _synchronous_. + +Asynchronous replication is also available in MySQL Cluster. _MySQL +Cluster Replication_ (also sometimes known as `geo-replication') +includes the capability to replicate both between two MySQL Clusters, +and from a MySQL Cluster to a non-Cluster MySQL server. See *Note +mysql-cluster-replication::. + +*B.10.4: ** Do I need any special networking to run MySQL Cluster? How +do computers in a cluster communicate? * + +MySQL Cluster is intended to be used in a high-bandwidth environment, +with computers connecting using TCP/IP. Its performance depends +directly upon the connection speed between the cluster's computers. The +minimum connectivity requirements for MySQL Cluster include a typical +100-megabit Ethernet network or the equivalent. We recommend you use +gigabit Ethernet whenever available. + +The faster SCI protocol is also supported, but requires special +hardware. See *Note mysql-cluster-interconnects::, for more information +about SCI. + +*B.10.5: ** How many computers do I need to run a MySQL Cluster, and +why? * + +A minimum of three computers is required to run a viable cluster. +However, the minimum _recommended_ number of computers in a MySQL +Cluster is four: one each to run the management and SQL nodes, and two +computers to serve as data nodes. The purpose of the two data nodes is +to provide redundancy; the management node must run on a separate +machine to guarantee continued arbitration services in the event that +one of the data nodes fails. + +To provide increased throughput and high availability, you should use +multiple SQL nodes (MySQL Servers connected to the cluster). It is also +possible (although not strictly necessary) to run multiple management +servers. + +*B.10.6: ** What do the different computers do in a MySQL Cluster? * + +A MySQL Cluster has both a physical and logical organization, with +computers being the physical elements. The logical or functional +elements of a cluster are referred to as _nodes_, and a computer +housing a cluster node is sometimes referred to as a _cluster host_. +There are three types of nodes, each corresponding to a specific role +within the cluster. These are: + + * Management node + + This node provides management services for the cluster as a whole, + including startup, shutdown, backups, and configuration data for + the other nodes. The management node server is implemented as the + application *Note `ndb_mgmd': mysql-cluster-programs-ndb-mgmd.; + the management client used to control MySQL Cluster is *Note + `ndb_mgm': mysql-cluster-programs-ndb-mgm. See *Note + mysql-cluster-programs-ndb-mgmd::, and *Note + mysql-cluster-programs-ndb-mgm::, for information about these + programs. + + * Data node + + This type of node stores and replicates data. Data node + functionality is handled by instances of the *Note `NDB': + mysql-cluster. data node process *Note `ndbd': + mysql-cluster-programs-ndbd. For more information, see *Note + mysql-cluster-programs-ndbd::. + + * SQL node + + This is simply an instance of MySQL Server (*Note `mysqld': + mysqld.) that is built with support for the *Note `NDBCLUSTER': + mysql-cluster. storage engine and started with the `--ndb-cluster' + option to enable the engine and the `--ndb-connectstring' option + to enable it to connect to a MySQL Cluster management server. For + more about these options, see *Note + mysql-cluster-program-options-mysqld::. + + *Note*: + + An _API node_ is any application that makes direct use of Cluster + data nodes for data storage and retrieval. An SQL node can thus be + considered a type of API node that uses a MySQL Server to provide + an SQL interface to the Cluster. You can write such applications + (that do not depend on a MySQL Server) using the NDB API, which + supplies a direct, object-oriented transaction and scanning + interface to MySQL Cluster data; see MySQL Cluster API Overview: + The NDB API + (http://dev.mysql.com/doc/ndbapi/en/overview-ndb-api.html), for + more information. + +*B.10.7: ** When I run the `SHOW' command in the MySQL Cluster +management client, I see a line of output that looks like this: * + id=2 @10.100.10.32 (Version: 5.5.23, Nodegroup: 0, Master) +* What is a `master node', and what does it do? How do I configure a +node so that it is the master? * + +The simplest answer is, `It's not something you can control, and it's +nothing that you need to worry about in any case, unless you're a +software engineer writing or analyzing the MySQL Cluster source code'. + +If you don't find that answer satisfactory, here's a longer and more +technical version: + +A number of mechanisms in MySQL Cluster require distributed +coordination among the data nodes. These distributed algorithms and +protocols include global checkpointing, DDL (schema) changes, and node +restart handling. To make this coordination simpler, the data nodes +`elect' one of their number to be a `master'. There is no user-facing +mechanism for influencing this selection, which is is completely +automatic; the fact that it _is_ automatic is a key part of MySQL +Cluster's internal architecture. + +When a node acts as a master for any of these mechanisms, it is usually +the point of coordination for the activity, and the other nodes act as +`servants', carrying out their parts of the activity as directed by the +master. If the node acting as master fails, then the remaining nodes +elect a new master. Tasks in progress that were being coordinated by +the old master may either fail or be continued by the new master, +depending on the actual mechanism involved. + +It is possible for some of these different mechanisms and protocols to +have different master nodes, but in general the same master is chosen +for all of them. The node indicated as the master in the output of +`SHOW' in the management client is actually the `DICT' master (see The +`DBDICT' Block +(http://dev.mysql.com/doc/ndbapi/en/ndb-internals-kernel-blocks-dbdict.html), +in the `MySQL Cluster API Developer Guide', for more information), +responsible for coordinating DDL and metadata activity. + +MySQL Cluster is designed in such a way that the choice of master has +no discernable effect outside the cluster itself. For example, the +current master does not have significantly higher CPU or resource usage +than the other data nodes, and failure of the master should not have a +significantly different impact on the cluster than the failure of any +other data node. + +*B.10.8: ** With which operating systems can I use MySQL Cluster? * + +MySQL Cluster is supported on most Unix-like operating systems. MySQL +Cluster NDB 7.2 is also supported in production settings on Microsoft +Windows operating systems. + +For more detailed information concerning the level of support which is +offered for MySQL Cluster on various operating system versions, +operating system distributions, and hardware platforms, please refer to +http://www.mysql.com/support/supportedplatforms/cluster.html . + +*B.10.9: ** What are the hardware requirements for running MySQL +Cluster? * + +MySQL Cluster should run on any platform for which *Note `NDB': +mysql-cluster.-enabled binaries are available. For data nodes and API +nodes, faster CPUs and more memory are likely to improve performance, +and 64-bit CPUs are likely to be more effective than 32-bit processors. +There must be sufficient memory on machines used for data nodes to hold +each node's share of the database (see _How much RAM do I Need?_ for +more information). For a computer which is used only for running the +MySQL Cluster management server, the requirements are minimal; a common +desktop PC (or the equivalent) is generally sufficient for this task. +Nodes can communicate through the standard TCP/IP network and hardware. +They can also use the high-speed SCI protocol; however, special +networking hardware and software are required to use SCI (see *Note +mysql-cluster-interconnects::). + +*B.10.10: ** How much RAM do I need to use MySQL Cluster? Is it +possible to use disk memory at all? * + +Formerly MySQL Cluster was in-memory only. MySQL 5.1 and later also +provide the ability to store MySQL Cluster on disk. (Note that we have +no plans to backport this capability to previous releases.) See *Note +mysql-cluster-disk-data::, for more information. + +For in-memory `NDB' tables, you can use the following formula for +obtaining a rough estimate of how much RAM is needed for each data node +in the cluster: + + (SizeofDatabase x NumberOfReplicas x 1.1 ) / NumberOfDataNodes + +To calculate the memory requirements more exactly requires determining, +for each table in the cluster database, the storage space required per +row (see *Note storage-requirements::, for details), and multiplying +this by the number of rows. You must also remember to account for any +column indexes as follows: + + * Each primary key or hash index created for an *Note `NDBCLUSTER': + mysql-cluster. table requires 21-25 bytes per record. These + indexes use `IndexMemory'. + + * Each ordered index requires 10 bytes storage per record, using + `DataMemory'. + + * Creating a primary key or unique index also creates an ordered + index, unless this index is created with `USING HASH'. In other + words: + + * A primary key or unique index on a Cluster table normally + takes up 31 to 35 bytes per record. + + * However, if the primary key or unique index is created with + `USING HASH', then it requires only 21 to 25 bytes per record. + +Note that creating MySQL Cluster tables with `USING HASH' for all +primary keys and unique indexes will generally cause table updates to +run more quickly--in some cases by a much as 20 to 30 percent faster +than updates on tables where `USING HASH' was not used in creating +primary and unique keys. This is due to the fact that less memory is +required (because no ordered indexes are created), and that less CPU +must be utilized (because fewer indexes must be read and possibly +updated). However, it also means that queries that could otherwise use +range scans must be satisfied by other means, which can result in +slower selects. + +When calculating Cluster memory requirements, you may find useful the +*Note `ndb_size.pl': mysql-cluster-programs-ndb-size-pl. utility which +is available in recent MySQL 5.5 releases. This Perl script connects to +a current (non-Cluster) MySQL database and creates a report on how much +space that database would require if it used the *Note `NDBCLUSTER': +mysql-cluster. storage engine. For more information, see *Note +mysql-cluster-programs-ndb-size-pl::. + +It is especially important to keep in mind that _every MySQL Cluster +table must have a primary key_. The *Note `NDB': mysql-cluster. storage +engine creates a primary key automatically if none is defined; this +primary key is created without `USING HASH'. + +There is no easy way to determine exactly how much memory is being used +for storage of Cluster indexes at any given time; however, warnings are +written to the Cluster log when 80% of available `DataMemory' or +`IndexMemory' is in use, and again when use reaches 85%, 90%, and so on. + +*B.10.11: ** What file systems can I use with MySQL Cluster? What about +network file systems or network shares? * + +Generally, any file system that is native to the host operating system +should work well with MySQL Cluster. If you find that a given file +system works particularly well (or not so especially well) with MySQL +Cluster, we invite you to discuss your findings in the MySQL Cluster +Forums (http://forums.mysql.com/list.php?25). + +For Windows, we recommend that you use `NTFS' file systems for MySQL +Cluster, just as we do for standard MySQL. We do not test MySQL Cluster +with `FAT' or `VFAT' file systems. Because of this, we do not recommend +their use with MySQL or MySQL Cluster. + +MySQL Cluster is implemented as a shared-nothing solution; the idea +behind this is that the failure of a single piece of hardware should +not cause the failure of multiple cluster nodes, or possibly even the +failure of the cluster as a whole. For this reason, the use of network +shares or network file systems is not supported for MySQL Cluster. This +also applies to shared storage devices such as SANs. + +*B.10.12: ** Can I run MySQL Cluster nodes inside virtual machines +(such as those created by VMWare, Parallels, or Xen)? * + +This is possible but not recommended for a production environment. + +We have found that running MySQL Cluster processes inside a virtual +machine can give rise to issues with timing and disk subsystems that +have a strong negative impact on the operation of the cluster. The +behavior of the cluster is often unpredictable in these cases. + +If an issue can be reproduced outside the virtual environment, then we +may be able to provide assistance. Otherwise, we cannot support it at +this time. + +*B.10.13: ** I am trying to populate a MySQL Cluster database. The +loading process terminates prematurely and I get an error message like +this one: ** ``ERROR 1114: The table 'my_cluster_table' is full'' ** +Why is this happening? * + +The cause is very likely to be that your setup does not provide +sufficient RAM for all table data and all indexes, _including the +primary key required by the *Note `NDB': mysql-cluster. storage engine +and automatically created in the event that the table definition does +not include the definition of a primary key_. + +It is also worth noting that all data nodes should have the same amount +of RAM, since no data node in a cluster can use more memory than the +least amount available to any individual data node. For example, if +there are four computers hosting Cluster data nodes, and three of these +have 3GB of RAM available to store Cluster data while the remaining +data node has only 1GB RAM, then each data node can devote at most 1GB +to MySQL Cluster data and indexes. + +In some cases it is possible to get `Table is full' errors in MySQL +client applications even when *Note `ndb_mgm -e "ALL REPORT +MEMORYUSAGE"': mysql-cluster-programs-ndb-mgm. shows significant free +`DataMemory'. You can force *Note `NDB': mysql-cluster. to create extra +partitions for MySQL Cluster tables and thus have more memory available +for hash indexes by using the `MAX_ROWS' option for *Note `CREATE +TABLE': create-table. In general, setting `MAX_ROWS' to twice the +number of rows that you expect to store in the table should be +sufficient. + +For similar reasons, you can also sometimes encounter problems with +data node restarts on nodes that are heavily loaded with data. In MySQL +Cluster NDB 7.1 and MySQL Cluster NDB 7.2, the addition of the +`MinFreePct' parameter helps with this issue. + +*B.10.14: ** MySQL Cluster uses TCP/IP. Does this mean that I can run +it over the Internet, with one or more nodes in remote locations? * + +It is _very_ unlikely that a cluster would perform reliably under such +conditions, as MySQL Cluster was designed and implemented with the +assumption that it would be run under conditions guaranteeing dedicated +high-speed connectivity such as that found in a LAN setting using 100 +Mbps or gigabit Ethernet--preferably the latter. We neither test nor +warrant its performance using anything slower than this. + +Also, it is extremely important to keep in mind that communications +between the nodes in a MySQL Cluster are not secure; they are neither +encrypted nor safeguarded by any other protective mechanism. The most +secure configuration for a cluster is in a private network behind a +firewall, with no direct access to any Cluster data or management nodes +from outside. (For SQL nodes, you should take the same precautions as +you would with any other instance of the MySQL server.) For more +information, see *Note mysql-cluster-security::. + +*B.10.15: ** Do I have to learn a new programming or query language to +use MySQL Cluster? * + +_No_. Although some specialized commands are used to manage and +configure the cluster itself, only standard (My)SQL statements are +required for the following operations: + + * Creating, altering, and dropping tables + + * Inserting, updating, and deleting table data + + * Creating, changing, and dropping primary and unique indexes + +Some specialized configuration parameters and files are required to set +up a MySQL Cluster--see *Note mysql-cluster-config-file::, for +information about these. + +A few simple commands are used in the MySQL Cluster management client +(*Note `ndb_mgm': mysql-cluster-programs-ndb-mgm.) for tasks such as +starting and stopping cluster nodes. See *Note +mysql-cluster-mgm-client-commands::. + +*B.10.16: ** How do I find out what an error or warning message means +when using MySQL Cluster? * + +There are two ways in which this can be done: + + * From within the *Note `mysql': mysql. client, use `SHOW ERRORS' or + `SHOW WARNINGS' immediately upon being notified of the error or + warning condition. + + * From a system shell prompt, use *Note `perror --ndb ERROR_CODE': + perror. + +*B.10.17: ** Is MySQL Cluster transaction-safe? What isolation levels +are supported? * + +_Yes_. For tables created with the *Note `NDB': mysql-cluster. storage +engine, transactions are supported. Currently, MySQL Cluster supports +only the `READ COMMITTED' transaction isolation level. + +*B.10.18: ** What storage engines are supported by MySQL Cluster? * + +Clustering with MySQL is supported only by the *Note `NDB': +mysql-cluster. storage engine. That is, in order for a table to be +shared between nodes in a MySQL Cluster, the table must be created +using `ENGINE=NDB' (or the equivalent option `ENGINE=NDBCLUSTER'). + +It is possible to create tables using other storage engines (such as +*Note `MyISAM': myisam-storage-engine. or *Note `InnoDB': +innodb-storage-engine.) on a MySQL server being used with a MySQL +Cluster, but these non-*Note `NDB': mysql-cluster. tables do _not_ +participate in clustering; each such table is strictly local to the +individual MySQL server instance on which it is created. + +*B.10.19: ** In the event of a catastrophic failure--say, for instance, +the whole city loses power _and_ my UPS fails--would I lose all my data? +* + +All committed transactions are logged. Therefore, although it is +possible that some data could be lost in the event of a catastrophe, +this should be quite limited. Data loss can be further reduced by +minimizing the number of operations per transaction. (It is not a good +idea to perform large numbers of operations per transaction in any +case.) + +*B.10.20: ** Is it possible to use `FULLTEXT' indexes with MySQL +Cluster? * + +`FULLTEXT' indexing is currently not supported by any MySQL storage +engine other than *Note `MyISAM': myisam-storage-engine. + +*B.10.21: ** Can I run multiple nodes on a single computer? * + +It is possible but not always advisable. One of the chief reasons to +run a cluster is to provide redundancy. To obtain the full benefits of +this redundancy, each node should reside on a separate machine. If you +place multiple nodes on a single machine and that machine fails, you +lose all of those nodes. For this reason, if you do run multiple data +nodes on a single machine, it is _extremely_ important that they be set +up in such a way that the failure of this machine does not cause the +loss of all the data nodes in a given node group. + +Given that MySQL Cluster can be run on commodity hardware loaded with a +low-cost (or even no-cost) operating system, the expense of an extra +machine or two is well worth it to safeguard mission-critical data. It +also worth noting that the requirements for a cluster host running a +management node are minimal. This task can be accomplished with a 300 +MHz Pentium or equivalent CPU and sufficient RAM for the operating +system, plus a small amount of overhead for the *Note `ndb_mgmd': +mysql-cluster-programs-ndb-mgmd. and *Note `ndb_mgm': +mysql-cluster-programs-ndb-mgm. processes. + +It is acceptable to run multiple cluster data nodes on a single host +that has multiple CPUs, cores, or both. MySQL Cluster NDB 7.0 and later +also provide a multi-threaded version of the data node binary intended +for use on such systems. For more information, see *Note +mysql-cluster-programs-ndbmtd::. + +It is also possible in some cases to run data nodes and SQL nodes +concurrently on the same machine; how well such an arrangement performs +is dependent on a number of factors such as number of cores and CPUs as +well as the amount of disk and memory available to the data node and +SQL node processes, and you must take these factors into account when +planning such a configuration. + +*B.10.22: ** Are there any limitations that I should be aware of when +using MySQL Cluster? * + +Limitations on *Note `NDB': mysql-cluster. tables in MySQL MySQL +Cluster NDB 7.2 include the following: + + * Temporary tables are not supported; a *Note `CREATE TEMPORARY + TABLE': create-table. statement using `ENGINE=NDB' or + `ENGINE=NDBCLUSTER' fails with an error. + + * The only types of user-defined partitioning supported for *Note + `NDBCLUSTER': mysql-cluster. tables are `KEY' and `LINEAR KEY'. + Trying to create an `NDB' table using any other partitioning type + fails with an error. + + * `FULLTEXT' indexes are not supported. + + * Index prefixes are not supported. Only complete columns may be + indexed. + + * Spatial indexes are not supported (although spatial columns can be + used). See *Note spatial-extensions::. + + * Support for partial transactions and partial rollbacks is + comprabale to that of other transactional storage engines such as + *Note `InnoDB': innodb-storage-engine. that can roll back + individual statements. + + * The maximum number of attributes allowed per table is 512. + Attribute names cannot be any longer than 31 characters. For each + table, the maximum combined length of the table and database names + is 122 characters. + + * The maximum size for a table row is 14 kilobytes, not counting + *Note `BLOB': blob. values. + + There is no set limit for the number of rows per `NDB' table. + Limts on table size depend on a number of factors, in particular + on the amount of RAM available to each data node. + + * The *Note `NDBCLUSTER': mysql-cluster. engine does not support + foreign key constraints. As with *Note `MyISAM': + myisam-storage-engine. tables, if these are specified in a *Note + `CREATE TABLE': create-table. or *Note `ALTER TABLE': + alter-table. statement, they are ignored. + +For a complete listing of limitations in MySQL Cluster, see *Note +mysql-cluster-limitations::. See also *Note +mysql-cluster-limitations-resolved::. + +*B.10.23: ** How do I import an existing MySQL database into a MySQL +Cluster? * + +You can import databases into MySQL Cluster much as you would with any +other version of MySQL. Other than the limitations mentioned elsewhere +in this FAQ, the only other special requirement is that any tables to +be included in the cluster must use the *Note `NDB': mysql-cluster. +storage engine. This means that the tables must be created with +`ENGINE=NDB' or `ENGINE=NDBCLUSTER'. + +It is also possible to convert existing tables that use other storage +engines to *Note `NDBCLUSTER': mysql-cluster. using one or more *Note +`ALTER TABLE': alter-table. statement. However, the definition of the +table must be compatible with the *Note `NDBCLUSTER': mysql-cluster. +storage engine prior to making the conversion. In MySQL 5.5, an +additional workaround is also required; see *Note +mysql-cluster-limitations::, for details. + +*B.10.24: ** How do MySQL Cluster nodes communicate with one another? * + +Cluster nodes can communicate through any of three different transport +mechanisms: TCP/IP, SHM (shared memory), and SCI (Scalable Coherent +Interface). Where available, SHM is used by default between nodes +residing on the same cluster host; however, this is considered +experimental. SCI is a high-speed (1 gigabit per second and higher), +high-availability protocol used in building scalable multi-processor +systems; it requires special hardware and drivers. See *Note +mysql-cluster-interconnects::, for more about using SCI as a transport +mechanism for MySQL Cluster. + +*B.10.25: ** What is an _arbitrator_? * + +If one or more data nodes in a cluster fail, it is possible that not +all cluster data nodes will be able to `see' one another. In fact, it +is possible that two sets of data nodes might become isolated from one +another in a network partitioning, also known as a `split-brain' +scenario. This type of situation is undesirable because each set of +data nodes tries to behave as though it is the entire cluster. An +arbitrator is required to decide between the competing sets of data +nodes. + +When all data nodes in at least one node group are alive, network +partitioning is not an issue, because no single subset of the cluster +can form a functional cluster on its own. The real problem arises when +no single node group has all its nodes alive, in which case network +partitioning (the `split-brain' scenario) becomes possible. Then an +arbitrator is required. All cluster nodes recognize the same node as +the arbitrator, which is normally the management server; however, it is +possible to configure any of the MySQL Servers in the cluster to act as +the arbitrator instead. The arbitrator accepts the first set of cluster +nodes to contact it, and tells the remaining set to shut down. +Arbitrator selection is controlled by the `ArbitrationRank' +configuration parameter for MySQL Server and management server nodes. +In MySQL Cluster NDB 7.0.7 and later, you can also use the +`ArbitrationRank' configuration parameter to control the arbitrator +selection process. For more information about these parameters, see +*Note mysql-cluster-mgm-definition::. + +The role of arbitrator does not in and of itself impose any heavy +demands upon the host so designated, and thus the arbitrator host does +not need to be particularly fast or to have extra memory especially for +this purpose. + +*B.10.26: ** What data types are supported by MySQL Cluster? * + +MySQL Cluster supports all of the usual MySQL data types, including +those associated with MySQL's spatial extensions; however, the *Note +`NDB': mysql-cluster. storage engine does not support spatial indexes. +(Spatial indexes are supported only by *Note `MyISAM': +myisam-storage-engine.; see *Note spatial-extensions::, for more +information.) In addition, there are some differences with regard to +indexes when used with *Note `NDB': mysql-cluster. tables. + +*Note*: + +MySQL Cluster Disk Data tables (that is, tables created with +`TABLESPACE ... STORAGE DISK ENGINE=NDB' or `TABLESPACE ... STORAGE DISK +ENGINE=NDBCLUSTER') have only fixed-width rows. This means that (for +example) each Disk Data table record containing a *Note `VARCHAR(255)': +char. column requires space for 255 characters (as required for the +character set and collation being used for the table), regardless of +the actual number of characters stored therein. + +See *Note mysql-cluster-limitations::, for more information about these +issues. + +*B.10.27: ** How do I start and stop MySQL Cluster? * + +It is necessary to start each node in the cluster separately, in the +following order: + + 1. Start the management node, using the *Note `ndb_mgmd': + mysql-cluster-programs-ndb-mgmd. command. + + You must include the `-f' or `--config-file' option to tell the + management node where its configuration file can be found. + + 2. Start each data node with the *Note `ndbd': + mysql-cluster-programs-ndbd. command. + + Each data node must be started with the `-c' + (http://dev.mysql.com/doc/refman/5.0/en/mysql-cluster-program-options-common.html#option_ndb_common_connect-string) + or `--connect-string' + (http://dev.mysql.com/doc/refman/5.0/en/mysql-cluster-program-options-common.html#option_ndb_common_connect-string) + option so that the data node knows how to connect to the + management server. + + 3. Start each MySQL Server (SQL node) using your preferred startup + script, such as *Note `mysqld_safe': mysqld-safe. + + Each MySQL Server must be started with the `--ndbcluster' and + `--ndb-connectstring' options. These options cause mysqld to + enable *Note `NDBCLUSTER': mysql-cluster. storage engine support + and how to connect to the management server. + +Each of these commands must be run from a system shell on the machine +housing the affected node. (You do not have to be physically present at +the machine--a remote login shell can be used for this purpose.) You +can verify that the cluster is running by starting the *Note `NDB': +mysql-cluster. management client *Note `ndb_mgm': +mysql-cluster-programs-ndb-mgm. on the machine housing the management +node and issuing the `SHOW' or `ALL STATUS' command. + +To shut down a running cluster, issue the command `SHUTDOWN' in the +management client. Alternatively, you may enter the following command +in a system shell: + + shell> ndb_mgm -e "SHUTDOWN" + +(The quotation marks in this example are optional, since there are no +spaces in the command string following the `-e' option; in addition, the +`SHUTDOWN' command, like other management client commands, is not +case-sensitive.) + +Either of these commands causes the *Note `ndb_mgm': +mysql-cluster-programs-ndb-mgm, *Note `ndb_mgm': +mysql-cluster-programs-ndb-mgm, and any *Note `ndbd': +mysql-cluster-programs-ndbd. processes to terminate gracefully. MySQL +servers running as SQL nodes can be stopped using *Note `mysqladmin +shutdown': mysqladmin. + +For more information, see *Note mysql-cluster-mgm-client-commands::, and +*Note mysql-cluster-install-shutdown-restart::. + +*B.10.28: ** What happens to MySQL Cluster data when the MySQL Cluster +is shut down? * + +The data that was held in memory by the cluster's data nodes is written +to disk, and is reloaded into memory the next time that the cluster is +started. + +*B.10.29: ** Is it a good idea to have more than one management node +for a MySQL Cluster? * + +It can be helpful as a fail-safe. Only one management node controls the +cluster at any given time, but it is possible to configure one +management node as primary, and one or more additional management nodes +to take over in the event that the primary management node fails. + +See *Note mysql-cluster-config-file::, for information on how to +configure MySQL Cluster management nodes. + +*B.10.30: ** Can I mix different kinds of hardware and operating +systems in one MySQL Cluster? * + +Yes, as long as all machines and operating systems have the same +`endianness' (all big-endian or all little-endian). We are working to +overcome this limitation in a future MySQL Cluster release. + +It is also possible to use software from different MySQL Cluster +releases on different nodes. However, we support this only as part of a +rolling upgrade procedure (see *Note mysql-cluster-rolling-restart::). + +*B.10.31: ** Can I run two data nodes on a single host? Two SQL nodes? +* + +Yes, it is possible to do this. In the case of multiple data nodes, it +is advisable (but not required) for each node to use a different data +directory. If you want to run multiple SQL nodes on one machine, each +instance of *Note `mysqld': mysqld. must use a different TCP/IP port. +However, in MySQL 5.5, running more than one cluster node of a given +type per machine is generally not encouraged or supported for +production use. + +We also advise against running data nodes and SQL nodes together on the +same host, since the *Note `ndbd': mysql-cluster-programs-ndbd. and +*Note `mysqld': mysqld. processes may compete for memory. + +*B.10.32: ** Can I use host names with MySQL Cluster? * + +Yes, it is possible to use DNS and DHCP for cluster hosts. However, if +your application requires `five nines' availability, you should use +fixed (numeric) IP addresses, since making communication between +Cluster hosts dependent on services such as DNS and DHCP introduces +additional potential points of failure. + +*B.10.33: ** Does MySQL Cluster support IPv6? * + +IPv6 is supported for connections between SQL nodes (MySQL servers), +but connections between all other types of MySQL Cluster nodes must use +IPv4. + +In practical terms, this means that you can use IPv6 for replication +between MySQL Clusters, but connections between nodes in the same MySQL +Cluster must use IPv4. For more information, see *Note +mysql-cluster-replication-issues::. + +*B.10.34: ** How do I handle MySQL users in a MySQL Cluster having +multiple MySQL servers? * + +MySQL user accounts and privileges are normally not automatically +propagated between different MySQL servers accessing the same MySQL +Cluster. Beginning with MySQL Cluster NDB 7.2, MySQL Cluster provides +support for distributed privileges. While privilege distribution is not +enabled automatically, you can activate it by following a procedure +provided in the MySQL Cluster documentation. See *Note +mysql-cluster-privilege-distribution::, for more information. + +*B.10.35: ** How do I continue to send queries in the event that one of +the SQL nodes fails? * + +MySQL Cluster does not provide any sort of automatic failover between +SQL nodes. Your application must be prepared to handlethe loss of SQL +nodes and to fail over between them. + +*B.10.36: ** How do I back up and restore a MySQL Cluster? * + +You can use the NDB native backup and restore functionality in the +MySQL Cluster management client and the *Note `ndb_restore': +mysql-cluster-programs-ndb-restore. program. See *Note +mysql-cluster-backup::, and *Note mysql-cluster-programs-ndb-restore::. + +You can also use the traditional functionality provided for this +purpose in *Note `mysqldump': mysqldump. and the MySQL server. See +*Note mysqldump::, for more information. + +*B.10.37: ** What is an `angel process'? * + +This process monitors and, if necessary, attempts to restart the data +node process. If you check the list of active processes on your system +after starting *Note `ndbd': mysql-cluster-programs-ndbd, you can see +that there are actually 2 processes running by that name, as shown here +(we omit the output from *Note `ndb_mgmd': +mysql-cluster-programs-ndb-mgmd. and *Note `ndbd': +mysql-cluster-programs-ndbd. for brevity): + + shell> ./ndb_mgmd + + shell> ps aux | grep ndb + me 23002 0.0 0.0 122948 3104 ? Ssl 14:14 0:00 ./ndb_mgmd + me 23025 0.0 0.0 5284 820 pts/2 S+ 14:14 0:00 grep ndb + + shell> ./ndbd -c 127.0.0.1 --initial + + shell> ps aux | grep ndb + me 23002 0.0 0.0 123080 3356 ? Ssl 14:14 0:00 ./ndb_mgmd + me 23096 0.0 0.0 35876 2036 ? Ss 14:14 0:00 ./ndbd -c 127.0.0.1 --initial + me 23097 1.0 2.4 524116 91096 ? Sl 14:14 0:00 ./ndbd -c 127.0.0.1 --initial + me 23168 0.0 0.0 5284 812 pts/2 R+ 14:15 0:00 grep ndb + +The *Note `ndbd': mysql-cluster-programs-ndbd. process showing 0 memory +and CPU usage is the angel process. It actually does use a very small +amount of each, of course. It simply checks to see if the main *Note +`ndbd': mysql-cluster-programs-ndbd. process (the primary data node +process that actually handles the data) is running. If permitted to do +so (for example, if the `StopOnError' configuration parameter is set to +false--see *Note mysql-cluster-params-ndbd::), the angel process tries +to restart the primary data node process.  File: manual.info, Node: faqs-cjk, Next: faqs-connectors-apis, Prev: faqs-mysql-cluster, Up: faqs @@ -225530,7 +228279,7 @@ * *Note connector-net-programming:: - * *Note connector-j-usagenotes:: + * *Note connector-j:: * *Note connector-mxj-usagenotes:: @@ -225540,8 +228289,293 @@ B.13 MySQL 5.5 FAQ: Replication =============================== -For answers to common queries and question regarding Replication within -MySQL, see *Note replication-faq::. +In the following section, we provide answers to questions that are most +frequently asked about MySQL Replication. + +*Questions* + * B.13.1: Must the slave be connected to the master all the time? + + * B.13.2: Must I enable networking on my master and slave to enable + replication? + + * B.13.3: How do I know how late a slave is compared to the master? + In other words, how do I know the date of the last statement + replicated by the slave? + + * B.13.4: How do I force the master to block updates until the slave + catches up? + + * B.13.5: What issues should I be aware of when setting up two-way + replication? + + * B.13.6: How can I use replication to improve performance of my + system? + + * B.13.7: What should I do to prepare client code in my own + applications to use performance-enhancing replication? + + * B.13.8: When and how much can MySQL replication improve the + performance of my system? + + * B.13.9: How can I use replication to provide redundancy or high + availability? + + * B.13.10: How do I tell whether a master server is using + statement-based or row-based binary logging format? + + * B.13.11: How do I tell a slave to use row-based replication? + + * B.13.12: How do I prevent *Note `GRANT': grant. and *Note + `REVOKE': revoke. statements from replicating to slave machines? + + * B.13.13: Does replication work on mixed operating systems (for + example, the master runs on Linux while slaves run on Mac OS X and + Windows)? + + * B.13.14: Does replication work on mixed hardware architectures (for + example, the master runs on a 64-bit machine while slaves run on + 32-bit machines)? + +*Questions and Answers* *B.13.1: ** Must the slave be connected to the +master all the time? * + +No, it does not. The slave can go down or stay disconnected for hours +or even days, and then reconnect and catch up on updates. For example, +you can set up a master/slave relationship over a dial-up link where +the link is up only sporadically and for short periods of time. The +implication of this is that, at any given time, the slave is not +guaranteed to be in synchrony with the master unless you take some +special measures. + +To ensure that catchup can occur for a slave that has been +disconnected, you must not remove binary log files from the master that +contain information that has not yet been replicated to the slaves. +Asynchronous replication can work only if the slave is able to continue +reading the binary log from the point where it last read events. + +*B.13.2: ** Must I enable networking on my master and slave to enable +replication? * + +Yes, networking must be enabled on the master and slave. If networking +is not enabled, the slave cannot connect to the master and transfer the +binary log. Check that the `skip-networking' option has not been +enabled in the configuration file for either server. + +*B.13.3: ** How do I know how late a slave is compared to the master? In +other words, how do I know the date of the last statement replicated by +the slave? * + +Check the `Seconds_Behind_Master' column in the output from *Note `SHOW +SLAVE STATUS': show-slave-status. See *Note +replication-administration-status::. + +When the slave SQL thread executes an event read from the master, it +modifies its own time to the event timestamp. (This is why *Note +`TIMESTAMP': datetime. is well replicated.) In the `Time' column in the +output of *Note `SHOW PROCESSLIST': show-processlist, the number of +seconds displayed for the slave SQL thread is the number of seconds +between the timestamp of the last replicated event and the real time of +the slave machine. You can use this to determine the date of the last +replicated event. Note that if your slave has been disconnected from +the master for one hour, and then reconnects, you may immediately see +large `Time' values such as 3600 for the slave SQL thread in *Note +`SHOW PROCESSLIST': show-processlist. This is because the slave is +executing statements that are one hour old. See *Note +replication-implementation-details::. + +*B.13.4: ** How do I force the master to block updates until the slave +catches up? * + +Use the following procedure: + + 1. On the master, execute these statements: + + mysql> FLUSH TABLES WITH READ LOCK; + mysql> SHOW MASTER STATUS; + + Record the replication coordinates (the current binary log file + name and position) from the output of the *Note `SHOW': show. + statement. + + 2. On the slave, issue the following statement, where the arguments + to the `MASTER_POS_WAIT()' function are the replication coordinate + values obtained in the previous step: + + mysql> SELECT MASTER_POS_WAIT('LOG_NAME', LOG_POS); + + The *Note `SELECT': select. statement blocks until the slave + reaches the specified log file and position. At that point, the + slave is in synchrony with the master and the statement returns. + + 3. On the master, issue the following statement to enable the master + to begin processing updates again: + + mysql> UNLOCK TABLES; + +*B.13.5: ** What issues should I be aware of when setting up two-way +replication? * + +MySQL replication currently does not support any locking protocol +between master and slave to guarantee the atomicity of a distributed +(cross-server) update. In other words, it is possible for client A to +make an update to co-master 1, and in the meantime, before it +propagates to co-master 2, client B could make an update to co-master 2 +that makes the update of client A work differently than it did on +co-master 1. Thus, when the update of client A makes it to co-master 2, +it produces tables that are different from what you have on co-master 1, +even after all the updates from co-master 2 have also propagated. This +means that you should not chain two servers together in a two-way +replication relationship unless you are sure that your updates can +safely happen in any order, or unless you take care of mis-ordered +updates somehow in the client code. + +You should also realize that two-way replication actually does not +improve performance very much (if at all) as far as updates are +concerned. Each server must do the same number of updates, just as you +would have a single server do. The only difference is that there is a +little less lock contention because the updates originating on another +server are serialized in one slave thread. Even this benefit might be +offset by network delays. + +*B.13.6: ** How can I use replication to improve performance of my +system? * + +Set up one server as the master and direct all writes to it. Then +configure as many slaves as you have the budget and rackspace for, and +distribute the reads among the master and the slaves. You can also +start the slaves with the `--skip-innodb', `--low-priority-updates', and +`--delay-key-write=ALL' options to get speed improvements on the slave +end. In this case, the slave uses nontransactional `MyISAM' tables +instead of `InnoDB' tables to get more speed by eliminating +transactional overhead. + +*B.13.7: ** What should I do to prepare client code in my own +applications to use performance-enhancing replication? * + +See the guide to using replication as a scale-out solution, *Note +replication-solutions-scaleout::. + +*B.13.8: ** When and how much can MySQL replication improve the +performance of my system? * + +MySQL replication is most beneficial for a system that processes +frequent reads and infrequent writes. In theory, by using a +single-master/multiple-slave setup, you can scale the system by adding +more slaves until you either run out of network bandwidth, or your +update load grows to the point that the master cannot handle it. + +To determine how many slaves you can use before the added benefits +begin to level out, and how much you can improve performance of your +site, you must know your query patterns, and determine empirically by +benchmarking the relationship between the throughput for reads and +writes on a typical master and a typical slave. The example here shows +a rather simplified calculation of what you can get with replication +for a hypothetical system. Let `reads' and `writes' denote the number +of reads and writes per second, respectively. + +Let's say that system load consists of 10% writes and 90% reads, and we +have determined by benchmarking that `reads' is 1200 - 2 * `writes'. In +other words, the system can do 1,200 reads per second with no writes, +the average write is twice as slow as the average read, and the +relationship is linear. Suppose that the master and each slave have the +same capacity, and that we have one master and N slaves. Then we have +for each server (master or slave): + +`reads' = 1200 - 2 * `writes' + +`reads' = 9 * `writes' / (N + 1) (reads are split, but writes +replicated to all slaves) + +9 * `writes' / (N + 1) + 2 * `writes' = 1200 + +`writes' = 1200 / (2 + 9/(N + 1)) + +The last equation indicates the maximum number of writes for N slaves, +given a maximum possible read rate of 1,200 per minute and a ratio of +nine reads per write. + +This analysis yields the following conclusions: + + * If N = 0 (which means we have no replication), our system can + handle about 1200/11 = 109 writes per second. + + * If N = 1, we get up to 184 writes per second. + + * If N = 8, we get up to 400 writes per second. + + * If N = 17, we get up to 480 writes per second. + + * Eventually, as N approaches infinity (and our budget negative + infinity), we can get very close to 600 writes per second, + increasing system throughput about 5.5 times. However, with only + eight servers, we increase it nearly four times. + +Note that these computations assume infinite network bandwidth and +neglect several other factors that could be significant on your system. +In many cases, you may not be able to perform a computation similar to +the one just shown that accurately predicts what will happen on your +system if you add N replication slaves. However, answering the +following questions should help you decide whether and by how much +replication will improve the performance of your system: + + * What is the read/write ratio on your system? + + * How much more write load can one server handle if you reduce the + reads? + + * For how many slaves do you have bandwidth available on your + network? + +*B.13.9: ** How can I use replication to provide redundancy or high +availability? * + +How you implement redundancy is entirely dependent on your application +and circumstances. High-availability solutions (with automatic +failover) require active monitoring and either custom scripts or third +party tools to provide the failover support from the original MySQL +server to the slave. + +To handle the process manually, you should be able to switch from a +failed master to a pre-configured slave by altering your application to +talk to the new server or by adjusting the DNS for the MySQL server +from the failed server to the new server. + +For more information and some example solutions, see *Note +replication-solutions-switch::. + +*B.13.10: ** How do I tell whether a master server is using +statement-based or row-based binary logging format? * + +Check the value of the `binlog_format' system variable: + + mysql> SHOW VARIABLES LIKE 'binlog_format'; + +The value shown will be one of `STATEMENT', `ROW', or `MIXED'. For +`MIXED' mode, row-based logging is preferred but replication switches +automatically to statement-based logging under certain conditions; for +information about when this may occur, see *Note binary-log-mixed::. + +*B.13.11: ** How do I tell a slave to use row-based replication? * + +Slaves automatically know which format to use. + +*B.13.12: ** How do I prevent *Note `GRANT': grant. and *Note `REVOKE': +revoke. statements from replicating to slave machines? * + +Start the server with the `--replicate-wild-ignore-table=mysql.%' +option to ignore replication for tables in the `mysql' database. + +*B.13.13: ** Does replication work on mixed operating systems (for +example, the master runs on Linux while slaves run on Mac OS X and +Windows)? * + +Yes. + +*B.13.14: ** Does replication work on mixed hardware architectures (for +example, the master runs on a 64-bit machine while slaves run on 32-bit +machines)? * + +Yes.  File: manual.info, Node: faqs-mysql-drbd-heartbeat, Prev: faqs-replication, Up: faqs @@ -229516,6 +232550,24 @@ Message: Plugin '%s' is marked as not dynamically installable. You have to stop the server to install it. + * Error: `1722' SQLSTATE: `HY000' + (`ER_BINLOG_UNSAFE_WRITE_AUTOINC_SELECT') + + Message: Statements writing to a table with an auto-increment + column after selecting from another table are unsafe because the + order in which rows are retrieved determines what (if any) rows + will be written. This order cannot be predicted and may differ on + master and the slave. + + * Error: `1723' SQLSTATE: `HY000' + (`ER_BINLOG_UNSAFE_CREATE_SELECT_AUTOINC') + + Message: CREATE TABLE... SELECT... on a table with an + auto-increment column is unsafe because the order in which rows + are retrieved by the SELECT determines which (if any) rows are + inserted. This order cannot be predicted and may differ on master + and the slave. +  File: manual.info, Node: error-messages-client, Next: problems, Prev: error-messages-server, Up: error-handling @@ -230721,6 +233773,12 @@ constraints on file sizes, not by MySQL internal limits. See *Note table-size-limit::. +This error can occur sometimes for MySQL Cluster tables even when there +appears to be more than sufficient data memory available. See the +documentation for the `DataMemory' MySQL Cluster data node +configuration parameter, as well as *Note mysql-cluster-nodes-groups::, +for more information. +  File: manual.info, Node: cannot-create, Next: commands-out-of-sync, Prev: full-table, Up: common-errors @@ -232557,7 +235615,7 @@ This appendix lists the changes from version to version in the MySQL source code through the latest version of MySQL 5.5, which is currently -MySQL 5.5.20. We offer a version of the Manual for each series of MySQL +MySQL 5.5.23. We offer a version of the Manual for each series of MySQL releases (5.0, 5.1, and so forth). For information about changes in another release series of the MySQL database software, see the corresponding version of this Manual. @@ -232616,7 +235674,9 @@ * Menu: -* news-5-5-20:: Changes in MySQL 5.5.20 (Not yet released) +* news-5-5-22:: Changes in MySQL 5.5.22 (Not yet released) +* news-5-5-21:: Changes in MySQL 5.5.21 (17 February 2012) +* news-5-5-20:: Changes in MySQL 5.5.20 (10 January 2012) * news-5-5-19:: Changes in MySQL 5.5.19 (08 December 2011) * news-5-5-18:: Changes in MySQL 5.5.18 (16 November 2011) * news-5-5-17:: Changes in MySQL 5.5.17 (19 October 2011) @@ -232628,15 +235688,15 @@ * news-5-5-11:: Changes in MySQL 5.5.11 (07 April 2011) * news-5-5-10:: Changes in MySQL 5.5.10 (15 March 2011) * news-5-5-9:: Changes in MySQL 5.5.9 (07 February 2011) -* news-5-5-8:: Changes in MySQL 5.5.8 (03 December 2010 General Availability) +* news-5-5-8:: Changes in MySQL 5.5.8 (03 December 2010, General Availability) * news-5-5-7:: Changes in MySQL 5.5.7 (14 October 2010) -* news-5-5-6:: Changes in MySQL 5.5.6 (13 September 2010 Release Candidate) +* news-5-5-6:: Changes in MySQL 5.5.6 (13 September 2010, Release Candidate) * news-5-5-5:: Changes in MySQL 5.5.5 (06 July 2010) * news-5-5-4:: Changes in MySQL 5.5.4 (09 April 2010) -* news-5-5-3:: Changes in MySQL 5.5.3 (24 March 2010 Milestone 3) +* news-5-5-3:: Changes in MySQL 5.5.3 (24 March 2010, Milestone 3) * news-5-5-2:: Changes in MySQL 5.5.2 (12 February 2010) * news-5-5-1:: Changes in MySQL 5.5.1 (04 January 2010) -* news-5-5-0:: Changes in MySQL 5.5.0 (07 December 2009 Milestone 2) +* news-5-5-0:: Changes in MySQL 5.5.0 (07 December 2009, Milestone 2) An overview of features added in MySQL 5.5 can be found here: *Note mysql-nutshell::. For a full list of changes, please refer to the @@ -232651,13 +235711,281 @@ For changes relating to MySQL Cluster, see *Note mysql-cluster-news::.  -File: manual.info, Node: news-5-5-20, Next: news-5-5-19, Prev: news-5-5-x, Up: news-5-5-x +File: manual.info, Node: news-5-5-22, Next: news-5-5-21, Prev: news-5-5-x, Up: news-5-5-x + +D.1.1 Changes in MySQL 5.5.22 (Not yet released) +------------------------------------------------ + +*Functionality Added or Changed* + + * *InnoDB Storage Engine*: `--ignore-builtin-innodb' is now ignored + if used. (Bug #13586262) + + * yaSSL was upgraded from version 1.7.2 to 2.1.4. + +*Bugs Fixed* + + * *Important Change*: *InnoDB Storage Engine*: When a row grew in + size due to an `UPDATE' operation, other (non-updated) columns + could be moved to off-page storage so that information about the + row still fit within the constraints of the `InnoDB' page size. + The pointer to the new allocated off-page data was not set up + until the pages were allocated and written, potentially leading to + lost data if the system crashed while the column was being moved + out of the page. The problem was more common with tables using + `ROW_FORMAT=DYNAMIC' or `ROW_FORMAT=COMPRESSED' along with the + Barracuda file format, particularly with the + `innodb_file_per_table' setting enabled, because page allocation + operations are more common as the `.ibd' tablespace files are + extended. Still, the problem could occur with any combination of + InnoDB version, file format, and row format. + + A related issue was that during such an `UPDATE' operation, or an + `INSERT' operation that reused a delete-marked record, other + transactions could see invalid data for the affected column, + regardless of isolation level. + + The fix corrects the order of operations for moving the column + data off the original page and replacing it with a pointer. Now if + a crash occurs at the precise moment when the column data is being + transferred, the transfer will be re-run during crash recovery. + + In MySQL 5.1, this fix applies to the InnoDB Plugin, but not the + built-in InnoDB storage engine. (Bug #13721257, Bug #12612184, + Bug #12704861) + + * *InnoDB Storage Engine*: An erroneous assertion could occur, in + debug builds only, when creating an index on a column containing + zero-length values (that is, `'''). (Bug #13654923) + + * *InnoDB Storage Engine*: A DDL operation such as `ALTER TABLE ... + ADD COLUMN' could stall, eventually timing out with an `Error + 1005: Can't create table' message referring to + `fil_rename_tablespace'. (Bug #13636122, Bug #62100, Bug #63553) + + * *InnoDB Storage Engine*: A DDL operation for an `InnoDB' table + could cause a busy MySQL server to halt with an assertion error: + + InnoDB: Failing assertion: trx->error_state == DB_SUCCESS + + The error occurred if the DDL operation was run while all 1023 + undo slots were in use by concurrent transactions. This error was + less likely to occur in MySQL 5.5 and 5.6, because raising the + number of `InnoDB' undo slots increased the number of simultaneous + transactions (corresponding to the number of undo slots) from 1K + to 128K. (Bug #12739098, Bug #62401) + + * *InnoDB Storage Engine*: Server startup could produce an error for + temporary tables using the `InnoDB' storage engine, if the path in + the `$TMPDIR' variable ended with a `/' character. The error log + would look like: + + 120202 19:21:26 InnoDB: Operating system error number 2 in a file operation. + InnoDB: The error means the system cannot find the path specified. + InnoDB: If you are installing InnoDB, remember that you must create + InnoDB: directories yourself, InnoDB does not create them. + 120202 19:21:26 InnoDB: Error: trying to open a table, but could not + InnoDB: open the tablespace file './t/#sql7750_1_0.ibd'! + InnoDB: Have you moved InnoDB .ibd files around without using the + InnoDB: commands DISCARD TABLESPACE and IMPORT TABLESPACE? + InnoDB: It is also possible that this is a temporary table #sql..., + InnoDB: and MySQL removed the .ibd file for this. + + The workaround for the problem was to create a similar temporary + table again, copy its `.frm' file to `tmpdir' under the name + mentioned in the error message (for example, `#sql123.frm') and + restart `mysqld' with `tmpdir' set to its normal value without a + trailing slash, for example `/var/tmp'. On startup, MySQL would + see the `.frm' file and issue `DROP TABLE' for the orphaned + temporary table. (Bug #11754376, Bug #45976) + + * *Replication*: Statements that wrote to tables with + `AUTO_INCREMENT' columns based on an unordered `SELECT' from + another table could lead to the master and the slave going out of + sync, as the order in which the rows are retrieved from the table + may differ between them. Such statements include any *Note + `INSERT ... SELECT': insert-select, *Note `REPLACE ... SELECT': + replace, or *Note `CREATE TABLE ... SELECT': create-table-select. + statement. Such statements are now marked as unsafe for + statement-based replication, which causes the execution of one to + throw a warning, and forces the statement to be logged using the + row-based format if the logging format is `MIXED'. (Bug + #11758263, Bug #50440) + + * `myisam_sort_buffer_size' could not be set larger than 4GB on + 64-bit systems. (Bug #45702, Bug #11754145) + + +File: manual.info, Node: news-5-5-21, Next: news-5-5-20, Prev: news-5-5-22, Up: news-5-5-x -D.1.1 Changes in MySQL 5.5.20 (Not yet released) +D.1.2 Changes in MySQL 5.5.21 (17 February 2012) ------------------------------------------------ *Functionality Added or Changed* + * A new `CMake' option, `MYSQL_PROJECT_NAME', can be set on Windows + or Mac OS X to be used in the project name. (Bug #13551687) + +*Bugs Fixed* + + * *Performance*: *InnoDB Storage Engine*: Memory allocation for + `InnoDB' tables was reorganized to reduce the memory overhead for + large numbers of tables or partitions, avoiding situations where + the `resident set size' could grow regardless of `FLUSH TABLES' + statements. The problem was most evident for tables with large row + size. Some of the memory that was formerly allocated for every + open table is now allocated only when the table is modified for + the first time. (Bug #11764622, Bug #57480) + + * *Incompatible Change*: An earlier change (in MySQL 5.1.59 and + 5.5.16) was found to modify date-handling behavior in General + Availability-status series (MySQL 5.1 and 5.5). This change has + been reverted. + + The change was that several functions became more strict when + passed a `DATE()' function value as their argument, thus they + rejected incomplete dates with a day part of zero. These functions + were affected: `CONVERT_TZ()', `DATE_ADD()', `DATE_SUB()', + `DAYOFYEAR()', `LAST_DAY()', `TIMESTAMPDIFF()', `TO_DAYS()', + `TO_SECONDS()', `WEEK()', `WEEKDAY()', `WEEKOFYEAR()', + `YEARWEEK()'. The previous behavior has been restored. (Bug + #13458237) + + * *InnoDB Storage Engine*: A Valgrind error was fixed in the function + `os_aio_init()'. (Bug #13612811) + + * *InnoDB Storage Engine*: The server could crash when creating an + `InnoDB' temporary table under Linux, if the `$TMPDIR' setting + points to a `tmpfs' filesystem and `innodb_use_native_aio' is + enabled, as it is by default in MySQL 5.5.4 and higher. The entry + in the error log looked like: + + 101123 2:10:59 InnoDB: Operating system error number 22 in a file operation. + InnoDB: Error number 22 means 'Invalid argument'. + + The crash occurred because asynchronous I/O is not supported on + tmpfs in some Linux kernel versions. The workaround was to turn + off the `innodb_use_native_aio' setting or use a different + temporary directory. The fix causes `InnoDB' to turn off the + `innodb_use_native_aio' setting automatically if it detects that + the temporary file directory does not support asynchronous I/O. + (Bug #13593888, Bug #11765450, Bug #58421) + + * *InnoDB Storage Engine*: References to C preprocessor symbols and + macros `HAVE_purify', `UNIV_INIT_MEM_TO_ZERO', and + `UNIV_SET_MEM_TO_ZERO' were removed from the `InnoDB' source code. + They were only used in debug builds instrumented for Valgrind. + They are replaced by calls to the `UNIV_MEM_INVALID()' macro. + (Bug #13418934) + + * *InnoDB Storage Engine*: The MySQL server could halt with an + assertion error: + + InnoDB: Failing assertion: page_get_n_recs(page) > 1 + + Subsequent restarts could fail with the same error. The error + occurred during a purge operation involving the `InnoDB' change + buffer. The workaround was to set the configuration option + `innodb_change_buffering=inserts'. (Bug #13413535, Bug #61104) + + * *InnoDB Storage Engine*: With 1024 concurrent `InnoDB' transactions + running concurrently and the `innodb_file_per_table' setting + enabled, a *Note `CREATE TABLE': create-table. operation for an + `InnoDB' table could fail. The `.ibd' file from the failed `CREATE + TABLE' was left behind, preventing the table from being created + later, after the load had dropped. + + The fix adds error handling to delete the erroneous `.ibd' file. + This error was less likely to occur in MySQL 5.5 and 5.6, because + raising the number of `InnoDB' undo slots increased the number of + simultaneous transactions needed to trigger the bug, from 1K to + 128K. (Bug #12400341) + + * *Replication*: Executing *Note `mysqlbinlog': mysqlbinlog. with the + `--start-position=N' option, where N was equal either to 0 or to a + value greater than the length of the dump file, caused it to crash. + + This issue was introduced in MySQL 5.5.18 by the fix for Bug + #32228 and Bug #11747416. (Bug #13593869, Bug #64035) + + * *Replication*: On Windows replication slave hosts, *Note `STOP + SLAVE': stop-slave. took an excessive length of time to complete + when the master was down. (Bug #11752315, Bug #43460) + + * A query that used an index on a *Note `CHAR': char. column + referenced in a `BETWEEN' clause could return invalid results. + (Bug #13463488, Bug #63437) + + * Expressions that compared a *Note `BIGINT': numeric-types. column + with any non-integer constant were performed using integers rather + than decimal or float values, with the result that the constant + could be truncated. This could lead to any such comparison that + used `<', `>', `<=', `>=', `=', `!='/`<>', `IN', or `BETWEEN' + yielding false positive or negative results. (Bug #13463415, Bug + #11758543, Bug #63502, Bug #50756) + + * When the optimizer performed conversion of *Note `DECIMAL': + numeric-types. values while evaluating range conditions, it could + produce incorrect results. (Bug #13453382) + + * When running *Note `mysqldump': mysqldump. with both the + `--single-transaction' and `--flush-logs' options, the flushing of + the log performed an implicit *Note `COMMIT': commit. (see *Note + implicit-commit::), causing more than one transaction to be used + and thus breaking consistency. (Bug #12809202, Bug #61854) + + * When used with the `--xml' option, *Note `mysqldump': mysqldump. + `--routines' failed to dump any stored routines, triggers, or + events. (Bug #11760384, Bug #52792) + + * It was possible in the event of successive failures for *Note + `mysqld_safe': mysqld-safe. to restart quickly enough to consume + excessive amounts of CPU. Now, on systems that support the `sleep' + and `date' system utilities, *Note `mysqld_safe': mysqld-safe. + checks to see whether it has restarted more than 5 times in the + current second, and if so, waits 1 second before attempting + another restart. (Bug #11761530, Bug #54035) + + * It was possible on replication slaves where *Note `FEDERATED': + federated-storage-engine. tables were in use to get timeouts on + long-running operations, such as Error 1160 `Got an error writing + communication packets'. The `FEDERATED' tables did not need to be + replicated for the issue to occur. (Bug #11758931, Bug #51196) + References: See also Bug #12896628, Bug #61790. + + * If an attempt to initiate a statement failed, the issue could not + be reported to the client because it was not prepared to receive + any error messages prior to the execution of any statement. Since + the user could not execute any queries, they were simply + disconnected without providing a clear error. + + After the fix for this issue, the client is prepared for an error + as soon as it attempts to initiate a statement, so that the error + can be reported prior to disconnecting the user. (Bug #11755281, + Bug #47032) + + * On Windows, the server incorrectly constructed the full path name + of the plugin binary for *Note `INSTALL PLUGIN': install-plugin. + and *Note `CREATE FUNCTION ... SONAME': create-function-udf. (Bug + #45549, Bug #11754014) + + * Using *Note `myisamchk': myisamchk. with the sort recover method + to repair a table having fixed-width row format could cause the + row pointer size to be reduced, effectively resulting in a smaller + maximum data file size. (Bug #48848, Bug #11756869) + + * The stored routine cache was subject to a small memory leak that + over time or with many routines being used could result in + out-of-memory errors. (Bug #44585, Bug #11753187) + + +File: manual.info, Node: news-5-5-20, Next: news-5-5-19, Prev: news-5-5-21, Up: news-5-5-x + +D.1.3 Changes in MySQL 5.5.20 (10 January 2012) +----------------------------------------------- + +*Functionality Added or Changed* + * A new server option, `--slow-start-timeout', controls the Windows service control manager's service start timeout. The value is the maximum number of milliseconds that the service control manager @@ -232668,6 +235996,78 @@ *Bugs Fixed* + * *Performance*: *InnoDB Storage Engine*: This fix improved the + efficiency and concurrency of freeing pages in the `InnoDB' buffer + pool when performing a *Note `DROP TABLE': drop-table. for an + `InnoDB' table when the `innodb_file_per_table' option is enabled. + + This change is most noticeable for systems with large buffer + pools. During the drop operation, one traversal of the buffer pool + memory structure is changed from the LRU list (the entire buffer + pool) to the flush list (a much smaller structure). The LRU + scanning is reduced, but not entirely eliminated. The buffer pool + mutex is also released periodically, so that if the drop operation + takes significant time, other threads can proceed concurrently. + (Bug #11759044, Bug #51325) + + * *Important Change*: *Replication*: Setting an empty user in a + *Note `CHANGE MASTER TO': change-master-to. statement caused an + invalid internal result and is no longer permitted. Trying to use + `MASTER_USER=''' or setting `MASTER_PASSWORD' while leaving + `MASTER_USER' unset causes the statement to fail with an error. + (Bug #13427949) + + * *Important Change*: *Replication*: Moving the binary log file, + relay log file, or both files to a new location, then restarting + the server with a new value for `--log-bin', `--relay-log', or + both, caused the server to abort on start. This was because the + entries in the index file overrode the new location. In addition, + paths were calculated relative to datadir (rather than to the + `--log-bin' or `--relay-log' values). + + The fix for this problem means that, when the server reads an + entry from the index file, it now checks whether the entry + contains a relative path. If it does, the relative part of the + path is replaced with the absolute path set using the `--log-bin' + or `--relay-log' option. An absolute path remains unchanged; in + such a case, the index must be edited manually to enable the new + path or paths to be used. (Bug #11745230, Bug #12133) + + * *InnoDB Storage Engine*: When doing a live downgrade from MySQL + 5.6.4 or later, with `innodb_page_size' + (http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_page_size) + set to a value other than 16384, now the earlier MySQL version + reports that the page size is incompatible with the older version, + rather than crashing or displaying a `corruption' error. (Bug + #13116225) + + * *InnoDB Storage Engine*: Certain *Note `CREATE TABLE': + create-table. statements could fail for `InnoDB' child tables + containing foreign key definitions. This problem affected Windows + systems only, with the setting `lower_case_table_names=0'. It was + a regression from MySQL bug #55222. (Bug #13083023, Bug #60229) + + * *InnoDB Storage Engine*: Issuing *Note `INSERT...ON DUPLICATE + KEY': insert. statements for `InnoDB' tables from concurrent + threads could cause a deadlock, particularly with the `INSERT...ON + DUPLICATE KEY UPDATE' form. The problem could also be triggered + by issuing multiple *Note `INSERT IGNORE': insert. statements. + The fix avoids deadlocks caused by the same row being accessed by + more than one transaction. Deadlocks could still occur when + multiple rows are inserted and updated simultaneously by different + transactions in inconsistent order; those types of deadlocks + require the standard error handling on the application side, of + re-trying the transaction. (Bug #11759688, Bug #52020, Bug + #12842206) + + * An incorrect `InnoDB' assertion could cause the server to halt. + This issue only affected debug builds. The assertion referenced + the source file `btr0pcur.ic' and the variable `cursor->pos_state'. + (Bug #13358468) + + * Locale information for `FORMAT()' function instances was lost in + view definitions. (Bug #63020, Bug #13344643) + * The `handle_segfault()' signal-handler code in *Note `mysqld': mysqld. could itself crash due to calling unsafe functions. (Bug #54082, Bug #11761576) @@ -232681,11 +236081,16 @@  File: manual.info, Node: news-5-5-19, Next: news-5-5-18, Prev: news-5-5-20, Up: news-5-5-x -D.1.2 Changes in MySQL 5.5.19 (08 December 2011) +D.1.4 Changes in MySQL 5.5.19 (08 December 2011) ------------------------------------------------ *Functionality Added or Changed* + * *Replication*: Previously, replication slaves could connect to the + master server through master accounts that use nonnative + authentication, except Windows native authentication. This is now + also true for Windows native authentication. + * Performance of metadata locking operations on Windows XP systems was improved by instituting a cache for metadata lock objects. This permits the server to avoid expensive operations for creation @@ -232693,19 +236098,22 @@ variable, `metadata_locks_cache_size', permits control over the size of the cache. The default size is 1024. (Bug #12695572) - * *Replication*: Previously, replication slaves could connect to the - master server through master accounts that use nonnative - authentication, except Windows native authentication. This is now - also true for Windows native authentication. - *Bugs Fixed* + * *Important Change*: *InnoDB Storage Engine*: If an *Note `ALTER + TABLE': alter-table. statement failed for an `InnoDB' table due to + an error code from an underlying file-renaming system call, the + `.ibd' file for the table could be lost. This issue only occurred + when the `innodb_file_per_table' configuration option was enabled, + and when the low-level error persisted through thousands of retry + attempts. In MySQL 5.1, this issue applied to the InnoDB Plugin + but not the built-in InnoDB storage engine. (Bug #12884631, Bug + #62146) + * *InnoDB Storage Engine*: An internal deadlock could occur within `InnoDB', on a server doing a substantial amount of change - buffering - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_change_buffering) - for DML operations, particularly `DELETE' statements. (Bug - #13340047) + buffering for DML operations, particularly `DELETE' statements. + (Bug #13340047) * *Replication*: When a statement containing a large number of rows to be applied on a slave table that does not contain a primary @@ -232719,15 +236127,6 @@ * Rounding `DBL_MAX' returned `DBL_MAX', not 'inf'. (Bug #13261955) - * *Note `mysql_upgrade': mysql-upgrade. did not upgrade the system - tables or create the `mysql_upgrade_info' file when run with the - `--write-binlog' or `--skip-write-binlog' option. (Bug #60223, - Bug #11827359) - - * If a plugin was uninstalled, thread local variables for plugin - variables of string type with wth `PLUGIN_VAR_MEMALLOC' flag were - not freed. (Bug #56652, Bug #11763882) - * Deadlock could occur when these four things happened at the same time: 1) An old dump thread was waiting for the binary log to grow. 2) The slave server that replicates from the old dump thread @@ -232737,10 +236136,19 @@ statement caused a binary log rotation. (Bug #56299, Bug #11763573) + * If a plugin was uninstalled, thread local variables for plugin + variables of string type with wth `PLUGIN_VAR_MEMALLOC' flag were + not freed. (Bug #56652, Bug #11763882) + + * *Note `mysql_upgrade': mysql-upgrade. did not upgrade the system + tables or create the `mysql_upgrade_info' file when run with the + `--write-binlog' or `--skip-write-binlog' option. (Bug #60223, + Bug #11827359) +  File: manual.info, Node: news-5-5-18, Next: news-5-5-17, Prev: news-5-5-19, Up: news-5-5-x -D.1.3 Changes in MySQL 5.5.18 (16 November 2011) +D.1.5 Changes in MySQL 5.5.18 (16 November 2011) ------------------------------------------------ *Functionality Added or Changed* @@ -232753,6 +236161,14 @@ *Bugs Fixed* + * *Performance*: *InnoDB Storage Engine*: The process of + deallocating the `InnoDB' Adaptive Hash Index was made faster, + during shutdown or when turning off the AHI with the statement: + + SET GLOBAL innodb_adaptive_hash_index=OFF; + + (Bug #13006367, Bug #62487) + * *Incompatible Change*: *Replication*: The statements in the following list are now marked as unsafe for statement-based replication. This is due to the fact that each of these statements @@ -232787,6 +236203,20 @@ of magnitude. See *Note replication-sbr-rbr::. (Bug #11758262, Bug #50439) + * *InnoDB Storage Engine*: Fixed a compilation problem that affected + the `InnoDB' source code with `gcc' 4.6.1. The affected `InnoDB' + source file was `btr/btr0cur.c'. (Bug #13116045) + + * *InnoDB Storage Engine*: An `UPDATE' statement for an `InnoDB' + table could hang. The issue affects tables using the Barracuda + file format and having multiple indexes on column prefixes. The + size of an undo log record could exceed the page size, even though + the total size of the column prefixes was less than the page size + (usually 16KB). In MySQL 5.5 and higher, this error is now + reported using the new code `ER_UNDO_RECORD_TOO_BIG'. In MySQL 5.1 + with the InnoDB Plugin, this error is reported using the existing + code `ER_TOO_BIG_ROWSIZE'. (Bug #12547647) + * *Replication*: A replication master could send damaged events to slaves after the binary log disk on the master became full. To correct this issue, only complete events are now pushed by the @@ -232795,20 +236225,21 @@ is found now states that the incomplete event may have been caused by running out of disk space on the master, and provides coordinates of the first and the last event bytes read. (Bug - #11747416, Bug #32228) + #11747416, Bug #32228) References: See also Bug #64035, Bug + #13593869. * During the table-opening process, memory was allocated and later freed that was needed view loading, even for statements that did not use views. These unnecessary allocation and free operations are no longer done. (Bug #13116518) + * *Note `mysql_plugin': mysql-plugin. returned the wrong error code + from failed server bootstrap execution. (Bug #12968567) + * *Note `mysql_plugin': mysql-plugin. mishandled the `--plugin-ini', `--mysqld', and `--my-print-defaults' options under some circumstances. (Bug #12968815) - * *Note `mysql_plugin': mysql-plugin. returned the wrong error code - from failed server bootstrap execution. (Bug #12968567) - * Several improvements were made to the `libedit' library bundled with MySQL distributions, and that is available for all platforms that MySQL supports except Windows. @@ -232829,14 +236260,14 @@ (Bug #12605400, Bug #12613725, Bug #12618092, Bug #12624155, Bug #12617651, Bug #12605388) - * *Note `ARCHIVE': archive-storage-engine. tables with `NULL' - columns could cause server crashes or become corrupt under - concurrent load. (Bug #51252, Bug #11758979) - * *Note `OPTIMIZE TABLE': optimize-table. could corrupt *Note `MyISAM': myisam-storage-engine. tables if `myisam_use_mmap' was enabled. (Bug #49030, Bug #11757032) + * *Note `ARCHIVE': archive-storage-engine. tables with `NULL' + columns could cause server crashes or become corrupt under + concurrent load. (Bug #51252, Bug #11758979) + * A query that selected a `GROUP_CONCAT()' function result could return different values depending on whether an `ORDER BY' of the function result was present. (Bug #41090, Bug #11750518) @@ -232848,7 +236279,7 @@  File: manual.info, Node: news-5-5-17, Next: news-5-5-16, Prev: news-5-5-18, Up: news-5-5-x -D.1.4 Changes in MySQL 5.5.17 (19 October 2011) +D.1.6 Changes in MySQL 5.5.17 (19 October 2011) ----------------------------------------------- *Functionality Added or Changed* @@ -232856,9 +236287,11 @@ * *Replication*: Previously, replication slaves could connect to the master server only through master accounts that use native authentication. Now replication slaves can also connect through - master accounts that use nonnative authentication if the required - client-side plugin is installed on the slave side in the directory - named by the slave `plugin_dir' system variable. (Bug #12897501) + master accounts that use nonnative authentication (except Windows + native authentication) if the required client-side plugin is + installed on the slave side in the directory named by the slave + `plugin_dir' system variable. The exception for Windows is lifted + in MySQL 5.5.19. (Bug #12897501) * The `make_win_bin_dist' script is no longer used and has been removed from MySQL distributions and the manual. (Bug #58241) @@ -232871,20 +236304,15 @@ *Bugs Fixed* - * *Important Change*: *InnoDB Storage Engine*: Data from BLOB - columns could be lost if the server crashed at a precise moment - when other columns were being updated in an `InnoDB' table. (Bug - #12704861) - - * *InnoDB Storage Engine*: This fix improves the performance of - instrumentation code for `InnoDB' buffer pool operations. (Bug - #12950803, Bug #62294) + * *Performance*: *InnoDB Storage Engine*: This fix improves the + performance of instrumentation code for `InnoDB' buffer pool + operations. (Bug #12950803, Bug #62294) * *InnoDB Storage Engine*: Lookups using secondary indexes could give incorrect matches under a specific set of conditions. The conditions involve an index defined on a column prefix, for a BLOB or other long column stored outside the index page, with a table - using the Barracuda file format. (Bug #12601439) + using the Barracuda file format. (Bug #12601439, Bug #12543666) * *InnoDB Storage Engine*: This fix corrects cases where the MySQL server could hang or abort with a `long semaphore wait' message. @@ -232911,13 +236339,13 @@ `--defaults-extra-file' and `--no-defaults' options. (Bug #58898, Bug #11765888) + * *Note `myisampack': myisampack. could create corrupt `FULLTEXT' + indexes when compressing tables. (Bug #53646, Bug #11761180) + * An assertion designed to detect zero-length sort keys also was raised when the entire key set fit in memory. (Bug #58200, Bug #11765254) - * *Note `myisampack': myisampack. could create corrupt `FULLTEXT' - indexes when compressing tables. (Bug #53646, Bug #11761180) - * A linking problem prevented the *Note `FEDERATED': federated-storage-engine. storage engine plugin from loading. (Bug #40942, Bug #11750417) @@ -232925,47 +236353,11 @@  File: manual.info, Node: news-5-5-16, Next: news-5-5-15, Prev: news-5-5-17, Up: news-5-5-x -D.1.5 Changes in MySQL 5.5.16 (15 September 2011) +D.1.7 Changes in MySQL 5.5.16 (15 September 2011) ------------------------------------------------- -*Thread Pool Plugin Notes* - * The default thread-handling model in MySQL Server executes - statements using one thread per client connection. As more clients - connect to the server and execute statements, overall performance - degrades. Commercial distributions of MySQL now include a thread - pool plugin that provides an alternative thread-handling model - designed to reduce overhead and improve performance. The plugin - implements a thread pool that increases server performance by - efficiently managing statement execution threads for large numbers - of client connections. - - The thread pool addresses several problems of the one thread per - connection model: - - * Too many thread stacks make CPU caches almost useless in - highly parallel execution workloads. The thread pool promotes - thread stack reuse to minimize the CPU cache footprint. - - * With too many threads executing in parallel, context - switching overhead is high. This also presents a challenging - task to the operating system scheduler. The thread pool - controls the number of active threads to keep the parallelism - within the MySQL server at a level that it can handle and - that is appropriate for the server host on which MySQL is - executing. - - * Too many transactions executing in parallel increases - resource contention. In *Note `InnoDB': innodb-storage-engine, - this increases the time spent holding central mutexes. The - thread pool controls when transactions start to ensure that - not too many execute in parallel. - - On Windows, the thread pool plugin requires Windows Vista or - newer. On Linux, the plugin requires kernel 2.6.9 or newer. - - For more information, see *Note thread-pool-plugin::. - *External Authentication* + * Commercial distributions of MySQL now include two plugins that enable MySQL Server to use external authentication methods to authenticate MySQL users: @@ -233040,6 +236432,44 @@ pluggable-authentication::. For proxy user information, see *Note proxy-users::. +*Thread Pool Plugin Notes* + + * The default thread-handling model in MySQL Server executes + statements using one thread per client connection. As more clients + connect to the server and execute statements, overall performance + degrades. Commercial distributions of MySQL now include a thread + pool plugin that provides an alternative thread-handling model + designed to reduce overhead and improve performance. The plugin + implements a thread pool that increases server performance by + efficiently managing statement execution threads for large numbers + of client connections. + + The thread pool addresses several problems of the one thread per + connection model: + + * Too many thread stacks make CPU caches almost useless in + highly parallel execution workloads. The thread pool promotes + thread stack reuse to minimize the CPU cache footprint. + + * With too many threads executing in parallel, context + switching overhead is high. This also presents a challenging + task to the operating system scheduler. The thread pool + controls the number of active threads to keep the parallelism + within the MySQL server at a level that it can handle and + that is appropriate for the server host on which MySQL is + executing. + + * Too many transactions executing in parallel increases + resource contention. In *Note `InnoDB': innodb-storage-engine, + this increases the time spent holding central mutexes. The + thread pool controls when transactions start to ensure that + not too many execute in parallel. + + On Windows, the thread pool plugin requires Windows Vista or + newer. On Linux, the plugin requires kernel 2.6.9 or newer. + + For more information, see *Note thread-pool-plugin::. + *Functionality Added or Changed* * *Important Change*: *Replication*: The *Note `RESET SLAVE': @@ -233049,10 +236479,12 @@ all connection information otherwise held in memory following execution of *Note `RESET SLAVE': reset-slave. (Bug #11809016) - * The thread pool plugin should be loaded at server startup, and not - loaded or unloaded at runtime. An error now occurs for attempts to - load or unload it with the *Note `INSTALL PLUGIN': install-plugin. - or *Note `UNINSTALL PLUGIN': uninstall-plugin. statement. + * A new utility, *Note `mysql_plugin': mysql-plugin, enables MySQL + administrators to manage which plugins a MySQL server loads. It + provides an alternative to manually specifying the `--plugin-load' + option at server startup or using the *Note `INSTALL PLUGIN': + install-plugin. and *Note `UNINSTALL PLUGIN': uninstall-plugin. + statements at runtime. See *Note mysql-plugin::. * Some plugins operate in such a matter that they should be loaded at server startup, and not loaded or unloaded at runtime. The @@ -233071,38 +236503,69 @@ from `0x0102' to `0x0103'. Plugins that require access to the new member must be recompiled to use version `0x0103' or higher. - * A new utility, *Note `mysql_plugin': mysql-plugin, enables MySQL - administrators to manage which plugins a MySQL server loads. It - provides an alternative to manually specifying the `--plugin-load' - option at server startup or using the *Note `INSTALL PLUGIN': - install-plugin. and *Note `UNINSTALL PLUGIN': uninstall-plugin. - statements at runtime. See *Note mysql-plugin::. + * The thread pool plugin should be loaded at server startup, and not + loaded or unloaded at runtime. An error now occurs for attempts to + load or unload it with the *Note `INSTALL PLUGIN': install-plugin. + or *Note `UNINSTALL PLUGIN': uninstall-plugin. statement. *Bugs Fixed* - * *InnoDB Storage Engine*: This fix improves the performance of - operations on `VARCHAR(N)' columns in `InnoDB' tables, where N is - declared as a large value but the actual string values in the - table are short. (Bug #12835650) + * *Performance*: *InnoDB Storage Engine*: This fix improves the + performance of operations on `VARCHAR(N)' columns in `InnoDB' + tables, where N is declared as a large value but the actual string + values in the table are short. (Bug #12835650) + + * *Performance*: *InnoDB Storage Engine*: The `random read-ahead' + feature that was removed from the `InnoDB' Plugin is now available + again. Because it is only helpful for certain workloads, it is + turned off by default. To turn it on, enable the + `innodb_random_read_ahead' configuration option. Because this + feature can improve performance in some cases and reduce + performance in others, before relying on this setting, benchmark + both with and without the setting enabled. (Bug #12356373) + + * *Incompatible Change*: Handling of a date-related assertion was + modified. + + However, a consequence of this change is that several functions + become more strict when passed a `DATE()' function value as their + argument and reject incomplete dates with a day part of zero. + These functions are affected: `CONVERT_TZ()', `DATE_ADD()', + `DATE_SUB()', `DAYOFYEAR()', `LAST_DAY()', `TIMESTAMPDIFF()', + `TO_DAYS()', `TO_SECONDS()', `WEEK()', `WEEKDAY()', `WEEKOFYEAR()', + `YEARWEEK()'. Because this changes date-handling behavior in + General Availability-status series (MySQL 5.1 and 5.5), it was + reverted in 5.1.62 and 5.5.21. The change is retained in MySQL 5.6. + + References: See also Bug #13458237. * *InnoDB Storage Engine*: The `DATA_LENGTH' column in the *Note `INFORMATION_SCHEMA.TABLES': tables-table. table now correctly reports the on-disk sizes of tablespaces for `InnoDB' compressed tables. (Bug #12770537) + * *InnoDB Storage Engine*: With the configuration settings + `innodb_file_per_table=1' and `innodb_file_format=Barracuda', + inserting a column value greater than half the page size, and + including that column in a secondary index, could cause a crash + when that column value was updated. (Bug #12637786) + * *InnoDB Storage Engine*: Unused functions were removed from the internal `InnoDB' code related to mini-transactions, to clarify the logic. (Bug #12626794, Bug #61240) - * *InnoDB Storage Engine*: The `random read-ahead - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_read_ahead)' - feature that was removed from the `InnoDB' Plugin is now available - again. Because it is only helpful for certain workloads, it is - turned off by default. To turn it on, enable the - `innodb_random_read_ahead' configuration option. Because this - feature can improve performance in some cases and reduce - performance in others, before relying on this setting, benchmark - both with and without the setting enabled. (Bug #12356373) + * *Replication*: Processing of corrupted table map events could + cause the server to crash. This was especially likely if the + events mapped different tables to the same identifier, such as + could happen due to Bug #56226. + + Now, before applying a table map event, the server checks whether + the table has already been mapped with different settings, and if + so, an error is raised and the slave SQL thread stops. If it has + been mapped with the same settings, or if the table is set to be + ignored by filtering rules, there is no change in behavior: the + event is skipped and IDs are not checked. (Bug #44360, Bug + #11753004) References: See also Bug #11763509. * The metadata locking subsystem added too much overhead for `INFORMATION_SCHEMA' queries that were processed by opening only @@ -233115,6 +236578,7 @@ * With profiling disabled or not compiled in, `set_thd_proc_info()' unnecessarily checked file name lengths. (Bug #12756017) + References: This bug is a regression of Bug #59273. * A `DBUG_ASSERT' added by Bug #11792200 was overly aggressive in raising assertions. (Bug #12537160) @@ -233125,19 +236589,6 @@ with the wrong storage engine. Issues were reported only for the first underlying table. (Bug #11754210) - * *Replication*: Processing of corrupted table map events could - cause the server to crash. This was especially likely if the - events mapped different tables to the same identifier, such as - could happen due to Bug#56226. - - Now, before applying a table map event, the server checks whether - the table has already been mapped with different settings, and if - so, an error is raised and the slave SQL thread stops. If it has - been mapped with the same settings, or if the table is set to be - ignored by filtering rules, there is no change in behavior: the - event is skipped and IDs are not checked. (Bug #44360, Bug - #11753004) See also Bug #11763509. - * `(5 DIV 2)' and `(5.0 DIV 2)' produced different results (2 versus 3) because the result of the latter expression was not truncated before conversion to integer. This differed from the behavior in @@ -233149,32 +236600,32 @@ qualified name including the database name failed. (Bug #60347, Bug #11840395) + * The embedded server crashed when `argc = 0'. (Bug #57931, Bug + #12561297) + * `SELECT DISTINCT' with a deterministic stored function in the `WHERE' clause could produce incorrect results. (Bug #59736, Bug #11766594) - * The embedded server crashed when `argc = 0'. (Bug #57931, Bug - #12561297) - - * *Note `CREATE TABLE': create-table. without an `ENGINE' option - determined the default engine at parse rather than execution time. - This led to incorrect results if the statement was executed within - a stored program and the default engine had been changed in the - meantime. (Bug #50614, Bug #11758414) + * Upgrades using an RPM package recreated the `test' database, which + is undesirable when the DBA had removed it. (Bug #45415, Bug + #11753896) * The `mysql_affected_rows()' C API function returned 3 (instead of 2) for *Note `INSERT ... ON DUPLICATE KEY UPDATE': insert-on-duplicate. statements where there was a duplicated key value. (Bug #46675, Bug #11754979) - * Upgrades using an RPM package recreated the `test' database, which - is undesirable when the DBA had removed it. (Bug #45415, Bug - #11753896) + * *Note `CREATE TABLE': create-table. without an `ENGINE' option + determined the default engine at parse rather than execution time. + This led to incorrect results if the statement was executed within + a stored program and the default engine had been changed in the + meantime. (Bug #50614, Bug #11758414)  File: manual.info, Node: news-5-5-15, Next: news-5-5-14, Prev: news-5-5-16, Up: news-5-5-x -D.1.6 Changes in MySQL 5.5.15 (28 July 2011) +D.1.8 Changes in MySQL 5.5.15 (28 July 2011) -------------------------------------------- *Functionality Added or Changed* @@ -233184,17 +236635,17 @@ *Bugs Fixed* + * *Performance*: *InnoDB Storage Engine*: The *Note `DROP TABLE': + drop-table. command for an `InnoDB' table could be very slow, in a + configuration with a combination of table compression, + partitioning, and a large buffer pool. (Bug #12635227, Bug #61188) + * *InnoDB Storage Engine*: A failed `CREATE INDEX' operation for an `InnoDB' table could result in some memory being allocated but not freed. This memory leak could affect tables created with the `ROW_FORMAT=DYNAMIC' or `ROW_FORMAT=COMPRESSED' setting. (Bug #12699505) - * *InnoDB Storage Engine*: The *Note `DROP TABLE': drop-table. - command for an `InnoDB' table could be very slow, in a - configuration with a combination of table compression, - partitioning, and a large buffer pool. (Bug #12635227, Bug #61188) - * *Partitioning*: Auto-increment columns of partitioned tables were checked even when they were not being written to. In debug builds, this could lead to a server crash. (Bug #11765667, Bug #58655) @@ -233203,6 +236654,20 @@ a monotonic function for purposes of partition pruning. (Bug #11746819, Bug #28928) + * *Replication*: If a *Note `LOAD DATA INFILE': load-data. + statement--replicated using statement-based replication--featured a + *Note `SET': set. clause, the name-value pairs were regenerated + using a method (`Item::print()') intended primarily for generating + output for statements such as *Note `EXPLAIN EXTENDED': explain, + and which cannot be relied on to return valid SQL. This could in + certain cases lead to a crash on the slave. + + To fix this problem, the server now names each value in its + original, user-supplied form, and uses that to create *Note `LOAD + DATA INFILE': load-data. statements for statement-based + replication. (Bug #60580, Bug #11902767) References: See also Bug + #34283, Bug #11752526, Bug #43746. + * Compiling the server with maintainer mode enabled failed for `gcc' 4.6 or higher. (Bug #12727287) @@ -233218,22 +236683,8 @@ perform an update that may physically move the row in at least one of these aliases. Now the error message is: `Primary key/partition key update is not permitted since the table is updated both as - 'TBL_NAME1' and 'TBL_NAME2'' (Bug #11882110) See also Bug - #11764529. - - * *Replication*: If a *Note `LOAD DATA INFILE': load-data. - statement--replicated using statement-based replication--featured a - *Note `SET': set. clause, the name-value pairs were regenerated - using a method (`Item::print()') intended primarily for generating - output for statements such as *Note `EXPLAIN EXTENDED': explain, - and which cannot be relied on to return valid SQL. This could in - certain cases lead to a crash on the slave. - - To fix this problem, the server now names each value in its - original, user-supplied form, and uses that to create *Note `LOAD - DATA INFILE': load-data. statements for statement-based - replication. (Bug #60580, Bug #11902767) See also Bug #34283, Bug - #11752526, Bug #43746. + 'TBL_NAME1' and 'TBL_NAME2'' (Bug #11882110) References: See also + Bug #11764529. * *Note `ALTER TABLE {MODIFY|CHANGE} ... FIRST': alter-table. did nothing except rename columns if the old and new versions of the @@ -233244,6 +236695,14 @@ produce a new version of the table with exactly the same structure as the old version. (Bug #61493, Bug #12652385) + * In debug builds, `Field_new_decimal::store_value()' was subject to + buffer overflows. (Bug #55436, Bug #11762799) + + * *Note `LOAD DATA INFILE': load-data. incorrectly parsed relative + data file path names that ascended more than three levels in the + file system and as a consequence was unable to find the file. + (Bug #60987, Bug #12403662) + * Incorrect handling of metadata locking for *Note `FLUSH TABLES WITH READ LOCK': flush. for statements requiring prelocking caused two problems: @@ -233263,27 +236722,19 @@ (Bug #61401, Bug #12641342) + * For *Note `MyISAM': myisam-storage-engine. tables, attempts to + insert incorrect data into an indexed `GEOMETRY' column could + result in table corruption. (Bug #57323, Bug #11764487) + * The fractional part of the `Queries per second' value could be displayed incorrectly in MySQL status output (for example, in the output from *Note `mysqladmin status': mysqladmin. or the *Note `mysql': mysql. `STATUS' command). (Bug #61205, Bug #12565712) - * *Note `LOAD DATA INFILE': load-data. incorrectly parsed relative - data file path names that ascended more than three levels in the - file system and as a consequence was unable to find the file. - (Bug #60987, Bug #12403662) - * For unknown users, the native password plugin reported incorrectly that no password had been specified even when it had. (Bug #59792, Bug #11766641) - * For *Note `MyISAM': myisam-storage-engine. tables, attempts to - insert incorrect data into an indexed `GEOMETRY' column could - result in table corruption. (Bug #57323, Bug #11764487) - - * In debug builds, `Field_new_decimal::store_value()' was subject to - buffer overflows. (Bug #55436, Bug #11762799) - * A race condition between loading a stored routine using the name qualified by the database name and dropping that database resulted in a spurious error message: `The table mysql.proc is missing, @@ -233292,7 +236743,7 @@  File: manual.info, Node: news-5-5-14, Next: news-5-5-13, Prev: news-5-5-15, Up: news-5-5-x -D.1.7 Changes in MySQL 5.5.14 (05 July 2011) +D.1.9 Changes in MySQL 5.5.14 (05 July 2011) -------------------------------------------- *Functionality Added or Changed* @@ -233312,8 +236763,8 @@ * *InnoDB Storage Engine*: *Note `InnoDB': innodb-storage-engine. now permits concurrent reads while creating a secondary index. - (Bug #11853126) See also Bug #11751388, Bug #11784056, Bug - #11815600. + (Bug #11853126) References: See also Bug #11751388, Bug #11784056, + Bug #11815600. * `CMake' configuration support on Linux now provides a boolean `ENABLE_GCOV' option to control whether to include support for @@ -233353,18 +236804,18 @@ binary log was used as the transaction coordinator log. (Bug #12346411) - * A problem introduced in MySQL 5.5.11 caused very old (MySQL 4.0) - clients to be unable to connect to the server. (Bug #61222, Bug - #12563279) + * An embedded client aborted rather than issuing an error message if + it issued a `TEE' command (`\T FILE_NAME') and the directory + containing the file did not exist. This occurred because the wrong + error handler was called. (Bug #57491, Bug #11764633) * Using *Note `CREATE EVENT IF NOT EXISTS': create-event. for an event that already existed and was enabled caused multiple instances of the event to run. (Bug #61005, Bug #12546938) - * An embedded client aborted rather than issuing an error message if - it issued a `TEE' command (`\T FILE_NAME') and the directory - containing the file did not exist. This occurred because the wrong - error handler was called. (Bug #57491, Bug #11764633) + * A problem introduced in MySQL 5.5.11 caused very old (MySQL 4.0) + clients to be unable to connect to the server. (Bug #61222, Bug + #12563279) * *Note `ALTER EVENT': alter-event. could change the event status. (Bug #57156, Bug #11764334) @@ -233383,8 +236834,8 @@  File: manual.info, Node: news-5-5-13, Next: news-5-5-12, Prev: news-5-5-14, Up: news-5-5-x -D.1.8 Changes in MySQL 5.5.13 (31 May 2011) -------------------------------------------- +D.1.10 Changes in MySQL 5.5.13 (31 May 2011) +-------------------------------------------- *Note*: @@ -233403,6 +236854,16 @@ *Bugs Fixed* + * *InnoDB Storage Engine*: The MySQL server could hang during `CREATE + TABLE', `OPTIMIZE TABLE', or `ALTER TABLE' or other DDL operation + that performs a table copy for an `InnoDB' table, if such + operations were performed by multiple sessions simultaneously. The + error was reported as: + + InnoDB: Error: semaphore wait has lasted > 600 seconds + + (Bug #11760042, Bug #52409) + * *InnoDB Storage Engine*: If the server crashed while an XA transaction was prepared but not yet committed, the transaction could remain in the system after restart, and cause a subsequent @@ -233451,48 +236912,46 @@ assertion when it checked for proper cleanup of the previous transaction. (Bug #12352846) - * An internal client macro reference was removed from the - `client_plugin.h' header file. This reference made the file - unusable. (Bug #60746, Bug #12325444) - - * For repeated invocation of some stored procedures, the server - consumed memory that it did not release until the connection - terminated. (Bug #60025, Bug #11848763) - - * The server did not check for certain invalid out of order - sequences of XA statements, and these sequences raised an - assertion. (Bug #59936, Bug #11766752, Bug #12348348) + * Internal Performance Schema header files were unnecessarily + installed publicly. (Bug #53281) * With the conversion from GNU autotools to `CMake' for configuring MySQL, the `USE_SYMDIR' preprocessor symbol was omitted. This caused failure of symbolic links (described at *Note symbolic-links::). (Bug #59408, Bug #11766320) - * An incorrect `max_length' value for *Note `YEAR': year. values - could be used in temporary result tables for *Note `UNION': union, - leading to incorrect results. (Bug #59343, Bug #11766270) + * *Note `LOAD DATA INFILE': load-data. errors could leak I/O cache + memory. (Bug #58072, Bug #11765141) + + * The server did not check for certain invalid out of order + sequences of XA statements, and these sequences raised an + assertion. (Bug #59936, Bug #11766752, Bug #12348348) * In `Item_func_in::fix_length_and_dec()', a Valgrind warning for uninitialized values was corrected. (Bug #59270, Bug #11766212) - * In `ROUND()' calculations, a Valgrind warning for uninitialized - memory was corrected. (Bug #58937, Bug #11765923) - - * Valgrind warnings caused by comparing index values to an - uninitialized field were corrected. (Bug #58705, Bug #11765713) + * An incorrect `max_length' value for *Note `YEAR': year. values + could be used in temporary result tables for *Note `UNION': union, + leading to incorrect results. (Bug #59343, Bug #11766270) - * *Note `LOAD DATA INFILE': load-data. errors could leak I/O cache - memory. (Bug #58072, Bug #11765141) + * An internal client macro reference was removed from the + `client_plugin.h' header file. This reference made the file + unusable. (Bug #60746, Bug #12325444) * For *Note `LOAD DATA INFILE': load-data, multibyte character sequences could be pushed onto a stack too small to accommodate them. (Bug #58069, Bug #11765139) - * Internal Performance Schema header files were unnecessarily - installed publicly. (Bug #53281) + * In `ROUND()' calculations, a Valgrind warning for uninitialized + memory was corrected. (Bug #58937, Bug #11765923) References: + This bug is a regression of Bug #33143. - * On Linux, the *Note `mysql': mysql. client built using the bundled - `libedit' did not read `~/.editrc'. (Bug #49967, Bug #11757855) + * Valgrind warnings caused by comparing index values to an + uninitialized field were corrected. (Bug #58705, Bug #11765713) + + * For repeated invocation of some stored procedures, the server + consumed memory that it did not release until the connection + terminated. (Bug #60025, Bug #11848763) * The optimizer sometimes incorrectly processed `HAVING' clauses for queries that did not also have an `ORDER BY' clause. (Bug #48916, @@ -233502,6 +236961,9 @@ could return incorrect results if used with a `LIMIT' clause. (Bug #48137, Bug #11756242) + * On Linux, the *Note `mysql': mysql. client built using the bundled + `libedit' did not read `~/.editrc'. (Bug #49967, Bug #11757855) + * With `DISTINCT', `CONCAT(COL_NAME,...)' returned incorrect results when the arguments to `CONCAT()' were columns with an integer data type declared with a display width narrower than the values in the @@ -233511,8 +236973,8 @@  File: manual.info, Node: news-5-5-12, Next: news-5-5-11, Prev: news-5-5-13, Up: news-5-5-x -D.1.9 Changes in MySQL 5.5.12 (05 May 2011) -------------------------------------------- +D.1.11 Changes in MySQL 5.5.12 (05 May 2011) +-------------------------------------------- *Functionality Added or Changed* @@ -233544,6 +237006,17 @@ by foreign key constraints could fail after a server restart. (Bug #11831040, Bug #60196, Bug #60909) + * *Replication*: Using the `--server-id' option with *Note + `mysqlbinlog': mysqlbinlog. could cause format description log + events to be filtered from the binary log, leaving *Note + `mysqlbinlog': mysqlbinlog. unable to read the remainder of the + log. Now such events are always read without regard to the value + of this option. + + As part of the the fix for this problem, *Note `mysqlbinlog': + mysqlbinlog. now also reads rotate log events without regard to + the value of `--server-id'. (Bug #59530, Bug #11766427) + * On Windows, the server rejected client connections if no DNS server was available. (Bug #12325375) @@ -233558,21 +237031,45 @@ option but did not write the option value to the `.frm' file. (Bug #11769356) - * *Replication*: Using the `--server-id' option with *Note - `mysqlbinlog': mysqlbinlog. could cause format description log - events to be filtered from the binary log, leaving *Note - `mysqlbinlog': mysqlbinlog. unable to read the remainder of the - log. Now such events are always read without regard to the value - of this option. + * In `Item::get_date', a Valgrind warning for a missing `NULL' value + check was corrected. (Bug #59164, Bug #11766124) - As part of the the fix for this problem, *Note `mysqlbinlog': - mysqlbinlog. now also reads rotate log events without regard to - the value of `--server-id'. (Bug #59530, Bug #11766427) + * In `Item_func_month::val_str()', a Valgrind warning for a too-late + `NULL' value check was corrected. (Bug #59166, Bug #11766126) - * Comparison of a *Note `DATETIME': datetime. stored program - variable and `NOW()' resulted in `Illegal mix of collations error' - when `character_set_connection' was set to `utf8'. (Bug #60625, - Bug #11926811) + * In `Item_func::val_decimal', a Valgrind warning for a missing + `NULL' value check was corrected. (Bug #59125, Bug #11766087) + + * In `Item_func_str_to_date::val_str', a Valgrind warning for an + uninitialized variable was corrected. (Bug #58154, Bug #11765216) + + * In `extract_date_time()', a Valgrind warning for a missing + end-of-string check was corrected. (Bug #59151, Bug #11766112) + + * A missing variable initialization for `Item_func_set_user_var' + objects could raise an assertion. (Bug #59527, Bug #11766424) + + * In string context, the `MIN()' and `MAX()' functions did not take + into account the unsignedness of a `BIGINT UNSIGNED' argument. + (Bug #59132, Bug #11766094) + + * With prepared statements, the server could attempt to send result + set metadata after the table had been closed. (Bug #56115, Bug + #11763413) + + * When the server was started with the `--skip-innodb' option, it + initialized the `have_innodb' system variable to `YES' rather than + `DISABLED'. (Bug #59393, Bug #11766306) + + * An assertion could be raised in + `Item_func_int_val::fix_num_length_and_dec()' due to overflow for + geometry functions. (Bug #57900, Bug #11764994) + + * The server permitted `max_allowed_packet' to be set lower than + `net_buffer_length', which does not make sense because + `max_allowed_packet' is the upper limit on `net_buffer_length' + values. Now a warning occurs and the value remains unchanged. + (Bug #59959, Bug #11766769) * Selecting from a view for which the definition included a `HAVING' clause failed with an error: @@ -233592,45 +237089,10 @@ tablespace incorrectly destroyed the tablespace. (Bug #60111, Bug #11766883, Bug #34047, Bug #11747789) - * The server permitted `max_allowed_packet' to be set lower than - `net_buffer_length', which does not make sense because - `max_allowed_packet' is the upper limit on `net_buffer_length' - values. Now a warning occurs and the value remains unchanged. - (Bug #59959, Bug #11766769) - - * A missing variable initialization for `Item_func_set_user_var' - objects could raise an assertion. (Bug #59527, Bug #11766424) - - * When the server was started with the `--skip-innodb' option, it - initialized the `have_innodb' system variable to `YES' rather than - `DISABLED'. (Bug #59393, Bug #11766306) - - * In `Item_func_month::val_str()', a Valgrind warning for a too-late - `NULL' value check was corrected. (Bug #59166, Bug #11766126) - - * In `Item::get_date', a Valgrind warning for a missing `NULL' value - check was corrected. (Bug #59164, Bug #11766124) - - * In `extract_date_time()', a Valgrind warning for a missing - end-of-string check was corrected. (Bug #59151, Bug #11766112) - - * In string context, the `MIN()' and `MAX()' functions did not take - into account the unsignedness of a `BIGINT UNSIGNED' argument. - (Bug #59132, Bug #11766094) - - * In `Item_func::val_decimal', a Valgrind warning for a missing - `NULL' value check was corrected. (Bug #59125, Bug #11766087) - - * In `Item_func_str_to_date::val_str', a Valgrind warning for an - uninitialized variable was corrected. (Bug #58154, Bug #11765216) - - * An assertion could be raised in - `Item_func_int_val::fix_num_length_and_dec()' due to overflow for - geometry functions. (Bug #57900, Bug #11764994) - - * With prepared statements, the server could attempt to send result - set metadata after the table had been closed. (Bug #56115, Bug - #11763413) + * Comparison of a *Note `DATETIME': datetime. stored program + variable and `NOW()' resulted in `Illegal mix of collations error' + when `character_set_connection' was set to `utf8'. (Bug #60625, + Bug #11926811) * With `lower_case_table_names=2', resolution of objects qualified by database names could fail. (Bug #50924, Bug #11758687) @@ -233641,7 +237103,7 @@  File: manual.info, Node: news-5-5-11, Next: news-5-5-10, Prev: news-5-5-12, Up: news-5-5-x -D.1.10 Changes in MySQL 5.5.11 (07 April 2011) +D.1.12 Changes in MySQL 5.5.11 (07 April 2011) ---------------------------------------------- *Functionality Added or Changed* @@ -233706,13 +237168,7 @@ (Bug #30771, Bug #11747102) - * A new system variable, `max_long_data_size', now controls the - maximum size of parameter values that can be sent with the - `mysql_stmt_send_long_data()' C API function. If not set at server - startup, the default is the value of the `max_allowed_packet' - system variable. This variable is deprecated. In MySQL 5.6, it is - removed and the maximum parameter size is controlled by - `max_allowed_packet'. + * The undocumented `SHOW NEW MASTER' statement has been removed. * For the Windows installer, debug information files and the embedded MySQL server have been removed from the standard MSI @@ -233728,92 +237184,57 @@ files from the Zip distribution must be removed from the system manually. - * The undocumented `SHOW NEW MASTER' statement has been removed. + * A new system variable, `max_long_data_size', now controls the + maximum size of parameter values that can be sent with the + `mysql_stmt_send_long_data()' C API function. If not set at server + startup, the default is the value of the `max_allowed_packet' + system variable. This variable is deprecated. In MySQL 5.6, it is + removed and the maximum parameter size is controlled by + `max_allowed_packet'. *Bugs Fixed* + * *Important Change*: The length of the `plugin' column of the + `mysql.user' system table is increased to 64 characters. This is + now the same size as the `name' column of the `mysql.plugin' table. + (Bug #11766610, Bug #59752) + * *Partitioning*: A problem with a previous fix for poor performance of *Note `INSERT ON DUPLICATE KEY UPDATE': insert. statements on tables having many partitions caused the handler function for reading a row from a specific index to fail to store the ID of the partition last used. This caused some statements to fail with `Can't find record' errors. (Bug #59297, Bug #11766232) + References: This bug is a regression of Bug #52455. + + * *Replication*: A failed *Note `DROP DATABASE': drop-database. + statement could break statement-based replication. (Bug #58381, + Bug #11765416) * Two unused test files in `storage/ndb/test/sql' contained incorrect versions of the GNU Lesser General Public License. The files and the directory containing them have been removed. (Bug #11810224) - See also Bug #11810156. + References: See also Bug #11810156. * Division of large numbers could cause stack corruption. (Bug #11792200) - * *Replication*: A failed *Note `DROP DATABASE': drop-database. - statement could break statement-based replication. (Bug #58381, - Bug #11765416) - - * The `mysql_load_client_plugin()' C API function did not clear the - previous error. (Bug #60075, Bug #11766854) - - * An assertion was raised if an *Note `XA COMMIT': xa. was issued - when an XA transaction had already encountered an error (such as a - deadlock) that required the transaction to be rolled back. (Bug - #59986, Bug #11766788) - - * On some systems, debug builds of `comp_err' could fail due to an - uninitialized variable. (Bug #59906, Bug #11766729) - * The server read one byte too many when trying to process an XML string lacking a closing single quote (`'') or double quote (`"') character used as an argument for `UpdateXML()' or - `ExtractValue()'. (Bug #59901, Bug #11766725) See also Bug - #44332, Bug #11752979. - - * Attempting to create a spatial index on a *Note `CHAR': char. - column longer than 31 bytes led to an assertion failure if the - server was compiled with safemutex support. (Bug #59888, Bug - #11766714) + `ExtractValue()'. (Bug #59901, Bug #11766725) References: See + also Bug #44332, Bug #11752979. * Aggregation followed by a subquery could produce an incorrect result. (Bug #59839, Bug #11766675) - * An incorrect character set pointer passed to `my_strtoll10_mb2()' - caused an assertion to be raised. (Bug #59648, Bug #11766519) - - * `FIND_IN_SET()' could work differently in MySQL 5.5 than in 5.1. - (Bug #59405, Bug #11766317) - * *Note `mysqldump': mysqldump. did not quote database names in *Note `ALTER DATABASE': alter-database. statements in its output, which could cause an error at reload time for database names containing a dash. (Bug #59398, Bug #11766310) - * The `MYSQL_HOME' environment variable was being ignored. (Bug - #59280, Bug #11766219) - - * An invalid pathname argument for the `--defaults-extra-file' - option of MySQL programs caused a program crash. (Bug #59234, Bug - #11766184) - - * On Windows, the `authentication_string' column recently added to - the `mysql.user' table caused the Configuration Wizard to fail. - (Bug #59038, Bug #11766011) - - * *Note `CREATE TRIGGER': create-trigger. and *Note `DROP TRIGGER': - drop-trigger. can change the prelocking list of stored routines, - but the routine cache did not detect such changes, resulting in - routine execution with an inaccurate locking list. (Bug #58674, - Bug #11765684) - - * The code for `PROCEDURE ANALYSE()' had a missing `DBUG_RETURN' - statement, which could cause a server crash in debug builds. (Bug - #58140, Bug #11765202) - - * An assertion was raised if a statement tried to upgrade a metadata - lock while there was an active *Note `FLUSH TABLE TBL_LIST WITH - READ LOCK': flush. statement. Now if a statement tries to upgrade - a metadata lock in this situation, the server returns an - `ER_TABLE_NOT_LOCKED_FOR_WRITE' error to the client. (Bug #57649, - Bug #11764779) + * On some systems, debug builds of `comp_err' could fail due to an + uninitialized variable. (Bug #59906, Bug #11766729) * If a multiple-table update updated a row through two aliases and the first update physically moved the row, the second update @@ -233842,6 +237263,53 @@ `EXPLAIN EXTENDED': explain. could include unprintable characters. (Bug #57341, Bug #11764503) + * Attempting to create a spatial index on a *Note `CHAR': char. + column longer than 31 bytes led to an assertion failure if the + server was compiled with safemutex support. (Bug #59888, Bug + #11766714) + + * An assertion was raised if an *Note `XA COMMIT': xa. was issued + when an XA transaction had already encountered an error (such as a + deadlock) that required the transaction to be rolled back. (Bug + #59986, Bug #11766788) + + * The `MYSQL_HOME' environment variable was being ignored. (Bug + #59280, Bug #11766219) + + * An incorrect character set pointer passed to `my_strtoll10_mb2()' + caused an assertion to be raised. (Bug #59648, Bug #11766519) + + * An assertion was raised if a statement tried to upgrade a metadata + lock while there was an active *Note `FLUSH TABLE TBL_LIST WITH + READ LOCK': flush. statement. Now if a statement tries to upgrade + a metadata lock in this situation, the server returns an + `ER_TABLE_NOT_LOCKED_FOR_WRITE' error to the client. (Bug #57649, + Bug #11764779) + + * The code for `PROCEDURE ANALYSE()' had a missing `DBUG_RETURN' + statement, which could cause a server crash in debug builds. (Bug + #58140, Bug #11765202) + + * *Note `CREATE TRIGGER': create-trigger. and *Note `DROP TRIGGER': + drop-trigger. can change the prelocking list of stored routines, + but the routine cache did not detect such changes, resulting in + routine execution with an inaccurate locking list. (Bug #58674, + Bug #11765684) + + * On Windows, the `authentication_string' column recently added to + the `mysql.user' table caused the Configuration Wizard to fail. + (Bug #59038, Bug #11766011) + + * The `mysql_load_client_plugin()' C API function did not clear the + previous error. (Bug #60075, Bug #11766854) + + * An invalid pathname argument for the `--defaults-extra-file' + option of MySQL programs caused a program crash. (Bug #59234, Bug + #11766184) + + * `FIND_IN_SET()' could work differently in MySQL 5.5 than in 5.1. + (Bug #59405, Bug #11766317) + * In some cases, *Note `SHOW WARNINGS': show-warnings. returned an empty result when the previous statement failed. (Bug #55847, Bug #11763166) @@ -233905,20 +237373,21 @@ (Bug #47205, Bug #11755431) + * Bitmap functions used in one thread could change bitmaps used by + other threads, raising an assertion. (Bug #43152, Bug #11752069) + * When `CASE ... WHEN' arguments had different character sets, 8-bit values could be referenced as `utf16' or `utf32' values, raising an assertion. (Bug #44793, Bug #11753363) - * Bitmap functions used in one thread could change bitmaps used by - other threads, raising an assertion. (Bug #43152, Bug #11752069) -  File: manual.info, Node: news-5-5-10, Next: news-5-5-9, Prev: news-5-5-11, Up: news-5-5-x -D.1.11 Changes in MySQL 5.5.10 (15 March 2011) +D.1.13 Changes in MySQL 5.5.10 (15 March 2011) ---------------------------------------------- *C API Notes* + * *Incompatible Change*: The shared library version of the client library was increased to 18 to reflect ABI changes, and avoid compatibility problems with the client library in MySQL 5.1. Note @@ -233928,6 +237397,7 @@ #60061, Bug #11827366) *Pluggable Authentication* + * MySQL distributions now include `auth_socket', a server-side authentication plugin that authenticates clients that connect from the local host through the Unix socket file. The plugin uses the @@ -233937,7 +237407,7 @@ requires a match between the login name of the connecting client user and the MySQL user name presented by the client program. For more information, see *Note socket-authentication-plugin::. (Bug - #59017, Bug #11765993) + #59017, Bug #11765993, Bug #9411, Bug #11745104) * MySQL distributions now include `mysql_clear_password', a client-side authentication plugin that sends the password to the @@ -233962,7 +237432,7 @@ at server startup. Now at startup such variables can be enabled by setting them to `ON' or `TRUE', or disabled by setting them to `OFF' or `FALSE'. Any other nonnumeric variable is invalid. (Bug - #46393) See also Bug #11754743, Bug #51631. + #46393) References: See also Bug #11754743, Bug #51631. * Previously, for queries that were aborted due to a sort problem, the server wrote the message `Sort aborted' to the error log. Now @@ -233987,12 +237457,18 @@ * *Security Fix*: Bug #36544 was fixed. + * *Important Change*: *InnoDB Storage Engine*: The `libaio' library, + which has been used on Linux systems since MySQL 5.5.4, is now + linked into `mysqld' dynamically rather than statically. If the + library is not already on your Linux system, install it using the + appropriate package manager for your distribution. The + `libaio-dev' library is not sufficient; you must have the `libaio' + library. (Bug #11893055, Bug #60544) + * *InnoDB Storage Engine*: Raised the number of I/O requests that - each AIO - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_aio) - helper thread could process, from 32 to 256. The new limit applies - to Linux and Unix platforms; the limit on Windows remains 32. - (Bug #59472) + each AIO helper thread could process, from 32 to 256. The new + limit applies to Linux and Unix platforms; the limit on Windows + remains 32. (Bug #59472) * *InnoDB Storage Engine*: *Note `InnoDB': innodb-storage-engine. returned values for `rows examined' in the query plan that were @@ -234029,68 +237505,71 @@ transaction if it cannot be rolled back safely. (Bug #58546, Bug #11765563) - * Setting the `optimizer_switch' system variable to an invalid value - caused a server crash. (Bug #59894, Bug #11766719) - - * `DES_DECRYPT()' could crash if the argument was not produced by - `DES_ENCRYPT()'. (Bug #59632, Bug #11766505) - - * The server and client did not always properly negotiate - authentication plugin names. (Bug #59453, Bug #11766356) + * An `OUTER JOIN' query using `WHERE COL_NAME IS NULL' could return + an incorrect result. (Bug #58490, Bug #11765513) * `--autocommit=ON' did not work (it set the global `autocommit' value to 0, not 1). (Bug #59432, Bug #11766339) - * A query of the following form returned an incorrect result, where - the values for COL_NAME in the result set were entirely replaced - with `NULL' values: - - SELECT DISTINCT COL_NAME ... ORDER BY COL_NAME DESC; - - (Bug #59308, Bug #11766241) + * The fix for Bug #25192 caused `load_defaults()' to add an argument + separator to distinguish options loaded from option files from + those provided on the command line, whether or not the application + needed it. (Bug #57953, Bug #11765041) References: See also Bug + #11746296. - * *Note `SHOW PRIVILEGES': show-privileges. did not display a row - for the `PROXY' privilege. (Bug #59275, Bug #11766216) + * The `DEFAULT_CHARSET' and `DEFAULT_COLLATION' `CMake' options did + not work. (Bug #58991, Bug #11765967) - * *Note `SHOW PROFILE': show-profile. could truncate source file - names or fail to show function names. (Bug #59273, Bug #11766214) + * When *Note `mysqladmin': mysqladmin. was run with the `--sleep' and + `--count' options, it went into an infinite loop executing the + specified command. (Bug #58221, Bug #11765270) * *Note `DELETE': delete. or *Note `UPDATE': update. statements could fail if they used *Note `DATE': datetime. or *Note `DATETIME': datetime. values with a year, month, or day part of zero. (Bug #59173) + * In debug builds, `SUBSTRING_INDEX(FORMAT(...), FORMAT(...))' could + cause a server crash. (Bug #58371, Bug #11765406) + + * Outer joins on a unique key could return incorrect results. (Bug + #57034, Bug #11764219) + * The `ESCAPE' clause for the `LIKE' operator permits only expressions that evaluate to a constant at execution time, but aggregate functions were not being rejected. (Bug #59149, Bug #11766110) - * Memory leaks detected by Valgrind, some of which could cause - incorrect query results, were corrected. (Bug #59110, Bug - #11766075) - - * There was an erroneous restriction on file attributes for *Note - `LOAD DATA INFILE': load-data. (Bug #59085, Bug #11766052) + * Outer joins with an empty table could produce incorrect results. + (Bug #58422, Bug #11765451) - * The `DEFAULT_CHARSET' and `DEFAULT_COLLATION' `CMake' options did - not work. (Bug #58991, Bug #11765967) + * The server and client did not always properly negotiate + authentication plugin names. (Bug #59453, Bug #11766356) - * An `OUTER JOIN' query using `WHERE COL_NAME IS NULL' could return - an incorrect result. (Bug #58490, Bug #11765513) + * *Note `SHOW PRIVILEGES': show-privileges. did not display a row + for the `PROXY' privilege. (Bug #59275, Bug #11766216) - * Starting the server with the `--defaults-file=FILE_NAME' option, - where the file name had no extension, caused a server crash. (Bug - #58455, Bug #11765482) + * The *Note `mysql': mysql. client went into an infinite loop if the + standard input was a directory. (Bug #57450, Bug #11764598) - * Outer joins with an empty table could produce incorrect results. - (Bug #58422, Bug #11765451) + * The expression `CONST1 BETWEEN CONST2 AND FIELD' was optimized + incorrectly and produced incorrect results. (Bug #57030, Bug + #11764215) - * In debug builds, `SUBSTRING_INDEX(FORMAT(...), FORMAT(...))' could - cause a server crash. (Bug #58371, Bug #11765406) + * A query of the following form returned an incorrect result, where + the values for COL_NAME in the result set were entirely replaced + with `NULL' values: - * When *Note `mysqladmin': mysqladmin. was run with the `--sleep' and - `--count' options, it went into an infinite loop executing the - specified command. (Bug #58221, Bug #11765270) + SELECT DISTINCT COL_NAME ... ORDER BY COL_NAME DESC; + + (Bug #59308, Bug #11766241) + + * *Note `SHOW PROFILE': show-profile. could truncate source file + names or fail to show function names. (Bug #59273, Bug #11766214) + + * Memory leaks detected by Valgrind, some of which could cause + incorrect query results, were corrected. (Bug #59110, Bug + #11766075) * Some string-manipulating SQL functions use a shared string object intended to contain an immutable empty string. This object was @@ -234099,34 +237578,32 @@ object was then modified by the SQL function `INSERT()', undefined behavior ensued. (Bug #58165, Bug #11765225) - * Parsing nested regular expressions could lead to recursion - resulting in a stack overflow crash. (Bug #58026, Bug #11765099) - - * The fix for Bug #25192 caused `load_defaults()' to add an argument - separator to distinguish options loaded from option files from - those provided on the command line, whether or not the application - needed it. (Bug #57953, Bug #11765041) See also Bug #11746296. - - * The *Note `mysql': mysql. client went into an infinite loop if the - standard input was a directory. (Bug #57450, Bug #11764598) - - * Outer joins on a unique key could return incorrect results. (Bug - #57034, Bug #11764219) - - * The expression `CONST1 BETWEEN CONST2 AND FIELD' was optimized - incorrectly and produced incorrect results. (Bug #57030, Bug - #11764215) - * Some RPM installation scripts used a hardcoded value for the data directory, which could result in a failed installation for users who have a nonstandard data directory location. The same was true for other configuration values such as the PID file name. (Bug #56581, Bug #11763817) + * `DES_DECRYPT()' could crash if the argument was not produced by + `DES_ENCRYPT()'. (Bug #59632, Bug #11766505) + * On FreeBSD and OpenBSD, the server incorrectly checked the range of the system date, causing legal values to be rejected. (Bug #55755, Bug #11763089) + * Parsing nested regular expressions could lead to recursion + resulting in a stack overflow crash. (Bug #58026, Bug #11765099) + + * Starting the server with the `--defaults-file=FILE_NAME' option, + where the file name had no extension, caused a server crash. (Bug + #58455, Bug #11765482) + + * There was an erroneous restriction on file attributes for *Note + `LOAD DATA INFILE': load-data. (Bug #59085, Bug #11766052) + + * Setting the `optimizer_switch' system variable to an invalid value + caused a server crash. (Bug #59894, Bug #11766719) + * Sorting using `ORDER BY AVG(DISTINCT DECIMAL_COL)' caused a server crash or incorrect results. (Bug #52123, Bug #11759784) @@ -234143,7 +237620,7 @@  File: manual.info, Node: news-5-5-9, Next: news-5-5-8, Prev: news-5-5-10, Up: news-5-5-x -D.1.12 Changes in MySQL 5.5.9 (07 February 2011) +D.1.14 Changes in MySQL 5.5.9 (07 February 2011) ------------------------------------------------ *Functionality Added or Changed* @@ -234163,7 +237640,8 @@ setting them to `ON' or `TRUE'. Any other nonnumeric variable is interpreted as `OFF'. (Bug #46393 improves on this such that `ON', `TRUE', `OFF', and `FALSE' are recognized, and other values are - invalid.) (Bug #51631, Bug #11759326) See also Bug #11754743. + invalid.) (Bug #51631, Bug #11759326) References: See also Bug + #11754743. * In the audit plugin interface, the `MYSQL_AUDIT_CONNECTION_CLASS' event class was added, and the `MYSQL_AUDIT_GENERAL_STATUS' @@ -234173,6 +237651,8 @@ *Bugs Fixed* + * *Security Fix*: Bug #57952 was fixed. + * *Performance*: *InnoDB Storage Engine*: *Note `InnoDB': innodb-storage-engine. now uses the `PAUSE' instruction on all platforms where it is available. Previously, *Note `InnoDB': @@ -234180,7 +237660,7 @@ Windows systems. (Bug #58666) * *Performance*: Queries involving *Note `InnoDB': - innodb-storage-engine. tables in the `INFORMATON_SCHEMA' tables + innodb-storage-engine. tables in the `INFORMATION_SCHEMA' tables *Note `TABLE_CONSTRAINTS': table-constraints-table, *Note `KEY_COLUMN_USAGE': key-column-usage-table, or *Note `REFERENTIAL_CONSTRAINTS': referential-constraints-table. were @@ -234190,8 +237670,6 @@ MySQL Enterprise Monitor with many monitored servers or tens of thousands of tables. (Bug #43818, Bug #11752585) - * *Security Fix*: Bug #57952 was fixed. - * *Incompatible Change*: When `auto_increment_increment' is greater than one, values generated by a bulk insert that reaches the maximum column value could wrap around rather producing an overflow @@ -234209,8 +237687,8 @@ COL_NAME is a *Note `DATE': datetime. or *Note `DATETIME': datetime. column, is now disallowed altogether because its return value depends on the value of the `default_week_format' system - variable. (Bug #54483, Bug #11761948) See also Bug #57071, Bug - #11764255. + variable. (Bug #54483, Bug #11761948) References: See also Bug + #57071, Bug #11764255. * *Partitioning*: *InnoDB Storage Engine*: The partitioning handler did not pass locking information to a table's storage engine @@ -234218,14 +237696,16 @@ when working with partitioned *Note `InnoDB': innodb-storage-engine. tables. (Bug #59013) - * *InnoDB Storage Engine*: When multiple *Note `InnoDB': - innodb-storage-engine. buffer pools were enabled, *Note `SHOW - ENGINE INNODB': show-engine. statements displayed information about - each one, but not summary information combining statistics for the - entire buffer pool subsystem. Now, the aggregated information is - displayed in the `BUFFER POOL AND MEMORY' section, and information - about individual buffer pool instances is displayed in a new - `INDIVIDUAL BUFFER POOL INFO' section. (Bug #58461) + * *InnoDB Storage Engine*: The server could crash with an assertion + error, if a stored procedure, stored function, or trigger modified + one *Note `InnoDB': innodb-storage-engine. table containing an + auto-increment column, and dropped another *Note `InnoDB': + innodb-storage-engine. table containing an auto-increment column. + (Bug #56228) + + * *InnoDB Storage Engine*: In *Note `InnoDB': innodb-storage-engine. + status output, the value for `I/O sum[]' could be incorrect, + displayed as a very large number. (Bug #57600) * *InnoDB Storage Engine*: The command to create a debug build (`cmake -DWITH_DEBUG ...') now automatically sets the *Note @@ -234234,47 +237714,44 @@ for Windows platforms with Visual Studio and not on OS X with Xcode. (Bug #58279) - * *InnoDB Storage Engine*: In *Note `InnoDB': innodb-storage-engine. - status output, the value for `I/O sum[]' could be incorrect, - displayed as a very large number. (Bug #57600) + * *InnoDB Storage Engine*: When multiple *Note `InnoDB': + innodb-storage-engine. buffer pools were enabled, *Note `SHOW + ENGINE INNODB': show-engine. statements displayed information about + each one, but not summary information combining statistics for the + entire buffer pool subsystem. Now, the aggregated information is + displayed in the `BUFFER POOL AND MEMORY' section, and information + about individual buffer pool instances is displayed in a new + `INDIVIDUAL BUFFER POOL INFO' section. (Bug #58461) - * *InnoDB Storage Engine*: The server could crash with an assertion - error, if a stored procedure, stored function, or trigger modified - one *Note `InnoDB': innodb-storage-engine. table containing an - auto-increment - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_auto_increment) - column, and dropped another *Note `InnoDB': innodb-storage-engine. - table containing an auto-increment column. (Bug #56228) + * *InnoDB Storage Engine*: When the `lower_case_table_names' + variable was set to 2, *Note `InnoDB': innodb-storage-engine. could + fail to restore a `mysqldump' dump of a table with foreign key + constraints involving case-sensitive names. (Bug #55222) * *InnoDB Storage Engine*: It was not possible to query the *Note `information_schema.INNODB_TRX': innodb-trx-table. table while other connections were running queries involving *Note `BLOB': blob. types. (Bug #55397, Bug #11762763) - * *InnoDB Storage Engine*: When the `lower_case_table_names' - variable was set to 2, *Note `InnoDB': innodb-storage-engine. could - fail to restore a `mysqldump' dump of a table with foreign key - constraints involving case-sensitive names. (Bug #55222) - * *InnoDB Storage Engine*: The *Note `OPTIMIZE TABLE': optimize-table. statement reset the auto-increment counter for an *Note `InnoDB': innodb-storage-engine. table. Now the auto-increment value is preserved across this operation. (Bug #18274) + * *Partitioning*: Failed *Note `ALTER TABLE ... PARTITION': + alter-table. statements could cause memory leaks. (Bug #56380, + Bug #11763641) References: See also Bug #46949, Bug #11755209, Bug + #56996, Bug #11764187. + * *Partitioning*: Failed *Note `ALTER TABLE ... TRUNCATE PARTITION': alter-table. statements were written to the binary log. (Bug #58147) - * *Partitioning*: Failed *Note `ALTER TABLE ... PARTITION': - alter-table. statements could cause memory leaks. (Bug #56380, - Bug #11763641) See also Bug #46949, Bug #11755209, Bug #56996, Bug - #11764187. - * *Replication*: While an *Note `INSERT DELAYED': insert-delayed. statement with a single inserted value does not return any visible warnings, such a warning could be still written into the error log. - (Bug #57666, Bug #11764793) See also Bug #49567. + (Bug #57666, Bug #11764793) References: See also Bug #49567. * *Replication*: When closing a session that used temporary tables, binary logging could sometimes fail with a spurious `Failed to @@ -234339,6 +237816,7 @@ * *Replication*: The `Binlog_cache_use' and `Binlog_cache_disk_use status' variables were incremented twice by a change to a table using a transactional storage engine. (Bug #56343, Bug #11763611) + References: This bug is a regression of Bug #50038. * *Replication*: The *Note `BINLOG': binlog. statement modified the values of session variables, which could lead to problems with @@ -234372,6 +237850,11 @@ *Note `USE': use. statement whenever it reads one from the binary log. (Bug #50914, Bug #11758677) + * *Replication*: When an error occurred in the generation of the + name for a new binary log file, the error was logged but not shown + to the user. (Bug #46166) References: See also Bug #37148, Bug + #11748696, Bug #40611, Bug #11750196, Bug #43929, Bug #51019. + * *Replication*: Previously, when a statement failed with a different error on the slave than on the master, the slave SQL thread displayed a message containing: @@ -234408,174 +237891,169 @@ (Bug #46697) - * *Replication*: When an error occurred in the generation of the - name for a new binary log file, the error was logged but not shown - to the user. (Bug #46166) See also Bug #37148, Bug #11748696, Bug - #40611, Bug #11750196, Bug #43929, Bug #51019. + * A Valgrind failure occurred in `fn_format' when called from + `archive_discover'. (Bug #58205, Bug #11765259) - * Comparisons of aggregate values with *Note `TIMESTAMP': datetime. - values were incorrect. (Bug #59330, Bug #11766259) + * Issuing *Note `EXPLAIN EXTENDED': explain. for a query that would + use condition pushdown could cause *Note `mysqld': mysqld. to + crash. (Bug #58553, Bug #11765570) - * For `DIV' expressions, assignment of the result to multiple - variables could cause a server crash. (Bug #59241, Bug #11766191) - See also Bug #8457. + * It was possible to compile *Note `mysqld': mysqld. with + Performance Schema support but with a dummy atomic-operations + implementation, which caused a server crash. This problem does not + affect binary distributions. It is helpful as a safety measure for + users who build MySQL from source. (Bug #56769) - * `MIN(YEAR_COL)' could return an incorrect result in some cases. - (Bug #59211, Bug #11766165) + * `CMake' polluted the source tree by writing installation-related + temporary files there. (Bug #58372) - * *Note `mysqlslap': mysqlslap. failed to check for a `NULL' return - from *Note `mysql_store_result()': mysql-store-result. and crashed - trying to process the result set. (Bug #59109, Bug #11766074) + * `CMake' did not add `LINK_LIBRARIES' for `MYSQL_ADD_PLUGIN' for + `libmysqld'. (Bug #58158) - * In a subquery, a *Note `UNION': union. with no referenced tables - (or only a reference to the `DUAL' virtual table) did not permit an - `ORDER BY' clause. (Bug #58970, Bug #11765950) + * *Note `CREATE DATABASE': create-database. and *Note `DROP + DATABASE': drop-database. caused *Note `mysql --one-database': + mysql. to lose track of the statement-filtering context. (Bug + #54899) + + * Configuration with maintainer mode enabled resulted in errors when + compiling with `icc'. (Bug #57991, Bug #58871) * Configuring MySQL with `-DWITHOUT_PERFSCHEMA_STORAGE_ENGINE=1' caused build failures. (Bug #58953) - * Several Valgrind warnings were fixed. (Bug #58948, Bug #59021) - - * *Note `OPTIMIZE TABLE': optimize-table. for an *Note `InnoDB': - innodb-storage-engine. table could raise an assertion if the - operation failed because it had been killed. (Bug #58933, Bug - #11765920) - - * If `max_allowed_packet' was set larger than 16MB, the server - failed to reject too-large packets with `Packet too large' errors. - (Bug #58887, Bug #11765878) + * Security context references in `sp_head.cc' were rewritten for + improved DTrace compatibility. (Bug #58350) - * A `NOT IN' predicate with a subquery containing a `HAVING' clause - could retrieve too many rows, when the subquery itself returned - `NULL'. (Bug #58818, Bug #11765815) + * The `cp1251' character set did not properly support the Euro sign + (`0x88'). For example, converting a string containing this + character to `utf8' resulted in `'?'' rather than the `utf8' Euro + sign. (Bug #56639) - * *Note `EXPLAIN': explain. could crash for queries that accessed - two derived tables. (Bug #58730) + * The `ucs2' character set does not support characters outside the + Basic Multilingual Plane (BMP), but converting to `ucs2' a string + containing such characters did not produce a conversion-failure + warning. (Bug #58321) * On Solaris, the MySQL build failed if it was configured with debugging enabled. (Bug #58699) - * Issuing *Note `EXPLAIN EXTENDED': explain. for a query that would - use condition pushdown could cause *Note `mysqld': mysqld. to - crash. (Bug #58553, Bug #11765570) + * Several Valgrind warnings were fixed. (Bug #58948, Bug #59021) - * An assertion could be raised for queries for which the optimizer - could choose between Index Merge range access or const ref access - methods. (Bug #58456) + * View creation could produce Valgrind warnings. (Bug #57352) + + * Some unsigned system variables could be displayed with negative + values. (Bug #55794) + + * The `BIT_AND()' function could return incorrect results when a + join returned no matching rows. (Bug #57954) * If MySQL was built with Visual Studio Express, the project wixca was not built. (Bug #58411) - * *Note `EXPLAIN': explain. could crash for queries that used - `GROUP_CONCAT()'. (Bug #58396) + * An assertion could be raised during concurrent execution of *Note + `DROP DATABASE': drop-database. and *Note `REPAIR TABLE': + repair-table. if the drop deleted a table's `.TMD' file at the + same time the repair tried to read details from the old file that + was just removed. - * `CMake' polluted the source tree by writing installation-related - temporary files there. (Bug #58372) + A problem could also occur when *Note `DROP TABLE': drop-table. + tried to remove all files belonging to a table at the same time + *Note `REPAIR TABLE': repair-table. had just deleted the table's + `.TMD' file. (Bug #54486) - * Security context references in `sp_head.cc' were rewritten for - improved DTrace compatibility. (Bug #58350) + * If the set of values aggregated with `AVG(DISTINCT)' contained a + `NULL' value, the function result could be incorrect. (Bug #57932) - * The `ucs2' character set does not support characters outside the - Basic Multilingual Plane (BMP), but converting to `ucs2' a string - containing such characters did not produce a conversion-failure - warning. (Bug #58321) + * *Note `EXPLAIN': explain. could crash for queries that used + `GROUP_CONCAT()'. (Bug #58396) - * A Valgrind failure occurred in `fn_format' when called from - `archive_discover'. (Bug #58205, Bug #11765259) + * An assertion could be raised for queries for which the optimizer + could choose between Index Merge range access or const ref access + methods. (Bug #58456) - * `CMake' did not add `LINK_LIBRARIES' for `MYSQL_ADD_PLUGIN' for - `libmysqld'. (Bug #58158) + * Unnecessary subquery evaluation in contexts such as statement + preparation or view creation could cause a server crash. (Bug + #57703) * An assertion could be raised if the server was closing a session at the same time the session was being killed by another thread. (Bug #58136) - * Condition pushdown optimization could push down conditions with - incorrect column references. (Bug #58134, Bug #11765196) + * *Note `EXPLAIN': explain. could crash for queries that accessed + two derived tables. (Bug #58730) - * Configuration with maintainer mode enabled resulted in errors when - compiling with `icc'. (Bug #57991, Bug #58871) + * In rare cases, `LIKE' expressions failed for an indexed column + that used a collation containing contractions. (Bug #57737) * An `ORDER BY' clause was bound to the incorrect substatement when used in *Note `UNION': union. context. (Bug #57986) - * The `BIT_AND()' function could return incorrect results when a - join returned no matching rows. (Bug #57954) + * In a subquery, a *Note `UNION': union. with no referenced tables + (or only a reference to the `DUAL' virtual table) did not permit an + `ORDER BY' clause. (Bug #58970, Bug #11765950) - * If the set of values aggregated with `AVG(DISTINCT)' contained a - `NULL' value, the function result could be incorrect. (Bug #57932) + * `MIN(YEAR_COL)' could return an incorrect result in some cases. + (Bug #59211, Bug #11766165) - * In rare cases, `LIKE' expressions failed for an indexed column - that used a collation containing contractions. (Bug #57737) + * Comparisons of aggregate values with *Note `TIMESTAMP': datetime. + values were incorrect. (Bug #59330, Bug #11766259) - * Unnecessary subquery evaluation in contexts such as statement - preparation or view creation could cause a server crash. (Bug - #57703) + * If `max_allowed_packet' was set larger than 16MB, the server + failed to reject too-large packets with `Packet too large' errors. + (Bug #58887, Bug #11765878) - * View creation could produce Valgrind warnings. (Bug #57352) + * *Note `OPTIMIZE TABLE': optimize-table. for an *Note `InnoDB': + innodb-storage-engine. table could raise an assertion if the + operation failed because it had been killed. (Bug #58933, Bug + #11765920) * `NULL' geometry values could cause a crash in `Item_func_spatial_collection::fix_length_and_dec'. (Bug #57321) - * It was possible to compile *Note `mysqld': mysqld. with - Performance Schema support but with a dummy atomic-operations - implementation, which caused a server crash. This problem does not - affect binary distributions. It is helpful as a safety measure for - users who build MySQL from source. (Bug #56769) - - * The `cp1251' character set did not properly support the Euro sign - (`0x88'). For example, converting a string containing this - character to `utf8' resulted in `'?'' rather than the `utf8' Euro - sign. (Bug #56639) + * *Note `mysqlslap': mysqlslap. failed to check for a `NULL' return + from *Note `mysql_store_result()': mysql-store-result. and crashed + trying to process the result set. (Bug #59109, Bug #11766074) - * Some unsigned system variables could be displayed with negative - values. (Bug #55794) + * For `DIV' expressions, assignment of the result to multiple + variables could cause a server crash. (Bug #59241, Bug #11766191) + References: See also Bug #8457. - * *Note `CREATE DATABASE': create-database. and *Note `DROP - DATABASE': drop-database. caused *Note `mysql --one-database': - mysql. to lose track of the statement-filtering context. (Bug - #54899) + * A `NOT IN' predicate with a subquery containing a `HAVING' clause + could retrieve too many rows, when the subquery itself returned + `NULL'. (Bug #58818, Bug #11765815) - * An assertion could be raised during concurrent execution of *Note - `DROP DATABASE': drop-database. and *Note `REPAIR TABLE': - repair-table. if the drop deleted a table's `.TMD' file at the - same time the repair tried to read details from the old file that - was just removed. + * Condition pushdown optimization could push down conditions with + incorrect column references. (Bug #58134, Bug #11765196) - A problem could also occur when *Note `DROP TABLE': drop-table. - tried to remove all files belonging to a table at the same time - *Note `REPAIR TABLE': repair-table. had just deleted the table's - `.TMD' file. (Bug #54486) + * If a client supplied a user name longer than the maximum 16 + characters permitted for names stored in the MySQL grant tables, + all characters were being considered significant when checking for + a match. Historically, only the first 16 characters were used for + matching; this behavior was restored. (Bug #49752) - * After compilation from source, all header files were installed in - the same directory, even those that should be installed into - subdirectories of the installation include directory. (Bug #51925) + * An assertion could be raised if -1 was inserted into an + `AUTO_INCREMENT' column by a statement writing more than one row. + (Bug #50619, Bug #11758417) * When *Note `mysqld': mysqld. printed crash dump information, it incorrectly indicated that some valid pointers were invalid. (Bug #51817) - * On Mac OS X, a configuration error caused the preference pane to - fail. (Bug #51264) - * On FreeBSD, if *Note `mysqld': mysqld. was killed with a `SIGHUP' signal, it could corrupt *Note `InnoDB': innodb-storage-engine. `.ibd' files. (Bug #51023, Bug #11758773) - * An assertion could be raised if -1 was inserted into an - `AUTO_INCREMENT' column by a statement writing more than one row. - (Bug #50619, Bug #11758417) - - * If a client supplied a user name longer than the maximum 16 - characters permitted for names stored in the MySQL grant tables, - all characters were being considered significant when checking for - a match. Historically, only the first 16 characters were used for - matching; this behavior was restored. (Bug #49752) - * The `my_seek()' and `my_tell()' functions ignored the `MY_WME' flag when they returned an error, which could cause client programs to hang. (Bug #48451) + * After compilation from source, all header files were installed in + the same directory, even those that should be installed into + subdirectories of the installation include directory. (Bug #51925) + + * On Mac OS X, a configuration error caused the preference pane to + fail. (Bug #51264) + * During assignment of values to system variables, legality checks on the value range occurred too late, preventing proper error checking. (Bug #43233) @@ -234591,10 +238069,11 @@  File: manual.info, Node: news-5-5-8, Next: news-5-5-7, Prev: news-5-5-9, Up: news-5-5-x -D.1.13 Changes in MySQL 5.5.8 (03 December 2010 General Availability) ---------------------------------------------------------------------- +D.1.15 Changes in MySQL 5.5.8 (03 December 2010, General Availability) +---------------------------------------------------------------------- *Configuration Notes* + * MySQL releases are now built on all platforms using `CMake' rather than the GNU autotools, so autotools support has been removed. For instructions on building MySQL with `CMake', see *Note @@ -234610,10 +238089,6 @@ * Support for the `IBMDB2I' storage engine has been removed. (Bug #58079) - * The following words are no longer reserved words the way they are - in earlier MySQL 5.5 releases: `SLOW', `GENERAL', - `IGNORE_SERVER_IDS', `MASTER_HEARTBEAT_PERIOD' (Bug #57899) - * For an upgrade to MySQL 5.5.7 from a previous release, the server exited if the `mysql.proxies_priv' table did not exist, making upgrades inconvenient. Now the server treats a missing @@ -234621,6 +238096,15 @@ after starting the server, you should still run *Note `mysql_upgrade': mysql-upgrade. to create the table. (Bug #57551) + * The client/server protocol now includes a `SERVER_QUERY_WAS_SLOW' + flag to indicate when a query is slow; that is, when query + execution exceeds the value of the `long_query_time' system + variable. (Bug #57058) + + * The following words are no longer reserved words the way they are + in earlier MySQL 5.5 releases: `SLOW', `GENERAL', + `IGNORE_SERVER_IDS', `MASTER_HEARTBEAT_PERIOD' (Bug #57899) + * The `autocommit' system variable is enabled by default for all user connections, and the session value can be set for each new connection by setting the `init_connect' system variable to `SET @@ -234635,26 +238119,11 @@ It can be disabled with `--autocommit=0', `--skip-autocommit', or `--disable-autocommit'. (Bug #57316) - * The client/server protocol now includes a `SERVER_QUERY_WAS_SLOW' - flag to indicate when a query is slow; that is, when query - execution exceeds the value of the `long_query_time' system - variable. (Bug #57058) - * The time zone tables available at `http://dev.mysql.com/downloads/timezones.html' have been updated. These tables can be used on systems such as Windows or HP-UX that do not include zoneinfo files. (Bug #40230) - * Changes to replication in MySQL 5.6 make *Note `mysqlbinlog': - mysqlbinlog. output generated by the `--base64-output=ALWAYS' - option unusable, so `ALWAYS' is now deprecated and will be an - invalid option value in MySQL 5.6. This should not be a - significant problem because `--base64-output' values other than - `AUTO' are supposed to be used only for debugging, not for - production environments. - - See also Bug #28760. - * A `--bind-address' option has been added to a number of MySQL client programs: *Note `mysql': mysql, *Note `mysqldump': mysqldump, *Note `mysqladmin': mysqladmin, *Note `mysqlbinlog': @@ -234668,35 +238137,57 @@ the interface. The argument is a host name or IP address (specified as a string). -*Bugs Fixed* + * Changes to replication in MySQL 5.6 make *Note `mysqlbinlog': + mysqlbinlog. output generated by the `--base64-output=ALWAYS' + option unusable, so `ALWAYS' is now deprecated and will be an + invalid option value in MySQL 5.6. This should not be a + significant problem because `--base64-output' values other than + `AUTO' are supposed to be used only for debugging, not for + production environments. - * *Performance*: *InnoDB Storage Engine*: Improved concurrency when - several *Note `ANALYZE TABLE': analyze-table. or *Note `SHOW TABLE - STATUS': show-table-status. statements are run simultaneously for - `InnoDB' tables. (Bug #53046) + References: See also Bug #28760. + +*Bugs Fixed* * *InnoDB Storage Engine*: *Security Fix*: A failed *Note `CREATE TABLE': create-table. statement for an *Note `InnoDB': innodb-storage-engine. table could allocate memory that was never freed. (Bug #56947) - * *Security Fix*: Bug #58005 was fixed. + * *Security Fix*: Bug #55146 and Bug #56287 were fixed. + + * *Security Fix*: Bug #56814 was fixed. + + * *Security Fix*: Bug #54484 was fixed. + + * *Security Fix*: Bug #57130 was fixed. + + * *Security Fix*: Bug #57272 was fixed. + + * *Security Fix*: Bug #57477 was fixed. * *Security Fix*: Bug #57687 was fixed. * *Security Fix*: Bug #57659 was fixed. - * *Security Fix*: Bug #57477 was fixed. + * *Security Fix*: Bug #58005 was fixed. - * *Security Fix*: Bug #57272 was fixed. + * *Performance*: *InnoDB Storage Engine*: Improved concurrency when + several *Note `ANALYZE TABLE': analyze-table. or *Note `SHOW TABLE + STATUS': show-table-status. statements are run simultaneously for + `InnoDB' tables. (Bug #53046) - * *Security Fix*: Bug #57130 was fixed. + * *Incompatible Change*: The following changes were made to the + *Note `performance_schema.threads': threads-table. table for + conformance with the implementation in MySQL 5.6: - * *Security Fix*: Bug #56814 was fixed. + * `ID' column: Renamed to `PROCESSLIST_ID', removed `NOT NULL' + from definition. - * *Security Fix*: Bug #55146 and Bug #56287 were fixed. + * `NAME' column: Changed from *Note `VARCHAR(64)': char. to + *Note `VARCHAR(128)': char. - * *Security Fix*: Bug #54484 was fixed. + (Bug #57154) * *Incompatible Change*: Previously, tables in the `performance_schema' database had uppercase names. This was @@ -234734,18 +238225,6 @@ (Bug #57609) - * *Incompatible Change*: The following changes were made to the - *Note `performance_schema.threads': threads-table. table for - conformance with the implementation in MySQL 5.6: - - * `ID' column: Renamed to `PROCESSLIST_ID', removed `NOT NULL' - from definition. - - * `NAME' column: Changed from *Note `VARCHAR(64)': char. to - *Note `VARCHAR(128)': char. - - (Bug #57154) - * *Incompatible Change*: Starvation of *Note `FLUSH TABLES WITH READ LOCK': flush. statements occurred when there was a constant load of concurrent DML statements in two or more connections. Deadlock @@ -234799,11 +238278,30 @@ (Bug #57006, Bug #11764195, Bug #54673, Bug #11762116) + * *InnoDB Storage Engine*: If the MySQL Server crashed immediately + after creating an `InnoDB' table, the server could quit with a + `signal 11' during the subsequent restart. The issue could occur + if the server halted after `InnoDB' created the primary index for + the table, but before the index definition was recorded in the + MySQL metadata. (Bug #57616) References: This bug is a regression + of Bug #54582. + + * *InnoDB Storage Engine*: The `InnoDB' system tablespace could grow + continually for a server under heavy load. (Bug #57611) + * *InnoDB Storage Engine*: Values could be truncated in certain `INFORMATION_SCHEMA' columns, such as `REFERENTIAL_CONSTRAINTS.REFERENCED_TABLE_NAME' and `KEY_COLUMN_USAGE.REFERENCED_TABLE_NAME'. (Bug #57960) + * *InnoDB Storage Engine*: A followup fix to bug #54678. *Note + `TRUNCATE TABLE': truncate-table. could still cause a crash + (assertion error) in the debug version of the server. (Bug #57700) + + * *InnoDB Storage Engine*: A large number of foreign key + declarations could cause the output of the `SHOW CREATE STATEMENT' + statement to be truncated. (Bug #56143) + * *InnoDB Storage Engine*: For an `InnoDB' table created with `ROW_FORMAT=COMPRESSED' or `ROW_FORMAT=DYNAMIC', a query using the `READ UNCOMMITTED' isolation level could cause the server to stop @@ -234811,31 +238309,10 @@ off-page storage were being inserted at the same time. (Bug #57799) - * *InnoDB Storage Engine*: The server could stop with an assertion - error on Windows Vista and Windows 7 systems. (Bug #57720) - - * *InnoDB Storage Engine*: A followup fix to bug #54678. *Note - `TRUNCATE TABLE': truncate-table. could still cause a crash - (assertion error) in the debug version of the server. (Bug #57700) - - * *InnoDB Storage Engine*: The `InnoDB' system tablespace could grow - continually for a server under heavy load. (Bug #57611) - * *InnoDB Storage Engine*: Heavy concurrent updates of a *Note `BLOB': blob. column in an `InnoDB' table could cause a hang. (Bug #57579) - * *InnoDB Storage Engine*: Turning off the - `innodb_stats_on_metadata' option could prevent the *Note `ANALYZE - TABLE': analyze-table. statement from updating the cardinality - statistics of *Note `InnoDB': innodb-storage-engine. tables. (Bug - #57252) - - * *InnoDB Storage Engine*: A query for an *Note `InnoDB': - innodb-storage-engine. table could return the wrong value if a - column value was changed to a different case, and the column had a - case-insensitive index. (Bug #56680) - * *InnoDB Storage Engine*: An existing `InnoDB' table could be switched to `ROW_FORMAT=COMPRESSED' implicitly by a `KEY_BLOCK_SIZE' clause in an *Note `ALTER TABLE': alter-table. @@ -234865,18 +238342,24 @@ As a consequence of this fix, `ROW_FORMAT=FIXED' is not permitted when `innodb_strict_mode' is enabled. (Bug #56628) - * *InnoDB Storage Engine*: A large number of foreign key - declarations could cause the output of the `SHOW CREATE STATEMENT' - statement to be truncated. (Bug #56143) + * *InnoDB Storage Engine*: Turning off the + `innodb_stats_on_metadata' option could prevent the *Note `ANALYZE + TABLE': analyze-table. statement from updating the cardinality + statistics of *Note `InnoDB': innodb-storage-engine. tables. (Bug + #57252) + + * *InnoDB Storage Engine*: The server could stop with an assertion + error on Windows Vista and Windows 7 systems. (Bug #57720) + + * *InnoDB Storage Engine*: A query for an *Note `InnoDB': + innodb-storage-engine. table could return the wrong value if a + column value was changed to a different case, and the column had a + case-insensitive index. (Bug #56680) * *InnoDB Storage Engine*: Clarified the message when a `CREATE TABLE' statement fails because a foreign key constraint does not have the required indexes. (Bug #16290) - * *Partitioning*: In-place `ALTER TABLE' operations (that do not - involve a table copy) on a partitioned table could leave the table - in an unusable state. (Bug #57985) - * *Partitioning*: In debug builds, an *Note `INSERT ... ON DUPLICATE KEY UPDATE COL_NAME = 0': insert. statement on an `AUTO_INCREMENT' column caused the server to crash. (Bug #57890) @@ -234886,13 +238369,32 @@ innodb-storage-engine. table could cause the MySQL Server to crash. (Bug #57778) + * *Partitioning*: In-place `ALTER TABLE' operations (that do not + involve a table copy) on a partitioned table could leave the table + in an unusable state. (Bug #57985) + * *Replication*: Concurrent statements using a stored function and a *Note `DROP DATABASE': drop-database. statement that caused the same stored function to be dropped could cause statement-based replication to fail. This problem is resolved by making sure that *Note `DROP DATABASE': drop-database. takes an exclusive metadata lock on all stored functions and stored procedures that it causes - to be dropped. (Bug #57663) See also Bug #30977. + to be dropped. (Bug #57663) References: See also Bug #30977. + + * *Replication*: If there exist both a temporary table and a + nontemporary table having the same name, updates normally apply + only to the temporary table, with the exception of a *Note `CREATE + TABLE ... SELECT': create-table-select. statement that creates a + nontemporary table having the same name as an existing temporary + table. When such a statement was replicated using the `MIXED' + logging format, and the statement was unsafe for row-based + logging, updates were misapplied to the temporary table. + + Updates were also applied wrongly when a temporary table that used + a transactional storage engine was dropped inside a transaction, + followed by updates within the same transaction to a nontemporary + table having the same name. (Bug #55478) References: See also Bug + #47899, Bug #55709. * *Replication*: When *Note `STOP SLAVE': stop-slave. is issued, the slave SQL thread rolls back the current transaction and stops @@ -234915,21 +238417,6 @@ now waits until the transaction ends, then stops. (Bug #56118, Bug #11763416) - * *Replication*: If there exist both a temporary table and a - nontemporary table having the same name, updates normally apply - only to the temporary table, with the exception of a *Note `CREATE - TABLE ... SELECT': create-table-select. statement that creates a - nontemporary table having the same name as an existing temporary - table. When such a statement was replicated using the `MIXED' - logging format, and the statement was unsafe for row-based - logging, updates were misapplied to the temporary table. - - Updates were also applied wrongly when a temporary table that used - a transactional storage engine was dropped inside a transaction, - followed by updates within the same transaction to a nontemporary - table having the same name. (Bug #55478) See also Bug #47899, Bug - #55709. - * *Replication*: When making changes to relay log settings using *Note `CHANGE MASTER TO': change-master-to, the I/O cache was not cleared. This could result in replication failure when the slave @@ -234943,7 +238430,8 @@ using different endianness failed when using the row-based format. This was because columns of these types are represented internally using integers, but the internal functions used by MySQL to handle - them treated them as strings. (Bug #52131) See also Bug #53528. + them treated them as strings. (Bug #52131) References: See also + Bug #53528. * *Replication*: Trying to read from a binary log containing a log event of an invalid type caused the slave to crash. (Bug #38718) @@ -234952,81 +238440,115 @@ `Grantor' column was not replicated, and was thus left empty on the slave. (Bug #27606) + * Passing a string that was not null-terminated to `UpdateXML()' or + `ExtractValue()' caused the server to fail with an assertion. + (Bug #57279, Bug #11764447) + + * The server could crash inside `memcpy()' when reading certain + Performance Schema tables. (Bug #56761, Bug #58003) + + * Warnings raised by a trigger were not cleared upon successful + completion. Now warnings are cleared if the trigger completes + successfully, per the SQL standard. (Bug #55850) + + * A user with no privileges on a stored routine or the `mysql.proc' + table could discover the routine's existence. (Bug #57061) + + * Several compilation problems were fixed. (Bug #57992, Bug #57993, + Bug #57994, Bug #57995, Bug #57996, Bug #57997, Bug #58057) + + * Clients using a client library older than MySQL 5.5.7 suffered + loss of connection after executing *Note `mysql_change_user()': + mysql-change-user. while connected to a 5.5.7 server. (Bug #57689) + + * If a *Note `STOP SLAVE': stop-slave. statement was issued while + the slave SQL thread was executing a statement that invoked the + `SLEEP()' function, both statements hung. (Bug #56096) + + * For `CMake' builds, some parts of the source were unnecessarily + compiled twice if the embedded server was built. (Bug #55647) + + * *Note `OPTIMIZE TABLE': optimize-table. for *Note `InnoDB': + innodb-storage-engine. tables could raise an assertion. (Bug + #55930) + + * Boolean command options caused an error if given with an option + value and the `loose-' option prefix. (Bug #54569) + + * The server could crash as a result of accessing freed memory when + populating *Note `INFORMATION_SCHEMA.VIEWS': views-table. if a view + could not be opened properly. (Bug #56540) + + * *Note `SET GLOBAL debug': set-statement. could cause a crash on + Solaris if the server failed to open the trace file. (Bug #57274) + * Setting the `read_only' system variable at server startup did not work. (Bug #58669) * *Note `mysql_upgrade': mysql-upgrade. failed after an upgrade from MySQL 5.1. (Bug #58514) + * The Performance Schema did not count I/O for the binary log file. + (Bug #58052) + + * `BETWEEN' did not use indexes for *Note `DATE': datetime. or *Note + `DATETIME': datetime. columns. (Bug #58190) + + * *Note `SHOW PROCESSLIST': show-processlist. displayed non-ASCII + characters improperly. (Bug #57306) + + * In debug builds, a missing `DBUG_RETURN' macro in `sql/client.c' + caused *Note `mysql': mysql. to be unable to connect to the server. + (Bug #57744) + + * In debug builds, an assertion could be raised during conversion of + strings to floating-point values. (Bug #57203) + * When configuring the build with `-DBUILD_CONFIG=mysql_release' and building with Visual Studio Express, the build failed if `signtool.exe' was not present. (Bug #58313) - * With `CMake' 2.8.3, the `-DBUILD_CONFIG=mysql_release' option did - not work. (Bug #58272) - * When configuring the build with `-DBUILD_CONFIG=mysql_release' on Linux, `libaio' is required, but the error message if it was missing was uninformative. (Bug #58227) - * Use of `NAME_CONST()' in a `HAVING' clause caused a server crash. - (Bug #58199) - - * `BETWEEN' did not use indexes for *Note `DATE': datetime. or *Note - `DATETIME': datetime. columns. (Bug #58190) - - * Memory was allocated in `fn_expand()' for storing path names, but - not freed anywhere. (Bug #58173) + * Incorrect error handling raised an assertion if character set + conversion wrapped an item that failed. (Bug #57882) * In debug builds, inserting a *Note `FLOAT': numeric-types. value into a *Note `CHAR(0)': char. column could cause a server crash. (Bug #58137) - * Failure to create a thread to handle a user connection could cause - a server crash. (Bug #58080) - - * During configuration, `ADD_VERSION_INFO' in - `cmake/mysql_version.cmake' failed if `LINK_FLAGS' was modified. - (Bug #58074) - - * The Performance Schema did not count I/O for the binary log file. - (Bug #58052) - - * Several compilation problems were fixed. (Bug #57992, Bug #57993, - Bug #57994, Bug #57995, Bug #57996, Bug #57997, Bug #58057) + * Queries executed using the Index Merge access method and a + temporary file could return incorrect results. (Bug #56862) * After creation of a table with two foreign key constraints, the *Note `INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS': referential-constraints-table. table displayed only one of them. (Bug #57904) - * Incorrect error handling raised an assertion if character set - conversion wrapped an item that failed. (Bug #57882) - - * In debug builds, a missing `DBUG_RETURN' macro in `sql/client.c' - caused *Note `mysql': mysql. to be unable to connect to the server. - (Bug #57744) + * An error in a stored procedure could leave the session in a + different default database. (Bug #54375) - * Clients using a client library older than MySQL 5.5.7 suffered - loss of connection after executing *Note `mysql_change_user()': - mysql-change-user. while connected to a 5.5.7 server. (Bug #57689) + * Failure to create a thread to handle a user connection could cause + a server crash. (Bug #58080) - * The `MySQL-shared' RPM package failed to provide the lowercase - virtual identifier `'mysql-shared'' in the RPM `'Provides'' tags - (usually used for backward compatibility). (Bug #57596) + * Memory was allocated in `fn_expand()' for storing path names, but + not freed anywhere. (Bug #58173) - * *Note `SHOW PROCESSLIST': show-processlist. displayed non-ASCII - characters improperly. (Bug #57306) + * Valgrind warnings about overlapping memory when double-assigning + the same variable were corrected. (Bug #56138) - * Passing a string that was not null-terminated to `UpdateXML()' or - `ExtractValue()' caused the server to fail with an assertion. - (Bug #57279, Bug #11764447) + * Use of `NAME_CONST()' in a `HAVING' clause caused a server crash. + (Bug #58199) - * *Note `SET GLOBAL debug': set-option. could cause a crash on - Solaris if the server failed to open the trace file. (Bug #57274) + * During configuration, `ADD_VERSION_INFO' in + `cmake/mysql_version.cmake' failed if `LINK_FLAGS' was modified. + (Bug #58074) - * In debug builds, an assertion could be raised during conversion of - strings to floating-point values. (Bug #57203) + * The `MySQL-shared' RPM package failed to provide the lowercase + virtual identifier `'mysql-shared'' in the RPM `'Provides'' tags + (usually used for backward compatibility). (Bug #57596) * If the FILE_NAME argument to the `--defaults-file' or `--defaults-extra-file' option was not a full path name, it could @@ -235035,45 +238557,19 @@ the current working directory if given as a relative path name rather than as a full path name. (Bug #57108) - * A user with no privileges on a stored routine or the `mysql.proc' - table could discover the routine's existence. (Bug #57061) - - * Queries executed using the Index Merge access method and a - temporary file could return incorrect results. (Bug #56862) - - * The server could crash inside `memcpy()' when reading certain - Performance Schema tables. (Bug #56761, Bug #58003) - - * The server could crash as a result of accessing freed memory when - populating *Note `INFORMATION_SCHEMA.VIEWS': views-table. if a view - could not be opened properly. (Bug #56540) - - * Valgrind warnings about overlapping memory when double-assigning - the same variable were corrected. (Bug #56138) - - * If a *Note `STOP SLAVE': stop-slave. statement was issued while - the slave SQL thread was executing a statement that invoked the - `SLEEP()' function, both statements hung. (Bug #56096) - - * *Note `OPTIMIZE TABLE': optimize-table. for *Note `InnoDB': - innodb-storage-engine. tables could raise an assertion. (Bug - #55930) - - * Warnings raised by a trigger were not cleared upon successful - completion. Now warnings are cleared if the trigger completes - successfully, per the SQL standard. (Bug #55850) - - * For `CMake' builds, some parts of the source were unnecessarily - compiled twice if the embedded server was built. (Bug #55647) + * With `CMake' 2.8.3, the `-DBUILD_CONFIG=mysql_release' option did + not work. (Bug #58272) * In debug builds, an assertion could be raised if a `send_eof()' method was called after an error occurred. (Bug #54812) - * Boolean command options caused an error if given with an option - value and the `loose-' option prefix. (Bug #54569) + * The `find_files()' function used by *Note `SHOW': show. statements + performed redundant and unnecessary memory allocation. (Bug + #51208) - * An error in a stored procedure could leave the session in a - different default database. (Bug #54375) + * On file systems with case insensitive file names, and + `lower_case_table_names=2', the server could crash due to a table + definition cache inconsistency. (Bug #46941) * The `CMake' `wrapper' for `configure' (`configure.pl') did not handle the `--with-comment' option properly. (Bug #52275) @@ -235083,10 +238579,6 @@ *Note `BLOB': blob. could cause an unexpected `Duplicate entry' error and incorrect result. (Bug #52160) - * The `find_files()' function used by *Note `SHOW': show. statements - performed redundant and unnecessary memory allocation. (Bug - #51208) - * The Windows sample option files contained values more appropriate for Linux. (Bug #50021) @@ -235100,14 +238592,10 @@ they do occur. A delegate is a set of internal data structures and algorithms. (Bug #47027) - * On file systems with case insensitive file names, and - `lower_case_table_names=2', the server could crash due to a table - definition cache inconsistency. (Bug #46941) - * Handling of host name lettercase in *Note `GRANT': grant. statements was inconsistent. (Bug #36742) - * *Note `SET NAMES utf8 COLLATE utf8_sinhala_ci': set-option. did + * *Note `SET NAMES utf8 COLLATE utf8_sinhala_ci': set-statement. did not work. (Bug #26474) * The `utf16_bin' collation uses code-point order, not byte-by-byte @@ -235117,37 +238605,11 @@  File: manual.info, Node: news-5-5-7, Next: news-5-5-6, Prev: news-5-5-8, Up: news-5-5-x -D.1.14 Changes in MySQL 5.5.7 (14 October 2010) +D.1.16 Changes in MySQL 5.5.7 (14 October 2010) ----------------------------------------------- -*Configuration Notes* - * MySQL releases now are built using `CMake' rather than the GNU - autotools. Accordingly, the instructions for installing MySQL from - source have been updated to discuss how to build MySQL using - `CMake'. See *Note source-installation::. If you are familiar with - autotools but not `CMake', you might find this transition document - helpful: - `http://forge.mysql.com/wiki/Autotools_to_CMake_Transition_Guide' - - The build process is now similar enough on all platforms, - including Windows, that there are no longer sections dedicated to - notes for specific platforms. - - The default installation layout when compiling from source now - matches that used for binary distributions. You will notice these - differences for installations from source distributions: - - * *Note `mysqld': mysqld. is installed in `bin', not `libexec'. - - * *Note `mysql_install_db': mysql-install-db. is installed in - `scripts', not `bin'. - - * The data directory is `data', not `var'. - - The `make_binary_distribution' and `make_win_bin_dist' scripts are - now obsolete. To create a binary distribution, use `make package'. - *Authentication Changes* + * MySQL now supports pluggable authentication, such that the server uses plugins to authenticate incoming client connections. Client programs load an authentication plugin that interacts properly @@ -235216,7 +238678,7 @@ be unloaded. Existing clients authenticate as before with no changes needed. In particular, starting the server with the `--secure-auth' option still prevents clients that have - pre-4.1.1 password hashes from conecting, and + pre-4.1.1 password hashes from connecting, and `--skip-grant-tables' still disables all password checking. Proxy user capability entails these changes: @@ -235294,6 +238756,34 @@ pluggable authentication capabilities and what steps to take to become more compliant. +*Configuration Notes* + + * MySQL releases now are built using `CMake' rather than the GNU + autotools. Accordingly, the instructions for installing MySQL from + source have been updated to discuss how to build MySQL using + `CMake'. See *Note source-installation::. If you are familiar with + autotools but not `CMake', you might find this transition document + helpful: + `http://forge.mysql.com/wiki/Autotools_to_CMake_Transition_Guide' + + The build process is now similar enough on all platforms, + including Windows, that there are no longer sections dedicated to + notes for specific platforms. + + The default installation layout when compiling from source now + matches that used for binary distributions. You will notice these + differences for installations from source distributions: + + * *Note `mysqld': mysqld. is installed in `bin', not `libexec'. + + * *Note `mysql_install_db': mysql-install-db. is installed in + `scripts', not `bin'. + + * The data directory is `data', not `var'. + + The `make_binary_distribution' and `make_win_bin_dist' scripts are + now obsolete. To create a binary distribution, use `make package'. + *Functionality Added or Changed* * *Incompatible Change*: Previously, if you flushed the logs using @@ -235320,20 +238810,20 @@ shell> mysqladmin flush-logs shell> mv HOST_NAME.err-old BACKUP-DIRECTORY - (Bug #29751) See also Bug #56821. + (Bug #29751) References: See also Bug #56821. * The unused and undocumented `thread_pool_size' system variable was removed. (Bug #57338) - * The `pstack' library was nonfunctional and has been removed, along - with the `--with-pstack' option for `configure' and the - `--enable-pstack' option for *Note `mysqld': mysqld. (Bug #57210) - * Added a new *Note `SHOW PROCESSLIST': show-processlist. state, `Waiting for query cache lock'. This indicates that a session is waiting to take the query cache lock while it performs some query cache operation. (Bug #56822) + * The `pstack' library was nonfunctional and has been removed, along + with the `--with-pstack' option for `configure' and the + `--enable-pstack' option for *Note `mysqld': mysqld. (Bug #57210) + * A new status variable, `Handler_read_last', displays the number of requests to read the last key in an index. With `ORDER BY', the server issues a first-key request followed by several next-key @@ -235357,10 +238847,6 @@ *Bugs Fixed* - * *Performance*: *InnoDB Storage Engine*: The master `InnoDB' - background thread could sometimes cause transient performance - drops due to excessive flushing of modified pages. (Bug #56933) - * *InnoDB Storage Engine*: *Incompatible Change*: *Security Fix*: Issuing *Note `TRUNCATE TABLE': truncate-table. and examining the same table's information in the `INFORMATION_SCHEMA' database at @@ -235375,11 +238861,9 @@ an error for such tables. Modify your SQL to issue `DELETE FROM TABLE_NAME' for such tables instead. (Bug #54678) - * *Security Fix*: The server crashed for assignment of values of - types other than `Geometry' to items of type `GeometryCollection' - (`MultiPoint', `MultiCurve', `MultiSurface'). Now the server - checks the value type and fails with `bad geometry value' if it - detects incorrect parameters. (Bug #55531) + * *Security Fix*: In prepared-statement mode, *Note `EXPLAIN': + explain. for a *Note `SELECT': select. from a derived table caused + a server crash. (Bug #54488) * *Security Fix*: The `CONVERT_TZ()' function crashed the server when the timezone argument was an empty *Note `SET': set. column @@ -235388,13 +238872,19 @@ * *Security Fix*: *Note `EXPLAIN EXTENDED': explain. caused a server crash with some prepared statements. (Bug #54494) - * *Security Fix*: In prepared-statement mode, *Note `EXPLAIN': - explain. for a *Note `SELECT': select. from a derived table caused - a server crash. (Bug #54488) + * *Security Fix*: The server crashed for assignment of values of + types other than `Geometry' to items of type `GeometryCollection' + (`MultiPoint', `MultiCurve', `MultiSurface'). Now the server + checks the value type and fails with `bad geometry value' if it + detects incorrect parameters. (Bug #55531) * *Security Fix*: The `PolyFromWKB()' function could crash the server when improper WKB data was passed to the function. (Bug - #51875, CVE-2010-3840) + #51875, Bug #11759554, CVE-2010-3840) + + * *Performance*: *InnoDB Storage Engine*: The master `InnoDB' + background thread could sometimes cause transient performance + drops due to excessive flushing of modified pages. (Bug #56933) * *Incompatible Change*: *Replication*: The behavior of *Note `INSERT DELAYED': insert-delayed. statements when using @@ -235423,9 +238913,8 @@ logging occurs. This means that the statement is logged as a simple *Note `INSERT': insert. (that is, without the `DELAYED' option), using the statement-based logging format. (Bug #54579, - Bug #11762035) See also Bug #56678, Bug #11763907, Bug #57666. - - This regression was introduced by Bug #39934, Bug #11749859. + Bug #11762035) References: See also Bug #56678, Bug #11763907, Bug + #57666. This bug was introduced by Bug #39934, Bug #11749859. * *Incompatible Change*: *Note `HANDLER ... READ': handler. statements that invoke stored functions can cause replication @@ -235466,19 +238955,10 @@ the MySQL 5.1 default values--that is, `OFF' and `Antelope', respectively. (Bug #56318, Bug #11763590) - * *InnoDB Storage Engine*: The server could crash with a high volume - of concurrent *Note `LOCK TABLES': lock-tables. and *Note `UNLOCK - TABLES': lock-tables. statements. (Bug #57345) - - * *InnoDB Storage Engine*: `InnoDB' incorrectly reported an error - when a cascading foreign key constraint deleted more than 250 rows. - (Bug #57255) - - * *InnoDB Storage Engine*: If the server crashed during an *Note - `ALTER TABLE': alter-table. operation on an `InnoDB' table, - examining the table through `SHOW CREATE TABLE' or querying the - `INFORMATION_SCHEMA' tables could cause the server to stop with an - assertion error. (Bug #56982) + * *InnoDB Storage Engine*: If the server crashed during a `RENAME + TABLE' operation on an `InnoDB' table, subsequent crash recovery + could fail. This problem could also affect an `ALTER TABLE' + statement that caused a rename operation internally. (Bug #55027) * *InnoDB Storage Engine*: The output from the *Note `SHOW ENGINE INNODB STATUS': show-engine. command can now be up to 1MB. @@ -235487,14 +238967,25 @@ limit by testing the `Innodb_truncated_status_writes' status variable. (Bug #56922) - * *InnoDB Storage Engine*: For debug builds, a `SELECT ... FOR - UPDATE' statement affecting a range of rows in an `InnoDB' table - could cause a server crash. (Bug #56716) + * *InnoDB Storage Engine*: Changed the locking mechanism for the + `InnoDB' data dictionary during `ROLLBACK' operations, to improve + concurrency for `REPLACE' statements. (Bug #54538) * *InnoDB Storage Engine*: Improved the performance of `UPDATE' operations on `InnoDB' tables, when only non-indexed columns are changed. (Bug #56340) + * *InnoDB Storage Engine*: The server could crash with a high volume + of concurrent *Note `LOCK TABLES': lock-tables. and *Note `UNLOCK + TABLES': lock-tables. statements. (Bug #57345) + + * *InnoDB Storage Engine*: The server could crash on shutdown, if + started with `--innodb-use-system-malloc=0'. (Bug #55627) + + * *InnoDB Storage Engine*: A heavy workload with a large number of + threads could cause a crash in the debug version of the server. + (Bug #55699) + * *InnoDB Storage Engine*: When MySQL was restarted after a crash with the option `innodb_force_recovery=6', certain queries against `InnoDB' tables could fail, depending on `WHERE' or `ORDER BY' @@ -235506,22 +238997,34 @@ diagnose the position of the corrupted data, or to recover data following the corrupted part. (Bug #55832) + * *InnoDB Storage Engine*: For debug builds, a `SELECT ... FOR + UPDATE' statement affecting a range of rows in an `InnoDB' table + could cause a server crash. (Bug #56716) + + * *InnoDB Storage Engine*: If the server crashed during an *Note + `ALTER TABLE': alter-table. operation on an `InnoDB' table, + examining the table through `SHOW CREATE TABLE' or querying the + `INFORMATION_SCHEMA' tables could cause the server to stop with an + assertion error. (Bug #56982) + + * *InnoDB Storage Engine*: `InnoDB' incorrectly reported an error + when a cascading foreign key constraint deleted more than 250 rows. + (Bug #57255) + + * *InnoDB Storage Engine*: With multiple buffer pools enabled, + `InnoDB' could flush more data from the buffer pool than necessary, + causing extra I/O overhead. (Bug #54346) + * *InnoDB Storage Engine*: The `CHECK TABLE' command could cause a time-consuming verification of the `InnoDB' adaptive hash index memory structure. Now this extra checking is only performed in binaries built for debugging. (Bug #55716) - * *InnoDB Storage Engine*: A heavy workload with a large number of - threads could cause a crash in the debug version of the server. - (Bug #55699) - - * *InnoDB Storage Engine*: The server could crash on shutdown, if - started with `--innodb-use-system-malloc=0'. (Bug #55627) - - * *InnoDB Storage Engine*: If the server crashed during a `RENAME - TABLE' operation on an `InnoDB' table, subsequent crash recovery - could fail. This problem could also affect an `ALTER TABLE' - statement that caused a rename operation internally. (Bug #55027) + * *InnoDB Storage Engine*: `InnoDB' transactions could be incorrectly + committed during recovery, rather than rolled back, if the server + crashed and was restarted after performing `ALTER TABLE ... ADD + PRIMARY KEY' on an `InnoDB' table, or some other operation that + involves copying the entire table. (Bug #53756) * *InnoDB Storage Engine*: Setting the `PACK_KEYS=0' table option for an *Note `InnoDB': innodb-storage-engine. table prevented new @@ -235531,20 +239034,6 @@ *Note `InnoDB': innodb-storage-engine. table linked through foreign keys to a long chain of child tables. (Bug #54582) - * *InnoDB Storage Engine*: Changed the locking mechanism for the - `InnoDB' data dictionary during `ROLLBACK' operations, to improve - concurrency for `REPLACE' statements. (Bug #54538) - - * *InnoDB Storage Engine*: With multiple buffer pools enabled, - `InnoDB' could flush more data from the buffer pool than necessary, - causing extra I/O overhead. (Bug #54346) - - * *InnoDB Storage Engine*: `InnoDB' transactions could be incorrectly - committed during recovery, rather than rolled back, if the server - crashed and was restarted after performing `ALTER TABLE ... ADD - PRIMARY KEY' on an `InnoDB' table, or some other operation that - involves copying the entire table. (Bug #53756) - * *InnoDB Storage Engine*: `InnoDB' startup messages now include the start and end times for buffer pool initialization, and the total buffer pool size. (Bug #48026) @@ -235574,30 +239063,7 @@ set-password. correctly, using row-based replication between a master running MySQL 5.1.53 or a later MySQL 5.1 release to a slave running MySQL 5.5.7 or a later MySQL 5.5 release. (Bug - #57098) See also Bug #55452, Bug #57357. - - * *Replication*: Prepared multiple-row *Note `INSERT DELAYED': - insert-delayed. statements were written to the binary log without - `DELAYED'. (Bug #56678, Bug #11763907) - - * *Replication*: Backticks used to enclose identifiers for - savepoints were not preserved in the binary log, which could lead - to replication failure when the identifier, stripped of backticks, - could be misinterpreted, causing a syntax or other error. - - This could cause problems with MySQL application programs making - use of generated savepoint IDs. If, for instance, - `java.sql.Connection.setSavepoint()' is called without any - parameters, Connector/J automatically generates a savepoint - identifier consisting of a string of hexadecimal digits `0'-`F' - encased in backtick (``') characters. If such an ID took the form - ``NeN`' (where N represents a string of the decimal digits - `0'-`9', and `e' is a literal uppercase or lowercase `E' - character). Removing the backticks when writing the identifier - into the binary log left behind a substring which the slave MySQL - server tried to interpret as a floating point number, rather than - as an identifier. The resulting syntax error caused loss of - replication. (Bug #55961) See also Bug #55962. + #57098) References: See also Bug #55452, Bug #57357. * *Replication*: When a slave tried to execute a transaction larger than the slave's value for `max_binlog_cache_size', it crashed. @@ -235635,89 +239101,85 @@ (Bug #54144) - * A buffer overrun could occur when formatting `DBL_MAX' numbers. - (Bug #57209) - - * `COALESCE()' in MySQL 5.5 could return a result different from - MySQL 5.1 for some arguments. (Bug #57095) - - * Constant `SUBTIME()' expressions could return incorrect results. - (Bug #57039) - - * When *Note `mysqld': mysqld. was started as a service on Windows - and *Note `mysqld': mysqld. was writing the error log to a file - (for example, if it was started with the `--log-error' option), - the server reassigned the file descriptors of the `stdout' and - `stderr' streams to the file descriptor of the log file. On - Windows, if `stdout' or `stderr' is not associated with an output - stream, the file descriptor returns a negative value. Previously, - this caused the file descriptor reassignment to fail and the - server to abort. To avoid this problem on Windows, the server now - first assigns the `stdout' and `stderr' streams to the log file - stream by opening this file. This causes the `stdout' and `stderr' - file descriptors to be nonzero and the server can successfully - reassign them to the file descriptor of the log file. (Bug #56821) - - * The server could crash inside `memcpy()' when reading certain - Performance Schema tables. (Bug #56761, Bug #58003) + * *Replication*: Backticks used to enclose identifiers for + savepoints were not preserved in the binary log, which could lead + to replication failure when the identifier, stripped of backticks, + could be misinterpreted, causing a syntax or other error. - * Deadlock could occur for heavily concurrent workloads consisting - of a mix of DML, DDL, and *Note `FLUSH TABLES': flush. statements - affecting the same set of tables. (Bug #56715, Bug #56404, Bug - #56405) + This could cause problems with MySQL application programs making + use of generated savepoint IDs. If, for instance, + `java.sql.Connection.setSavepoint()' is called without any + parameters, Connector/J automatically generates a savepoint + identifier consisting of a string of hexadecimal digits `0'-`F' + encased in backtick (``') characters. If such an ID took the form + ``NeN`' (where N represents a string of the decimal digits + `0'-`9', and `e' is a literal uppercase or lowercase `E' + character). Removing the backticks when writing the identifier + into the binary log left behind a substring which the slave MySQL + server tried to interpret as a floating point number, rather than + as an identifier. The resulting syntax error caused loss of + replication. (Bug #55961) References: See also Bug #55962. - * Memory leaks detected by Valgrind were corrected. (Bug #56709) + * *Replication*: Prepared multiple-row *Note `INSERT DELAYED': + insert-delayed. statements were written to the binary log without + `DELAYED'. (Bug #56678, Bug #11763907) References: This bug is a + regression of Bug #54579, Bug #11762035. - * On Mac OS X, *Note `RENAME TABLE': rename-table. raised an - assertion if the `lower_case_table_names' system variable was 2 - and the old table name was specified in uppercase. (Bug #56595) + * The server entered an infinite loop with high CPU utilization + after an error occurred during flushing of the I/O cache. (Bug + #55629) * Performance for certain read-only queries, in particular `point_select', had deteriorated compared to previous versions. (Bug #56585) - * It was possible to compile *Note `mysqld': mysqld. with - Performance Schema support but with a dummy atomic-operations - implementation, which caused a server crash. This problem does not - affect binary distributions. It is helpful as a safety measure for - users who build MySQL from source. (Bug #56521) + * For the Performance Schema, the default number of rwlock classes + was increased to 30, and the default number of rwlock and mutex + instances was increased to 1 million. These changes were made to + account for the volume of data instrumented when the *Note + `InnoDB': innodb-storage-engine. storage engine is used (because + of the *Note `InnoDB': innodb-storage-engine. buffer pool). (Bug + #55576) - * Executing *Note `XA END': xa. after an XA transaction was already - ended raised an assertion. (Bug #56448) + * `MIN()' or `MAX()' with a subquery argument could raise a debug + assertion for debug builds or return incorrect data for nondebug + builds. (Bug #54465) - * A *Note `SELECT': select. statement could produce a number of rows - different from a *Note `CREATE TABLE ... SELECT': - create-table-select. that was supposed to select the same rows. - (Bug #56423) + * `INFORMATION_SCHEMA' plugins with no `deinit()' method resulted in + a memory leak. (Bug #54253) - * The server crashed if a table maintenance statement such as *Note - `ANALYZE TABLE': analyze-table. or *Note `REPAIR TABLE': - repair-table. was executed on a *Note `MERGE': - merge-storage-engine. table and opening and locking a child table - failed. For example, this could happen if a child table did not - exist or if a lock timeout happened while waiting for a - conflicting metadata lock to disappear. + * If a view was named as the destination table for `CREATE TABLE ... + SELECT', the server produced a warning whether or not `IF NOT + EXISTS' was used. Now it produces a warning only when `IF NOT + EXISTS' is used, and an error otherwise. (Bug #55777) - As a consequence of this bug fix, it is now possible to use *Note - `CHECK TABLE': check-table. for log tables without producing an - error. (Bug #56422, Bug #56494) + * Setting `SETUP_INSTRUMENTS.TIMER = 'NO'' caused `TIMER_WAIT' + values for aggregations to be `NULL' rather than 0. (Bug #53874) - * *Note `ALTER TABLE': alter-table. on a *Note `MERGE': - merge-storage-engine. table could result in deadlock with other - connections. (Bug #56292, Bug #57002) + * Short (single-letter) command-line options did not work. (Bug + #55873) - * Comparison of one `STR_TO_DATE()' result with another could return - incorrect results. (Bug #56271) + * Queries involving predicates of the form `CONST NOT BETWEEN + NOT_INDEXED_COLUMN AND INDEXED_COLUMN' could return incorrect data + due to incorrect handling by the range optimizer. (Bug #54802) - * The `tcmalloc' library was missing from binary MySQL packages for - Linux. (Bug #56267) + * A negative *Note `TIME': time. argument to `MIN()' or `MAX()' + could raise an assertion. (Bug #56120) - * An *Note `INSERT DELAYED': insert-delayed. statement for a *Note - `MERGE': merge-storage-engine. table could cause deadlock if it - occurred as part of a transaction or under *Note `LOCK TABLES': - lock-tables, and there was a concurrent DDL or *Note `LOCK TABLES - ... WRITE': lock-tables. statement that tried to lock one of its - underlying tables. (Bug #56251) + * After the fix for Bug #39653, the shortest available secondary + index was used for full table scans. The primary clustered key was + used only if no secondary index could be used. However, when the + chosen secondary index includes all columns of the table being + scanned, it is better to use the primary index because the amount + of data to scan is the same but the primary index is clustered. + This is now taken into account. (Bug #55656) + + * If one session attempted to drop a database containing a table + which another session had opened with *Note `HANDLER': handler, + any instance of *Note `ALTER DATABASE': alter-database, *Note + `CREATE DATABASE': create-database, or *Note `DROP DATABASE': + drop-database. issued by the latter session produced a deadlock. + (Bug #54360) * In debug builds, the server raised an assertion for *Note `DROP DATABASE': drop-database. in installations that had an outdated or @@ -235725,19 +239187,23 @@ `mysql_upgrade': mysql-upgrade. when run as part of a MySQL 5.1 to 5.5 upgrade. (Bug #56137) - * A negative *Note `TIME': time. argument to `MIN()' or `MAX()' - could raise an assertion. (Bug #56120) - * The ordering for supplementary characters in the `utf8mb4_bin', `utf16_bin', and `utf32_bin' collations was incorrect. (Bug #55980) - * On Solaris with `gcc' 3.4.6, `ha_example.so' was built with DTrace - support even if the server was not, causing plugin loading - problems. (Bug #55966) + * It was possible to compile *Note `mysqld': mysqld. with + Performance Schema support but with a dummy atomic-operations + implementation, which caused a server crash. This problem does not + affect binary distributions. It is helpful as a safety measure for + users who build MySQL from source. (Bug #56521) - * Short (single-letter) command-line options did not work. (Bug - #55873) + * Row subqueries producing no rows were not handled as `UNKNOWN' + values in row-comparison expressions. (Bug #54190) + + * With an *Note `UPDATE IGNORE': update. statement including a + subquery that was evaluated using a temporary table, an error + transferring the data from the temporary was ignored, causing an + assertion to be raised. (Bug #54543) * If a query specified a *Note `DATE': datetime. or *Note `DATETIME': datetime. value in a format different from @@ -235745,101 +239211,132 @@ matched only greater-than values in an indexed *Note `TIMESTAMP': datetime. column. (Bug #55779, Bug #50774, Bug #11758558) - * If a view was named as the destination table for `CREATE TABLE ... - SELECT', the server produced a warning whether or not `IF NOT - EXISTS' was used. Now it produces a warning only when `IF NOT - EXISTS' is used, and an error otherwise. (Bug #55777) + * If there was an active *Note `SELECT': select. statement, an + error arising during trigger execution could cause a server crash. + (Bug #55421) - * `CASE' expressions with a mix of operands in different character - sets sometimes returned incorrect results. (Bug #55744) + * A buffer overrun could occur when formatting `DBL_MAX' numbers. + (Bug #57209) - * After the fix for Bug #39653, the shortest available secondary - index was used for full table scans. The primary clustered key was - used only if no secondary index could be used. However, when the - chosen secondary index includes all columns of the table being - scanned, it is better to use the primary index because the amount - of data to scan is the same but the primary index is clustered. - This is now taken into account. (Bug #55656) + * The `tcmalloc' library was missing from binary MySQL packages for + Linux. (Bug #56267) - * The server entered an infinite loop with high CPU utilization - after an error occurred during flushing of the I/O cache. (Bug - #55629) - - * For the Performance Schema, the default number of rwlock classes - was increased to 30, and the default number of rwlock and mutex - instances was increased to 1 million. These changes were made to - account for the volume of data instrumented when the *Note - `InnoDB': innodb-storage-engine. storage engine is used (because - of the *Note `InnoDB': innodb-storage-engine. buffer pool). (Bug - #55576) - - * If there was an active *Note `SELECT': select. statement, an - error arising during trigger execution could cause a server crash. - (Bug #55421) + * If an application using the embedded server called *Note + `mysql_library_init()': mysql-library-init. a second time after + calling *Note `mysql_library_init()': mysql-library-init. and + *Note `mysql_library_end()': mysql-library-end. to start and stop + the server, the application crashed when reading option files. + (Bug #53251) * Assignment of *Note `InnoDB': innodb-storage-engine. scalar subquery results to a variable resulted in unexpected `S' locks in - `READ COMMITTED' transation isolation level. (Bug #55382) + `READ COMMITTED' transaction isolation level. (Bug #55382) - * In debug builds, *Note `FLUSH TABLE TABLE_LIST WITH READ LOCK': - flush. for a *Note `MERGE': merge-storage-engine. table led to an - assertion failure if one of the table's children was not present - in the list of tables to be flushed. (Bug #55273) + * The `max_length' metadata value of *Note `MEDIUMBLOB': blob. types + was reported as 1 byte greater than the correct value. (Bug + #53296) * The server could crash during shutdown due to a race condition relating to Performance Schema cleanup. (Bug #55105, Bug #56324) - * Queries involving predicates of the form `CONST NOT BETWEEN - NOT_INDEXED_COLUMN AND INDEXED_COLUMN' could return incorrect data - due to incorrect handling by the range optimizer. (Bug #54802) + * The server could crash inside `memcpy()' when reading certain + Performance Schema tables. (Bug #56761, Bug #58003) - * With an *Note `UPDATE IGNORE': update. statement including a - subquery that was evaluated using a temporary table, an error - transferring the data from the temporary was ignored, causing an - assertion to be raised. (Bug #54543) + * Memory leaks detected by Valgrind were corrected. (Bug #56709) + + * *Note `ALTER TABLE': alter-table. on a *Note `MERGE': + merge-storage-engine. table could result in deadlock with other + connections. (Bug #56292, Bug #57002) + + * An *Note `INSERT DELAYED': insert-delayed. statement for a *Note + `MERGE': merge-storage-engine. table could cause deadlock if it + occurred as part of a transaction or under *Note `LOCK TABLES': + lock-tables, and there was a concurrent DDL or *Note `LOCK TABLES + ... WRITE': lock-tables. statement that tried to lock one of its + underlying tables. (Bug #56251) + + * The server crashed if a table maintenance statement such as *Note + `ANALYZE TABLE': analyze-table. or *Note `REPAIR TABLE': + repair-table. was executed on a *Note `MERGE': + merge-storage-engine. table and opening and locking a child table + failed. For example, this could happen if a child table did not + exist or if a lock timeout happened while waiting for a + conflicting metadata lock to disappear. + + As a consequence of this bug fix, it is now possible to use *Note + `CHECK TABLE': check-table. for log tables without producing an + error. (Bug #56422, Bug #56494) + + * In debug builds, *Note `FLUSH TABLE TABLE_LIST WITH READ LOCK': + flush. for a *Note `MERGE': merge-storage-engine. table led to an + assertion failure if one of the table's children was not present + in the list of tables to be flushed. (Bug #55273) + + * Deadlock could occur for heavily concurrent workloads consisting + of a mix of DML, DDL, and *Note `FLUSH TABLES': flush. statements + affecting the same set of tables. (Bug #56715, Bug #56404, Bug + #56405) * A bad `DBUG_PRINT' statement in `fill_schema_schemata()' caused server crashes on Solaris. (Bug #54478) - * `MIN()' or `MAX()' with a subquery argument could raise a debug - assertion for debug builds or return incorrect data for nondebug - builds. (Bug #54465) + * Executing *Note `XA END': xa. after an XA transaction was already + ended raised an assertion. (Bug #56448) - * If one session attempted to drop a database containing a table - which another session had opened with *Note `HANDLER': handler, - any instance of *Note `ALTER DATABASE': alter-database, *Note - `CREATE DATABASE': create-database, or *Note `DROP DATABASE': - drop-database. issued by the latter session produced a deadlock. - (Bug #54360) + * Comparison of one `STR_TO_DATE()' result with another could return + incorrect results. (Bug #56271) - * `INFORMATION_SCHEMA' plugins with no `deinit()' method resulted in - a memory leak. (Bug #54253) + * On Solaris with `gcc' 3.4.6, `ha_example.so' was built with DTrace + support even if the server was not, causing plugin loading + problems. (Bug #55966) - * Row subqueries producing no rows were not handled as `UNKNOWN' - values in row-comparison expressions. (Bug #54190) + * On Mac OS X, *Note `RENAME TABLE': rename-table. raised an + assertion if the `lower_case_table_names' system variable was 2 + and the old table name was specified in uppercase. (Bug #56595) - * Setting `SETUP_INSTRUMENTS.TIMER = 'NO'' caused `TIMER_WAIT' - values for aggregations to be `NULL' rather than 0. (Bug #53874) + * When *Note `mysqld': mysqld. was started as a service on Windows + and *Note `mysqld': mysqld. was writing the error log to a file + (for example, if it was started with the `--log-error' option), + the server reassigned the file descriptors of the `stdout' and + `stderr' streams to the file descriptor of the log file. On + Windows, if `stdout' or `stderr' is not associated with an output + stream, the file descriptor returns a negative value. Previously, + this caused the file descriptor reassignment to fail and the + server to abort. To avoid this problem on Windows, the server now + first assigns the `stdout' and `stderr' streams to the log file + stream by opening this file. This causes the `stdout' and `stderr' + file descriptors to be nonzero and the server can successfully + reassign them to the file descriptor of the log file. (Bug #56821) + References: This bug is a regression of Bug #29751. - * The `max_length' metadata value of *Note `MEDIUMBLOB': blob. types - was reported as 1 byte greater than the correct value. (Bug - #53296) + * `CASE' expressions with a mix of operands in different character + sets sometimes returned incorrect results. (Bug #55744) - * If an application using the embedded server called *Note - `mysql_library_init()': mysql-library-init. a second time after - calling *Note `mysql_library_init()': mysql-library-init. and - *Note `mysql_library_end()': mysql-library-end. to start and stop - the server, the application crashed when reading option files. - (Bug #53251) + * Constant `SUBTIME()' expressions could return incorrect results. + (Bug #57039) - * The fix for Bug #30234 caused the server to reject the `DELETE - TBL_NAME.* ...' Access compatibility syntax for multiple-table - *Note `DELETE': delete. statements. (Bug #53034) + * `COALESCE()' in MySQL 5.5 could return a result different from + MySQL 5.1 for some arguments. (Bug #57095) + + * A *Note `SELECT': select. statement could produce a number of rows + different from a *Note `CREATE TABLE ... SELECT': + create-table-select. that was supposed to select the same rows. + (Bug #56423) References: This bug is a regression of Bug #38999. + + * Using `REPAIR TABLE TBL_NAME USE_FRM' on a `MERGE' table caused the + server to crash. (Bug #46339) + + * In *Note `LOAD DATA INFILE': load-data, using a `SET' clause to + set a column equal to itself caused a server crash. (Bug #51850) * The `plugin_ftparser.h' and `plugin_audit.h' include files are part of the public API/ABI, but were not tested by the ABI check. (Bug #52821) + * The fix for Bug #30234 caused the server to reject the `DELETE + TBL_NAME.* ...' Access compatibility syntax for multiple-table + *Note `DELETE': delete. statements. (Bug #53034) + * An atomic `compare and swap' operation using x86 assembly code (32 bit) could access incorrect data, which would make it work incorrectly and lose the intended atomicity. This in turn caused @@ -235850,46 +239347,37 @@ so this fix is a proactive one. Other compilers do not use this assembly code. (Bug #52419) - * In *Note `LOAD DATA INFILE': load-data, using a `SET' clause to - set a column equal to itself caused a server crash. (Bug #51850) - - * An assertion could be raised by *Note `DELETE': delete. on a view - that referenced another view which in turn (directly or - indirectly) referenced more than one table. (Bug #51099) - * In some cases, when the left part of a `NOT IN' subquery predicate was a row and contained `NULL' values, the query result was incorrect. (Bug #51070) - * *Note `CHECKSUM TABLE': checksum-table. for Performance Schema - tables could cause a server crash due to uninitialized memory - reads. (Bug #50557) + * *Note `EXPLAIN': explain. produced an incorrect `rows' value for + queries evaluated using an index scan and that included `LIMIT', + `GROUP BY', and `ORDER BY' on a computed column. (Bug #50394) * For some queries, the optimizer produced incorrect results using the Index Merge access method with *Note `InnoDB': innodb-storage-engine. tables. (Bug #50402) - * *Note `EXPLAIN': explain. produced an incorrect `rows' value for - queries evaluated using an index scan and that included `LIMIT', - `GROUP BY', and `ORDER BY' on a computed column. (Bug #50394) - * *Note `mysql_store_result()': mysql-store-result. and *Note `mysql_use_result()': mysql-use-result. are not for use with prepared statements and are not intended to be called following *Note `mysql_stmt_execute()': mysql-stmt-execute, but failed to return an error when invoked that way. (Bug #47485) - * Using `REPAIR TABLE TBL_NAME USE_FRM' on a `MERGE' table caused the - server to crash. (Bug #46339) + * *Note `CHECKSUM TABLE': checksum-table. for Performance Schema + tables could cause a server crash due to uninitialized memory + reads. (Bug #50557) * If the global and session `debug' system variables had the same value, the debug trace file could be closed twice, leading to freeing already freed memory and a server crash. (Bug #46165) - * If *Note `ALTER EVENT': alter-event. failed to load an event after - altering it, an assertion could be raised. This could occur, for - example, if *Note `ALTER EVENT': alter-event. was killed with - *Note `KILL QUERY': kill. (Bug #44171) + * An assertion could be raised by *Note `DELETE': delete. on a view + that referenced another view which in turn (directly or + indirectly) referenced more than one table. (Bug #51099) + + * Multiple-statement execution could fail. (Bug #40877) * Trailing space removal for `utf32' strings was done with non-multibyte-safe code, leading to incorrect result length and @@ -235898,12 +239386,15 @@ * A malformed packet sent by the server when the query cache was in use resulted in lost-connection errors. (Bug #42503) - * Multiple-statement execution could fail. (Bug #40877) - * *Note `CREATE TABLE': create-table. failed if a column referred to in an index definition and foreign key definition had different lettercases in the two definitions. (Bug #39932) + * If *Note `ALTER EVENT': alter-event. failed to load an event after + altering it, an assertion could be raised. This could occur, for + example, if *Note `ALTER EVENT': alter-event. was killed with + *Note `KILL QUERY': kill. (Bug #44171) + * *Note `mysqlcheck': mysqlcheck. behaved differently depending on the order in which options were given on the command line. (Bug #35269) @@ -235914,8 +239405,8 @@  File: manual.info, Node: news-5-5-6, Next: news-5-5-5, Prev: news-5-5-7, Up: news-5-5-x -D.1.15 Changes in MySQL 5.5.6 (13 September 2010 Release Candidate) -------------------------------------------------------------------- +D.1.17 Changes in MySQL 5.5.6 (13 September 2010, Release Candidate) +-------------------------------------------------------------------- *Functionality Added or Changed* @@ -235939,6 +239430,9 @@ Visual Studio 2005, install Windows SDK Update for Windows Vista. (Bug #22268) + * Overhead for the Performance Schema interface was reduced. (Bug + #55087) + * Previously, `MySQL-shared-compat' RPMs for Linux contained both the current and previous client library versions for the target platform. Thus, the package contents overlapped with @@ -235977,9 +239471,6 @@ install both the `MySQL-shared' and `MySQL-shared-compat' RPMs now. (Bug #56150) - * Overhead for the Performance Schema interface was reduced. (Bug - #55087) - * Within stored programs, `LIMIT' clauses now permit integer-valued routine parameters or local variables as parameters. (Bug #11918) @@ -235988,20 +239479,17 @@ *Bugs Fixed* - * *Performance*: *InnoDB Storage Engine*: The setting - `innodb_change_buffering=all' could produce slower performance for - some operations than the previous default, - `innodb_change_buffering=inserts'. (Bug #54914) - - * *Performance*: *InnoDB Storage Engine*: An *Note `EXPLAIN': - explain. plan for an `InnoDB' table could vary greatly in the - estimated cost for a `BETWEEN' clause. (Bug #53761) - * *InnoDB Storage Engine*: *Security Fix*: After changing the values of the `innodb_file_format' or `innodb_file_per_table' configuration parameters, DDL statements could cause a server crash. (Bug #55039, CVE-2010-3676) + * *Security Fix*: Queries could cause a server crash if the + `GREATEST()' or `LEAST()' function had a mixed list of numeric and + *Note `LONGBLOB': blob. arguments, and the result of such a + function was processed using an intermediate temporary table. + (Bug #54461, CVE-2010-3838) + * *Security Fix*: During evaluation of arguments to extreme-value functions such as `LEAST()' and `GREATEST()', type errors did not propagate properly, causing the server to crash. (Bug #55826, @@ -236011,39 +239499,23 @@ derived table that required a temporary table for grouping. (Bug #55568, CVE-2010-3834) - * *Security Fix*: A user-variable assignment expression that is - evaluated in a logical expression context can be precalculated in - a temporary table for `GROUP BY'. However, when the expression - value is used after creation of the temporary table, it was - re-evaluated, not read from the table, and a server crash resulted. - (Bug #55564, CVE-2010-3835) + * *Security Fix*: Queries with nested joins could cause an infinite + loop in the server when used from stored procedures and prepared + statements. (Bug #53544, CVE-2010-3839) - * *Security Fix*: Joins involving a table with a unique *Note `SET': - set. column could cause a server crash. (Bug #54575, - CVE-2010-3677) + * *Security Fix*: `GROUP_CONCAT()' and `WITH ROLLUP' together could + cause a server crash. (Bug #54476, CVE-2010-3837) * *Security Fix*: Pre-evaluation of `LIKE' predicates during view preparation could cause a server crash. (Bug #54568, Bug #11762026, CVE-2010-3836) - * *Security Fix*: Incorrect handling of `NULL' arguments could lead - to a crash for `IN()' or `CASE' operations when `NULL' arguments - were either passed explicitly as arguments (for `IN()') or - implicitly generated by the `WITH ROLLUP' modifier (for `IN()' and - `CASE'). (Bug #54477, CVE-2010-3678) - - * *Security Fix*: `GROUP_CONCAT()' and `WITH ROLLUP' together could - cause a server crash. (Bug #54476, CVE-2010-3837) - - * *Security Fix*: Queries could cause a server crash if the - `GREATEST()' or `LEAST()' function had a mixed list of numeric and - *Note `LONGBLOB': blob. arguments, and the result of such a - function was processed using an intermediate temporary table. - (Bug #54461, CVE-2010-3838) - - * *Security Fix*: A malformed argument to the *Note `BINLOG': - binlog. statement could result in Valgrind warnings or a server - crash. (Bug #54393, CVE-2010-3679) + * *Security Fix*: A user-variable assignment expression that is + evaluated in a logical expression context can be precalculated in + a temporary table for `GROUP BY'. However, when the expression + value is used after creation of the temporary table, it was + re-evaluated, not read from the table, and a server crash resulted. + (Bug #55564, CVE-2010-3835) * *Security Fix*: After *Note `ALTER TABLE': alter-table. was used on a temporary transactional table locked by *Note `LOCK TABLES': @@ -236055,18 +239527,35 @@ innodb-storage-engine. tables with nullable columns could cause a server crash. (Bug #54044, CVE-2010-3680) - * *Security Fix*: Queries with nested joins could cause an infinite - loop in the server when used from stored procedures and prepared - statements. (Bug #53544, CVE-2010-3839) + * *Security Fix*: A malformed argument to the *Note `BINLOG': + binlog. statement could result in Valgrind warnings or a server + crash. (Bug #54393, CVE-2010-3679) + + * *Security Fix*: Incorrect handling of `NULL' arguments could lead + to a crash for `IN()' or `CASE' operations when `NULL' arguments + were either passed explicitly as arguments (for `IN()') or + implicitly generated by the `WITH ROLLUP' modifier (for `IN()' and + `CASE'). (Bug #54477, CVE-2010-3678) + + * *Security Fix*: Joins involving a table with a unique *Note `SET': + set. column could cause a server crash. (Bug #54575, + CVE-2010-3677) * *Security Fix*: Using *Note `EXPLAIN': explain. with queries of the form `SELECT ... UNION ... ORDER BY (SELECT ... WHERE ...)' could cause a server crash. (Bug #52711, CVE-2010-3682) - * *Security Fix*: Bug #49124 was fixed. - * *Security Fix*: Bug #49124 and Bug #11757121 were fixed. + * *Performance*: *InnoDB Storage Engine*: The setting + `innodb_change_buffering=all' could produce slower performance for + some operations than the previous default, + `innodb_change_buffering=inserts'. (Bug #54914) + + * *Performance*: *InnoDB Storage Engine*: An *Note `EXPLAIN': + explain. plan for an `InnoDB' table could vary greatly in the + estimated cost for a `BETWEEN' clause. (Bug #53761) + * *Incompatible Change*: *Replication*: As of MySQL 5.5.6, handling of *Note `CREATE TABLE IF NOT EXISTS ... SELECT': create-table-select. statements has been changed for the case that @@ -236181,23 +239670,15 @@ statement now produces a warning; when using mixed-format logging, the statement is made using the row-based format. (Bug #34283) - * *InnoDB Storage Engine*: An assertion was raised if (1) an *Note - `InnoDB': innodb-storage-engine. table was created using *Note - `CREATE TABLE ... SELECT': create-table-select. where the query - used an `INFORMATION_SCHEMA' table and a view existed in the - database; or (2) any statement that modified an *Note `InnoDB': - innodb-storage-engine. table had a subquery referencing an - `INFORMATION_SCHEMA' table. (Bug #55973) + * *InnoDB Storage Engine*: The `Lock_time' field in the slow query + log now reports a larger value, including the time for *Note + `InnoDB': innodb-storage-engine. lock waits at the statement level. + (Bug #53496) * *InnoDB Storage Engine*: The `InnoDB' storage engine was not included in the default installation when using the `configure' script. (Bug #55547) - * *InnoDB Storage Engine*: For an `InnoDB' table with an - auto-increment column, the server could crash if the first - statement that references the table after a server restart is a - `SHOW CREATE TABLE' statement. (Bug #55277) - * *InnoDB Storage Engine*: The *Note `mysql_config': mysql-config. tool did not output the requirement for the `aio' library for `mysqld-libs'. (Bug #55215) @@ -236205,34 +239686,10 @@ * *InnoDB Storage Engine*: Some memory used for `InnoDB' asynchronous I/O was not freed at shutdown. (Bug #54764) - * *InnoDB Storage Engine*: Implementation of the 64-bit `dulint' - structure in *Note `InnoDB': innodb-storage-engine. was not - optimized for 64-bit processors, resulting in excessive storage - and reduced performance. (Bug #54728) - - * *InnoDB Storage Engine*: The output from the *Note `SHOW ENGINE - INNODB STATUS': show-engine. command now includes information about - `spin rounds' for RW-locks (both shared and exclusive locks). - (Bug #54726) - - * *InnoDB Storage Engine*: An *Note `ALTER TABLE': alter-table. - statement could convert an `InnoDB' compressed table (with - `row_format=compressed') back to an uncompressed table (with - `row_format=compact'). (Bug #54679) - - * *InnoDB Storage Engine*: `InnoDB' could issue an incorrect message - on startup, if tables were created under the setting - `innodb_file_per_table=ON'. The message was of the form `InnoDB: - Warning: allocated tablespace N, old maximum was 0 'and is no - longer displayed during restarts after you have upgraded the MySQL - server and created at least one `InnoDB' table with - `innodb_file_per_table=ON'. If you continue to encounter this - message, you might have corruption in your shared tablespace; if - so, back up and reload your data. (Bug #54658) - - * *InnoDB Storage Engine*: For debug builds, the database server - could crash when renaming a table that had active transactions. - (Bug #54453) + * *InnoDB Storage Engine*: For an `InnoDB' table with an + auto-increment column, the server could crash if the first + statement that references the table after a server restart is a + `SHOW CREATE TABLE' statement. (Bug #55277) * *InnoDB Storage Engine*: The server could crash during the recovery phase of startup, if it previously crashed while @@ -236247,32 +239704,71 @@ off-page storage were being inserted at the same time. (Bug #54358) + * *InnoDB Storage Engine*: For debug builds, the database server + could crash when renaming a table that had active transactions. + (Bug #54453) + * *InnoDB Storage Engine*: Fast index creation in the `InnoDB Plugin' could fail, leaving the new secondary index corrupted. (Bug #54330) + * *InnoDB Storage Engine*: `InnoDB' could issue an incorrect message + on startup, if tables were created under the setting + `innodb_file_per_table=ON'. The message was of the form `InnoDB: + Warning: allocated tablespace N, old maximum was 0'. If you + encounter this message after upgrading, create an `InnoDB' table + with `innodb_file_per_table = ON' and restart the server. The + message should not be displayed any more. If you continue to + encounter this message, or if you get it and haven't used a + version without this fix, you might have corruption in your shared + tablespace. If so, back up and reload your data. (Bug #54658) + + * *InnoDB Storage Engine*: An *Note `ALTER TABLE': alter-table. + statement could convert an `InnoDB' compressed table (with + `row_format=compressed') back to an uncompressed table (with + `row_format=compact'). (Bug #54679) + + * *InnoDB Storage Engine*: The output from the *Note `SHOW ENGINE + INNODB STATUS': show-engine. command now includes information about + `spin rounds' for RW-locks (both shared and exclusive locks). + (Bug #54726) + * *InnoDB Storage Engine*: If a session executing *Note `TRUNCATE TABLE': truncate-table. on an *Note `InnoDB': innodb-storage-engine. table was killed during `open_tables()', an assertion could be raised. (Bug #53757) - * *InnoDB Storage Engine*: The `Lock_time' field in the slow query - log now reports a larger value, including the time for *Note - `InnoDB': innodb-storage-engine. lock waits at the statement level. - (Bug #53496) + * *InnoDB Storage Engine*: Implementation of the 64-bit `dulint' + structure in *Note `InnoDB': innodb-storage-engine. was not + optimized for 64-bit processors, resulting in excessive storage + and reduced performance. (Bug #54728) - * *InnoDB Storage Engine*: Misimplementation of the - `os_fast_mutex_trylock()' function in *Note `InnoDB': - innodb-storage-engine. resulted in unnecessary blocking and - reduced performance. (Bug #53204) + * *InnoDB Storage Engine*: An assertion was raised if (1) an *Note + `InnoDB': innodb-storage-engine. table was created using *Note + `CREATE TABLE ... SELECT': create-table-select. where the query + used an `INFORMATION_SCHEMA' table and a view existed in the + database; or (2) any statement that modified an *Note `InnoDB': + innodb-storage-engine. table had a subquery referencing an + `INFORMATION_SCHEMA' table. (Bug #55973) + + * *InnoDB Storage Engine*: Performing large numbers of *Note `RENAME + TABLE': rename-table. statements caused excessive memory use. + (Bug #47991) * *InnoDB Storage Engine*: *Note `InnoDB': innodb-storage-engine. could not create tables that used the `utf32' character set. (Bug #52199) - * *InnoDB Storage Engine*: Performing large numbers of *Note `RENAME - TABLE': rename-table. statements caused excessive memory use. - (Bug #47991) + * *InnoDB Storage Engine*: Misimplementation of the + `os_fast_mutex_trylock()' function in *Note `InnoDB': + innodb-storage-engine. resulted in unnecessary blocking and + reduced performance. (Bug #53204) + + * *Partitioning*: An *Note `ALTER TABLE ... ADD PARTITION': + alter-table-partition-operations. statement run concurrently with + a read lock caused spurious `ER_TABLE_EXISTS_ERROR' and + `ER_NO_SUCH_TABLE' errors on subsequent attempts. (Bug #53676) + References: See also Bug #53770. * *Partitioning*: With `innodb_thread_concurrency = 1', *Note `ALTER TABLE ... REORGANIZE PARTITION': alter-table. and *Note `SELECT': @@ -236281,21 +239777,6 @@ were needed by the *Note `SELECT': select. thread to be able to continue. (Bug #54747) - * *Partitioning*: An *Note `ALTER TABLE ... ADD PARTITION': - alter-table-partition-operations. statement run concurrently with - a read lock caused spurious `ER_TABLE_EXISTS_ERROR' and - `ER_NO_SUCH_TABLE' errors on subsequent attempts. (Bug #53676) - See also Bug #53770. - - * *Partitioning*: *Note `UPDATE': update. and *Note `INSERT': - insert. statements affecting partitioned tables performed poorly - when using row-based replication. (Bug #52517) - - * *Partitioning*: *Note `INSERT ON DUPLICATE KEY UPDATE': insert. - statements performed poorly on tables having many partitions. The - handler function for reading a row from a specific index was not - optimized in the partitioning handler. (Bug #52455) - * *Partitioning*: *Note `ALTER TABLE ... TRUNCATE PARTITION': alter-table-partition-operations, when called concurrently with transactional DML on the table, was executed immediately and did @@ -236303,12 +239784,57 @@ result, the *Note `ALTER TABLE': alter-table. statement was written into the binary log before the DML statement, which led to replication failures when using row-based logging. (Bug #49907) - See also Bug #42643. + References: See also Bug #42643. * *Partitioning*: When the storage engine used to create a partitioned table was disabled, attempting to drop the table caused the server to crash. (Bug #46086) + * *Partitioning*: *Note `INSERT ON DUPLICATE KEY UPDATE': insert. + statements performed poorly on tables having many partitions. The + handler function for reading a row from a specific index was not + optimized in the partitioning handler. (Bug #52455) + + * *Partitioning*: *Note `UPDATE': update. and *Note `INSERT': + insert. statements affecting partitioned tables performed poorly + when using row-based replication. (Bug #52517) References: This + bug is a regression of Bug #39084. + + * *Replication*: If the SQL thread was started while the I/O thread + was performing rotation of the relay log, the two threads could + begin to race for the same I/O cache, leading to a server crash. + (Bug #54509) References: See also Bug #50364. + + * *Replication*: The value of + `binlog_direct_non_transactional_updates' had no effect on + statements mixing transactional tables and nontransactional + tables, or mixing temporary tables and nontransactional tables. + + As part of the fix for this issue, updates to temporary tables are + now handled as transactional or nontransactional according to + their storage engine types. (In effect, the current fix reverts a + change made previously as part of the fix for Bug #53259.) + + In addition, unsafe mixed statements (that is, statements which + access transactional table as well nontransactional or temporary + tables, and write to any of them) are now handled as transactional + when the statement-based logging format is in use. (Bug #53452) + References: See also Bug #51894. + + * *Replication*: A number of statements generated unnecessary + warnings as potentially unsafe statements. (Due to the fix for Bug + #51894, a temporary table is treated in this context as a + transactional table, so that any mixed statement such as + `t_innodb' + `t_myisam' or `t_temp' + `t_myisam' is flagged as + unsafe.) + + To reduce the number of spurious warnings produced when this + happened, some of the criteria used to classify a statements as + safe or unsafe have been changed. For more information about + handling of mixed statements, see *Note + replication-features-transactions-trx-nontrx-mixed::. (Bug #53259) + References: See also Bug #53452, Bug #54872. + * *Replication*: When using the row-based logging format, a failed *Note `CREATE TABLE ... SELECT': create-table. statement was written to the binary log, causing replication to break if the @@ -236338,7 +239864,8 @@ to a nontransactional temporary table within a transaction were not written into the binary log when the transaction was rolled back. This could lead to a failure in replication if the temporary table - was used again afterwards. (Bug #54872) See also Bug #53259. + was used again afterwards. (Bug #54872) References: See also Bug + #53259. * *Replication*: If `binlog_format' was explicitly switched from `STATEMENT' to `ROW' following the creation of a temporary table, @@ -236346,12 +239873,7 @@ *Note `DROP TEMPORARY TABLE': drop-table. statement into the binary log. As a consequence, temporary tables (and their corresponding files) accumulated as this scenario was repeated. - (Bug #54842) See also Bug #52616. - - * *Replication*: If the SQL thread was started while the I/O thread - was performing rotation of the relay log, the two threads could - begin to race for the same I/O cache, leading to a server crash. - (Bug #54509) See also Bug #50364. + (Bug #54842) References: See also Bug #52616. * *Replication*: Two related issues involving temporary tables and transactions were introduced by a fix made in MySQL 5.1.37: @@ -236370,37 +239892,8 @@ not written to the binary log. The current fix restores the correct behavior in both of these - cases. (Bug #53560) This regression was introduced by Bug #43929. - - * *Replication*: The value of - `binlog_direct_non_transactional_updates' had no effect on - statements mixing transactional tables and nontransactional - tables, or mixing temporary tables and nontransactional tables. - - As part of the fix for this issue, updates to temporary tables are - now handled as transactional or nontransactional according to - their storage engine types. (In effect, the current fix reverts a - change made previously as part of the fix for Bug #53259.) - - In addition, unsafe mixed statements (that is, statements which - access transactional table as well nontransactional or temporary - tables, and write to any of them) are now handled as transactional - when the statement-based logging format is in use. (Bug #53452) - See also Bug #51894. - - * *Replication*: A number of statements generated unnecessary - warnings as potentially unsafe statements. (Due to the fix for Bug - #51894, a temporary table is treated in this context as a - transactional table, so that any mixed statement such as - `t_innodb' + `t_myisam' or `t_temp' + `t_myisam' is flagged as - unsafe.) - - To reduce the number of spurious warnings produced when this - happened, some of the criteria used to classify a statements as - safe or unsafe have been changed. For more information about - handling of mixed statements, see *Note - replication-features-transactions-trx-nontrx-mixed::. (Bug #53259) - See also Bug #53452, Bug #54872. + cases. (Bug #53560) References: This bug was introduced by Bug + #43929. * *Replication*: When `binlog_format=STATEMENT', any statement that is flagged as being unsafe, possibly causing the slave to go out @@ -236416,19 +239909,9 @@ earlier issue caused warnings for substatements to be cleared whenever a new substatement was started. However, this suppressed warnings for unsafe statements in some cases. Now, such warnings - are no longer cleared. (Bug #50312) This regression was + are no longer cleared. (Bug #50312) References: This bug was introduced by Bug #36649. - * *Replication*: Replication could break if a transaction involving - both transactional and nontransactional tables was rolled back to a - savepoint. It broke if a concurrent connection tried to drop a - transactional table which was locked after the savepoint was set. - This *Note `DROP TABLE': drop-table. completed when *Note - `ROLLBACK TO SAVEPOINT': commit. was executed because the lock on - the table was dropped by the transaction. When the slave later - tried to apply the binary log events, it failed because the table - had already been dropped. (Bug #50124) - * *Replication*: When `CURRENT_USER()' or `CURRENT_USER' was used to supply the name and host of the affected user or of the definer in any of the statements *Note `DROP USER': drop-user, *Note `RENAME @@ -236443,119 +239926,140 @@ and host are referenced on both the master and the slave. (Bug #48321) + * *Replication*: Replication could break if a transaction involving + both transactional and nontransactional tables was rolled back to a + savepoint. It broke if a concurrent connection tried to drop a + transactional table which was locked after the savepoint was set. + This *Note `DROP TABLE': drop-table. completed when *Note + `ROLLBACK TO SAVEPOINT': commit. was executed because the lock on + the table was dropped by the transaction. When the slave later + tried to apply the binary log events, it failed because the table + had already been dropped. (Bug #50124) + * After an RPM installation, *Note `mysqld': mysqld. would be started with the `root' user, rather than the `mysql' user. (Bug #56574) - * The embedded server raised an assertion when it attempted to load - plugins. (Bug #56085) - - * `FORMAT()' did not respect the decimal point character if the - locale was changed and always returned an ASCII value. (Bug - #55912) + * When upgrading an existing install with an RPM on Linux, the MySQL + server might not have been restarted properly. This was due to a + naming conflict when upgrading from a `community' named RPM. + Previous installations are now correctly removed, the MySQL + initialization script is recreated, and the MySQL server is + restarted as normal. (Bug #55015) * `CMake' produced bad dependencies for the `sql/lex_hash.h' file during configuration. (Bug #55842) - * *Note `mysql_upgrade': mysql-upgrade. did not handle the `--ssl' - option properly. (Bug #55672) - - * Using `MIN()' or `MAX()' on a column containing the maximum *Note - `TIME': time. value caused a server crash. (Bug #55648) - - * Incorrect handling of user variable assignments as subexpressions - could lead to incorrect results or server crashes. (Bug #55615) - * The default compiler options for Mac OS X 10.5 were set incorrectly. (Bug #55601) - * The server was not checking for errors generated during the - execution of `Item::val_xxx()' methods when copying data to a - group, order, or distinct temp table's row. (Bug #55580) - - * `ORDER BY' clauses that included user-variable expressions could - raise a debug assertion. (Bug #55565) + * The Windows MSI installer failed during installation to preserve + custom settings, such as the configured data directory. (Bug + #55169) - * *Note `SHOW CREATE TRIGGER': show-create-trigger. took a stronger - metadata lock than required. This caused the statement to be - blocked unnecessarily. For example, *Note `LOCK TABLES ... WRITE': - lock-tables. in one session blocked *Note `SHOW CREATE TRIGGER': - show-create-trigger. in another session. + * The `-features=no%except' option was missing from the build for + Solaris/x86. (Bug #55250) - Also, a *Note `SHOW CREATE TRIGGER': show-create-trigger. - statement issued inside a transaction did not release its metadata - locks at the end of statement execution. Consequently, *Note `SHOW - CREATE TRIGGER': show-create-trigger. was able to block other - sessions from accessing the table (for example, using *Note `ALTER - TABLE': alter-table.). (Bug #55498) + * Building MySQL on Solaris 8 x86 failed when using Sun Studio due + to `gcc' inline assembly code. (Bug #55061) - * A single-table *Note `DELETE': delete. ordered by a column that - had a hash-type index could raise an assertion or cause a server - crash. (Bug #55472) + * Builds of MySQL generated a large number of warnings. (Bug #53445) - * A call to *Note `mysql_library_init()': mysql-library-init. - following a call to *Note `mysql_library_end()': - mysql-library-end. caused a client crash. (Bug #55345) + * Performance Schema header files were not installed in the correct + directory. (Bug #53255) - * The `-features=no%except' option was missing from the build for - Solaris/x86. (Bug #55250) + * Missing Performance Schema tables were not reported in the error + log at server startup. (Bug #53617) - * A statement that was aborted by *Note `KILL QUERY': kill. while it - waited on a metadata lock could raise an assertion in debug - builds, or send OK to the client instead of `ER_QUERY_INTERRUPTED' - in regular builds. (Bug #55223) + * *Note `SHOW ENGINE PERFORMANCE_SCHEMA STATUS': show-engine. + underreported the amount of memory allocated by the Performance + Schema. (Bug #53566) - * `GROUP BY' operations used `max_sort_length' inconsistently. (Bug - #55188) + * A client with automatic reconnection enabled saw the error message + `Lost connection to MySQL server during query' if the connection + was lost between the *Note `mysql_stmt_prepare()': + mysql-stmt-prepare. and *Note `mysql_stmt_execute()': + mysql-stmt-execute. C API functions. However, *Note + `mysql_stmt_errno()': mysql-stmt-errno. returned 0, not the + corresponding error number 2013. (Bug #53899) - * The Windows MSI installer failed during installation to preserve - custom settings, such as the configured data directory. (Bug - #55169) + * A client could supply data in chunks to a prepared statement + parameter other than of type *Note `TEXT': blob. or *Note `BLOB': + blob. using the *Note `mysql_stmt_send_long_data()': + mysql-stmt-send-long-data. C API function (or + `COM_STMT_SEND_LONG_DATA' command). This led to a crash because + other data types are not valid for long data. (Bug #54041) - * *Note `InnoDB': innodb-storage-engine. produced no warning at - startup about illegal `innodb_file_format_check' values. (Bug - #55095) + * The server failed to disregard sort order for some zero-length + tuples, leading to an assertion failure. (Bug #54459) - * `IF()' with a subquery argument could raise a debug assertion for - debug builds under some circumstances. (Bug #55077) + * If a session tried to drop a database containing a table opened + with *Note `HANDLER': handler. in another session, any `DATABASE' + statement (`CREATE', `DROP', `ALTER') executed by that session + produced a deadlock. (Bug #54360) - * Building MySQL on Solaris 8 x86 failed when using Sun Studio due - to `gcc' inline assembly code. (Bug #55061) + * A signal-handler redefinition for `SIGUSR1' was removed. The + redefinition could cause the server to encounter a kernel deadlock + on Solaris when there are many active threads. Other POSIX + platforms might also be affected. (Bug #54667) - * When upgrading an existing install with an RPM on Linux, the MySQL - server might not have been restarted properly. This was due to a - naming conflict when upgrading from a `community' named RPM. - Previous installations are now correctly removed, the MySQL - initialization script is recreated, and the MySQL server is - restarted as normal. (Bug #55015) + * Assignments of the `PASSWORD()' or `OLD_PASSWORD()' function to a + user variable did not preserve the character set of the function + return value. (Bug #54668) - * The `thread_concurrency' system variable was unavailable on - non-Solaris systems. (Bug #55001) + * *Note `mysql_secure_installation': mysql-secure-installation. did + not properly identify local accounts and could incorrectly remove + nonlocal `root' accounts. (Bug #54004) - * *Note `mysqld_safe': mysqld-safe. contained a syntax error that - prevented it from restarting the server. (Bug #54991) + * In a slave SQL thread or Event Scheduler thread, the `SLEEP()' + function could not sleep more than five seconds. (Bug #54729) - * If audit plugins were installed that were interested in - `MYSQL_AUDIT_GENERAL_CLASS' events and the general query log was - disabled, failed *Note `INSTALL PLUGIN': install-plugin. or *Note - `UNINSTALL PLUGIN': uninstall-plugin. statements caused a server - crash. (Bug #54989) + * Performance Schema event collection for a thread could `leak' from + one connection to another if the thread was used for one + connection, then cached, then reused for another connection. (Bug + #54782) - * Some functions did not calculate their `max_length' metadata value - correctly. (Bug #54916) + * The Performance Schema displayed spurious startup error messages + when the server was run in bootstrap mode. (Bug #54467) - * A *Note `SHOW CREATE TABLE': show-create-table. statement issued - inside a transaction did not release its metadata locks at the end - of statement execution. Consequently, *Note `SHOW CREATE TABLE': - show-create-table. was able to block other sessions from accessing - the table (for example, using *Note `ALTER TABLE': alter-table.). - (Bug #54905) + * The patch for Bug #36569 caused performance regressions and + incorrect execution of some *Note `UPDATE': update. statements. + (Bug #53737, Bug #53742) * *Note `INFORMATION_SCHEMA.ENGINES': engines-table. and *Note `SHOW ENGINES': show-engines. described *Note `MyISAM': myisam-storage-engine. as the default storage engine, but this is not true as of MySQL 5.5.5. (Bug #54832) + * *Note `INFORMATION_SCHEMA.COLUMNS': columns-table. reported + incorrect precision for `BIGINT UNSIGNED' columns. (Bug #53814) + + * Incorrect error handling could result in an *Note `OPTIMIZE + TABLE': optimize-table. crash. (Bug #54783) + + * In debug builds, an assertion could be raised when the server + tried to send an OK packet to the client after having failed to + detect errors during processing of the `WHERE' condition of an + *Note `UPDATE': update. statement. (Bug #54734) + + * *Note `SET sql_select_limit = 0': set-statement. did not work. + (Bug #54682) + + * *Note `mysql_upgrade': mysql-upgrade. could incorrectly remove + `TRIGGER' privileges. (Bug #53613) + + * Queries that named view columns in a `GROUP BY' clause could cause + a server crash. (Bug #54515) + + * Portability problems in *Note `SHOW STATUS': show-status. could + lead to incorrect results on some platforms. (Bug #53493) + + * `GROUP BY' operations used `max_sort_length' inconsistently. (Bug + #55188) + + * *Note `mysqld_safe': mysqld-safe. contained a syntax error that + prevented it from restarting the server. (Bug #54991) + * The *Note `MERGE': merge-storage-engine. storage engine tried to use memory mapping on the underlying *Note `MyISAM': myisam-storage-engine. tables even on platforms that do not @@ -236566,188 +240070,174 @@ merge-storage-engine. table that contained the same `MyISAM' table. (Bug #54811, Bug #50788) - * Incorrect error handling could result in an *Note `OPTIMIZE - TABLE': optimize-table. crash. (Bug #54783) + * *Note `SHOW CREATE TRIGGER': show-create-trigger. took a stronger + metadata lock than required. This caused the statement to be + blocked unnecessarily. For example, *Note `LOCK TABLES ... WRITE': + lock-tables. in one session blocked *Note `SHOW CREATE TRIGGER': + show-create-trigger. in another session. - * Performance Schema event collection for a thread could `leak' from - one connection to another if the thread was used for one - connection, then cached, then reused for another connection. (Bug - #54782) + Also, a *Note `SHOW CREATE TRIGGER': show-create-trigger. + statement issued inside a transaction did not release its metadata + locks at the end of statement execution. Consequently, *Note `SHOW + CREATE TRIGGER': show-create-trigger. was able to block other + sessions from accessing the table (for example, using *Note `ALTER + TABLE': alter-table.). (Bug #55498) - * In debug builds, an assertion could be raised when the server - tried to send an OK packet to the client after having failed to - detect errors during processing of the `WHERE' condition of an - *Note `UPDATE': update. statement. (Bug #54734) + * A *Note `SHOW CREATE TABLE': show-create-table. statement issued + inside a transaction did not release its metadata locks at the end + of statement execution. Consequently, *Note `SHOW CREATE TABLE': + show-create-table. was able to block other sessions from accessing + the table (for example, using *Note `ALTER TABLE': alter-table.). + (Bug #54905) - * In a slave SQL thread or Event Scheduler thread, the `SLEEP()' - function could not sleep more than five seconds. (Bug #54729) + * A single-table *Note `DELETE': delete. ordered by a column that + had a hash-type index could raise an assertion or cause a server + crash. (Bug #55472) - * *Note `SET sql_select_limit = 0': set-option. did not work. (Bug - #54682) + * Errors during processing of `WHERE' conditions in *Note `HANDLER + ... READ': handler. statements were not detected, so the handler + code still tried to send EOF to the client, raising an assertion. + (Bug #54401) - * Assignments of the `PASSWORD()' or `OLD_PASSWORD()' function to a - user variable did not preserve the character set of the function - return value. (Bug #54668) + * A statement that was aborted by *Note `KILL QUERY': kill. while it + waited on a metadata lock could raise an assertion in debug + builds, or send OK to the client instead of `ER_QUERY_INTERRUPTED' + in regular builds. (Bug #55223) - * A signal-handler redefinition for `SIGUSR1' was removed. The - redefinition could cause the server to encounter a kernel deadlock - on Solaris when there are many active threads. Other POSIX - platforms might also be affected. (Bug #54667) + * *Note `mysql_upgrade': mysql-upgrade. did not handle the `--ssl' + option properly. (Bug #55672) - * Queries that named view columns in a `GROUP BY' clause could cause - a server crash. (Bug #54515) + * Using `MIN()' or `MAX()' on a column containing the maximum *Note + `TIME': time. value caused a server crash. (Bug #55648) - * The Performance Schema displayed spurious startup error messages - when the server was run in bootstrap mode. (Bug #54467) + * *Note `INSERT IGNORE INTO ... SELECT': insert-select. statements + could raise a debug assertion. (Bug #54106) + + * The server was not checking for errors generated during the + execution of `Item::val_xxx()' methods when copying data to a + group, order, or distinct temp table's row. (Bug #55580) + + * `ORDER BY' clauses that included user-variable expressions could + raise a debug assertion. (Bug #55565) * For distributions built with `CMake' rather than the GNU autotools, *Note `mysql': mysql. lacked `pager' support, and some scripts were built without the execute bit set. (Bug #54466, Bug #54129) - * The server failed to disregard sort order for some zero-length - tuples, leading to an assertion failure. (Bug #54459) + * The `thread_concurrency' system variable was unavailable on + non-Solaris systems. (Bug #55001) - * A join with an aggregated function and impossible `WHERE' - condition returned an extra row. (Bug #54416) + * A call to *Note `mysql_library_init()': mysql-library-init. + following a call to *Note `mysql_library_end()': + mysql-library-end. caused a client crash. (Bug #55345) - * Errors during processing of `WHERE' conditions in *Note `HANDLER - ... READ': handler. statements were not detected, so the handler - code still tried to send EOF to the client, raising an assertion. - (Bug #54401) + * If audit plugins were installed that were interested in + `MYSQL_AUDIT_GENERAL_CLASS' events and the general query log was + disabled, failed *Note `INSTALL PLUGIN': install-plugin. or *Note + `UNINSTALL PLUGIN': uninstall-plugin. statements caused a server + crash. (Bug #54989) - * If a session tried to drop a database containing a table opened - with *Note `HANDLER': handler. in another session, any `DATABASE' - statement (`CREATE', `DROP', `ALTER') executed by that session - produced a deadlock. (Bug #54360) + * Incorrect handling of user variable assignments as subexpressions + could lead to incorrect results or server crashes. (Bug #55615) + + * `IF()' with a subquery argument could raise a debug assertion for + debug builds under some circumstances. (Bug #55077) * Deadlocks involving *Note `INSERT DELAYED': insert-delayed. statements were not detected. The server could crash if the delayed handler thread was killed due to a conflicting shared metadata lock. (Bug #54332) + * *Note `SHOW CREATE EVENT': show-create-event. released all + metadata locks held by the current transaction. This invalidated + any existing savepoints and raised an assertion if *Note `ROLLBACK + TO SAVEPOINT': commit. was executed. (Bug #54105) + + * Some functions did not calculate their `max_length' metadata value + correctly. (Bug #54916) + + * The embedded server raised an assertion when it attempted to load + plugins. (Bug #56085) + + * `FORMAT()' did not respect the decimal point character if the + locale was changed and always returned an ASCII value. (Bug + #55912) + * After *Note `ALTER TABLE': alter-table. was used on a temporary transactional table locked by *Note `LOCK TABLES': lock-tables, any later attempts to execute *Note `LOCK TABLES': lock-tables. or *Note `UNLOCK TABLES': lock-tables. caused a server crash. (Bug #54117) - * *Note `INSERT IGNORE INTO ... SELECT': insert-select. statements - could raise a debug assertion. (Bug #54106) + * *Note `InnoDB': innodb-storage-engine. produced no warning at + startup about illegal `innodb_file_format_check' values. (Bug + #55095) - * *Note `SHOW CREATE EVENT': show-create-event. released all - metadata locks held by the current transaction. This invalidated - any existing savepoints and raised an assertion if *Note `ROLLBACK - TO SAVEPOINT': commit. was executed. (Bug #54105) + * A join with an aggregated function and impossible `WHERE' + condition returned an extra row. (Bug #54416) - * A client could supply data in chunks to a prepared statement - parameter other than of type *Note `TEXT': blob. or *Note `BLOB': - blob. using the *Note `mysql_stmt_send_long_data()': - mysql-stmt-send-long-data. C API function (or - `COM_STMT_SEND_LONG_DATA' command). This led to a crash because - other data types are not valid for long data. (Bug #54041) + * The `PERFORMANCE_SCHEMA' database was not correctly created and + populated on Windows. (Bug #52809) - * *Note `mysql_secure_installation': mysql-secure-installation. did - not properly identify local accounts and could incorrectly remove - nonlocal `root' accounts. (Bug #54004) + * The optimization method of the `ARCHIVE' storage engine did not + preserve the `.frm' file embedded in the `.ARZ' file when + rewriting the `.ARZ' file for optimization. This meant an + `ARCHIVE' table that had been optimized could not be discovered. - * A client with automatic reconnection enabled saw the error message - `Lost connection to MySQL server during query' if the connection - was lost between the *Note `mysql_stmt_prepare()': - mysql-stmt-prepare. and *Note `mysql_stmt_execute()': - mysql-stmt-execute. C API functions. However, *Note - `mysql_stmt_errno()': mysql-stmt-errno. returned 0, not the - corresponding error number 2013. (Bug #53899) + The `ARCHIVE' engine stores the `.frm' file in the `.ARZ' file so + it can be transferred from machine to machine without also needing + to copy the `.frm' file. The engine subsequently restores the + embedded `.frm' during discovery. (Bug #45377) - * *Note `INFORMATION_SCHEMA.COLUMNS': columns-table. reported - incorrect precision for `BIGINT UNSIGNED' columns. (Bug #53814) + * The ABI check for MySQL failed to compile with `gcc' 4.5. (Bug + #52514) - * The patch for Bug #36569 caused performance regressions and - incorrect execution of some *Note `UPDATE': update. statements. - (Bug #53737, Bug #53742) + * The `mysql-debug.pdb' supplied with releases did not match the + corresponding *Note `mysqld.exe': mysqld. (Bug #52850) - * Missing Performance Schema tables were not reported in the error - log at server startup. (Bug #53617) + * An assertion occurred in `ha_myisammrg.cc' line 1137: - * *Note `mysql_upgrade': mysql-upgrade. could incorrectly remove - `TRIGGER' privileges. (Bug #53613) - * *Note `SHOW ENGINE PERFORMANCE_SCHEMA STATUS': show-engine. - underreported the amount of memory allocated by the Performance - Schema. (Bug #53566) + DBUG_ASSERT(this->file->children_attached); - * Portability problems in *Note `SHOW STATUS': show-status. could - lead to incorrect results on some platforms. (Bug #53493) + The problem was found while running RQG tests and the assertion + occurred during `REPAIR', `OPTIMIZE', and `ANALYZE' operations. + (Bug #47633) - * Builds of MySQL generated a large number of warnings. (Bug #53445) + * Attempts to access a nonexistent Performance Schema table resulted + in a misleading error message. (Bug #52586) - * Performance Schema header files were not installed in the correct - directory. (Bug #53255) + * The Performance Schema could enter an infinite loop if required to + create a large number of mutex instances. (Bug #52502) * The server could crash when processing subqueries with empty results. (Bug #53236) - * With `lower_case_table_names' set to a nonzero value, searches for - table or database names in `INFORMATION_SCHEMA' tables could - produce incorrect results. (Bug #53095) - - * Use of `uint' in `typelib.h' caused compilation problems in - Windows. This was changed to `unsigned int'. (Bug #52959) - - * The `mysql-debug.pdb' supplied with releases did not match the - corresponding *Note `mysqld.exe': mysqld. (Bug #52850) - - * The `PERFORMANCE_SCHEMA' database was not correctly created and - populated on Windows. (Bug #52809) - * The `large_pages' system variable was tied to the `--large-files' command-line option, not the `--large-pages' option. (Bug #52716) - * Attempts to access a nonexistent Performance Schema table resulted - in a misleading error message. (Bug #52586) + * The results of some `ORDER BY ... DESC' queries were sorted + incorrectly. (Bug #51431) - * The ABI check for MySQL failed to compile with `gcc' 4.5. (Bug - #52514) + * `Index Merge' between three indexes could return incorrect results. + (Bug #50389) - * The Performance Schema could enter an infinite loop if required to - create a large number of mutex instances. (Bug #52502) + * Use of `uint' in `typelib.h' caused compilation problems in + Windows. This was changed to `unsigned int'. (Bug #52959) * *Note `mysql_secure_installation': mysql-secure-installation. sometimes failed to locate the *Note `mysql': mysql. client. (Bug #52274) - * Some queries involving `GROUP BY' and a function that returned - *Note `DATE': datetime. raised a debug assertion. (Bug #52159) + * `MIN()' and `MAX()' returned incorrect results for *Note `DATE': + datetime. columns if the set of values included `'0000-00-00''. + (Bug #49771) * If a symbolic link was used in a file path name, the Performance Schema did not resolve all file I/O events to the same name. (Bug #52134) - * `PARTITION BY KEY' on a `utf32' *Note `ENUM': enum. column raised - a debugging assertion. (Bug #52121) - - * A pending *Note `FLUSH TABLES TBL_LIST WITH READ LOCK': flush. - statement unnecessarily aborted transactions. (Bug #52117) - - * *Note `FLUSH TABLES WITH READ LOCK': flush. in one session and - *Note `FLUSH TABLES TBL_LIST WITH READ LOCK': flush. in another - session were mutually exclusive. - - This bug fix involved several changes to the states displayed by - *Note `SHOW PROCESSLIST': show-processlist.: - - * `Table lock' was replaced with `Waiting for table level lock'. - - * `Waiting for table' was replaced with `Waiting for table - flush'. - - * These states are new: `Waiting for global metadata lock', - `Waiting for schema metadata lock', `Waiting for stored - function metadata lock', `Waiting for stored procedure - metadata lock', `Waiting for table metadata lock'. - - (Bug #52044) - * Reading a `ucs2' data file with *Note `LOAD DATA INFILE': load-data. was subject to three problems. 1) Incorrect parsing of the file as `ucs2' data, resulting in incorrect length of the @@ -236762,18 +240252,12 @@ to the character set specified in the *Note `LOAD DATA INFILE': load-data. statement, if any. (Bug #51876) - * *Note `XA START': xa. had a race condition that could cause a - server crash. (Bug #51855) - - * The results of some `ORDER BY ... DESC' queries were sorted - incorrectly. (Bug #51431) - - * `Index Merge' between three indexes could return incorrect results. - (Bug #50389) + * With `lower_case_table_names' set to a nonzero value, searches for + table or database names in `INFORMATION_SCHEMA' tables could + produce incorrect results. (Bug #53095) - * `MIN()' and `MAX()' returned incorrect results for *Note `DATE': - datetime. columns if the set of values included `'0000-00-00''. - (Bug #49771) + * Some queries involving `GROUP BY' and a function that returned + *Note `DATE': datetime. raised a debug assertion. (Bug #52159) * Searches in `INFORMATION_SCHEMA' tables for rows matching a nonexistent database produced an error instead of an empty query @@ -236783,54 +240267,59 @@ `TEMPORARY' table with the same name as a non-`TEMPORARY' table in the database. (Bug #48067) - * An assertion occurred in `ha_myisammrg.cc' line 1137: + * *Note `XA START': xa. had a race condition that could cause a + server crash. (Bug #51855) + * `PARTITION BY KEY' on a `utf32' *Note `ENUM': enum. column raised + a debugging assertion. (Bug #52121) - DBUG_ASSERT(this->file->children_attached); + * With `character_set_connection' set to `utf16' or `utf32', `CREATE + TABLE t1 AS SELECT HEX() ...' caused a server crash. (Bug #45263) - The problem was found while running RQG tests and the assertion - occurred during `REPAIR', `OPTIMIZE', and `ANALYZE' operations. - (Bug #47633) + * *Note `FLUSH TABLES WITH READ LOCK': flush. in one session and + *Note `FLUSH TABLES TBL_LIST WITH READ LOCK': flush. in another + session were mutually exclusive. - * The optimization method of the `ARCHIVE' storage engine did not - preserve the `.frm' file embedded in the `.ARZ' file when - rewriting the `.ARZ' file for optimization. This meant an - `ARCHIVE' table that had been optimized could not be discovered. + This bug fix involved several changes to the states displayed by + *Note `SHOW PROCESSLIST': show-processlist.: - The `ARCHIVE' engine stores the `.frm' file in the `.ARZ' file so - it can be transferred from machine to machine without also needing - to copy the `.frm' file. The engine subsequently restores the - embedded `.frm' during discovery. (Bug #45377) + * `Table lock' was replaced with `Waiting for table level lock'. - * With `character_set_connection' set to `utf16' or `utf32', `CREATE - TABLE t1 AS SELECT HEX() ...' caused a server crash. (Bug #45263) + * `Waiting for table' was replaced with `Waiting for table + flush'. + + * These states are new: `Waiting for global metadata lock', + `Waiting for schema metadata lock', `Waiting for stored + function metadata lock', `Waiting for stored procedure + metadata lock', `Waiting for table metadata lock'. + + (Bug #52044) + + * A pending *Note `FLUSH TABLES TBL_LIST WITH READ LOCK': flush. + statement unnecessarily aborted transactions. (Bug #52117) + + * Sort-`index_merge' for join tables other than the first table used + excessive memory. (Bug #41660) + + * A debugging assertion could be raised after a write failure to a + closed socket. (Bug #42496) * The `my_like_range_XXX()' functions returned badly formed maximum strings for Asian character sets, which caused problems for storage engines. (Bug #45012) - * A debugging assertion could be raised after a write failure to a - closed socket. (Bug #42496) + * Rows inserted in a table by one session were not immediately + visible to another session that queried the table, even if the + insert had committed. (Bug #37521) * Enumeration plugin variables were subject to a type-casting error, causing inconsistent results between different platforms. (Bug #42144) - * Sort-`index_merge' for join tables other than the first table used - excessive memory. (Bug #41660) - * *Note `DROP TABLE': drop-table. held a lock during `unlink()' file system operations, causing performance problems if `unlink()' took a long time. (Bug #41158) - * Rows inserted in a table by one session were not immediately - visible to another session that queried the table, even if the - insert had committed. (Bug #37521) - - * Statements of the form `UPDATE ... WHERE ... ORDER BY' used a - `filesort' even when not required. (Bug #36569) See also Bug - #53737, Bug #53742. - * Reading from a temporary *Note `MERGE': merge-storage-engine. table, with two nontemporary child *Note `MyISAM': myisam-storage-engine. tables, resulted in the error: @@ -236840,6 +240329,10 @@ (Bug #36171) + * Statements of the form `UPDATE ... WHERE ... ORDER BY' used a + `filesort' even when not required. (Bug #36569) References: See + also Bug #53737, Bug #53742. + * `safemalloc' was excessively slow under certain conditions and has been removed. The `--skip-safemalloc' server option has also been removed, and the `--with-debug=full' @@ -236862,10 +240355,11 @@  File: manual.info, Node: news-5-5-5, Next: news-5-5-4, Prev: news-5-5-6, Up: news-5-5-x -D.1.16 Changes in MySQL 5.5.5 (06 July 2010) +D.1.18 Changes in MySQL 5.5.5 (06 July 2010) -------------------------------------------- *icc Notes* + * This is the final release of MySQL 5.5 for which Generic Linux MySQL binary packages built with the `icc' compiler on x86 and x86_64 will be offered. These were previously produced as an @@ -236879,6 +240373,7 @@ distribution-specific RPM packages on ia64. *InnoDB Notes* + * `InnoDB' has been upgraded to version 1.1.1. This version is considered of `early adopter' quality. @@ -236967,6 +240462,29 @@ to 1/64 of the buffer pool size (or 1/128 on 32-bit systems). (Bug #53122) + * For events of `MYSQL_AUDIT_GENERAL_CLASS', the event subclass was + not passed to audit plugins even though the server passed the + subclass to the plugin handler. The subclass is now available + through the following changes: + + * The `struct mysql_event_general' structure has a new + `event_subclass' member. + + * The new member changes the interface, so the audit plugin + interface version, `MYSQL_AUDIT_INTERFACE_VERSION', has been + incremented from `0x0100' to `0x0200'. Plugins that require + access to the new member must be recompiled to use version + `0x0200' or higher. + + The `NULL_AUDIT' example plugin in the `plugin/audit_null' + directory has been modified to count events of each subclass, + based on the `event_subclass' value. See *Note + writing-audit-plugins::. (Bug #47059) + + * The `Rows_examined' value in slow query log rows now is nonzero + for *Note `UPDATE': update. and *Note `DELETE': delete. + statements that modify rows. (Bug #49756) + * Previously, the `innodb_file_format_check' system variable served a dual purpose. Setting it at server startup would keep `InnoDB' from starting if any tables used a more recent file format than @@ -236987,29 +240505,6 @@ For background information about `InnoDB' file-format management, see *Note innodb-file-format::. (Bug #49792, Bug #53654) - * The `Rows_examined' value in slow query log rows now is nonzero - for *Note `UPDATE': update. and *Note `DELETE': delete. - statements that modify rows. (Bug #49756) - - * For events of `MYSQL_AUDIT_GENERAL_CLASS', the event subclass was - not passed to audit plugins even though the server passed the - subclass to the plugin handler. The subclass is now available - through the following changes: - - * The `struct mysql_event_general' structure has a new - `event_subclass' member. - - * The new member changes the interface, so the audit plugin - interface version, `MYSQL_AUDIT_INTERFACE_VERSION', has been - incremented from `0x0100' to `0x0200'. Plugins that require - access to the new member must be recompiled to use version - `0x0200' or higher. - - The `NULL_AUDIT' example plugin in the `plugin/audit_null' - directory has been modified to count events of each subclass, - based on the `event_subclass' value. See *Note - writing-audit-plugins::. (Bug #47059) - * The deprecated `mysql_fix_privilege_tables' script has been removed. (Bug #42589) @@ -237022,6 +240517,11 @@ hash functions (SHA-224, SHA-256, SHA-384, and SHA-512). (Contributed by Bill Karwin) (Bug #13174) + * It is now possible to build MySQL on all platforms using `CMake' + instead of the GNU autotools. (Prior to MySQL 5.5.5, `CMake' + support was limited to Windows.) For instructions on using `CMake' + to build MySQL, see *Note source-installation::. + * Windows MSI package installers create and set up the data directory that the installed server will use, but now also create a pristine `template' data directory named `data' under the @@ -237031,35 +240531,8 @@ data directory can be copied to set up additional MySQL instances. See *Note multiple-servers::. - * It is now possible to build MySQL on all platforms using `CMake' - instead of the GNU autotools. (Prior to MySQL 5.5.5, `CMake' - support was limited to Windows.) For instructions on using `CMake' - to build MySQL, see *Note source-installation::. - *Bugs Fixed* - * *Performance*: *InnoDB Storage Engine*: Deadlock detection could - be a bottleneck in *Note `InnoDB': innodb-storage-engine. - processing, if many transactions attempted to update the same row - simultaneously. The algorithm has been improved to enhance - performance and scalability, in the InnoDB Plugin for MySQL 5.1, - and in InnoDB 1.1 for MySQL 5.5. (Bug #49047) - - * *Performance*: While looking for the shortest index for a covering - index scan, the optimizer did not consider the full row length for - a clustered primary key, as in *Note `InnoDB': - innodb-storage-engine. Secondary covering indexes are now - preferred, making full table scans less likely. (Bug #39653) See - also Bug #55656. - - * *Security Fix*: The server could crash if there were alternate - reads from two indexes on a table using the *Note `HANDLER': - handler. interface. (Bug #54007, CVE-2010-3681) - - * *Security Fix*: Bug #53933 was fixed. - - * *Security Fix*: Bug #53907 was fixed. - * *Security Fix*: The server failed to check the table name argument of a `COM_FIELD_LIST' command packet for validity and compliance to acceptable table name standards. This could be exploited to @@ -237078,12 +240551,23 @@ this server, and potentially of other MySQL instances accessible from the server's file system. (Bug #53371, CVE-2010-1848) - * *Security Fix*: The server was susceptible to a buffer-overflow - attack due to a failure to perform bounds checking on the table - name argument of a `COM_FIELD_LIST' command packet. By sending - long data for the table name, a buffer is overflown, which could - be exploited by an authenticated user to inject malicious code. - (Bug #53237, CVE-2010-1850) + * *Security Fix*: The server could crash if there were alternate + reads from two indexes on a table using the *Note `HANDLER': + handler. interface. (Bug #54007, CVE-2010-3681) + + * *Security Fix*: Privilege checking for *Note `UNINSTALL PLUGIN': + uninstall-plugin. was incorrect. (Bug #51770, CVE-2010-1621) + + * *Security Fix*: The server could be tricked into reading packets + indefinitely if it received a packet larger than the maximum size + of one packet. (Bug #50974, CVE-2010-1849) + + * *Security Fix*: The server was susceptible to a buffer-overflow + attack due to a failure to perform bounds checking on the table + name argument of a `COM_FIELD_LIST' command packet. By sending + long data for the table name, a buffer is overflown, which could + be exploited by an authenticated user to inject malicious code. + (Bug #53237, CVE-2010-1850) * *Security Fix*: *Note `LOAD DATA INFILE': load-data. did not check for SQL errors and sent an OK packet even when errors were already @@ -237091,19 +240575,30 @@ checking in debug servers sometimes was raised when it should not have been. (Bug #52512, CVE-2010-3683) - * *Security Fix*: Bug #52357 was fixed. - * *Security Fix*: Bug #52315 was fixed. - * *Security Fix*: Privilege checking for *Note `UNINSTALL PLUGIN': - uninstall-plugin. was incorrect. (Bug #51770, CVE-2010-1621) + * *Security Fix*: Bug #53933 was fixed. - * *Security Fix*: The server could be tricked into reading packets - indefinitely if it received a packet larger than the maximum size - of one packet. (Bug #50974, CVE-2010-1849) + * *Security Fix*: Bug #53907 was fixed. * *Security Fix*: Bug #48157 was fixed. + * *Security Fix*: Bug #52357 was fixed. + + * *Performance*: *InnoDB Storage Engine*: Deadlock detection could + be a bottleneck in *Note `InnoDB': innodb-storage-engine. + processing, if many transactions attempted to update the same row + simultaneously. The algorithm has been improved to enhance + performance and scalability, in the InnoDB Plugin for MySQL 5.1, + and in InnoDB 1.1 for MySQL 5.5. (Bug #49047) + + * *Performance*: While looking for the shortest index for a covering + index scan, the optimizer did not consider the full row length for + a clustered primary key, as in *Note `InnoDB': + innodb-storage-engine. Secondary covering indexes are now + preferred, making full table scans less likely. (Bug #39653) + References: See also Bug #55656. + * *Incompatible Change*: *Note `TRUNCATE TABLE': truncate-table. did not take an exclusive lock on a table if truncation was done by deleting all rows in the table. For `InnoDB' tables, this could @@ -237166,11 +240661,6 @@ engine could cause error messages about possibly mixed up `.frm' files and incorrect index use. (Bug #47622) - * *InnoDB Storage Engine*: *Replication*: *Note `TRUNCATE TABLE': - truncate-table. performed on a temporary table using the *Note - `InnoDB': innodb-storage-engine. storage engine was logged even - when using row-based mode. (Bug #51251) - * *InnoDB Storage Engine*: *Replication*: Reading from a table that used a self-logging storage engine and updating a table that used a transactional engine (such as `InnoDB') generated changes that @@ -237184,29 +240674,27 @@ unsafe, and in mixed mode, cause a switch to row-based logging. (Bug #49019) - * *InnoDB Storage Engine*: The server could crash with a message - `InnoDB: Assertion failure in thread NNNN', typically during - shutdown on a Windows system. (Bug #53947) + * *InnoDB Storage Engine*: *Replication*: *Note `TRUNCATE TABLE': + truncate-table. performed on a temporary table using the *Note + `InnoDB': innodb-storage-engine. storage engine was logged even + when using row-based mode. (Bug #51251) * *InnoDB Storage Engine*: Some combinations of `SELECT' and `SELECT FOR UPDATE' statements could fail with errors about locks, or incorrectly release a row lock during a semi-consistent read - (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_semi_consistent_read) operation. (Bug #53674) + * *InnoDB Storage Engine*: The server could crash with a message + `InnoDB: Assertion failure in thread NNNN', typically during + shutdown on a Windows system. (Bug #53947) + * *InnoDB Storage Engine*: Adding a unique key on multiple columns, where one of the columns is `NULL', could mistakenly report duplicate key errors. (Bug #53290) - * *InnoDB Storage Engine*: Fixed a checksum error reported for - compressed tables when the `--innodb_checksums' option is enabled. - Although the message stated that the table was corrupted, the - table is actually fine. (Bug #53248) - - * *InnoDB Storage Engine*: When reporting a foreign key constraint - violation during *Note `INSERT': insert, *Note `InnoDB': - innodb-storage-engine. could display uninitialized data for the - `DB_TRX_ID' and `DB_ROLL_PTR' system columns. (Bug #53202) + * *InnoDB Storage Engine*: The server could crash during shutdown, + if started with the option `--innodb_use_sys_malloc=0'. (Bug + #52546) * *InnoDB Storage Engine*: The values of `innodb_buffer_pool_pages_total' and @@ -237214,9 +240702,28 @@ `information_schema.global_status' table could be computed incorrectly. (Bug #52983) - * *InnoDB Storage Engine*: *Note `InnoDB': innodb-storage-engine. - page splitting could enter an infinite loop for compressed tables. - (Bug #52964) + * *InnoDB Storage Engine*: Multi-statement execution could fail with + an error about foreign key constraints. This problem could affect + calls to `mysql_query()' and `mysql_real_query()', and `CALL' + statements that invoke stored procedures. (Bug #48024) + + * *InnoDB Storage Engine*: Fixed a checksum error reported for + compressed tables when the `--innodb_checksums' option is enabled. + Although the message stated that the table was corrupted, the + table is actually fine. (Bug #53248) + + * *InnoDB Storage Engine*: `InnoDB' checks to see whether a row could + possibly exceed the maximum size if all columns are fully used. + This produced `Row size too large' errors for some tables that + could be created with the built-in `InnoDB' from older MySQL + versions. Now the check is only done when `innodb_strict_mode' is + enabled or if the table is dynamic or compressed. (Bug #50495) + + * *InnoDB Storage Engine*: Connections waiting for an `InnoDB' row + lock ignored *Note `KILL': kill. until the row lock wait ended. + Now, *Note `KILL': kill. during lock wait results in `query + interrupted' instead of `lock wait timeout exceeded'. The + corresponding transaction is rolled back. (Bug #51920) * *InnoDB Storage Engine*: An overly strict assertion could fail during the purge of delete-marked records in `DYNAMIC' or @@ -237235,27 +240742,14 @@ `InnoDB': innodb-storage-engine. always stores locally columns having a length up to `local_len' = 788 bytes. (Bug #52745) - * *InnoDB Storage Engine*: The server could crash during shutdown, - if started with the option `--innodb_use_sys_malloc=0'. (Bug - #52546) - - * *InnoDB Storage Engine*: Connections waiting for an `InnoDB' row - lock ignored *Note `KILL': kill. until the row lock wait ended. - Now, *Note `KILL': kill. during lock wait results in `query - interrupted' instead of `lock wait timeout exceeded'. The - corresponding transaction is rolled back. (Bug #51920) - - * *InnoDB Storage Engine*: `InnoDB' checks to see whether a row could - possibly exceed the maximum size if all columns are fully used. - This produced `Row size too large' errors for some tables that - could be created with the built-in `InnoDB' from older MySQL - versions. Now the check is only done when `innodb_strict_mode' is - enabled or if the table is dynamic or compressed. (Bug #50495) + * *InnoDB Storage Engine*: *Note `InnoDB': innodb-storage-engine. + page splitting could enter an infinite loop for compressed tables. + (Bug #52964) - * *InnoDB Storage Engine*: Multi-statement execution could fail with - an error about foreign key constraints. This problem could affect - calls to `mysql_query()' and `mysql_real_query()', and `CALL' - statements that invoke stored procedures. (Bug #48024) + * *InnoDB Storage Engine*: When reporting a foreign key constraint + violation during *Note `INSERT': insert, *Note `InnoDB': + innodb-storage-engine. could display uninitialized data for the + `DB_TRX_ID' and `DB_ROLL_PTR' system columns. (Bug #53202) * *InnoDB Storage Engine*: A mismatch between index information maintained within the `.frm' files and the corresponding @@ -237278,16 +240772,12 @@ `PARTITION BY LIST COLUMNS' option referencing multiple columns could be inserted into the wrong partition. (Bug #52815) - * *Partitioning*: Partition pruning on `RANGE' partitioned tables - did not always work correctly; the last partition was not excluded - if the range was beyond it (when not using `MAXVALUE'). Now the - last partition is not included if the partitioning function value - is not within the range. (Bug #51830) - - * *Partitioning*: Attempting to partition a table using a *Note - `DECIMAL': numeric-types. column caused the server to crash; this - was not supported and is now specifically not permitted. (Bug - #51347) + * *Partitioning*: When attempting to perform DDL on a partitioned + table and the table's `.par' file could not be found, the server + returned the inaccurate error message `Out of memory; restart + server and try again (needed 2 bytes)'. Now in such cases, the + server returns the error `Failed to initialize partitions from .par + file'. (Bug #49161) * *Partitioning*: *Note `ALTER TABLE': alter-table-partition-operations. statements that cause table @@ -237307,8 +240797,25 @@ innodb-storage-engine. was unable to find the correct partition. Now, `INFORMATION_SCHEMA' honors name locks imposed by ongoing *Note `ALTER TABLE': alter-table. statements that cause partitions - to be renamed or dropped. (Bug #50561) See also Bug #47343, Bug - #45808. + to be renamed or dropped. (Bug #50561) References: See also Bug + #47343, Bug #45808. + + * *Partitioning*: It was possible to execute a `CREATE TEMPORARY + TABLE tmp LIKE pt' statement, where `pt' is a partitioned table, + even though partitioned temporary tables are not permitted. This + caused the server to crash. Now a check is performed to prevent + such statements from being executed. (Bug #49477) + + * *Partitioning*: Partition pruning on `RANGE' partitioned tables + did not always work correctly; the last partition was not excluded + if the range was beyond it (when not using `MAXVALUE'). Now the + last partition is not included if the partitioning function value + is not within the range. (Bug #51830) + + * *Partitioning*: Attempting to partition a table using a *Note + `DECIMAL': numeric-types. column caused the server to crash; this + was not supported and is now specifically not permitted. (Bug + #51347) * *Partitioning*: The `insert_id' server system variable was not reset following an insert that failed on a partitioned *Note @@ -237321,24 +240828,11 @@ table; it was also possible to partition a table with a single foreign key. (Bug #50104) - * *Partitioning*: It was possible to execute a `CREATE TEMPORARY - TABLE tmp LIKE pt' statement, where `pt' is a partitioned table, - even though partitioned temporary tables are not permitted. This - caused the server to crash. Now a check is performed to prevent - such statements from being executed. (Bug #49477) - - * *Partitioning*: When attempting to perform DDL on a partitioned - table and the table's `.par' file could not be found, the server - returned the inaccurate error message `Out of memory; restart - server and try again (needed 2 bytes)'. Now in such cases, the - server returns the error `Failed to initialize partitions from .par - file'. (Bug #49161) - * *Partitioning*: `GROUP BY' queries performed poorly for some partitioned tables. This was due to the block size not being set for partitioned tables, thus the keys per block was not correct, which could cause such queries to be optimized incorrectly. (Bug - #48229) See also Bug #37252. + #48229) References: See also Bug #37252. * *Partitioning*: *Note `REPAIR TABLE': repair-table. failed for partitioned *Note `ARCHIVE': archive-storage-engine. tables. (Bug @@ -237360,12 +240854,23 @@ caused subsequent updates to this table to fail on the slave. (Bug #53421) - * *Replication*: When using the statement-based logging format, - statements that used `CONNECTION_ID()' were always kept in the - transaction cache; consequently, nontransactional changes that - should have been flushed before the transaction were kept in the - transaction cache. (Bug #53075) This regression was introduced by - Bug #51894. + * *Replication*: DDL statements that lock tables (such as *Note + `ALTER TABLE': alter-table, *Note `CREATE INDEX': create-index, and + *Note `CREATE TRIGGER': create-trigger.) caused spurious + ER_BINLOG_ROW_MODE_AND_STMT_ENGINE or + ER_BINLOG_STMT_MODE_AND_ROW_ENGINE errors, even though they did + not insert rows into any tables. + + *Note*: + + The error ER_BINLOG_ROW_MODE_AND_STMT_ENGINE is generated when + `binlog_format=ROW' and a statement modifies a table restricted to + statement-based logging; ER_BINLOG_STMT_MODE_AND_ROW_ENGINE is + generated when `binlog_format=STATEMENT' and a statement modifies + a table restricted to row-based logging. + + (Bug #50479) References: This bug was introduced by Bug #39934, + Bug #11749859. * *Replication*: In some cases, attempting to update a column with a value of an incompatible type resulted in a mismatch between @@ -237373,16 +240878,18 @@ default value on the master (as expected), but the same column on the slave was set to `NULL'. (Bug #52868) - * *Replication*: ACK packets in semisynchronous replication were not - checked for length and malformed packets could cause a server - crash. (Bug #52748) + * *Replication*: When using a nontransactional table on the master + with autocommit disabled, no *Note `COMMIT': commit. was recorded + in the binary log following a statement affecting this table. If + the slave's copy of the table used a transactional storage engine, + the result on the slave was as though a transaction had been + started, but never completed. (Bug #49522) References: See also + Bug #29288. - * *Replication*: When temporary tables were in use, switching the - binary logging format from `STATEMENT' to `ROW' did not take - effect until all temporary tables were dropped. (The existence of - temporary tables should prevent switching the format only from - `ROW' to `STATEMENT' from taking effect, not the reverse.) (Bug - #52616) + * *Replication*: The failure of a *Note `REVOKE': revoke. statement + was logged with the wrong error code, causing replication slaves + to stop even when the failure was expected on the master. (Bug + #51987) * *Replication*: A buffer overrun in the handling of *Note `DATE': datetime. column values could cause *Note `mysqlbinlog': @@ -237390,10 +240897,19 @@ combinations of DML statements on a table having a *Note `DATE': datetime. column followed by dropping the table. (Bug #52202) - * *Replication*: The failure of a *Note `REVOKE': revoke. statement - was logged with the wrong error code, causing replication slaves - to stop even when the failure was expected on the master. (Bug - #51987) + * *Replication*: When using the statement-based logging format, + statements that used `CONNECTION_ID()' were always kept in the + transaction cache; consequently, nontransactional changes that + should have been flushed before the transaction were kept in the + transaction cache. (Bug #53075) References: This bug was + introduced by Bug #51894. + + * *Replication*: When temporary tables were in use, switching the + binary logging format from `STATEMENT' to `ROW' did not take + effect until all temporary tables were dropped. (The existence of + temporary tables should prevent switching the format only from + `ROW' to `STATEMENT' from taking effect, not the reverse.) (Bug + #52616) * *Replication*: Issuing any DML on a temporary table `temp' followed by *Note `DROP TEMPORARY TABLE temp': drop-table, both @@ -237421,19 +240937,9 @@ transactional (or a temporary table of any engine type) and non-transactional tables and write to any of them are unsafe. - (Bug #51894) See also Bug #51291, Bug #53075, Bug #53259, Bug - #53452, Bug #54872. - - This regression was introduced by Bug #46364. - - * *Replication*: The internal flag indicating whether a user value - was signed or unsigned (`unsigned_flag') could sometimes change - between the time that the user value was recorded for logging - purposes and the time that the value was actually written to the - binary log, which could lead to inconsistency. Now - `unsigned_flag' is copied when the user variable value is copied, - and the copy of `unsigned_flag' is then used for logging. (Bug - #51426, Bug #11759138) See also Bug #49562, Bug #11757508. + (Bug #51894) References: See also Bug #51291, Bug #53075, Bug + #53259, Bug #53452, Bug #54872. This bug was introduced by Bug + #46364. * *Replication*: Enabling `binlog_direct_non_transactional_updates' causes nontransactional changes to be written to the binary log @@ -237478,7 +240984,29 @@ now written to the binary log only on transaction commit or rollback. - (Bug #51291) This regression was introduced by Bug #46364. + (Bug #51291) References: This bug was introduced by Bug #46364. + + * *Replication*: When run with the `--database' option, *Note + `mysqlbinlog': mysqlbinlog. printed *Note `ROLLBACK': commit. + statements but did not print any corresponding *Note `SAVEPOINT': + savepoint. statements. (Bug #50407) + + * *Replication*: When a *Note `CREATE EVENT': create-event. + statement was followed by an additional statement and the + statements were executed together as a single statement, the *Note + `CREATE EVENT': create-event. statement was padded with `garbage' + characters when written to the binary log. This led to a syntax + error when the event was read from the log. (Bug #50095) + + * *Replication*: The internal flag indicating whether a user value + was signed or unsigned (`unsigned_flag') could sometimes change + between the time that the user value was recorded for logging + purposes and the time that the value was actually written to the + binary log, which could lead to inconsistency. Now + `unsigned_flag' is copied when the user variable value is copied, + and the copy of `unsigned_flag' is then used for logging. (Bug + #51426, Bug #11759138) References: See also Bug #49562, Bug + #11757508. * *Replication*: When using temporary tables, the binary log needs to insert a pseudo-thread ID for threads that are using temporary @@ -237488,85 +241016,45 @@ binary log, and this in turn caused the ID for the next thread that tried to do something with a temporary table not to be logged as well. Subsequent replays of the binary log failed with the - error `Table ... doesn't exist'. (Bug #51226) + error `Table ... doesn't exist'. (Bug #51226) References: This + bug is a regression of Bug #35583. * *Replication*: If the master was using `sql_mode='TRADITIONAL'', duplicate key errors were not sent to the slave, which received `0' rather than the expected error code. This caused replication to fail even when such an error was expected. (Bug #51055) - * *Replication*: DDL statements that lock tables (such as *Note - `ALTER TABLE': alter-table, *Note `CREATE INDEX': create-index, and - *Note `CREATE TRIGGER': create-trigger.) caused spurious - ER_BINLOG_ROW_MODE_AND_STMT_ENGINE or - ER_BINLOG_STMT_MODE_AND_ROW_ENGINE errors, even though they did - not insert rows into any tables. - - *Note*: - - The error ER_BINLOG_ROW_MODE_AND_STMT_ENGINE is generated when - `binlog_format=ROW' and a statement modifies a table restricted to - statement-based logging; ER_BINLOG_STMT_MODE_AND_ROW_ENGINE is - generated when `binlog_format=STATEMENT' and a statement modifies - a table restricted to row-based logging. - - (Bug #50479) This regression was introduced by Bug #39934, Bug - #11749859. - - * *Replication*: When run with the `--database' option, *Note - `mysqlbinlog': mysqlbinlog. printed *Note `ROLLBACK': commit. - statements but did not print any corresponding *Note `SAVEPOINT': - savepoint. statements. (Bug #50407) - - * *Replication*: When a *Note `CREATE EVENT': create-event. - statement was followed by an additional statement and the - statements were executed together as a single statement, the *Note - `CREATE EVENT': create-event. statement was padded with `garbage' - characters when written to the binary log. This led to a syntax - error when the event was read from the log. (Bug #50095) - - * *Replication*: When using a nontransactional table on the master - with autocommit disabled, no *Note `COMMIT': commit. was recorded - in the binary log following a statement affecting this table. If - the slave's copy of the table used a transactional storage engine, - the result on the slave was as though a transaction had been - started, but never completed. (Bug #49522) See also Bug #29288. + * *Replication*: ACK packets in semisynchronous replication were not + checked for length and malformed packets could cause a server + crash. (Bug #52748) * The `make_binary_distribution' target to `make' could fail on some platforms because the lines generated were too long for the shell. (Bug #54590) - * Inconsistent checking of the relationship between *Note `SHOW': - show. statements and `INFORMATION_SCHEMA' queries caused such - queries to fail sometimes. (Bug #54422) - - * A crash occurred if a table that was locked with *Note `LOCK - TABLES': lock-tables. was listed twice in a *Note `DROP TABLE': - drop-table. statement. (Bug #54282) - - * *Note `ALTER TABLE': alter-table. for views is not legal but did - not produce an error. (If you need to rename a view, use *Note - `RENAME TABLE': rename-table.) (Bug #53976) - - * Valgrind warnings resulting from passing incomplete *Note - `DATETIME': datetime. values to the `TIMESTAMP()' function were - corrected. (Bug #53942) - * Builds of the embedded *Note `mysqld': mysqld. failed due to a missing element of the `struct NET'. (Bug #53908, Bug #53912) - * The definition of the `MY_INIT' macro in `my_sys.h' included an - extraneous semicolon, which could cause compilation failure. (Bug - #53906) - - * Queries that used `MIN()' or `MAX()' on indexed columns could be - optimized incorrectly. (Bug #53859) + * Certain path names passed to `LOAD_FILE()' could cause a server + crash. (Bug #53417) * *Note `UPDATE': update. on an *Note `InnoDB': innodb-storage-engine. table modifying the same index that was used to satisfy the `WHERE' condition could trigger a debug assertion under some circumstances. (Bug #53830) + * Valgrind warnings resulting from passing incomplete *Note + `DATETIME': datetime. values to the `TIMESTAMP()' function were + corrected. (Bug #53942) + + * Incorrect results could be returned for `LEFT JOIN' of *Note + `InnoDB': innodb-storage-engine. tables with an impossible `WHERE' + condition. (Bug #53334) + + * For single-table *Note `DELETE': delete. statements that used + quick select and index scan simultaneously caused a server crash + or assertion failure. (Bug #53450) + * MySQL incorrectly processed *Note `ALTER DATABASE `#mysql50#SPECIAL` UPGRADE DATA DIRECTORY NAME': alter-database. where SPECIAL was `.', `..', or a sequence starting with `./' or @@ -237574,10 +241062,6 @@ regular databases) as the database directory. (Bug #53804, CVE-2010-2008) - * *Note `OPTIMIZE TABLE': optimize-table. could be run on a table in - use by a transaction in a different session, causing repeatable - read to break. (Bug #53798) - * *Note `InnoDB': innodb-storage-engine. crashed when replacing duplicates in a table after a fast *Note `ALTER TABLE': alter-table. added a unique index. (Bug #53592) @@ -237587,182 +241071,187 @@ reset the error state of the transaction before attempting to undo a failed operation, resulting in a crash. (Bug #53591) - * For single-table *Note `DELETE': delete. statements that used - quick select and index scan simultaneously caused a server crash - or assertion failure. (Bug #53450) + * The definition of the `MY_INIT' macro in `my_sys.h' included an + extraneous semicolon, which could cause compilation failure. (Bug + #53906) - * Certain path names passed to `LOAD_FILE()' could cause a server - crash. (Bug #53417) + * *Note `ALTER TABLE': alter-table. for views is not legal but did + not produce an error. (If you need to rename a view, use *Note + `RENAME TABLE': rename-table.) (Bug #53976) - * If the `completion_type' session variable was changed after a - stored procedure or prepared statement had been cached, the change - had no effect on subsequent executions of the procedure or - statement. (Bug #53346) + * A crash occurred if a table that was locked with *Note `LOCK + TABLES': lock-tables. was listed twice in a *Note `DROP TABLE': + drop-table. statement. (Bug #54282) + + * *Note `OPTIMIZE TABLE': optimize-table. could be run on a table in + use by a transaction in a different session, causing repeatable + read to break. (Bug #53798) + + * Queries that used `MIN()' or `MAX()' on indexed columns could be + optimized incorrectly. (Bug #53859) * The `AND CHAIN' option for *Note `COMMIT': commit. and *Note `ROLLBACK': commit. failed to preserve the current transaction isolation level. Setting `completion_type' to 1 also failed to do so. (Bug #53343) - * Incorrect results could be returned for `LEFT JOIN' of *Note - `InnoDB': innodb-storage-engine. tables with an impossible `WHERE' - condition. (Bug #53334) + * Inconsistent checking of the relationship between *Note `SHOW': + show. statements and `INFORMATION_SCHEMA' queries caused such + queries to fail sometimes. (Bug #54422) - * The `Lock_time' value in the slow query log was negative for - stored routines. (Bug #53191) + * If the `completion_type' session variable was changed after a + stored procedure or prepared statement had been cached, the change + had no effect on subsequent executions of the procedure or + statement. (Bug #53346) - * Setting the `innodb_change_buffering' system variable to `DEFAULT' - produced an incorrect result. (Bug #53165) + * For updates to `InnoDB' tables, *Note `TIMESTAMP': datetime. + columns could be updated even when no values actually changed. + (Bug #47453) - * *Note `mysqldump': mysqldump. and *Note `SELECT ... INTO OUTFILE': - select. truncated long *Note `BLOB': blob. and *Note `TEXT': blob. - values to 766 bytes. (Bug #53088) + * A problem with equality propagation optimization for prepared + statements and stored procedures caused a server crash upon + re-execution of the prepared statement or stored procedure. (Bug + #51650) References: See also Bug #8115, Bug #8849. - * On some systems, such as Mac OS X, the `sockaddr_in' and - `sockaddr_in6' structures contain a non-standard field (`sin_len' / - `sin6_len') that must be set but was not. This resulted in - hostname lookup failure. (Bug #52923) + * Using *Note `REPLACE': replace. to update a previously inserted + negative value in an `AUTO_INCREMENT' column of an *Note `InnoDB': + innodb-storage-engine. table caused the table auto-increment value + to be updated to 2147483647. (Bug #47720) - * In the debug version of the server, the `FreeState()' function - could in some circumstances be called twice, leading to an - assertion failure. (Bug #52884) + * During MySQL server installation using the MSI package on Windows, + the `default-character-set' option would be included in the + default configuration template file. This caused the MySQL server + to fail to start properly. (Bug #52380) - * Concurrent *Note `SHOW COLUMNS': show-columns. statements could - cause a server crash. (Bug #52856) + * Executing a *Note `LOAD XML INFILE': load-xml. statement could + sometimes lead to a server crash. (Bug #51571) - * With a non-`latin1' ASCII-based current character set, the server - inappropriately converted *Note `DATETIME': datetime. values to - strings. This resulted in the optimizer not using indexes on such - columns. (Bug #52849) + * A query that read from a derived table (of the form `SELECT ... + FROM (SELECT ...)') produced incorrect results when the following + conditions were present: - * *Note `mysqld_safe': mysqld-safe. set `plugin_dir' using a - hardcoded default path name rather than a path depending on - `basedir'. (Bug #52737) + * The table subquery contained a derived query (`(SELECT ...) AS + COLUMN'). - * Semi-consistent read was implemented for *Note `InnoDB': - innodb-storage-engine. to address Bug #3300. Semi-consistent - reads do not block when a nonmatching record is already locked by - some other transaction. If the record is not locked, a lock is - acquired, but is released if the record does not match the `WHERE' - condition. However, semi-consistent read was attempted even for - *Note `UPDATE': update. statements having a `WHERE' condition of - the form `pk_col1=constant1, ..., pk_colN=constantN'. Some code - failed that was designed with the assumption that semi-consistent - read would be only attempted on table scans. (Bug #52663) + * The derived query could potentially produce zero rows or a + single `NULL' (that is, no rows matched, or the query used an + aggregate function such as `SUM()' running over zero rows). - * Setting `@@GLOBAL.debug' to an empty string failed to clear the - current debug settings. (Bug #52629) + * The table subquery joined at least two tables. - * *Note `SHOW CREATE TABLE': show-create-table. was blocked if the - table was write locked by another session. (Bug #52593) + * The join condition involved an index. - * The `length' and `max_length' metadata values were incorrect for - columns with the *Note `TEXT': blob. family of data types that - used multibyte character sets. This bug was introduced in MySQL - 5.5.3. (Bug #52520) + (Bug #47904) - * *Note `mysql_upgrade': mysql-upgrade. attempted to work with stored - routines before they were available. (Bug #52444) + * A `HAVING' clause on a joined table in some cases failed to + eliminate rows which should have been excluded from the result set. + (Bug #51242) - * The `check_table_is_closed()' debugging function did not protect - access to the *Note `MyISAM': myisam-storage-engine. open tables - list, with the result that server crashes could occur during table - drop or rename operations. (Bug #52432) + * Performing a single in-place *Note `ALTER TABLE': alter-table. + containing `ADD INDEX' and `DROP INDEX' options that used the same + index name could result in a corrupt table definition file. Now + such *Note `ALTER TABLE': alter-table. statements are no longer + performed in place. (Bug #49838) - * Spurious duplicate-key errors occurred for multiple-column indexes - on *Note `BINARY': binary-varbinary. columns. (Bug #52430) + * The type inference used for view columns caused some columns in + views to be handled as the wrong type, as compared to the same + columns in base tables. *Note `DATE': datetime. columns in base + tables were treated as *Note `TIME': time. columns in views, and + base table *Note `TIME': time. columns as view *Note `DATETIME': + datetime. columns. (Bug #50918) - * *Note `EXPLAIN EXTENDED': explain. crashed trying to resolve - references to freed temporary table columns for `GROUP_CONCAT()' - `ORDER BY' arguments. (Bug #52397) + * The *Note `MERGE': merge-storage-engine. engine failed to open a + child table from a different database if the child table or + database name contained characters that were subject to table name + to file name encoding. - * During MySQL server installation using the MSI package on Windows, - the `default-character-set' option would be included in the - default configuration template file. This caused the MySQL server - to fail to start properly. (Bug #52380) + Further, the *Note `MERGE': merge-storage-engine. engine did not + properly open a child table from the same database if the child + table name contained characters such as `'/'', or `'#''. (Bug + #48265) - * Two sessions trying to set the global `event_scheduler' system - variable to `OFF' resulted in one of them hanging waiting for the - event scheduler to stop. (Bug #52367) + * *Note `CHECKSUM TABLE': checksum-table. could compute the checksum + for `BIT' columns incorrectly. (Bug #51304) - * There was a race condition between flags used for signaling that a - query was killed, which led to error-reporting and - lock-acquisition problems. (Bug #52356) + * *Note `mysql_upgrade': mysql-upgrade. did not detect when *Note + `CSV': csv-storage-engine. log tables incorrectly contained + columns that could be `NULL'. Now these columns are altered to be + `NOT NULL'. (Bug #49823) - * For a concurrent load of 16 or more connections containing many - *Note `LOCK TABLES WRITE': lock-tables. statements for the same - table, server throughput was significantly lower for MySQL 5.5.3 - and 5.5.4 than for earlier versions (10%-40% lower depending on - concurrency). (Bug #52289) + * The query shown by *Note `EXPLAIN EXTENDED': explain. plus *Note + `SHOW WARNINGS': show-warnings. could produce results different + from the original query. (Bug #47669) - * Operations on geometry data types failed on some systems for - builds compiled with Sun Studio. (Bug #52208) + * Two sessions trying to set the global `event_scheduler' system + variable to different values could deadlock. (Bug #51160) - * The optimizer could attempt to evaluate the `WHERE' clause before - any rows had been read, resulting in a server crash. (Bug #52177) + * For LDML-defined collations, some data structures were not + initialized properly to enable `UPPER()' and `LOWER()' to work + correctly. (Bug #51976) - * Cast operations on `NULL' *Note `DECIMAL': numeric-types. values - could cause server crashes or Valgrind warnings. (Bug #52168) + * Invalid memory reads occurred for *Note `HANDLER ... READ NEXT': + handler. after a failed *Note `HANDLER ... READ FIRST': handler. + (Bug #51877) - * An assertion was raised as a result of a `NULL' string being - passed to the `dtoa' code. (Bug #52165) + * The *Note `YEAR': year. values `2000' and `0000' could be treated + as equal. (Bug #49910) - * A memory leak occurred due to missing deallocation of the - `comparators' array (a member of the `Arg_comparator' class). - (Bug #52124) + * The optimizer performed an incorrect join type when `COALESCE()' + appeared within an `IN()' operation. (Bug #51598) - * For debug builds, creating a view containing a subquery that might - require collation adjustment caused an assertion to be raised. For - example, this could occur if some items had different collations - but the result collation could be adjusted to the one of them. - (Bug #52120) + * Following a bulk insert into a *Note `MyISAM': + myisam-storage-engine. table, if *Note `MyISAM': + myisam-storage-engine. failed to build indexes using repair by + sort, data file corruption could occur. (Bug #51307) - * Aggregate functions could incorrectly return `NULL' in outer join - queries. (Bug #52051) + * With an XA transaction active, *Note `SET autocommit = 1': + set-statement. could cause side effects such as memory corruption + or a server crash. (Bug #51342) - * For outer joins, the optimizer could fail to properly calculate - table dependencies. (Bug #52005) + * The optimization to read `MIN()' or `MAX()' values from an index + did not properly handle comparisons with `NULL' values. This could + produce incorrect results for `MIN()' or `MAX()'when the `WHERE' + clause tested a `NOT NULL' column for `NULL'. (Bug #47762) - * A `COUNT(DISTINCT)' query on a view could cause a server crash. - (Bug #51980) + * Killing a query during the optimization phase of a subquery could + cause a server crash. (Bug #47761) - * For LDML-defined collations, some data structures were not - initialized properly to enable `UPPER()' and `LOWER()' to work - correctly. (Bug #51976) + * Setting `myisam_repair_threads' larger than 1 could result in the + cardinality for all indexes of a *Note `MyISAM': + myisam-storage-engine. table being set to 1 after parallel index + repair. (Bug #47444) - * On Windows, `LOAD_FILE()' could cause a crash for some pathnames. - (Bug #51893) + * Use of *Note `HANDLER': handler. statements with tables that had + spatial indexes caused a server crash. (Bug #51357) - * Invalid memory reads occurred for *Note `HANDLER ... READ NEXT': - handler. after a failed *Note `HANDLER ... READ FIRST': handler. - (Bug #51877) + * The server crashed when it could not determine the best execution + plan for queries involving outer joins with nondeterministic `ON' + clauses such as the ones containing the `RAND()' function, a + user-defined function, or a `NOT DETERMINISTIC' stored function. + (Bug #48483) - * After *Note `TRUNCATE TABLE': truncate-table. of a *Note `MyISAM': - myisam-storage-engine. table, subsequent queries could crash the - server if `myisam_use_mmap' was enabled. (Bug #51868) + * On Windows, `LOAD_FILE()' could cause a crash for some pathnames. + (Bug #51893) * If `myisam_sort_buffer_size' was set to a small value, table repair for *Note `MyISAM': myisam-storage-engine. tables with `FULLTEXT' indexes could crash the server. (Bug #51866) - * Stored routine DDL statements were written to the binary log using - statement-based format regardless of the current logging format. - (Bug #51839) - - * A problem with equality propagation optimization for prepared - statements and stored procedures caused a server crash upon - re-execution of the prepared statement or stored procedure. (Bug - #51650) See also Bug #8115, Bug #8849. + * *Note `EXPLAIN EXTENDED': explain. crashed trying to resolve + references to freed temporary table columns for `GROUP_CONCAT()' + `ORDER BY' arguments. (Bug #52397) - * The optimizer performed an incorrect join type when `COALESCE()' - appeared within an `IN()' operation. (Bug #51598) + * In debug builds, if the listed columns in the view definition of + the table used in an *Note `INSERT ... SELECT': insert. statement + mismatched, an assertion was raised in the query cache + invalidation code following the failing statement. (Bug #46615) - * Locking involving the `LOCK_plugin', - `LOCK_global_system_variables', and `LOCK_status' mutexes could - deadlock. (Bug #51591) + * The optimizer could attempt to evaluate the `WHERE' clause before + any rows had been read, resulting in a server crash. (Bug #52177) - * Executing a *Note `LOAD XML INFILE': load-xml. statement could - sometimes lead to a server crash. (Bug #51571) + * *Note `MyISAM': myisam-storage-engine. could write uninitialized + data to new index pages. Now zeros are written to unused bytes in + the pages. (Bug #47598) * The server crashed when the optimizer attempted to determine constant tables but a table storage engine did not support exact @@ -237772,93 +241261,89 @@ `INFORMATION_SCHEMA.PROCESSLIST': processlist-table. table due to lack of mutex protection. (Bug #51377) - * Use of *Note `HANDLER': handler. statements with tables that had - spatial indexes caused a server crash. (Bug #51357) + * After *Note `TRUNCATE TABLE': truncate-table. of a *Note `MyISAM': + myisam-storage-engine. table, subsequent queries could crash the + server if `myisam_use_mmap' was enabled. (Bug #51868) - * With an XA transaction active, *Note `SET autocommit = 1': - set-option. could cause side effects such as memory corruption or - a server crash. (Bug #51342) + * Setting `@@GLOBAL.debug' to an empty string failed to clear the + current debug settings. (Bug #52629) + + * There was a race condition between flags used for signaling that a + query was killed, which led to error-reporting and + lock-acquisition problems. (Bug #52356) + + * User-defined variables of type `REAL' that contained `NULL' were + handled improperly when assigned to a column of another type. + (Bug #50511) + + * Stored routine DDL statements were written to the binary log using + statement-based format regardless of the current logging format. + (Bug #51839) + + * With a non-`latin1' ASCII-based current character set, the server + inappropriately converted *Note `DATETIME': datetime. values to + strings. This resulted in the optimizer not using indexes on such + columns. (Bug #52849) + + * *Note `SHOW CREATE TABLE': show-create-table. was blocked if the + table was write locked by another session. (Bug #52593) + + * *Note `mysql_upgrade': mysql-upgrade. attempted to work with stored + routines before they were available. (Bug #52444) + + * A `COUNT(DISTINCT)' query on a view could cause a server crash. + (Bug #51980) * Corrupt *Note `MyISAM': myisam-storage-engine. tables were automatically repaired even when `myisam_recover_options' was set to `OFF'. (Bug #51327) - * Following a bulk insert into a *Note `MyISAM': - myisam-storage-engine. table, if *Note `MyISAM': - myisam-storage-engine. failed to build indexes using repair by - sort, data file corruption could occur. (Bug #51307) + * Two sessions trying to set the global `event_scheduler' system + variable to `OFF' resulted in one of them hanging waiting for the + event scheduler to stop. (Bug #52367) - * *Note `CHECKSUM TABLE': checksum-table. could compute the checksum - for `BIT' columns incorrectly. (Bug #51304) + * An assertion was raised as a result of a `NULL' string being + passed to the `dtoa' code. (Bug #52165) - * *Note `ALTER TABLE': alter-table. on *Note `InnoDB': - innodb-storage-engine. tables (including partitioned tables) - acquired exclusive locks on rows of the table being altered. If - there was a concurrent transaction that did locking reads from - this table, this sometimes led to a deadlock that was not detected - by the metadata lock subsystem or by InnoDB (and was reported only - after exceeding `innodb_lock_wait_timeout'). (Bug #51263) + * *Note `OPTIMIZE TABLE': optimize-table. for an *Note `InnoDB': + innodb-storage-engine. table could raise an assertion if another + session issued a concurrent *Note `DROP TABLE': drop-table. (Bug + #47459) - * A `HAVING' clause on a joined table in some cases failed to - eliminate rows which should have been excluded from the result set. - (Bug #51242) + * For debug builds, creating a view containing a subquery that might + require collation adjustment caused an assertion to be raised. For + example, this could occur if some items had different collations + but the result collation could be adjusted to the one of them. + (Bug #52120) - * Two sessions trying to set the global `event_scheduler' system - variable to different values could deadlock. (Bug #51160) + * Locking involving the `LOCK_plugin', + `LOCK_global_system_variables', and `LOCK_status' mutexes could + deadlock. (Bug #51591) * *Note `InnoDB': innodb-storage-engine. fast index creation could incorrectly use a table copy in some cases. (Bug #50946) - * The Loose Index Scan optimization method assumed that it could - depend on the partitioning engine to maintain interval endpoint - information, as if it were a storage engine. (Bug #50939) + * If the server is started with `--skip-grant-tables', plugin + loading and unloading should be prohibited, but the server failed + to reject *Note `INSTALL PLUGIN': install-plugin. and *Note + `UNINSTALL PLUGIN': uninstall-plugin. statements. (Bug #46261) - * The type inference used for view columns caused some columns in - views to be handled as the wrong type, as compared to the same - columns in base tables. *Note `DATE': datetime. columns in base - tables were treated as *Note `TIME': time. columns in views, and - base table *Note `TIME': time. columns as view *Note `DATETIME': - datetime. columns. (Bug #50918) + * On Windows, the server failed to find a description for Event ID + 100. (Bug #48042) * A syntactically invalid trigger could cause the server to crash when trying to list triggers. (Bug #50755) - * Previously, the server held a global mutex while performing file - operations such as deleting an `.frm' or data file, or reading - index statistics from a data file. Now the mutex is not held for - these operations. Instead, the server uses metadata locks. (Bug - #50589, Bug #51557, Bug #49463) - - * User-defined variables of type `REAL' that contained `NULL' were - handled improperly when assigned to a column of another type. - (Bug #50511) - - * Setting `--secure-file-priv' to the empty string left the value - unaffected. (Bug #50373) - - * Calculation of intervals for Event Scheduler events was not - portable. (Bug #50087) - - * The *Note `YEAR': year. values `2000' and `0000' could be treated - as equal. (Bug #49910) - - * Performing a single in-place *Note `ALTER TABLE': alter-table. - containing `ADD INDEX' and `DROP INDEX' options that used the same - index name could result in a corrupt table definition file. Now - such *Note `ALTER TABLE': alter-table. statements are no longer - performed in place. (Bug #49838) - - * *Note `mysql_upgrade': mysql-upgrade. did not detect when *Note - `CSV': csv-storage-engine. log tables incorrectly contained - columns that could be `NULL'. Now these columns are altered to be - `NOT NULL'. (Bug #49823) + * A memory leak occurred due to missing deallocation of the + `comparators' array (a member of the `Arg_comparator' class). + (Bug #52124) - * `support-files/mysql.spec.sh' had unnecessary Perl dependencies. - (Bug #49723) + * *Note `EXPLAIN': explain. could cause a server crash for some + queries with subqueries. (Bug #48419) - * Selecting from *Note `INFORMATION_SCHEMA.ROUTINES': - routines-table. or *Note `INFORMATION_SCHEMA.PARAMETERS': - parameters-table. resulted in a memory leak. (Bug #48729) + * *Note `mysqld_safe': mysqld-safe. set `plugin_dir' using a + hardcoded default path name rather than a path depending on + `basedir'. (Bug #52737) * In MySQL 5.1, `READ COMMITTED' was changed to use less locking due to the availability of row-based binary logging (see the Note under @@ -237869,137 +241354,136 @@ amount of locking and has the same restrictions for binary logging. (Bug #48607) - * On Intel x86 machines, the optimizer could choose different - execution plans for a query depending on the compiler version and - optimization flags used to build the server binary. (Bug #48537) + * Semi-consistent read was implemented for *Note `InnoDB': + innodb-storage-engine. to address Bug #3300. Semi-consistent + reads do not block when a nonmatching record is already locked by + some other transaction. If the record is not locked, a lock is + acquired, but is released if the record does not match the `WHERE' + condition. However, semi-consistent read was attempted even for + *Note `UPDATE': update. statements having a `WHERE' condition of + the form `pk_col1=constant1, ..., pk_colN=constantN'. Some code + failed that was designed with the assumption that semi-consistent + read would be only attempted on table scans. (Bug #52663) - * A trigger could change the behavior of assigning `NULL' to a `NOT - NULL' column. (Bug #48525) + * *Note `mysqld_safe': mysqld-safe. did not always pass + `--open-files-limit' through to *Note `mysqld': mysqld. *Note + `mysqld_safe': mysqld-safe. did not treat dashes and underscores + as equivalent in option names. (Bug #47095) - * The server crashed when it could not determine the best execution - plan for queries involving outer joins with nondeterministic `ON' - clauses such as the ones containing the `RAND()' function, a - user-defined function, or a `NOT DETERMINISTIC' stored function. - (Bug #48483) + * *Note `mysqldump': mysqldump. and *Note `SELECT ... INTO OUTFILE': + select. truncated long *Note `BLOB': blob. and *Note `TEXT': blob. + values to 766 bytes. (Bug #53088) - * *Note `EXPLAIN': explain. could cause a server crash for some - queries with subqueries. (Bug #48419) + * Setting `--secure-file-priv' to the empty string left the value + unaffected. (Bug #50373) - * The *Note `MERGE': merge-storage-engine. engine failed to open a - child table from a different database if the child table or - database name contained characters that were subject to table name - to file name encoding. + * In the debug version of the server, the `FreeState()' function + could in some circumstances be called twice, leading to an + assertion failure. (Bug #52884) - Further, the *Note `MERGE': merge-storage-engine. engine did not - properly open a child table from the same database if the child - table name contained characters such as `'/'', or `'#''. (Bug - #48265) + * Calculation of intervals for Event Scheduler events was not + portable. (Bug #50087) - * On Windows, the server failed to find a description for Event ID - 100. (Bug #48042) + * A trigger could change the behavior of assigning `NULL' to a `NOT + NULL' column. (Bug #48525) - * A query that read from a derived table (of the form `SELECT ... - FROM (SELECT ...)') produced incorrect results when the following - conditions were present: + * Selecting from *Note `INFORMATION_SCHEMA.ROUTINES': + routines-table. or *Note `INFORMATION_SCHEMA.PARAMETERS': + parameters-table. resulted in a memory leak. (Bug #48729) - * The table subquery contained a derived query (`(SELECT ...) AS - COLUMN'). + * Aggregate functions could incorrectly return `NULL' in outer join + queries. (Bug #52051) - * The derived query could potentially produce zero rows or a - single `NULL' (that is, no rows matched, or the query used an - aggregate function such as `SUM()' running over zero rows). + * The Loose Index Scan optimization method assumed that it could + depend on the partitioning engine to maintain interval endpoint + information, as if it were a storage engine. (Bug #50939) - * The table subquery joined at least two tables. + * When the transaction isolation level was `REPEATABLE READ' and + binary logging used statement or mixed format, *Note `SELECT': + select. statements with subqueries referencing *Note `InnoDB': + innodb-storage-engine. tables unnecessarily acquired shared locks + on rows in these tables. (Bug #46947) - * The join condition involved an index. + * On some systems, such as Mac OS X, the `sockaddr_in' and + `sockaddr_in6' structures contain a non-standard field (`sin_len' / + `sin6_len') that must be set but was not. This resulted in + hostname lookup failure. (Bug #52923) - (Bug #47904) + * `gcc' 4.4.0 could fail to compile `dtoa.c'. (Bug #45882) - * The optimization to read `MIN()' or `MAX()' values from an index - did not properly handle comparisons with `NULL' values. This could - produce incorrect results for `MIN()' or `MAX()'when the `WHERE' - clause tested a `NOT NULL' column for `NULL'. (Bug #47762) + * Spurious duplicate-key errors occurred for multiple-column indexes + on *Note `BINARY': binary-varbinary. columns. (Bug #52430) - * Killing a query during the optimization phase of a subquery could - cause a server crash. (Bug #47761) + * Cast operations on `NULL' *Note `DECIMAL': numeric-types. values + could cause server crashes or Valgrind warnings. (Bug #52168) - * Using *Note `REPLACE': replace. to update a previously inserted - negative value in an `AUTO_INCREMENT' coumn of an *Note `InnoDB': - innodb-storage-engine. table caused the table auto-increment value - to be updated to 2147483647. (Bug #47720) + * Operations on geometry data types failed on some systems for + builds compiled with Sun Studio. (Bug #52208) - * The query shown by *Note `EXPLAIN EXTENDED': explain. plus *Note - `SHOW WARNINGS': show-warnings. could produce results different - from the original query. (Bug #47669) + * Concurrent *Note `SHOW COLUMNS': show-columns. statements could + cause a server crash. (Bug #52856) - * *Note `MyISAM': myisam-storage-engine. could write uninitialized - data to new index pages. Now zeros are written to unused bytes in - the pages. (Bug #47598) + * Previously, the server held a global mutex while performing file + operations such as deleting an `.frm' or data file, or reading + index statistics from a data file. Now the mutex is not held for + these operations. Instead, the server uses metadata locks. (Bug + #50589, Bug #51557, Bug #49463) - * *Note `OPTIMIZE TABLE': optimize-table. for an *Note `InnoDB': - innodb-storage-engine. table could raise an assertion if another - session issued a concurrent *Note `DROP TABLE': drop-table. (Bug - #47459) + * The `Lock_time' value in the slow query log was negative for + stored routines. (Bug #53191) - * For updates to `InnoDB' tables, *Note `TIMESTAMP': datetime. - columns could be updated even when no values actually changed. - (Bug #47453) + * For a concurrent load of 16 or more connections containing many + *Note `LOCK TABLES WRITE': lock-tables. statements for the same + table, server throughput was significantly lower for MySQL 5.5.3 + and 5.5.4 than for earlier versions (10%-40% lower depending on + concurrency). (Bug #52289) - * Setting `myisam_repair_threads' larger than 1 could result in the - cardinality for all indexes of a *Note `MyISAM': - myisam-storage-engine. table being set to 1 after parallel index - repair. (Bug #47444) + * On Intel x86 machines, the optimizer could choose different + execution plans for a query depending on the compiler version and + optimization flags used to build the server binary. (Bug #48537) - * *Note `mysqld_safe': mysqld-safe. did not always pass - `--open-files-limit' through to *Note `mysqld': mysqld. *Note - `mysqld_safe': mysqld-safe. did not treat dashes and underscores - as equivalent in option names. (Bug #47095) + * For outer joins, the optimizer could fail to properly calculate + table dependencies. (Bug #52005) - * When the transaction isolation level was `REPEATABLE READ' and - binary logging used statement or mixed format, *Note `SELECT': - select. statements with subqueries referencing *Note `InnoDB': - innodb-storage-engine. tables unnecessarily acquired shared locks - on rows in these tables. (Bug #46947) + * *Note `ALTER TABLE': alter-table. on *Note `InnoDB': + innodb-storage-engine. tables (including partitioned tables) + acquired exclusive locks on rows of the table being altered. If + there was a concurrent transaction that did locking reads from + this table, this sometimes led to a deadlock that was not detected + by the metadata lock subsystem or by InnoDB (and was reported only + after exceeding `innodb_lock_wait_timeout'). (Bug #51263) - * In debug builds, if the listed columns in the view definition of - the table used in an *Note `INSERT ... SELECT': insert. statement - mismatched, an assertion was raised in the query cache - invalidation code following the failing statement. (Bug #46615) + * The `length' and `max_length' metadata values were incorrect for + columns with the *Note `TEXT': blob. family of data types that + used multibyte character sets. This bug was introduced in MySQL + 5.5.3. (Bug #52520) + + * Setting the `innodb_change_buffering' system variable to `DEFAULT' + produced an incorrect result. (Bug #53165) * For the *Note `COMMIT': commit. and *Note `ROLLBACK': commit. statements, the `AND CHAIN' and `RELEASE' modifiers should be mutually exclusive, but the parser permitted both to be specified. (Bug #46527) - * If the server is started with `--skip-grant-tables', plugin - loading and unloading should be prohibited, but the server failed - to reject *Note `INSTALL PLUGIN': install-plugin. and *Note - `UNINSTALL PLUGIN': uninstall-plugin. statements. (Bug #46261) + * The `check_table_is_closed()' debugging function did not protect + access to the *Note `MyISAM': myisam-storage-engine. open tables + list, with the result that server crashes could occur during table + drop or rename operations. (Bug #52432) - * `gcc' 4.4.0 could fail to compile `dtoa.c'. (Bug #45882) + * `support-files/mysql.spec.sh' had unnecessary Perl dependencies. + (Bug #49723) + + * Setting the session value of the `debug' system variable also set + the global value. (Bug #38054) * *Note `ALTER TABLE ... ADD COLUMN': alter-table. for a table with multiple foreign keys caused a server crash. (Bug #45052) - * Manual pages for a few little-used programs were missing from RPM - packages. (Bug #44370) - - * Using an initial command with *Note `mysql_options(..., - MYSQL_INIT_COMMAND, ...)': mysql-options. that generated multiple - result sets (such as a stored procedure or a multi-statement - command) left the connection unusable. (Bug #42373) - - * The server could crash with an out of memory error when trying to - parse a query that was too long to fit in memory. Now the parser - rejects such queries with an `ER_OUT_OF_RESOURCES' error. (Bug - #42064) - - * `InnoDB' could fail to create a unique index on `NULL' columns. - (Bug #41904) - - * For a query that selected from a view and used an alias for the - view, the metadata used the alias name rather than the view name - in the `MYSQL_FIELD.table' member. (Bug #41788) + * When using *Note `UNINSTALL PLUGIN': uninstall-plugin. to remove a + loaded plugin, open tables and connections caused *Note `mysqld': + mysqld. to hang until the open connections had been closed. (Bug + #39053) * *Note `mysql_upgrade': mysql-upgrade. did not create temporary files properly. (Bug #41057) @@ -238013,36 +241497,44 @@ variable, selecting the return value into a user variable could produce an incorrect result. (Bug #40625) - * Column names displayed from the `PARTITION_EXPRESSION' column of - the *Note `INFORMATION_SCHEMA.PARTITIONS': partitions-table. table - did not include escape characters as necessary. (Bug #39338) + * For a query that selected from a view and used an alias for the + view, the metadata used the alias name rather than the view name + in the `MYSQL_FIELD.table' member. (Bug #41788) - * When *Note `SET TRANSACTION ISOLATION LEVEL': set-transaction. was - used to set the isolation level for the next transaction, the - level could persist for subsequent transactions. (Bug #39170) + * `InnoDB' could fail to create a unique index on `NULL' columns. + (Bug #41904) - * When using *Note `UNINSTALL PLUGIN': uninstall-plugin. to remove a - loaded plugin, open tables and connections caused *Note `mysqld': - mysqld. to hang until the open connections had been closed. (Bug - #39053) + * Using an initial command with *Note `mysql_options(..., + MYSQL_INIT_COMMAND, ...)': mysql-options. that generated multiple + result sets (such as a stored procedure or a multi-statement + command) left the connection unusable. (Bug #42373) * Valgrind warnings in the *Note `InnoDB': innodb-storage-engine. `compare_record()' function were corrected. (Bug #38999) + * Column names displayed from the `PARTITION_EXPRESSION' column of + the *Note `INFORMATION_SCHEMA.PARTITIONS': partitions-table. table + did not include escape characters as necessary. (Bug #39338) + + * The server could crash with an out of memory error when trying to + parse a query that was too long to fit in memory. Now the parser + rejects such queries with an `ER_OUT_OF_RESOURCES' error. (Bug + #42064) + * The optimizer sometimes used `filesort' for `ORDER BY' when it should have used an index. (Bug #38745) - * Setting the session value of the `debug' system variable also set - the global value. (Bug #38054) + * When *Note `SET TRANSACTION ISOLATION LEVEL': set-transaction. was + used to set the isolation level for the next transaction, the + level could persist for subsequent transactions. (Bug #39170) + + * Manual pages for a few little-used programs were missing from RPM + packages. (Bug #44370) * Accessing a *Note `MERGE': merge-storage-engine. table with an empty underlying table list incorrectly resulted in a `wrong index' error message rather than `end of file.' (Bug #35274) - * The test for `readline' during configuration failed when trying to - build MySQL in a directory other than the source tree root. (Bug - #35250) - * *Note `mysqld': mysqld. could fail during execution when using SSL. (Bug #34236) @@ -238055,10 +241547,11 @@ (Bug #32426) - * MySQL Makefiles relied on GNU extensions. (Bug #30708) + * The test for `readline' during configuration failed when trying to + build MySQL in a directory other than the source tree root. (Bug + #35250) - * The parser allocated too much memory for a query string containing - multiple statements. (Bug #27863) + * MySQL Makefiles relied on GNU extensions. (Bug #30708) * The behavior of the RPM installation for both new installations and upgrade installations has changed. @@ -238078,6 +241571,9 @@ directories in `/etc', so the MySQL server will be restarted automatically at the next machine reboot. (Bug #27072) + * The parser allocated too much memory for a query string containing + multiple statements. (Bug #27863) + * `ROW_COUNT()' returned a meaningful value only for some DML statements. Now it returns a value as follows: @@ -238105,13 +241601,11 @@  File: manual.info, Node: news-5-5-4, Next: news-5-5-3, Prev: news-5-5-5, Up: news-5-5-x -D.1.17 Changes in MySQL 5.5.4 (09 April 2010) +D.1.19 Changes in MySQL 5.5.4 (09 April 2010) --------------------------------------------- -*RPM Notes* - * `debuginfo' RPM packages are no longer being built or published. - *InnoDB Notes* + * `InnoDB' has been upgraded to version 1.1. This version is considered of Beta quality. @@ -238119,6 +241613,10 @@ For general information about using `InnoDB' in MySQL, see *Note innodb-storage-engine::. +*RPM Notes* + + * `debuginfo' RPM packages are no longer being built or published. + *Functionality Added or Changed* * *InnoDB Storage Engine*: `InnoDB' now has a @@ -238152,14 +241650,14 @@ delaying DML operations to the end of a transaction. See *Note innodb-multiple-rollback-segments::. (Bug #26590) - * A unique index on a column prefix could not be upgraded to a - primary index even if there was no primary index already defined. - (Bug #51378) - * *Note `InnoDB': innodb-storage-engine. did not reset table `AUTO_INCREMENT' values to the last used values after a server restart. (Bug #49032) + * A unique index on a column prefix could not be upgraded to a + primary index even if there was no primary index already defined. + (Bug #51378) + * When using the `EXAMPLE' storage engine, when the engine had been built as a plugin (instead of built in), and DTrace probes had been enabled during the build, loading the storage engine library @@ -238168,10 +241666,16 @@  File: manual.info, Node: news-5-5-3, Next: news-5-5-2, Prev: news-5-5-4, Up: news-5-5-x -D.1.18 Changes in MySQL 5.5.3 (24 March 2010 Milestone 3) ---------------------------------------------------------- +D.1.20 Changes in MySQL 5.5.3 (24 March 2010, Milestone 3) +---------------------------------------------------------- + +*InnoDB Notes* + + * This release includes `InnoDB' 1.0.6. This version is considered + of Release Candidate (RC) quality. *Performance Schema Notes* + * MySQL Server now includes the Performance Schema, a feature for monitoring server execution at a low level. The implementation uses the *Note `PERFORMANCE_SCHEMA': performance-schema. storage @@ -238188,10 +241692,6 @@ from an earlier release, run *Note `mysql_upgrade': mysql-upgrade. and restart the server. See *Note mysql-upgrade::. -*InnoDB Notes* - * This release includes `InnoDB' 1.0.6. This version is considered - of Release Candidate (RC) quality. - *Functionality Added or Changed* * *Performance*: The performance of internal functions that trim @@ -238306,76 +241806,94 @@ general-purpose options for setting program variables (use `--VAR_NAME=VALUE'). - (Bug #48048) See also Bug #47974, Bug #56408. + (Bug #48048) References: See also Bug #47974, Bug #56408. * *Incompatible Change*: Aliases for wildcards (as in `SELECT t.* AS 'alias' FROM t') are no longer accepted and result in an error. Previously, such aliases were ignored silently. (Bug #27249) - * *Incompatible Change*: Implicit conversion of a number or temporal - value to string now produces a value that has a character set and - collation determined by the `character_set_connection' and - `collation_connection' system variables. (These variables commonly - are set with *Note `SET NAMES': set-option. For information about - connection character sets, see *Note charset-connection::.) - - This change means that such a conversion results in a character - (nonbinary) string (a *Note `CHAR': char, *Note `VARCHAR': char, or - *Note `LONGTEXT': blob. value), except when the connection - character set is set to `binary'. In that case, the conversion - result is a binary string (a *Note `BINARY': binary-varbinary, - *Note `VARBINARY': binary-varbinary, or *Note `LONGBLOB': blob. - value). + * *Incompatible Change*: Several columns were added to the *Note + `INFORMATION_SCHEMA.ROUTINES': routines-table. table to provide + information about the `RETURNS' clause data type for stored + functions: `DATA_TYPE', `CHARACTER_MAXIMUM_LENGTH', + `CHARACTER_OCTET_LENGTH', `NUMERIC_PRECISION', `NUMERIC_SCALE', + `CHARACTER_SET_NAME', and `COLLATION_NAME'. - Previously, an implicit conversion always produced a binary - string, regardless of the connection character set. Such implicit - conversions to string typically occur for functions that are - passed numeric or temporal values when string values are more - usual, and thus could have effects beyond the type of the - converted value. Consider the expression `CONCAT(1, 'abc')'. The - numeric argument `1' was converted to the binary string `'1'' and - the concatenation of that value with the nonbinary string `'abc'' - produced the binary string `'1abc''. + This change produces an incompatibility for applications that + depend on column order in the *Note `ROUTINES': routines-table. + table because the new columns appear between the `ROUTINE_TYPE' and + `DTD_IDENTIFIER' columns. Such applications may need to be + adjusted to account for the new columns. - This change in conversion behavior affects several functions that - expect string arguments because a numeric or temporal argument - converted to a string now results in a character rather than - binary string argument: + * *Incompatible Change*: The Unicode implementation has been + extended to provide support for supplementary characters that lie + outside the Basic Multilingual Plane (BMP). Noteworthy features: - * String functions: `CONCAT()', `CONCAT_WS()', `ELT()', - `EXPORT_SET()', `INSERT()', `LCASE()', `LEFT()', `LOWER()', - `LPAD()', `LTRIM()', `MID()', `QUOTE()', `REPEAT()', - `REPLACE()', `REVERSE()', `RIGHT()', `RPAD()', `RTRIM()', - `SOUNDEX()', `SUBSTRING()', `TRIM()', `UCASE()', `UPPER()'. + * `utf16' and `utf32' character sets have been added. These + correspond to the UTF-16 and UTF-32 encodings of the Unicode + character set, and they both support supplementary characters. - * Date and time functions: `ADDDATE()', `ADDTIME()', - `DATE_ADD()', `DATE_SUB()', `DAYNAME()', `GET_FORMAT()', - `MONTHNAME()', `SUBDATE()', `SUBTIME()', `TIMESTAMPADD()'. + * The `utf8mb4' character set has been added. This is similar + to `utf8', but its encoding allows up to four bytes per + character to enable support for supplementary characters. - These functions remain unaffected: + * The `ucs2' character set is essentially unchanged except for + the inclusion of some newer BMP characters. - * `CHAR()' without a `USING' clause still returns `VARBINARY'. + In most respects, upgrading to MySQL 5.5 should present few + problems with regard to Unicode usage, although there are some + potential areas of incompatibility. These are the primary areas of + concern: - * Functions that previously returned `utf8' strings still do - so. Examples include `CHARSET()' and `COLLATION()'. + * For the variable-length character data types (*Note + `VARCHAR': char. and the *Note `TEXT': blob. types), the + maximum length in characters is less for `utf8mb4' columns + than for `utf8' columns. - Encryption and compression functions that expect string arguments - and previously returned binary strings are affected depending on - the content of the return value: + * For all character data types (*Note `CHAR': char, *Note + `VARCHAR': char, and the *Note `TEXT': blob. types), the + maximum number of characters that can be indexed is less for + `utf8mb4' columns than for `utf8' columns. - * If the return value contains only ASCII characters, the - function now returns a character string with the connection - character set and collation: `MD5()', `OLD_PASSWORD()', - `PASSWORD()', `SHA()', `SHA1()'. The `ASTEXT()' and `ASWKT()' - spatial functions also fall into this category. + Consequently, if you want to upgrade tables from `utf8' to + `utf8mb4' to take advantage of supplementary-character support, it + may be necessary to change some column or index definitions. - * If the return value can contain non-ASCII characters, the - function still returns a binary string: `AES_ENCRYPT()', - `COMPRESS()', `DES_ENCRYPT()', `ENCODE()', `ENCRYPT()'. + For additional details about the new Unicode character sets and + potential incompatibilities, see *Note charset-unicode::, and + *Note charset-unicode-upgrading::. - The `INET_NTOA()' return value contains only ASCII characters, and - this function now returns a character string with the connection - character set and collation rather than a binary string. + * *Incompatible Change*: The server now includes `dtoa', a library + for conversion between strings and numbers by David M. Gay. In + MySQL, this library provides the basis for improved conversion + between string or *Note `DECIMAL': numeric-types. values and + approximate-value (*Note `FLOAT': numeric-types./*Note `DOUBLE': + numeric-types.) numbers: + + * Consistent conversion results across platforms, which + eliminates, for example, Unix versus Windows conversion + differences. + + * Accurate representation of values in cases where results + previously did not provide sufficient precision, such as for + values close to IEEE limits. + + * Conversion of numbers to string format with the best possible + precision. The precision of `dtoa' is always the same or + better than that of the standard C library functions. + + Because the conversions produced by this library differ in some + cases from previous results, the potential exists for + incompatibilities in applications that rely on previous results. + For example, applications that depend on a specific exact result + from previous conversions might need adjustment to accommodate + additional precision. + + For additional information about the properties of `dtoa' + conversions, see *Note type-conversion::. + + References: See also Bug #12860, Bug #21497, Bug #26788, Bug + #24541, Bug #34015. * *Incompatible Change*: Several changes were made to processing of server system variables and command-line options to make their @@ -238401,8 +241919,8 @@ dashes or underscores. * For those system variables that can be set at runtime - (for example, using *Note `SET': set-option.), you must - specify them using underscores. + (for example, using *Note `SET': set-statement.), you + must specify them using underscores. * There are fewer session-only system variables. These variables now have a global value: `autocommit', @@ -238516,98 +242034,80 @@ Previously, it produced only a warning and status of success even though the attempt failed. - See also Bug #34437, Bug #34635, Bug #11747961, Bug #34829, Bug - #34878, Bug #25430. - - * *Incompatible Change*: The server now includes `dtoa', a library - for conversion between strings and numbers by David M. Gay. In - MySQL, this library provides the basis for improved conversion - between string or *Note `DECIMAL': numeric-types. values and - approximate-value (*Note `FLOAT': numeric-types./*Note `DOUBLE': - numeric-types.) numbers: - - * Consistent conversion results across platforms, which - eliminates, for example, Unix versus Windows conversion - differences. - - * Accurate representation of values in cases where results - previously did not provide sufficient precision, such as for - values close to IEEE limits. - - * Conversion of numbers to string format with the best possible - precision. The precision of `dtoa' is always the same or - better than that of the standard C library functions. - - Because the conversions produced by this library differ in some - cases from previous results, the potential exists for - incompatibilities in applications that rely on previous results. - For example, applications that depend on a specific exact result - from previous conversions might need adjustment to accommodate - additional precision. + References: See also Bug #34437, Bug #34635, Bug #11747961, Bug + #34829, Bug #34878, Bug #25430. - For additional information about the properties of `dtoa' - conversions, see *Note type-conversion::. + * *Incompatible Change*: Implicit conversion of a number or temporal + value to string now produces a value that has a character set and + collation determined by the `character_set_connection' and + `collation_connection' system variables. (These variables commonly + are set with *Note `SET NAMES': set-statement. For information + about connection character sets, see *Note charset-connection::.) - See also Bug #12860, Bug #21497, Bug #26788, Bug #24541, Bug - #34015. + This change means that such a conversion results in a character + (nonbinary) string (a *Note `CHAR': char, *Note `VARCHAR': char, or + *Note `LONGTEXT': blob. value), except when the connection + character set is set to `binary'. In that case, the conversion + result is a binary string (a *Note `BINARY': binary-varbinary, + *Note `VARBINARY': binary-varbinary, or *Note `LONGBLOB': blob. + value). - * *Incompatible Change*: The Unicode implementation has been - extended to provide support for supplementary characters that lie - outside the Basic Multilingual Plane (BMP). Noteworthy features: + Previously, an implicit conversion always produced a binary + string, regardless of the connection character set. Such implicit + conversions to string typically occur for functions that are + passed numeric or temporal values when string values are more + usual, and thus could have effects beyond the type of the + converted value. Consider the expression `CONCAT(1, 'abc')'. The + numeric argument `1' was converted to the binary string `'1'' and + the concatenation of that value with the nonbinary string `'abc'' + produced the binary string `'1abc''. - * `utf16' and `utf32' character sets have been added. These - correspond to the UTF-16 and UTF-32 encodings of the Unicode - character set, and they both support supplementary characters. + This change in conversion behavior affects several functions that + expect string arguments because a numeric or temporal argument + converted to a string now results in a character rather than + binary string argument: - * The `utf8mb4' character set has been added. This is similar - to `utf8', but its encoding allows up to four bytes per - character to enable support for supplementary characters. + * String functions: `CONCAT()', `CONCAT_WS()', `ELT()', + `EXPORT_SET()', `INSERT()', `LCASE()', `LEFT()', `LOWER()', + `LPAD()', `LTRIM()', `MID()', `QUOTE()', `REPEAT()', + `REPLACE()', `REVERSE()', `RIGHT()', `RPAD()', `RTRIM()', + `SOUNDEX()', `SUBSTRING()', `TRIM()', `UCASE()', `UPPER()'. - * The `ucs2' character set is essentially unchanged except for - the inclusion of some newer BMP characters. + * Date and time functions: `ADDDATE()', `ADDTIME()', + `DATE_ADD()', `DATE_SUB()', `DAYNAME()', `GET_FORMAT()', + `MONTHNAME()', `SUBDATE()', `SUBTIME()', `TIMESTAMPADD()'. - In most respects, upgrading to MySQL 5.5 should present few - problems with regard to Unicode usage, although there are some - potential areas of incompatibility. These are the primary areas of - concern: + These functions remain unaffected: - * For the variable-length character data types (*Note - `VARCHAR': char. and the *Note `TEXT': blob. types), the - maximum length in characters is less for `utf8mb4' columns - than for `utf8' columns. + * `CHAR()' without a `USING' clause still returns `VARBINARY'. - * For all character data types (*Note `CHAR': char, *Note - `VARCHAR': char, and the *Note `TEXT': blob. types), the - maximum number of characters that can be indexed is less for - `utf8mb4' columns than for `utf8' columns. + * Functions that previously returned `utf8' strings still do + so. Examples include `CHARSET()' and `COLLATION()'. - Consequently, if you want to upgrade tables from `utf8' to - `utf8mb4' to take advantage of supplementary-character support, it - may be necessary to change some column or index definitions. + Encryption and compression functions that expect string arguments + and previously returned binary strings are affected depending on + the content of the return value: - For additional details about the new Unicode character sets and - potential incompatibilities, see *Note charset-unicode::, and - *Note charset-unicode-upgrading::. + * If the return value contains only ASCII characters, the + function now returns a character string with the connection + character set and collation: `MD5()', `OLD_PASSWORD()', + `PASSWORD()', `SHA()', `SHA1()'. The `ASTEXT()' and `ASWKT()' + spatial functions also fall into this category. - * *Incompatible Change*: Several columns were added to the *Note - `INFORMATION_SCHEMA.ROUTINES': routines-table. table to provide - information about the `RETURNS' clause data type for stored - functions: `DATA_TYPE', `CHARACTER_MAXIMUM_LENGTH', - `CHARACTER_OCTET_LENGTH', `NUMERIC_PRECISION', `NUMERIC_SCALE', - `CHARACTER_SET_NAME', and `COLLATION_NAME'. + * If the return value can contain non-ASCII characters, the + function still returns a binary string: `AES_ENCRYPT()', + `COMPRESS()', `DES_ENCRYPT()', `ENCODE()', `ENCRYPT()'. - This change produces an incompatibility for applications that - depend on column order in the *Note `ROUTINES': routines-table. - table because the new columns appear between the `ROUTINE_TYPE' and - `DTD_IDENTIFIER' columns. Such applications may need to be - adjusted to account for the new columns. + The `INET_NTOA()' return value contains only ASCII characters, and + this function now returns a character string with the connection + character set and collation rather than a binary string. * *Important Change*: *Replication*: *Note `RESET MASTER': reset-master. and *Note `RESET SLAVE': reset-slave. now reset the values shown for `Last_IO_Error', `Last_IO_Errno', `Last_SQL_Error', and `Last_SQL_Errno' in the output of *Note - `SHOW SLAVE STATUS': show-slave-status. (Bug #34654) See also Bug - #44270. + `SHOW SLAVE STATUS': show-slave-status. (Bug #34654) References: + See also Bug #44270. * *Important Change*: The `--skip-thread-priority' option is now deprecated such that the server will not change the thread @@ -238644,6 +242144,9 @@ are logged and replicated correctly regardless of the result of the transaction. + * *Note `SHOW PROFILE CPU': show-profile. has been ported to + Windows. Thanks to Alex Budovski for the patch. (Bug #50057) + * `mysqltest' has a new `--max-connections' option to set a higher number of maximum permitted server connections than the default 128. This option can also be passed using `mysql-test-run.pl'. @@ -238654,9 +242157,6 @@ port range, as an alternative to the existing `--build-thread' option. (Bug #50182) - * *Note `SHOW PROFILE CPU': show-profile. has been ported to - Windows. Thanks to Alex Budovski for the patch. (Bug #50057) - * `mysql-test-run.pl' now has a `--gprof' option that runs the server through the `gprof' profiler, much the same way the currently supported `--gcov' option runs it through `gcov'. (Bug @@ -238667,14 +242167,14 @@ cases where the lettercase may vary between platforms. (Bug #48863) - * `mysqltest' now has a `remove_files_wildcard' command that removes - files matching a pattern from a directory. (Bug #39774) - * MySQL support for adding collations using LDML specifications did not support the `' identity rule that indicates one character sorts identically to another. The `' rule now is supported. See *Note ldml-rules::. (Bug #37129) + * `mysqltest' now has a `remove_files_wildcard' command that removes + files matching a pattern from a directory. (Bug #39774) + * For boolean options, the option-processing library now prints additional information in the `--help' message: If the option is enabled by default, the message says so and indicates that the @@ -238699,7 +242199,8 @@ * *Note `TRUNCATE TABLE': truncate-table. now is permitted for a table for which a `WRITE' lock has been acquired with *Note `LOCK - TABLES': lock-tables. (Bug #20667) See also Bug #46452. + TABLES': lock-tables. (Bug #20667) References: See also Bug + #46452. * *Note `FLUSH LOGS': flush. now takes an optional LOG_TYPE value so that *Note `FLUSH LOG_TYPE LOGS': flush. can be used to flush only @@ -238721,6 +242222,26 @@ Thanks to Eric Bergen for the patch to implement this feature. (Bug #14104) + * Three options were added to *Note `mysqldump': mysqldump. make it + easier to generate a dump from a slave server: + + * `--dump-slave' is similar to `--master-data', but the *Note + `CHANGE MASTER TO': change-master-to. statement contains + binary log coordinates for the slave's master host, not the + slave itself. + + * `--apply-slave-statements' causes *Note `STOP SLAVE': + stop-slave. and *Note `START SLAVE': start-slave. statements + to be added before the *Note `CHANGE MASTER TO': + change-master-to. statement and at the end of the output, + respectively. + + * `--include-master-host-port' causes the *Note `CHANGE MASTER + TO': change-master-to. statement to include `MASTER_PORT' and + `MASTER_HOST' options for the slave's master. + + (Bug #8368) + * Previously, prepared *Note `CALL': call. statements could be used through the C API only for stored procedures that produce at most one result set, and applications could not use placeholders for @@ -238758,6 +242279,15 @@ placeholder support for `OUT' and `INOUT' parameters is now available. See *Note call::. (Bug #11638, Bug #17898) + * *Note `mysqladmin': mysqladmin. now permits the password value to + be omitted following the `password' command. In this case, *Note + `mysqladmin': mysqladmin. prompts for the password value, which + enables you to avoid specifying the password on the command line. + Omitting the password value should be done only if `password' is + the final command on the *Note `mysqladmin': mysqladmin. command + line. Otherwise, the next argument is taken as the password. (Bug + #5724) + * MySQL now supports IPv6 connections to the local host, using the address `::1'. For example: @@ -238776,48 +242306,27 @@ See *Note account-names::, and *Note default-privileges::. (Bug #8836) - * Three options were added to *Note `mysqldump': mysqldump. make it - easier to generate a dump from a slave server: - - * `--dump-slave' is similar to `--master-data', but the *Note - `CHANGE MASTER TO': change-master-to. statement contains - binary log coordinates for the slave's master host, not the - slave itself. - - * `--apply-slave-statements' causes *Note `STOP SLAVE': - stop-slave. and *Note `START SLAVE': start-slave. statements - to be added before the *Note `CHANGE MASTER TO': - change-master-to. statement and at the end of the output, - respectively. - - * `--include-master-host-port' causes the *Note `CHANGE MASTER - TO': change-master-to. statement to include `MASTER_PORT' and - `MASTER_HOST' options for the slave's master. - - (Bug #8368) + * The maximum length of table comments was extended from 60 to 2048 + characters. The maximum length of column comments was extended + from 255 to 1024 characters. Index definitions now can include a + comment of up to 1024 characters. - * *Note `mysqladmin': mysqladmin. now permits the password value to - be omitted following the `password' command. In this case, *Note - `mysqladmin': mysqladmin. prompts for the password value, which - enables you to avoid specifying the password on the command line. - Omitting the password value should be done only if `password' is - the final command on the *Note `mysqladmin': mysqladmin. command - line. Otherwise, the next argument is taken as the password. (Bug - #5724) + * Added the *Note `PARAMETERS': parameters-table. table to + `INFORMATION_SCHEMA'. The *Note `PARAMETERS': parameters-table. + table provides information about stored procedure and function + parameters, and about return values for stored functions. - * Code that produces query IDs and updates the value of the - `Threads_running' status variable no longer acquires a global lock - that also protects the list of all connections. Instead, it relies - on atomic increment and decrement instructions. This improves - scalability and to a certain extent alleviates the problem - described in Bug #11751904. + * The *Note `TABLESPACES': tablespaces-table. table has been added + to `INFORMATION_SCHEMA' for tracking tablespace details. - See also Bug #42930. + * When the server detects `MyISAM' table corruption, it now writes + additional information to the error log, such as the name and line + number of the source file, and the list of threads accessing the + table. Example: `Got an error from thread_id=1, mi_dynrec.c:368'. + This is useful information to include in bug reports. - * The `optimizer_switch' system variable now has an - `engine_condition_pushdown' flag to control whether storage engine - condition pushdown optimization is used. As a consequence, the - `engine_condition_pushdown' system variable now is deprecated. + * Some conversions between Japanese character sets are more + efficient. * The server now provides a pluggable audit interface that enables information about server operations to be reported to interested @@ -238829,29 +242338,31 @@ plugin is interested and passes the event to the plugin if there is a match. For more information, see *Note audit-plugins::. - * Some conversions between Japanese character sets are more - efficient. + * The `optimizer_switch' system variable now has an + `engine_condition_pushdown' flag to control whether storage engine + condition pushdown optimization is used. As a consequence, the + `engine_condition_pushdown' system variable now is deprecated. - * When the server detects `MyISAM' table corruption, it now writes - additional information to the error log, such as the name and line - number of the source file, and the list of threads accessing the - table. Example: `Got an error from thread_id=1, mi_dynrec.c:368'. - This is useful information to include in bug reports. + * Code that produces query IDs and updates the value of the + `Threads_running' status variable no longer acquires a global lock + that also protects the list of all connections. Instead, it relies + on atomic increment and decrement instructions. This improves + scalability and to a certain extent alleviates the problem + described in Bug #11751904. - * The *Note `TABLESPACES': tablespaces-table. table has been added - to `INFORMATION_SCHEMA' for tracking tablespace details. + References: See also Bug #42930. - * Added the *Note `PARAMETERS': parameters-table. table to - `INFORMATION_SCHEMA'. The *Note `PARAMETERS': parameters-table. - table provides information about stored procedure and function - parameters, and about return values for stored functions. +*Bugs Fixed* - * The maximum length of table comments was extended from 60 to 2048 - characters. The maximum length of column comments was extended - from 255 to 1024 characters. Index definitions now can include a - comment of up to 1024 characters. + * *Security Fix*: The server crashed if an account with the `CREATE + ROUTINE' privilege but not the `EXECUTE' privilege attempted to + create a stored procedure. (Bug #44798) -*Bugs Fixed* + * *Security Enhancement*: When the `DATA DIRECTORY' or `INDEX + DIRECTORY' clause of a *Note `CREATE TABLE': create-table. + statement referred to a subdirectory of the data directory through + a symlinked component of the data directory path, it was accepted, + when for security reasons it should be rejected. (Bug #39277) * *Performance*: *Replication*: When writing events to the binary log, transactional events (that is, events that operate on @@ -238863,16 +242374,6 @@ the binary log, causing a major bottleneck in replication performance. (Bug #42757) - * *Security Fix*: The server crashed if an account with the `CREATE - ROUTINE' privilege but not the `EXECUTE' privilege attempted to - create a stored procedure. (Bug #44798) - - * *Security Enhancement*: When the `DATA DIRECTORY' or `INDEX - DIRECTORY' clause of a *Note `CREATE TABLE': create-table. - statement referred to a subdirectory of the data directory through - a symlinked component of the data directory path, it was accepted, - when for security reasons it should be rejected. (Bug #39277) - * *Incompatible Change*: *Replication*: The `binlog_format' system variable can no longer be set inside a transaction. In other words, the binary logging format can no longer be changed while a @@ -238884,14 +242385,7 @@ DDL statements for stored procedures and functions are now prohibited while a *Note `LOCK TABLES': lock-tables. statement is - in effect. (Bug #30977) See also Bug #57663. - - * *Incompatible Change*: For debug builds, attempts to execute *Note - `RESET': reset. statements within a transaction that had acquired - metadata locks led to an assertion failure. - - As a result of this bug fix, *Note `RESET': reset. statements now - cause an implicit commit. (Bug #51336) + in effect. (Bug #30977) References: See also Bug #57663. * *Incompatible Change*: A deadlock occurred for this sequence of events: Session 1 locked a table using *Note `LOCK TABLES': @@ -238902,6 +242396,24 @@ create-database. is not permitted within a session that has an active *Note `LOCK TABLES': lock-tables. statement. (Bug #49988) + * *Incompatible Change*: For debug builds, attempts to execute *Note + `RESET': reset. statements within a transaction that had acquired + metadata locks led to an assertion failure. + + As a result of this bug fix, *Note `RESET': reset. statements now + cause an implicit commit. (Bug #51336) + + * *Incompatible Change*: For application compatibility reasons, when + `sql_auto_is_null' is 1, MySQL converts `AUTO_INC_COL IS NULL' to + `AUTO_INC_COL = LAST_INSERT_ID()'. However, this was being done + regardless of whether the predicate was alone or at the top level. + Now it occurs only when it is a single top-level predicate. + + In conjunction with this bug fix, the default value of the + `sql_auto_is_null' system variable has been changed from 1 to 0, + which may cause incompatibilities with existing applications. + (Bug #41371) + * *Incompatible Change*: *Note `CREATE TABLE': create-table. statements (including *Note `CREATE TABLE ... LIKE': create-table.) are now prohibited whenever a *Note `LOCK TABLES': @@ -238944,17 +242456,6 @@ (Bug #42465) - * *Incompatible Change*: For application compatibility reasons, when - `sql_auto_is_null' is 1, MySQL converts `AUTO_INC_COL IS NULL' to - `AUTO_INC_COL = LAST_INSERT_ID()'. However, this was being done - regardless of whether the predicate was alone or at the top level. - Now it occurs only when it is a single top-level predicate. - - In conjunction with this bug fix, the default value of the - `sql_auto_is_null' system variable has been changed from 1 to 0, - which may cause incompatibilities with existing applications. - (Bug #41371) - * *Incompatible Change*: The parser accepted illegal syntax in a `FOREIGN KEY' clause: @@ -239031,7 +242532,8 @@ aliases. Statements containing alias constructs that are no longer - permitted must be rewritten. (Bug #27525) See also Bug #30234. + permitted must be rewritten. (Bug #27525) References: See also + Bug #30234. * *Incompatible Change*: *Note `DROP TABLE': drop-table. now is permitted only if you have acquired a `WRITE' lock with *Note @@ -239079,10 +242581,10 @@ supports statement-based logging only. Previously, it supported row-based logging only. (Bug #39934, Bug #11749859) - * *Important Change*: The IPv6 loopback address `::1' was interpeted + * *Important Change*: The IPv6 loopback address `::1' was interpreted as a hostname rather than a numeric IP address. - In addition, the IPv6-enabled server on Windows interpeted the + In addition, the IPv6-enabled server on Windows interpreted the hostname `localhost' as `::1' only, which failed to match the default `'root'@'127.0.0.1'' account in the `mysql.user' privilege table. @@ -239093,8 +242595,8 @@ `mysql.user' table as one of the default accounts created during MySQL installation. - (Bug #43006) See also Bug #38247, Bug #45283, Bug #45584, Bug - #45606. + (Bug #43006) References: See also Bug #38247, Bug #45283, Bug + #45584, Bug #45606. * *InnoDB Storage Engine*: *Replication*: Column length information generated by *Note `InnoDB': innodb-storage-engine. did not match @@ -239131,7 +242633,13 @@ * *Partitioning*: *Note `ALTER TABLE': alter-table-partition-operations. on a partitioned table caused - unnecessary deadlocks. (Bug #43867) See also Bug #46654. + unnecessary deadlocks. (Bug #43867) References: See also Bug + #46654. This bug is a regression of Bug #40181. + + * *Partitioning*: After attempting to create a duplicate index on a + partitioned table (and having the attempt fail as expected), a + subsequent attempt to create a new index on the table caused the + server to hang. (Bug #40181) * *Partitioning*: Attempting to drop a partitioned table from one connection while waiting for the completion of an *Note `ALTER @@ -239139,34 +242647,80 @@ connection, and that changed the storage engine used by the table, could cause the server to crash. (Bug #42438) - * *Partitioning*: After attempting to create a duplicate index on a - partitioned table (and having the attempt fail as expected), a - subsequent attempt to create a new index on the table caused the - server to hang. (Bug #40181) - * *Partitioning*: When used on a partitioned table, *Note `ALTER TABLE': alter-table. produced the wrong error message when the name of a nonexistent storage engine was used in the `ENGINE' clause. (Bug #35765) + * *Partitioning*: Portions of the partitioning code were refactored + in response to potential regression issues uncovered while working + on the fix for Bug #31210. (Bug #32115) References: See also Bug + #40281. + * *Partitioning*: When one user was in the midst of a transaction on a partitioned table, a second user performing an *Note `ALTER TABLE': alter-table. on this table caused the server to hang. (Bug #34604) - * *Partitioning*: Portions of the partitioning code were refactored - in response to potential regression issues uncovered while working - on the fix for Bug #31210. (Bug #32115) See also Bug #40281. + * *Replication*: Statements that updated `AUTO_INCREMENT' columns in + multiple tables were logged using the row-based format when + `--binlog_format' was set to `MIXED', but did not cause an `Unsafe + statement' warning to be generated when `--binlog_format' was set + to `STATEMENT'. (Bug #45827) References: See also Bug #39934, Bug + #11749859. + + * *Replication*: When using statement-based replication, + database-level character sets were not always honored by the + replication SQL thread. This could cause data inserted on the + master using *Note `LOAD DATA': load-data. to be replicated using + the wrong character set. + + *Note*: + + This was not an issue when using row-based replication. + + (Bug #45516) + + * *Replication*: When using row-based replication, the incomplete + logging of a group of events involving both transaction and + nontransactional tables could cause *Note `STOP SLAVE': + stop-slave. to hang. (Bug #45940) References: See also Bug #319, + Bug #38205. * *Replication*: When using the row-based or mixed replication format with a debug build of the MySQL server, inserts into columns using the `utf32' character set on the master caused the - slave to crash. (Bug #51787) See also Bug #51716. + slave to crash. (Bug #51787) References: See also Bug #51716. * *Replication*: When using the row-based or mixed replication format, column values using the `utf16' character set on the - master were padded incorrectly on the slave. (Bug #51716) See - also Bug #51787. + master were padded incorrectly on the slave. (Bug #51716) + References: See also Bug #51787. + + * *Replication*: When using the semisynchronous replication plugin + on Windows, the wait time calculated when the master was waiting + for reply from the slave was incorrect. In addition, when the wait + time was less than the current time, the master did not wait for a + reply at all. + + This issue was caused by the fact that a different internal + function was used to get current time by the plugin on Windows as + opposed to other platforms, and this function was not correctly + implemented. Now the Windows version of the plugin uses the same + function as other platforms for this purpose. (Bug #49557) + + * *Replication*: If a *Note `CHANGE MASTER TO': change-master-to. + statement set `MASTER_HEARTBEAT_PERIOD' to 30 or higher, + `Slave_received_heartbeats' did not increase on the slave. This + caused the slave to reconnect before the time indicated by + `slave_net_timeout' had elapsed. + + This issue affected big-endian 64-bit platforms such as + Solaris/SPARC. (Bug #50296) + + * *Replication*: Adding an index to a table on the master caused the + slave to stop logging slow queries to the slow query log. (Bug + #50620) * *Replication*: An issue internal to the code, first seen in Bug #49132 but not completely resolved in the fix for that bug, was @@ -239183,68 +242737,17 @@ `THD::is_current_stmt_binlog_format_row()', `THD::set_current_stmt_binlog_format_row()', and `THD::clear_current_stmt_binlog_format_row()' should be used - instead. (Bug #51021) See also Bug #11749859. - - * *Replication*: Adding an index to a table on the master caused the - slave to stop logging slow queries to the slow query log. (Bug - #50620) - - * *Replication*: If a *Note `CHANGE MASTER TO': change-master-to. - statement set `MASTER_HEARTBEAT_PERIOD' to 30 or higher, - `Slave_received_heartbeats' did not increase on the slave. This - caused the slave to reconnect before the time indicated by - `slave_net_timeout' had elapsed. - - This issue affected big-endian 64-bit platforms such as - Solaris/SPARC. (Bug #50296) + instead. (Bug #51021) References: See also Bug #11749859. * *Replication*: The error message given when trying to replicate (using statement-based mode) insertions into an `AUTO_INCREMENT' column by a stored function or a trigger was improved. (Bug #50192) - * *Replication*: The server could deadlock when *Note `FLUSH LOGS': - flush. was executed concurrently with DML statements. To fix this - problem, nontransactional changes are now always flushed before - transactional changes. (Bug #50038) - - * *Replication*: Metadata for `GEOMETRY' fields was not properly - stored by the slave in its definitions of tables. (Bug #49836) - See also Bug #48776. - * *Replication*: Statement-based replication of user variables having numeric data types did not always work correctly. (Bug #49562, Bug #11757508) - * *Replication*: When using the semisynchronous replication plugin - on Windows, the wait time calculated when the master was waiting - for reply from the slave was incorrect. In addition, when the wait - time was less than the current time, the master did not wait for a - reply at all. - - This issue was caused by the fact that a different internal - function was used to get current time by the plugin on Windows as - opposed to other platforms, and this function was not correctly - implemented. Now the Windows version of the plugin uses the same - function as other platforms for this purpose. (Bug #49557) - - * *Replication*: Due to a change in the format of the information - used by the slave to connect to the master, which could cause to - reject connection attempts to older masters by newer slaves. (Bug - #49259) This regression was introduced by Bug #13963. - - * *Replication*: When using row-based logging, a failing *Note - `INSERT ... SELECT': insert-select. statement on a - nontransactional table was not flagged correctly, such that, if a - rollback was requested and no other nontransactional table had - been updated, nothing was written to the binary log. (Bug #47175) - See also Bug #40278. - - * *Replication*: When using row-based replication, the incomplete - logging of a group of events involving both transaction and - nontransactional tables could cause *Note `STOP SLAVE': - stop-slave. to hang. (Bug #45940) See also Bug #319, Bug #38205. - * *Replication*: There were two related issues concerning handling of unsafe statements and setting of the binary logging format when there were open temporary tables on the master, and the existing @@ -239253,24 +242756,39 @@ 1. When using `binlog_format=ROW', and an unsafe statement was executed while there were open temporary tables on the master, the statement *Note `SET @@session.binlog_format = - MIXED': set-option. failed with the error `Cannot switch out - of the row-based binary log format when the session has open - temporary tables'. + MIXED': set-statement. failed with the error `Cannot switch + out of the row-based binary log format when the session has + open temporary tables'. 2. When using `binlog_format=MIXED', and an unsafe statement was executed while there were open temporary tables on the master, the statement *Note `SET @@session.binlog_format = - STATEMENT': set-option. caused any subsequent DML statements - to be written to the binary log using the row-based format - instead of the statement-based format. + STATEMENT': set-statement. caused any subsequent DML + statements to be written to the binary log using the + row-based format instead of the statement-based format. (Bug #45855, Bug #45856) - * *Replication*: Statements that updated `AUTO_INCREMENT' columns in - multiple tables were logged using the row-based format when - `--binlog_format' was set to `MIXED', but did not cause an `Unsafe - statement' warning to be generated when `--binlog_format' was set - to `STATEMENT'. (Bug #45827) See also Bug #39934, Bug #11749859. + * *Replication*: The server could deadlock when *Note `FLUSH LOGS': + flush. was executed concurrently with DML statements. To fix this + problem, nontransactional changes are now always flushed before + transactional changes. (Bug #50038) + + * *Replication*: Metadata for `GEOMETRY' fields was not properly + stored by the slave in its definitions of tables. (Bug #49836) + References: See also Bug #48776. + + * *Replication*: Due to a change in the format of the information + used by the slave to connect to the master, which could cause to + reject connection attempts to older masters by newer slaves. (Bug + #49259) References: This bug was introduced by Bug #13963. + + * *Replication*: When using row-based logging, a failing *Note + `INSERT ... SELECT': insert-select. statement on a + nontransactional table was not flagged correctly, such that, if a + rollback was requested and no other nontransactional table had + been updated, nothing was written to the binary log. (Bug #47175) + References: See also Bug #40278. * *Replication*: Even though *Note `INSERT DELAYED': insert-delayed. statements are unsafe for statement-based replication, they caused @@ -239283,22 +242801,6 @@ statements containing a `LIMIT' clause and occurring in stored routines were not written to the log as row events. (Bug #45785) - * *Replication*: When using statement-based replication, - database-level character sets were not always honored by the - replication SQL thread. This could cause data inserted on the - master using *Note `LOAD DATA': load-data. to be replicated using - the wrong character set. - - *Note*: - - This was not an issue when using row-based replication. - - (Bug #45516) - - * *Replication*: *Note `STOP SLAVE': stop-slave. did not flush the - relay log or the `master.info' or `relay-log.info' files, which - could lead to corruption if the server crashed. (Bug #44188) - * *Replication*: Large transactions and statements could corrupt the binary log if the size of the cache (as set by `max_binlog_cache_size') was not large enough to store the changes. @@ -239318,13 +242820,8 @@ binary log, the slave does not stop, and the master does not report any errors. - (Bug #43929, Bug #11752675) See also Bug #37148, Bug #11748696, - Bug #46166, Bug #11754544. - - * *Replication*: On Windows, *Note `RESET MASTER': reset-master. - failed in the event of a missing binlog file rather than issuing a - warning and completing the rest of the statement. (Bug #42150, - Bug #42218) + (Bug #43929, Bug #11752675) References: See also Bug #37148, Bug + #11748696, Bug #46166, Bug #11754544. * *Replication*: Executing the sequence of statements *Note `RESET SLAVE': reset-slave, *Note `RESET MASTER': reset-master, and *Note @@ -239353,17 +242850,27 @@ * *Replication*: Issuing concurrent *Note `STOP SLAVE': stop-slave, *Note `START SLAVE': start-slave, and *Note `RESET SLAVE': reset-slave. statements using different connections caused the - replication slave to crash. (Bug #38716) See also Bug #38715, Bug - #44312. + replication slave to crash. (Bug #38716) References: See also Bug + #38715, Bug #44312. + + * *Replication*: On Windows, *Note `RESET MASTER': reset-master. + failed in the event of a missing binlog file rather than issuing a + warning and completing the rest of the statement. (Bug #42150, + Bug #42218) * *Replication*: A slave compiled using `--with-libevent' and run with `--thread-handling=pool-of-threads' could sometimes crash. (Bug #36929) + * *Replication*: *Note `STOP SLAVE': stop-slave. did not flush the + relay log or the `master.info' or `relay-log.info' files, which + could lead to corruption if the server crashed. (Bug #44188) + * *Replication*: *Note `mysqlbinlog': mysqlbinlog. sometimes failed when trying to create temporary files; this was because it ignored the specified temp file directory and tried to use the system - `/tmp' directory instead. (Bug #35546) See also Bug #35543. + `/tmp' directory instead. (Bug #35546) References: See also Bug + #35543. * *Replication*: A *Note `CHANGE MASTER TO': change-master-to. statement with no `MASTER_HEARTBEAT_PERIOD' option failed to reset @@ -239379,137 +242886,91 @@ which had appeared in the output of *Note `SHOW SLAVE HOSTS': show-slave-hosts. in some MySQL releases, was removed because the corresponding server variable `rpl_recovery_rank' (now deprecated) - was never actually used. (Bug #13963) See also Bug #21132, Bug - #21869. - - * *Note `mysqld_safe': mysqld-safe. did not pass the correct default - value of `plugin_dir' to *Note `mysqld': mysqld. (Bug #51938) - - * *Note `mysqld_multi': mysqld-multi. failed due to a syntax error in - the script. (Bug #51468) - - * *Note `ALTER TABLE': alter-table. on a *Note `MERGE': - merge-storage-engine. table that has been locked using *Note `LOCK - TABLES ... WRITE': lock-tables. incorrectly produced an - `ER_TABLE_NOT_LOCKED_FOR_WRITE' error. (Bug #51240) + was never actually used. (Bug #13963) References: See also Bug + #21132, Bug #21869. - * The *Note `mysql': mysql. could default to the `ascii' character - set, which is not a valid character set choice for MySQL. The - `latin1' character set will now be used when an ASCII environment - has been identified. (Bug #51166) + * For an IPv6-enabled MySQL server, privileges specified using + standard IPv4 addresses for hosts were not matched (only + IPv4-mapped addresses were handled correctly). - * On some Unix/Linux platforms, an error during build from source - could be produced, referring to a missing `LT_INIT' program. This - is due to versions of `libtool' 2.1 and earlier. (Bug #51009) + As part of the fix for this bug, a new build option + `--disable-ipv6' has been introduced. Compiling MySQL with this + option causes all IPv6-specific code in the server to be ignored. - * Referring to a subquery result in a `HAVING' clause could produce - incorrect results. (Bug #50995) + *Important*: - * Aggregate functions on *Note `TIMESTAMP': datetime. columns could - yield incorrect or undefined results. (Bug #50888) + If the server has been compiled using `--disable-ipv6', it is not + able to resolve hostnames correctly when run in an IPv6 + environment. - * The optimizer normally prefers use of `filesort' plus the join - cache to a full index scan. But this combination was used even if - the index is clustered, in which case, the clustered index scan - can be faster. (Bug #50843) + (Bug #45606) References: See also Bug #38247, Bug #43006, Bug + #45283, Bug #45584. - * For debug builds, *Note `SHOW BINARY LOGS': show-binary-logs. - raised an assertion if binary logging was not enabled. (Bug - #50780) + * The hostname cache failed to work correctly. (Bug #45584) + References: See also Bug #38247, Bug #43006, Bug #45283, Bug + #45606. - * The server did not recognize that the stored procedure cache - became invalid if a view was created or modified within a - procedure, resulting in a crash. (Bug #50624) + * A Windows Installation using the GUI installer would fail with: - * Incorrect handling of *Note `BIT': numeric-types. columns in - temporary tables could lead to spurious duplicate-key errors. - (Bug #50591) + MySQL Server 5.1 Setup Wizard ended prematurely - * The second or subsequent invocation of a stored procedure - containing *Note `DROP TRIGGER': drop-trigger. could cause a - server crash. (Bug #50423) + The wizard was interrupted before MySQL Server 5.1. could be completely installed. - * The return values for calls to put information into the stored - routine cache were not consistently checked, raising an assertion. - (Bug #50412) + Your system has not been modified. To complete installation at another time, please run + setup again. - * Full-text queries that used the truncation operator (`*') could - enter an infinite loop. (Bug #50351) + Click Finish to exit the wizard - * For debug builds, an assertion was incorrectly raised in the - optimizer when matching `ORDER BY' expressions. (Bug #50335) + This was due to a step in the MSI installer that could fail to + execute correctly on some environments. (Bug #45418) - * Queries optimized with `GROUP_MIN_MAX' did not clean up `KEYREAD' - optimizations properly, causing subsequent queries to return - incomplete rows. (Bug #49902) + * Execution of *Note `FLUSH TABLES': flush. or *Note `FLUSH TABLES + WITH READ LOCK': flush. concurrently with *Note `LOCK TABLES': + lock-tables. resulted in deadlock. (Bug #45066) - * *Note `mysql --show-warnings': mysql. crashed if the server - connection was lost. (Bug #49646) + * Killing a delayed-insert thread could cause a server crash. (Bug + #45067) - * For string-valued system variables containing multibyte - characters, the byte length was used in contexts where the - character length was more appropriate. (Bug #49645) + * The server could crash attempting to flush privileges after + receipt of a `SIGHUP' signal. (Bug #46495) - * *Note `SHOW VARIABLES': show-variables. did not correctly display - string-valued system variables that contained `\0' characters. - (Bug #49644) + * Improperly closing tables when *Note `INSERT DELAYED': + insert-delayed. needed to reopen tables could cause an assertion + failure. (Bug #45949) References: See also Bug #18484. - * MySQL program option-processing code incorrectly displayed some - options when printing ambiguous-option errors. (Bug #49640) + * Deadlock occurred if one session was running a multiple-statement + transaction that involved a single partitioned table and another + session attempted to alter the table. (Bug #46654) - * For dynamic format *Note `MyISAM': myisam-storage-engine. tables - containing *Note `LONGTEXT': blob. columns, a bulk *Note `INSERT - ... ON DUPLICATE KEY UPDATE': insert. or bulk *Note `REPLACE': - replace. could cause corruption. (Bug #49628) + * If *Note `INSERT INTO TBL_NAME': insert. invoked a stored function + that modified TBL_NAME, the server crashed. (Bug #46374) - * Setting `binlog_format' to `DEFAULT' assigned a value different - from the default. (Bug #49540) + * *Note `CREATE VIEW': create-view. raised an assertion if a + temporary table existed with the same name as the view. (Bug + #47635) - * For debug builds, with `sql_safe_updates' enabled, a - multiple-table *Note `UPDATE': update. with the `IGNORE' modifier - could raise an assertion. (Bug #49534) + * Selecting from the process list in the embedded server caused a + crash. (Bug #47304) References: See also Bug #43733. - * *Note `EXPLAIN EXTENDED': explain. crashed trying to print column - names for a subquery in the `FROM' clause when the table had gone - out of scope. (Bug #49487) + * If a temporary table was created with the same name as a view + referenced in a stored routine, routine execution could raise an + assertion. (Bug #47313) - * For *Note `InnoDB': innodb-storage-engine. tables, the test for - using an index for `ORDER BY' sorting did not distinguish between - primary keys and secondary indexes and expected primary key values - to be concatenated to index values the way they are to secondary - key values. (Bug #49324) + * Programs did not exit if the option file specified by + `--defaults-file' was not found. (Bug #47216) - * `mysqltest' no longer permits you to execute an SQL statement on a - connection after doing a `send' command, unless you do a `reap' - first. This was previously accepted but could produce - unpredictable results. (Bug #49269) + * For queries that used `GROUP_CONCAT(DISTINCT ...)', the value of + `max_heap_table_size' was used for memory allocation, which could + be excessive. Now the minimum of `max_heap_table_size' and + `tmp_table_size' is used. (Bug #46018) * Valgrind warnings for several logging messages were corrected. (Bug #49130) - * For debug builds on Windows, warnings about incorrect use of - debugging directives were written to the error log. The directives - were rewritten to eliminate these messages. (Bug #49025) - - * Plugins in a binary release could not be installed into a debug - version of the server. (Bug #49022) - - * On POSIX systems, calls to `select()' with a file descriptor set - larger than `FD_SETSIZE' resulted in unpredictable I/O errors; for - example, when a large number of tables required repair. (Bug - #48929) - - * A dependent subquery containing `COUNT(DISTINCT COL_NAME))' could - be evaluated incorrectly. (Bug #48920) - - * If a stored function contained a *Note `RETURN': return. statement - with an `ENUM' value in the `ucs2' character set, *Note `SHOW - CREATE FUNCTION': show-create-function. and `SELECT DTD_IDENTIFIER - FROM INFORMATION_SCHEMA.ROUTINES' returned incorrect values. (Bug - #48766) - - * An `.ARZ' file missing from the database directory caused the - server to crash. (Bug #48757) + * The *Note `mysql': mysql. could default to the `ascii' character + set, which is not a valid character set choice for MySQL. The + `latin1' character set will now be used when an ASCII environment + has been identified. (Bug #51166) * Running *Note `SHOW CREATE TABLE': show-create-table. on a view `v1' that contained a function which accessed another view `v2' @@ -239517,71 +242978,40 @@ function (`v2') caused a warning to be raised while being opened. (Bug #48449) - * Invalid memory reads could occur following a query that referenced - a *Note `MyISAM': myisam-storage-engine. table multiple times with - a write lock. (Bug #48438) - - * For debug builds, creating a view containing a row constructor - raised an assertion. (Bug #48294) - - * An aliasing violation in the C API could lead to a crash. (Bug - #48284) - - * Slow *Note `CALL': call. statements were not always logged to the - slow query log because execution time for multiple-statement - stored procedures was assessed incorrectly. (Bug #47905) - - * For debug builds, killing a *Note `SELECT': select. retrieving - from a view that was processing a function raised an assertion. - (Bug #47736) - - * Failure to open a view with a nonexistent `DEFINER' was improperly - handled and the server crashed later attempting to lock the view. - (Bug #47734) - * If a prepared statement used both a `MERGE' table and a stored function or trigger, execution sometimes failed with a `No such table' error. (Bug #47648) - * *Note `CREATE VIEW': create-view. raised an assertion if a - temporary table existed with the same name as the view. (Bug - #47635) - - * Renaming a column of an *Note `InnoDB': innodb-storage-engine. - table caused the server to go out of sync with the *Note `InnoDB': - innodb-storage-engine. data dictionary. To avoid this issue, - renaming a column uses the older technique of copying all the - table data rather than updating the table in-place. (Bug #47621) - - * If a temporary table was created with the same name as a view - referenced in a stored routine, routine execution could raise an - assertion. (Bug #47313) - - * Selecting from the process list in the embedded server caused a - crash. (Bug #47304) See also Bug #43733. - - * Programs did not exit if the option file specified by - `--defaults-file' was not found. (Bug #47216) + * An `.ARZ' file missing from the database directory caused the + server to crash. (Bug #48757) - * Attempts to print octal numbers with `my_vsnprintf()' could cause - a crash. (Bug #47212) + * On some Unix/Linux platforms, an error during build from source + could be produced, referring to a missing `LT_INIT' program. This + is due to versions of `libtool' 2.1 and earlier. (Bug #51009) * Corrected a potential problem of unintended file overwriting when the `MY_DONT_OVERWRITE_FILE' flag was used. (Bug #47126) - * Deadlock occurred if one session was running a multiple-statement - transaction that involved a single partitioned table and another - session attempted to alter the table. (Bug #46654) + * If a stored function contained a *Note `RETURN': return. statement + with an `ENUM' value in the `ucs2' character set, *Note `SHOW + CREATE FUNCTION': show-create-function. and `SELECT DTD_IDENTIFIER + FROM INFORMATION_SCHEMA.ROUTINES' returned incorrect values. (Bug + #48766) - * Valgrind warnings about memory allocation overruns for handling - *Note `CREATE FUNCTION': create-function. statements for UDFs were - corrected. (Bug #46570) + * An aliasing violation in the C API could lead to a crash. (Bug + #48284) - * The server could crash attempting to flush privileges after - receipt of a `SIGHUP' signal. (Bug #46495) + * A dependent subquery containing `COUNT(DISTINCT COL_NAME))' could + be evaluated incorrectly. (Bug #48920) - * If *Note `INSERT INTO TBL_NAME': insert. invoked a stored function - that modified TBL_NAME, the server crashed. (Bug #46374) + * `mysqltest' no longer permits you to execute an SQL statement on a + connection after doing a `send' command, unless you do a `reap' + first. This was previously accepted but could produce + unpredictable results. (Bug #49269) + + * The return values for calls to put information into the stored + routine cache were not consistently checked, raising an assertion. + (Bug #50412) * *Note `HANDLER': handler. statements within a transaction that already holds metadata locks could lead to deadlocks. @@ -239589,58 +243019,6 @@ Before this fix, all handlers for `TEMPORARY' tables were reset whenever any base table was opened. (Bug #46224) - * For queries that used `GROUP_CONCAT(DISTINCT ...)', the value of - `max_heap_table_size' was used for memory allocation, which could - be excessive. Now the minimum of `max_heap_table_size' and - `tmp_table_size' is used. (Bug #46018) - - * Improperly closing tables when *Note `INSERT DELAYED': - insert-delayed. needed to reopen tables could cause an assertion - failure. (Bug #45949) See also Bug #18484. - - * Grouping by a subquery in a query with a `DISTINCT' aggregate - function led to incorrect and unordered grouping values. (Bug - #45640) - - * For an IPv6-enabled MySQL server, privileges specified using - standard IPv4 addresses for hosts were not matched (only - IPv4-mapped addresses were handled correctly). - - As part of the fix for this bug, a new build option - `--disable-ipv6' has been introduced. Compiling MySQL with this - option causes all IPv6-specific code in the server to be ignored. - - *Important*: - - If the server has been compiled using `--disable-ipv6', it is not - able to resolve hostnames correctly when run in an IPv6 - environment. - - (Bug #45606) See also Bug #38247, Bug #43006, Bug #45283, Bug - #45584. - - * The hostname cache failed to work correctly. (Bug #45584) See - also Bug #38247, Bug #43006, Bug #45283, Bug #45606. - - * A Windows Installation using the GUI installer would fail with: - - MySQL Server 5.1 Setup Wizard ended prematurely - - The wizard was interrupted before MySQL Server 5.1. could be completely installed. - - Your system has not been modified. To complete installation at another time, please run - setup again. - - Click Finish to exit the wizard - - This was due to a step in the MSI installer that could fail to - execute correctly on some environments. (Bug #45418) - - * Propagation of a large unsigned numeric constant in `WHERE' - expressions could lead to incorrect results. This also affected - *Note `EXPLAIN EXTENDED': explain, which printed incorrect numeric - constants in such transformed `WHERE' expressions. (Bug #45360) - * There was no timeout for attempts to acquire metadata locks (for example, a *Note `DROP TABLE': drop-table. attempt for a table that was open in another transaction would not time out). @@ -239679,36 +243057,152 @@ through triggers) or by *Note `LOCK TABLES ... READ': lock-tables. (Bug #45225, Bug #56272) + * *Note `mysqld_multi': mysqld-multi. failed due to a syntax error in + the script. (Bug #51468) + + * On POSIX systems, calls to `select()' with a file descriptor set + larger than `FD_SETSIZE' resulted in unpredictable I/O errors; for + example, when a large number of tables required repair. (Bug + #48929) + + * For debug builds, *Note `SHOW BINARY LOGS': show-binary-logs. + raised an assertion if binary logging was not enabled. (Bug + #50780) + + * Full-text queries that used the truncation operator (`*') could + enter an infinite loop. (Bug #50351) + + * For debug builds on Windows, warnings about incorrect use of + debugging directives were written to the error log. The directives + were rewritten to eliminate these messages. (Bug #49025) + + * Slow *Note `CALL': call. statements were not always logged to the + slow query log because execution time for multiple-statement + stored procedures was assessed incorrectly. (Bug #47905) + + * The optimizer normally prefers use of `filesort' plus the join + cache to a full index scan. But this combination was used even if + the index is clustered, in which case, the clustered index scan + can be faster. (Bug #50843) + + * Incorrect handling of *Note `BIT': numeric-types. columns in + temporary tables could lead to spurious duplicate-key errors. + (Bug #50591) + + * Referring to a subquery result in a `HAVING' clause could produce + incorrect results. (Bug #50995) + + * *Note `mysql --show-warnings': mysql. crashed if the server + connection was lost. (Bug #49646) + + * *Note `ALTER TABLE': alter-table. on a *Note `MERGE': + merge-storage-engine. table that has been locked using *Note `LOCK + TABLES ... WRITE': lock-tables. incorrectly produced an + `ER_TABLE_NOT_LOCKED_FOR_WRITE' error. (Bug #51240) + + * Attempts to print octal numbers with `my_vsnprintf()' could cause + a crash. (Bug #47212) + + * Setting `binlog_format' to `DEFAULT' assigned a value different + from the default. (Bug #49540) + + * *Note `SHOW VARIABLES': show-variables. did not correctly display + string-valued system variables that contained `\0' characters. + (Bug #49644) + + * MySQL program option-processing code incorrectly displayed some + options when printing ambiguous-option errors. (Bug #49640) + + * For string-valued system variables containing multibyte + characters, the byte length was used in contexts where the + character length was more appropriate. (Bug #49645) + + * Failure to open a view with a nonexistent `DEFINER' was improperly + handled and the server crashed later attempting to lock the view. + (Bug #47734) + * Valgrind warnings about uninitialized variables in optimizer code were corrected. (Bug #45195) - * Killing a delayed-insert thread could cause a server crash. (Bug - #45067) + * Propagation of a large unsigned numeric constant in `WHERE' + expressions could lead to incorrect results. This also affected + *Note `EXPLAIN EXTENDED': explain, which printed incorrect numeric + constants in such transformed `WHERE' expressions. (Bug #45360) - * Execution of *Note `FLUSH TABLES': flush. or *Note `FLUSH TABLES - WITH READ LOCK': flush. concurrently with *Note `LOCK TABLES': - lock-tables. resulted in deadlock. (Bug #45066) + * Grouping by a subquery in a query with a `DISTINCT' aggregate + function led to incorrect and unordered grouping values. (Bug + #45640) - * The *Note `mysql_real_connect()': mysql-real-connect. C API - function only attempted to connect to the first IP address - returned for a hostname. This could be a problem if a hostname - mapped to multiple IP address and the server was not bound to the - first one returned. Now *Note `mysql_real_connect()': - mysql-real-connect. attempts to connect to all IPv4 or IPv6 - addresses that a domain name maps to. (Bug #45017) See also Bug - #47757. + * Valgrind warnings about memory allocation overruns for handling + *Note `CREATE FUNCTION': create-function. statements for UDFs were + corrected. (Bug #46570) - * For plugins that did not have command-line options other than the - ones to select the plugin itself, those options were not displayed - in the *Note `mysqld': mysqld. help message. (Bug #44797) + * The server did not recognize that the stored procedure cache + became invalid if a view was created or modified within a + procedure, resulting in a crash. (Bug #50624) - * Some plugins configured as mandatory could be disabled at server - startup. (Bug #44691) + * The second or subsequent invocation of a stored procedure + containing *Note `DROP TRIGGER': drop-trigger. could cause a + server crash. (Bug #50423) - * *Note `InnoDB': innodb-storage-engine. took a shared row lock when - executing *Note `SELECT': select. statements inside a stored - function as a part of a transaction using `REPEATABLE READ'. This - prevented other transactions from updating the row. (Bug #44613) + * For debug builds, an assertion was incorrectly raised in the + optimizer when matching `ORDER BY' expressions. (Bug #50335) + + * Queries optimized with `GROUP_MIN_MAX' did not clean up `KEYREAD' + optimizations properly, causing subsequent queries to return + incomplete rows. (Bug #49902) + + * For dynamic format *Note `MyISAM': myisam-storage-engine. tables + containing *Note `LONGTEXT': blob. columns, a bulk *Note `INSERT + ... ON DUPLICATE KEY UPDATE': insert. or bulk *Note `REPLACE': + replace. could cause corruption. (Bug #49628) + + * For debug builds, with `sql_safe_updates' enabled, a + multiple-table *Note `UPDATE': update. with the `IGNORE' modifier + could raise an assertion. (Bug #49534) + + * For debug builds, killing a *Note `SELECT': select. retrieving + from a view that was processing a function raised an assertion. + (Bug #47736) + + * For debug builds, creating a view containing a row constructor + raised an assertion. (Bug #48294) + + * Invalid memory reads could occur following a query that referenced + a *Note `MyISAM': myisam-storage-engine. table multiple times with + a write lock. (Bug #48438) + + * *Note `EXPLAIN EXTENDED': explain. crashed trying to print column + names for a subquery in the `FROM' clause when the table had gone + out of scope. (Bug #49487) + + * Renaming a column of an *Note `InnoDB': innodb-storage-engine. + table caused the server to go out of sync with the *Note `InnoDB': + innodb-storage-engine. data dictionary. To avoid this issue, + renaming a column uses the older technique of copying all the + table data rather than updating the table in-place. (Bug #47621) + + * For *Note `InnoDB': innodb-storage-engine. tables, the test for + using an index for `ORDER BY' sorting did not distinguish between + primary keys and secondary indexes and expected primary key values + to be concatenated to index values the way they are to secondary + key values. (Bug #49324) + + * *Note `mysqld_safe': mysqld-safe. did not pass the correct default + value of `plugin_dir' to *Note `mysqld': mysqld. (Bug #51938) + + * Plugins in a binary release could not be installed into a debug + version of the server. (Bug #49022) + + * Aggregate functions on *Note `TIMESTAMP': datetime. columns could + yield incorrect or undefined results. (Bug #50888) + + * An IPv6-enabled MySQL server did not resolve the IP addresses of + incoming connections correctly, with the result that a connection + that attempted to match any privilege table entries using + fully-qualified domain names for hostnames or hostnames using + wildcards were dropped. (Bug #38247) References: See also Bug + #43006, Bug #45283, Bug #45584, Bug #45606. * MySQL Server permitted the creation of a merge table based on views but crashed when attempts were made to read from that table. @@ -239730,25 +243224,22 @@ The final statement generated the crash. (Bug #44040) - * A natural join of `INFORMATION_SCHEMA' tables could cause an - assertion failure. (Bug #43834) + * When archive tables were joined on their primary keys, a query + returned no result if the optimizer chose to use this index. (Bug + #40677) - * When used in conjunction with *Note `LOCK TABLES': lock-tables, - *Note `FLUSH TABLE TBL_LIST': flush. waited for all tables with - old versions to clear from the table definition list, rather than - only the named tables. (Bug #43685) + * The `CSV' storage engine did not parse `'\X'' characters when they + occurred in unquoted fields. (Bug #40814) - * *Note `HANDLER': handler. statements are now not permitted if a - table lock has been acquired with *Note `LOCK TABLES': lock-tables. - (Bug #43272) + * Dropping a locked `Maria' table leads to an assertion failure. + (Bug #39395) - * In the embedded server, stack overflow checks for recursive stored - procedure calls did not work and stack overflow could occur. (Bug - #43201) + * Host name lookup failure could lead to a server crash. (Bug + #39153) - * The server could crash if an attempt to open a *Note `MERGE': - merge-storage-engine. table child *Note `MyISAM': - myisam-storage-engine. table failed. (Bug #42862) + * Threads were set to the `Table lock' state in such a way that use + of this state by other threads to check for a lock wait was + subject to a race condition. (Bug #39897) * Sign loss could occur in several contexts: @@ -239761,39 +243252,49 @@ (Bug #42661, Bug #42662, Bug #42664) - * Setting `key_buffer_size' to a negative value could lead to very - large allocations. Now an error occurs. (Bug #42103) - - * An assertion failure could occur if *Note `OPTIMIZE TABLE': - optimize-table. was started on an `InnoDB' table and the table was - altered to a different storage engine during the optimization - operation. (Bug #42074) - * The state of a thread for the embedded server was always displayed as `Writing to net', which is incorrect because there is no network connection for the embedded server. (Bug #41971) - * The patch for Bug #10374 broke named-pipe and shared-memory - connections on Windows. (Bug #41860) + * *Note `mysqld_safe': mysqld-safe. did not treat dashes and + underscores as equivalent in option names. Thanks to Erik + Ljungstrom for the patch to fix this bug. (Bug #40368) - * Purging the stored-routine cache could take a long time and render - the server unresponsive. (Bug #41804) + * Valgrind warnings that occurred for *Note `SHOW TABLE STATUS': + show-table-status. with `InnoDB' tables were silenced. (Bug + #38479) - * Command-line options for enumeration-type plugin variables were - not honored. (Bug #41010) + * A natural join of `INFORMATION_SCHEMA' tables could cause an + assertion failure. (Bug #43834) - * System variables could be set to invalid values. (Bug #40988) + * Plugin shutdown could lead to an assertion failure caused by using + an already destroyed mutex in the metadata locking subsystem. + (Bug #39674) - * The `CSV' storage engine did not parse `'\X'' characters when they - occurred in unquoted fields. (Bug #40814) + * The patch for Bug #10374 broke named-pipe and shared-memory + connections on Windows. (Bug #41860) - * When archive tables were joined on their primary keys, a query - returned no result if the optimizer chose to use this index. (Bug - #40677) + * The *Note `mysql_real_connect()': mysql-real-connect. C API + function only attempted to connect to the first IP address + returned for a hostname. This could be a problem if a hostname + mapped to multiple IP address and the server was not bound to the + first one returned. Now *Note `mysql_real_connect()': + mysql-real-connect. attempts to connect to all IPv4 or IPv6 + addresses that a domain name maps to. (Bug #45017) References: + See also Bug #47757. - * *Note `mysqld_safe': mysqld-safe. did not treat dashes and - underscores as equivalent in option names. Thanks to Erik - Ljungstrom for the patch to fix this bug. (Bug #40368) + * The server could crash if an attempt to open a *Note `MERGE': + merge-storage-engine. table child *Note `MyISAM': + myisam-storage-engine. table failed. (Bug #42862) + + * *Note `HANDLER': handler. statements are now not permitted if a + table lock has been acquired with *Note `LOCK TABLES': lock-tables. + (Bug #43272) + + * An assertion failure could occur if *Note `OPTIMIZE TABLE': + optimize-table. was started on an `InnoDB' table and the table was + altered to a different storage engine during the optimization + operation. (Bug #42074) * *Note `SHOW CREATE VIEW': show-create-view. returned invalid SQL if the definition contained a *Note `SELECT': select. `'STRING'' @@ -239817,19 +243318,28 @@ As part of this fix, aliases are now generated only for top-level statements. (Bug #40277) - * Threads were set to the `Table lock' state in such a way that use - of this state by other threads to check for a lock wait was - subject to a race condition. (Bug #39897) + * *Note `InnoDB': innodb-storage-engine. took a shared row lock when + executing *Note `SELECT': select. statements inside a stored + function as a part of a transaction using `REPEATABLE READ'. This + prevented other transactions from updating the row. (Bug #44613) - * Plugin shutdown could lead to an assertion failure caused by using - an already destroyed mutex in the metadata locking subsystem. - (Bug #39674) + * Purging the stored-routine cache could take a long time and render + the server unresponsive. (Bug #41804) - * Dropping a locked `Maria' table leads to an assertion failure. - (Bug #39395) + * When used in conjunction with *Note `LOCK TABLES': lock-tables, + *Note `FLUSH TABLE TBL_LIST': flush. waited for all tables with + old versions to clear from the table definition list, rather than + only the named tables. (Bug #43685) - * Host name lookup failure could lead to a server crash. (Bug - #39153) + * Setting `key_buffer_size' to a negative value could lead to very + large allocations. Now an error occurs. (Bug #42103) + + * In the embedded server, stack overflow checks for recursive stored + procedure calls did not work and stack overflow could occur. (Bug + #43201) + + * Some plugins configured as mandatory could be disabled at server + startup. (Bug #44691) * `flush_cache_records()' did not correctly check for errors that should cause statement execution to stop, leading to a server @@ -239841,22 +243351,54 @@ limited to 100, after which the operation aborts with a message. (Bug #38901) - * Valgrind warnings that occurred for *Note `SHOW TABLE STATUS': - show-table-status. with `InnoDB' tables were silenced. (Bug - #38479) + * Command-line options for enumeration-type plugin variables were + not honored. (Bug #41010) - * An IPv6-enabled MySQL server did not resolve the IP addresses of - incoming connections correctly, with the result that a connection - that attempted to match any privilege table entries using - fully-qualified domain names for hostnames or hostnames using - wildcards were dropped. (Bug #38247) See also Bug #43006, Bug - #45283, Bug #45584, Bug #45606. + * For plugins that did not have command-line options other than the + ones to select the plugin itself, those options were not displayed + in the *Note `mysqld': mysqld. help message. (Bug #44797) + + * System variables could be set to invalid values. (Bug #40988) * For *Note `CREATE TABLE ... LIKE': create-table. with a *Note `MERGE': merge-storage-engine. source table that included a `UNION' clause, that clause was omitted from the definition of the destination table. (Bug #37371) + * *Note `mysqlbinlog': mysqlbinlog. left temporary files on the disk + after shutdown, leading to the pollution of the temporary + directory, which eventually caused *Note `mysqlbinlog': + mysqlbinlog. to fail. This caused problems in testing and other + situations where *Note `mysqlbinlog': mysqlbinlog. might be + invoked many times in a relatively short period of time. (Bug + #35543) + + * Compiling MySQL on FreeBSD failed due to missing definitions for + certain network constants. (Bug #34292) + + * The parser incorrectly permitted MySQL error code 0 to be + specified for a condition handler. (This is incorrect because the + condition must be a failure condition and 0 indicates success.) + (Bug #36510) + + * *Note `mysql_stmt_prepare()': mysql-stmt-prepare. did not reset + the list of messages (those messages available using *Note `SHOW + WARNINGS': show-warnings.). (Bug #36004) + + * Killing a statement that invoked a stored function could return an + incorrect error message indicating table corruption rather than + that the statement had been interrupted. (Bug #32140) + + * Occurrence of an error within a stored routine did not always + cause immediate statement termination. (Bug #31881) + + * For *Note `DROP FUNCTION DB_NAME.FUNC_NAME': drop-function. (that + is, when the function name is qualified with the database name), + the statement should apply only to a stored function named + `func_name' in the given database. However, if a UDF with the + same name existed, the statement dropped the UDF instead. (Bug + #31767) + * Previously, statements inside a stored program did not clear the warning list. For example, warnings or errors generated by statements within a trigger or stored function would be @@ -239875,54 +243417,33 @@ these statements is copied to the message list for the outer statement. (Bug #36649) - * *Note `myisampack --join': myisampack. did not create the - destination table `.frm' file. (Bug #36573) - - * The parser incorrectly permitted MySQL error code 0 to be - specified for a condition handler. (This is incorrect because the - condition must be a failure condition and 0 indicates success.) - (Bug #36510) - * When parsing or formatting interval values of `DAY_MICROSECOND' type, fractional seconds were not handled correctly when more-significant fields were implied or omitted. (Bug #36466) + * *Note `myisampack --join': myisampack. did not create the + destination table `.frm' file. (Bug #36573) + * *Note `mysql_install_db': mysql-install-db. failed if run as `root' and the root directory (`/') was not writable. (Bug #36462) - * *Note `mysql_stmt_prepare()': mysql-stmt-prepare. did not reset - the list of messages (those messages available using *Note `SHOW - WARNINGS': show-warnings.). (Bug #36004) - - * A global read lock obtained with *Note `FLUSH TABLES WITH READ - LOCK': flush. did not prevent sessions from creating tables. (Bug - #35935) + * Creation of a temporary *Note `BLOB': blob. or *Note `TEXT': blob. + column could create a column with the wrong maximum length. (Bug + #33969) - * *Note `mysqlbinlog': mysqlbinlog. left temporary files on the disk - after shutdown, leading to the pollution of the temporary - directory, which eventually caused *Note `mysqlbinlog': - mysqlbinlog. to fail. This caused problems in testing and other - situations where *Note `mysqlbinlog': mysqlbinlog. might be - invoked many times in a relatively short period of time. (Bug - #35543) + * Constant expressions in `WHERE', `HAVING', or `ON' clauses were + not cached, but were evaluated for each row. This caused a + slowdown of query execution, especially if constant user-defined + functions or stored functions were used. (Bug #33546) * When building MySQL when using a different target directory (for example using the `VPATH' environment variable), the build of the embedded `readline' component failed. (Bug #35250) - * String-valued system variables could be assigned literal values, - but could not be assigned values using expressions. Now - expressions are legal. (Bug #34883, Bug #46314) - - * The `sql_mode' system variable could be assigned the illegal value - of `'?''. (Bug #34834) - - * Compiling MySQL on FreeBSD failed due to missing definitions for - certain network constants. (Bug #34292) - - * Creation of a temporary *Note `BLOB': blob. or *Note `TEXT': blob. - column could create a column with the wrong maximum length. (Bug - #33969) + * When `read_only' was enabled, the server incorrectly prevented + data modifications to `TEMPORARY' tables belonging to transactional + storage engines such as *Note `InnoDB': innodb-storage-engine. + (Bug #33669) * *Note `INSERT INTO ... VALUES(DEFAULT)': insert. failed to insert the correct value for *Note `ENUM': enum. columns. For *Note @@ -239930,56 +243451,55 @@ inserted. For *Note `CSV': csv-storage-engine. tables, the table became corrupt. (Bug #33717) - * When `read_only' was enabled, the server incorrectly prevented - data modifications to `TEMPORARY' tables belonging to transactional - storage engines such as *Note `InnoDB': innodb-storage-engine. - (Bug #33669) + * The `sql_mode' system variable could be assigned the illegal value + of `'?''. (Bug #34834) - * Constant expressions in `WHERE', `HAVING', or `ON' clauses were - not cached, but were evaluated for each row. This caused a - slowdown of query execution, especially if constant user-defined - functions or stored functions were used. (Bug #33546) + * String-valued system variables could be assigned literal values, + but could not be assigned values using expressions. Now + expressions are legal. (Bug #34883, Bug #46314) * Plugins could find the unqualified form of their system variables but not the qualified form. For example, a plugin `p' with a system variable `sv' could find `sv' but not `p_sv'. (Bug #32902) - * Killing a statement that invoked a stored function could return an - incorrect error message indicating table corruption rather than - that the statement had been interrupted. (Bug #32140) - - * Occurrence of an error within a stored routine did not always - cause immediate statement termination. (Bug #31881) + * A global read lock obtained with *Note `FLUSH TABLES WITH READ + LOCK': flush. did not prevent sessions from creating tables. (Bug + #35935) - * For *Note `DROP FUNCTION DB_NAME.FUNC_NAME': drop-function. (that - is, when the function name is qualified with the database name), - the statement should apply only to a stored function named - `func_name' in the given database. However, if a UDF with the - same name existed, the statement dropped the UDF instead. (Bug - #31767) + * If an operation had an `InnoDB' table, and two triggers, `AFTER + UPDATE' and `AFTER INSERT', competing for different resources + (such as two distinct `MyISAM' tables), the triggers were unable + to execute concurrently. In addition, *Note `INSERT': insert. and + *Note `UPDATE': update. statements for the `InnoDB' table were + unable to run concurrently. (Bug #26141) * *Note `mysqld': mysqld. sometimes miscalculated the number of digits required when storing a floating-point number in a *Note `CHAR': char. column. This caused the value to be truncated, or (when using a debug build) caused the server to crash. (Bug - #26788) See also Bug #12860. + #26788) References: See also Bug #12860. - * *Note `ALTER TABLE': alter-table. could not be used to add columns - to a table if the table had an index on a `utf8' column with a - *Note `TEXT': blob. data type. (Bug #26180) + * When inserting an extraordinarly large value into a *Note + `DOUBLE': numeric-types. column, the value could be truncated in + such a way that the new value cannot be reloaded manually or from + the output of *Note `mysqldump': mysqldump. (Bug #21497) - * If an operation had an `InnoDB' table, and two triggers, `AFTER - UPDATE' and `AFTER INSERT', competing for different resources - (such as two distinct `MyISAM' tables), the triggers were unable - to execute concurrently. In addition, *Note `INSERT': insert. and - *Note `UPDATE': update. statements for the `InnoDB' table were - unable to run concurrently. (Bug #26141) + * `Data truncated for column COL_NUM at row ROW_NUM' warnings were + generated for some (constant) values that did not have too high + precision. (Bug #24541) * Statements to create, alter, or drop a view were not waiting for completion of statements that were using the view, which led to incorrect sequences of statements in the binary log when statement-based logging was enabled. (Bug #25144) + * *Note `ALTER TABLE': alter-table. could not be used to add columns + to a table if the table had an index on a `utf8' column with a + *Note `TEXT': blob. data type. (Bug #26180) + + * Several data-modification statements were not being counted toward + the `MAX_UPDATES_PER_HOUR' user resource limit. (Bug #21793) + * Previously, the server handled character data types for a stored routine parameter, local routine variable created with *Note `DECLARE': declare, or stored function return value as follows: If @@ -240000,10 +243520,6 @@ `character_set_database' and `collation_database' system variables.) (Bug #24690) - * `Data truncated for column COL_NUM at row ROW_NUM' warnings were - generated for some (constant) values that did not have too high - precision. (Bug #24541) - * A statement that caused a circular wait among statements did not return a deadlock error. Now the server detects deadlock and returns `ER_LOCK_DEADLOCK'. (Bug #22876) @@ -240014,47 +243530,40 @@ was created using an older server that was less restrictive about legal default values.) (Bug #22090) - * Several data-modification statements were not being counted toward - the `MAX_UPDATES_PER_HOUR' user resource limit. (Bug #21793) - - * When inserting an extraordinarly large value into a *Note - `DOUBLE': numeric-types. column, the value could be truncated in - such a way that the new value cannot be reloaded manually or from - the output of *Note `mysqldump': mysqldump. (Bug #21497) - - * The value of `sql_slave_skip_counter' was empty when displayed by - *Note `SHOW VARIABLES': show-variables. or *Note - `INFORMATION_SCHEMA.GLOBAL_VARIABLES': variables-table. (Bug - #20413, Bug #37187) - - * For *Note `INSERT DELAYED': insert-delayed. statements issued for - a table while an *Note `ALTER TABLE': alter-table. operation on - the table was in progress, the server could return a spurious - `Server shutdown in progress' error. (Bug #18484) See also Bug - #45949. - - * Delayed-insert threads were counted as connected but not as - created, incorrectly leading to a `Threads_connected' value - greater than the `Threads_created' value. (Bug #17954) - * The character set was not being properly initialized for `CAST()' with a type such as *Note `CHAR(2) BINARY': char, which resulted in incorrect results or a server crash. (Bug #17903) + * Zero-padding of exponent values was not the same across platforms. + (Bug #12860) + * Stored procedure exception handlers were catching fatal errors (such as out of memory errors), which could cause execution not to stop to due a continue handler. Now fatal errors are not caught by exception handlers and a fatal error is returned to the client. (Bug #15192) - * Zero-padding of exponent values was not the same across platforms. - (Bug #12860) + * Delayed-insert threads were counted as connected but not as + created, incorrectly leading to a `Threads_connected' value + greater than the `Threads_created' value. (Bug #17954) - * For *Note `CREATE TABLE': create-table, the parser did not enforce - that parentheses were present in a `CHECK (EXPR)' clause; now it - does. The parser did not enforce that `CONSTRAINT [SYMBOL]' - without a following `CHECK' clause was illegal; now it does. (Bug - #11714, Bug #35578, Bug #38696) + * For *Note `INSERT DELAYED': insert-delayed. statements issued for + a table while an *Note `ALTER TABLE': alter-table. operation on + the table was in progress, the server could return a spurious + `Server shutdown in progress' error. (Bug #18484) References: See + also Bug #45949. + + * The value of `sql_slave_skip_counter' was empty when displayed by + *Note `SHOW VARIABLES': show-variables. or *Note + `INFORMATION_SCHEMA.GLOBAL_VARIABLES': variables-table. (Bug + #20413, Bug #37187) + + * Labels in stored routines did not work if the character set was + not `latin1'. (Bug #7088) + + * The grammar for `GROUP BY', when used with `WITH CUBE' or `WITH + ROLLUP', caused a conflict with the grammar for view definitions + that included `WITH CHECK OPTION'. (Bug #9801) * If a connection was waiting for a `GET_LOCK()' lock or a `SLEEP()' call, and the connection aborted, the server did not detect this @@ -240067,9 +243576,11 @@ * *Note `perror': perror. did not work for errors described in the `sql/share/errmsg.txt' file. (Bug #10143) - * The grammar for `GROUP BY', when used with `WITH CUBE' or `WITH - ROLLUP', caused a conflict with the grammar for view definitions - that included `WITH CHECK OPTION'. (Bug #9801) + * For *Note `CREATE TABLE': create-table, the parser did not enforce + that parentheses were present in a `CHECK (EXPR)' clause; now it + does. The parser did not enforce that `CONSTRAINT [SYMBOL]' + without a following `CHECK' clause was illegal; now it does. (Bug + #11714, Bug #35578, Bug #38696) * For the `DIV' operator, incorrect results could occur for noninteger operands that exceed *Note `BIGINT': numeric-types. @@ -240078,10 +243589,7 @@ *Note `DECIMAL': numeric-types. arithmetic before converting the result to *Note `BIGINT': numeric-types. If the result exceeds *Note `BIGINT': numeric-types. range, an error occurs. (Bug - #8457, Bug #11745058) See also Bug #59241. - - * Labels in stored routines did not work if the character set was - not `latin1'. (Bug #7088) + #8457, Bug #11745058) References: See also Bug #59241. * Previously, for some Asian CJK character sets, the `UPPER()' and `LOWER()' functions worked only for basic Latin letters (`A-Z', @@ -240096,10 +243604,11 @@  File: manual.info, Node: news-5-5-2, Next: news-5-5-1, Prev: news-5-5-3, Up: news-5-5-x -D.1.19 Changes in MySQL 5.5.2 (12 February 2010) +D.1.21 Changes in MySQL 5.5.2 (12 February 2010) ------------------------------------------------ *InnoDB Notes* + * This release includes `InnoDB' 1.0.6. This version is considered of Release Candidate (RC) quality. @@ -240118,18 +243627,27 @@ innodb-storage-engine. table and inserts into a *Note `MyISAM': myisam-storage-engine. table is an example of such a dependency. For more information, see *Note replication-options-binary-log::. - (Bug #46364) See also Bug #28976, Bug #40116. + (Bug #46364) References: See also Bug #28976, Bug #40116. *Bugs Fixed* + * *Security Fix*: For servers built with yaSSL, a preauthorization + buffer overflow could cause memory corruption or a server crash. + We thank Evgeny Legerov from Intevydis for providing us with a + proof-of-concept script that permitted us to reproduce this bug. + (Bug #50227, CVE-2009-4484) + * *Performance*: *Partitioning*: When used on partitioned tables, the `records_in_range' handler call checked more partitions than necessary. The fix for this issue reduces the number of unpruned partitions checked for statistics in partition range checking, which has resulted in some partition operations being performed up to 2-10 times faster than before this change was made, when - testing with tables having 1024 partitions. (Bug #48846) See also - Bug #37252, Bug #47261. + testing with tables having 1024 partitions. (Bug #48846) + References: See also Bug #37252, Bug #47261. + + * *Performance*: The `MD5()' and `SHA1()' functions had excessive + overhead for short strings. (Bug #49491) * *Performance*: The method for comparing `INFORMATION_SCHEMA' names and database names was nonoptimal and an improvement was made: @@ -240137,15 +243655,6 @@ made first and content comparison skipped if the lengths are unequal. (Bug #49501) - * *Performance*: The `MD5()' and `SHA1()' functions had excessive - overhead for short strings. (Bug #49491) - - * *Security Fix*: For servers built with yaSSL, a preauthorization - buffer overflow could cause memory corruption or a server crash. - We thank Evgeny Legerov from Intevydis for providing us with a - proof-of-concept script that permitted us to reproduce this bug. - (Bug #50227, CVE-2009-4484) - * *Incompatible Change*: In `plugin.h', the `MYSQL_REPLICATION_PLUGIN' symbol was out of synchrony with its value in MySQL 6.0 because the lower-valued `MYSQL_AUDIT_PLUGIN' @@ -240204,15 +243713,11 @@ Now the thread performing the *Note `FLUSH LOGS': flush. operation takes a lock on the relay log before actually flushing - it. (Bug #50364) See also Bug #53657. - - * *Replication*: With semisynchronous replication, memory allocated - for handling transactions could be freed while still in use, - resulting in a server crash. (Bug #50157) + it. (Bug #50364) References: See also Bug #53657. * *Replication*: In some cases, inserting into a table with many columns could cause the binary log to become corrupted. (Bug - #50018) See also Bug #42749. + #50018) References: See also Bug #42749. * *Replication*: When using row-based replication, setting a *Note `BIT': numeric-types. or *Note `CHAR': char. column of a *Note @@ -240220,13 +243725,6 @@ delete from the table, caused the slave to fail with the error `Can't find record in TABLE'. (Bug #49481, Bug #49482) - * *Replication*: A *Note `LOAD DATA INFILE': load-data. statement - that loaded data into a table having a column name that had to be - quoted (such as ``key` INT') caused replication to fail when - logging in mixed or statement mode. In such cases, the master - wrote the *Note `LOAD DATA': load-data. event into the binary log - without quoting the column name. (Bug #49479) See also Bug #47927. - * *Replication*: When logging in row-based mode, DDL statements are actually logged as statements; however, statements that affected temporary tables and followed DDL statements failed to reset the @@ -240235,9 +243733,6 @@ `binlog_format' is restored after a DDL statement has been written to the binary log. (Bug #49132) - * *Replication*: Spatial data types caused row-based replication to - crash. (Bug #48776) - * *Replication*: When using row-based logging, the statement *Note `CREATE TABLE t IF NOT EXIST ... SELECT': create-table. was logged as *Note `CREATE TEMPORARY TABLE t IF NOT EXIST ... SELECT': @@ -240249,8 +243744,8 @@ Now, when this statement is executed, `t' is created as a base table, the results of the *Note `SELECT': select. are inserted into it--even if there already exists a temporary table having the same - name--and the statement is logged correctly. (Bug #47418) See - also Bug #47442. + name--and the statement is logged correctly. (Bug #47418) + References: See also Bug #47442. * *Replication*: Due to a change in the size of event representations in the binary log, when replicating from a MySQL @@ -240261,63 +243756,69 @@ binary log format, and corrects for the difference in event size, so that the slave stops in the correct position. (Bug #47142) - * *Replication*: Manually removing entries from the binary log index - file on a replication master could cause the server to repeatedly - send the same binary log file to slaves. (Bug #28421) - - * The SSL certificates in the test suite were about to expire. They - have been updated with expiration dates in the year 2015. (Bug - #50642) + * *Replication*: A *Note `LOAD DATA INFILE': load-data. statement + that loaded data into a table having a column name that had to be + quoted (such as ``key` INT') caused replication to fail when + logging in mixed or statement mode. In such cases, the master + wrote the *Note `LOAD DATA': load-data. event into the binary log + without quoting the column name. (Bug #49479) References: See + also Bug #47927. This bug is a regression of Bug #43746. - * `SPATIAL' indexes were permitted on columns with nonspatial data - types, resulting in a server crash for subsequent table inserts. - (Bug #50574) + * *Replication*: Spatial data types caused row-based replication to + crash. (Bug #48776) - * Index prefixes could be specified with a length greater than the - associated column, resulting in a server crash for subsequent - table inserts. (Bug #50542) + * *Replication*: With semisynchronous replication, memory allocated + for handling transactions could be freed while still in use, + resulting in a server crash. (Bug #50157) - * Use of loose index scan optimization for an aggregate function - with `DISTINCT' (for example, `COUNT(DISTINCT)') could produce - incorrect results. (Bug #50539) + * *Replication*: Manually removing entries from the binary log index + file on a replication master could cause the server to repeatedly + send the same binary log file to slaves. (Bug #28421) * The `printstack' function does not exist on Solaris 8 or earlier, which led to a compilation failure. (Bug #50409) - * A user could see tables in *Note `INFORMATION_SCHEMA.TABLES': - tables-table. without appropriate privileges for them. (Bug - #50276) + * If an invocation of a stored procedure failed in the table-open + stage, subsequent invocations that did not fail in that stage + could cause a crash. (Bug #47649) - * Debug output for join structures was garbled. (Bug #50271) + * When the *Note `mysql': mysql. client was invoked with the + `--vertical' option, it ignored the `--skip-column-names' option. + (Bug #47147) - * The server crashed when an *Note `InnoDB': innodb-storage-engine. - background thread attempted to write a message containing a - partitioned table name to the error log. (Bug #50201) + * On Fedora 12, `strmov()' did not guarantee correct operation for + overlapping source and destination buffer. Calls were fixed to + use an overlap-safe version instead. (Bug #48866) * Within a stored routine, selecting the result of `CONCAT_WS()' with a routine parameter argument into a user variable could return incorrect results. (Bug #50096) - * The `filesort' sorting method applied to a *Note `CHAR(0)': char. - column could lead to a server crash. (Bug #49897) + * Several `strmake()' calls had an incorrect length argument (too + large by one). (Bug #48983) + + * Some prepared statements could raise an assertion when re-executed. + (Bug #49570) * *Note `EXPLAIN EXTENDED UNION ... ORDER BY': explain. caused a crash when the `ORDER BY' referred to a nonconstant or full-text function or a subquery. (Bug #49734) - * Some prepared statements could raise an assertion when re-executed. - (Bug #49570) + * With one thread waiting for a lock on a table, if another thread + dropped the table and created a new table with the same name and + structure, the first thread did not notice that the table had been + re-created and tried to used cached metadata that belonged to the + old table but had been freed. (Bug #48157) - * `sql_buffer_result' had an effect on non-*Note `SELECT': select. - statements, contrary to the documentation. (Bug #49552) + * The SSL certificates in the test suite were about to expire. They + have been updated with expiration dates in the year 2015. (Bug + #50642) - * In some cases a subquery need not be evaluated because it returns - only aggregate values that can be calculated from table metadata. - This sometimes was not handled by the enclosing subquery, - resulting in a server crash. (Bug #49512) + * Debug output for join structures was garbled. (Bug #50271) - * Mixing full-text searches and row expressions caused a crash. - (Bug #49445) + * A user could see tables in *Note `INFORMATION_SCHEMA.TABLES': + tables-table. without appropriate privileges for them. (Bug + #50276) * `mysql-test-run.pl' now recognizes the `MTR_TESTCASE_TIMEOUT', `MTR_SUITE_TIMEOUT', `MTR_SHUTDOWN_TIMEOUT', and @@ -240326,42 +243827,58 @@ `--shutdown-timeout', and `--start-timeout' options, respectively. (Bug #49210) - * Several `strmake()' calls had an incorrect length argument (too - large by one). (Bug #48983) - - * On Fedora 12, `strmov()' did not guarantee correct operation for - overlapping source and destination buffer. Calls were fixed to - use an overlap-safe version instead. (Bug #48866) - - * With one thread waiting for a lock on a table, if another thread - dropped the table and created a new table with the same name and - structure, the first thread did not notice that the table had been - re-created and tried to used cached metadata that belonged to the - old table but had been freed. (Bug #48157) + * If *Note `EXPLAIN': explain. encountered an error in the query, a + memory leak occurred. (Bug #45989) - * If an invocation of a stored procedure failed in the table-open - stage, subsequent invocations that did not fail in that stage - could cause a crash. (Bug #47649) + * Mixing full-text searches and row expressions caused a crash. + (Bug #49445) * A crash occurred when a user variable that was assigned to a subquery result was used as a result field in a *Note `SELECT': select. statement with aggregate functions. (Bug #47371) - * When the *Note `mysql': mysql. client was invoked with the - `--vertical' option, it ignored the `--skip-column-names' option. - (Bug #47147) + * The `filesort' sorting method applied to a *Note `CHAR(0)': char. + column could lead to a server crash. (Bug #49897) + + * `sql_buffer_result' had an effect on non-*Note `SELECT': select. + statements, contrary to the documentation. (Bug #49552) + + * In some cases a subquery need not be evaluated because it returns + only aggregate values that can be calculated from table metadata. + This sometimes was not handled by the enclosing subquery, + resulting in a server crash. (Bug #49512) + + * `SPATIAL' indexes were permitted on columns with nonspatial data + types, resulting in a server crash for subsequent table inserts. + (Bug #50574) + + * Index prefixes could be specified with a length greater than the + associated column, resulting in a server crash for subsequent + table inserts. (Bug #50542) + + * Use of loose index scan optimization for an aggregate function + with `DISTINCT' (for example, `COUNT(DISTINCT)') could produce + incorrect results. (Bug #50539) + + * The server crashed when an *Note `InnoDB': innodb-storage-engine. + background thread attempted to write a message containing a + partitioned table name to the error log. (Bug #50201) * The optimizer could continue to execute a query after a storage engine reported an error, leading to a server crash. (Bug #46175) - * If *Note `EXPLAIN': explain. encountered an error in the query, a - memory leak occurred. (Bug #45989) + * The `Table_locks_waited' waited variable was not incremented in + the cases that a lock had to be waited for but the waiting thread + was killed or the request was aborted. (Bug #30331) * A race condition on the privilege hash tables permitted one thread to try to delete elements that had already been deleted by another - thread. A consequence was that *Note `SET PASSWORD': set-option. or - *Note `FLUSH PRIVILEGES': flush. could cause a crash. (Bug - #35589, Bug #35591) + thread. A consequence was that *Note `SET PASSWORD': + set-statement. or *Note `FLUSH PRIVILEGES': flush. could cause a + crash. (Bug #35589, Bug #35591) + + * *Note `ALTER TABLE': alter-table. with both `DROP COLUMN' and `ADD + COLUMN' clauses could crash or lock up the server. (Bug #31145) * 1) In rare cases, if a thread was interrupted during a *Note `FLUSH PRIVILEGES': flush. operation, a debug assertion occurred @@ -240370,17 +243887,10 @@ diagnostic area state without first ensuring that the state existed. (Bug #33982) - * *Note `ALTER TABLE': alter-table. with both `DROP COLUMN' and `ADD - COLUMN' clauses could crash or lock up the server. (Bug #31145) - - * The `Table_locks_waited' waited variable was not incremented in - the cases that a lock had to be waited for but the waiting thread - was killed or the request was aborted. (Bug #30331) -  File: manual.info, Node: news-5-5-1, Next: news-5-5-0, Prev: news-5-5-2, Up: news-5-5-x -D.1.20 Changes in MySQL 5.5.1 (04 January 2010) +D.1.22 Changes in MySQL 5.5.1 (04 January 2010) ----------------------------------------------- When the publishing process for MySQL 5.5.1 was already running, the @@ -240403,12 +243913,14 @@ Update: This bug is fixed in MySQL 5.5.2. *InnoDB Notes* + * `InnoDB' has been upgraded to version 1.0.6. This version is considered of Release Candidate (RC) quality. *Note innodb-changes::, may contain information in addition to those changes reported here. *RPM Notes* + * The version information in RPM package files has been changed: * The `level' field of a MySQL version number is now also @@ -240456,7 +243968,7 @@ invalidation to become slow. There is now a 50ms timeout for a *Note `SELECT': select. statement waiting for the query cache lock. If the timeout expires, the statement executes without using - the query cache. (Bug #39253) See also Bug #21074. + the query cache. (Bug #39253) References: See also Bug #21074. * *Incompatible Change*: *Replication*: The file names for the semisynchronous plugins were prefixed with `lib', unlike file @@ -240546,7 +244058,8 @@ * *Partitioning*: *Note `SELECT COUNT(*)': select. from a partitioned table failed when using the `ONLY_FULL_GROUP_BY' SQL - mode. (Bug #46923) This regression was introduced by Bug #45807. + mode. (Bug #46923) References: This bug was introduced by Bug + #45807. * *Partitioning*: `SUBPARTITION BY KEY' failed with `DEFAULT CHARSET=utf8'. (Bug #45904) @@ -240585,77 +244098,41 @@ performing the purge of the log files could deadlock, causing all binary log operations to stop. (Bug #49536) - * For debug builds on Windows, `SAFEMALLOC' was defined - inconsistently, leading to mismatches when using `my_malloc()' and - `my_free()'. (Bug #49811) - - * The *Note `mysql.server': mysql-server. script had incorrect - shutdown logic. (Bug #49772) - - * The `push_warning_printf()' function was being called with an - invalid error level, `MYSQL_ERROR::WARN_LEVEL_ERROR', causing an - assertion failure. To fix the problem, - `MYSQL_ERROR::WARN_LEVEL_ERROR' has been replaced by - `MYSQL_ERROR::WARN_LEVEL_WARN'. (Bug #49638) - - * The result of comparison between nullable *Note `BIGINT': - numeric-types. and *Note `INT': numeric-types. columns was - inconsistent. (Bug #49517) - - * A Valgrind error in `make_cond_for_table_from_pred()' was - corrected. Thanks to Sergey Petrunya for the patch to fix this bug. - (Bug #49506) - - * Incorrect cache initialization prevented storage of converted - constant values and could produce incorrect comparison results. - (Bug #49489) - - * Comparisons involving *Note `YEAR': year. values could produce - incorrect results. (Bug #49480) See also Bug #43668. - - * Valgrind warnings for *Note `CHECKSUM TABLE': checksum-table. were - corrected. (Bug #49465) - - * Specifying an index algorithm (such as `BTREE') for `SPATIAL' or - `FULLTEXT' indexes caused a server crash. These index types do not - support algorithm specification, and it is not longer permitted to - do so. (Bug #49250) + * Building MySQL on Fedora Core 12 64-bit failed, due to errors in + *Note `comp_err': comp-err. (Bug #48864) - * The optimizer sometimes incorrectly handled conditions of the form - `WHERE COL_NAME='CONST1' AND COL_NAME='CONST2''. (Bug #49199) + * When running *Note `mysql_secure_installation': + mysql-secure-installation, the command failed if the `root' + password contained multiple space, `'\'', `'#'', or quote + characters. (Bug #48031) - * Execution of `DECODE()' and `ENCODE()' could be inefficient - because multiple executions within a single statement - reinitialized the random generator multiple times even with - constant parameters. (Bug #49141) + * On Windows, *Note `InnoDB': innodb-storage-engine. could not be + built as a statically linked library. (Bug #48317) - * With binary logging enabled, *Note `REVOKE ... ON - {PROCEDURE|FUNCTION} FROM ...': revoke. could cause a crash. (Bug - #49119) + * Valgrind errors for `InnoDB' were corrected. (Bug #45992, Bug + #46656) - * The `LIKE' operator did not work correctly when using an index for - a `ucs2' column. (Bug #49028) + * Assignment of a system variable sharing the same base name as a + declared stored program variable in the same context could lead to + a crash. (Bug #47627) - * `check_key_in_view()' was missing a `DBUG_RETURN' in one code - branch, causing a crash in debug builds. (Bug #48995) + * Privileges for stored routines were ignored for mixed-case routine + names. (Bug #48872) References: See also Bug #41049. - * If a query involving a table was terminated with *Note `KILL': - kill, a subsequent *Note `SHOW CREATE TABLE': show-create-table. - for that table caused a server crash. (Bug #48985) + * `DISTINCT' was ignored for queries with `GROUP BY WITH ROLLUP' and + only `const' tables. (Bug #48475) - * Privileges for stored routines were ignored for mixed-case routine - names. (Bug #48872) See also Bug #41049. + * Loose index scan was inappropriately chosen for some `WHERE' + conditions. (Bug #48472) - * Building MySQL on Fedora Core 12 64-bit failed, due to errors in - *Note `comp_err': comp-err. (Bug #48864) + * The `innodb_file_format_check' system variable could not be set at + runtime to `DEFAULT' or to the value of a user-defined variable. + (Bug #47167) * Concurrent *Note `ALTER TABLE': alter-table. operations on an *Note `InnoDB': innodb-storage-engine. table could raise an assertion. (Bug #48782) - * Incomplete reset of internal `TABLE' structures could cause a - crash with `eq_ref' table access in subqueries. (Bug #48709) - * During query execution, ranges could be merged incorrectly for `OR' operations and return an incorrect result. (Bug #48665) @@ -240663,22 +244140,26 @@ the *Note `FLOAT': numeric-types. and *Note `DOUBLE': numeric-types. data types incorrectly. (Bug #48526) - * Re-execution of a prepared statement could cause a server crash. - (Bug #48508) - * With row-based binary logging, the server crashed for statements of the form `CREATE TABLE IF NOT EXISTS EXISTING_VIEW LIKE TEMPORARY_TABLE'. This occurred because the server handled the existing view as a table when logging the statement. (Bug #48506) - * The error message for `ER_UPDATE_INFO' was subject to buffer - overflow or truncation. (Bug #48500) + * A bad typecast could cause query execution to allocate large + amounts of memory. (Bug #48458) - * `DISTINCT' was ignored for queries with `GROUP BY WITH ROLLUP' and - only `const' tables. (Bug #48475) + * `MATCH IN BOOLEAN MODE' searches could return too many results + inside a subquery. (Bug #47930) - * Loose index scan was inappropriately chosen for some `WHERE' - conditions. (Bug #48472) + * Connecting to a 4.1.x server from a 5.1.x or higher *Note `mysql': + mysql. client resulted in a memory-free error when disconnecting. + (Bug #47655) + + * *Note `mysql_secure_installation': mysql-secure-installation. did + not work on Solaris. (Bug #48086) + + * Parts of the range optimizer could be initialized incorrectly, + resulting in Valgrind errors. (Bug #48459) * The server could crash and corrupt the tablespace if the *Note `InnoDB': innodb-storage-engine. tablespace was configured with @@ -240686,99 +244167,122 @@ many *Note `CREATE TEMPORARY TABLE': create-table. statements were executed and the temporary file directory filled up. (Bug #48469) - * Parts of the range optimizer could be initialized incorrectly, - resulting in Valgrind errors. (Bug #48459) - - * A bad typecast could cause query execution to allocate large - amounts of memory. (Bug #48458) - - * *Note `SHOW BINLOG EVENTS': show-binlog-events. could fail with a - error: `Wrong offset or I/O error'. (Bug #48357) - - * Valgrind warnings related to binary logging of *Note `LOAD DATA - INFILE': load-data. statements were corrected. (Bug #48340) - - * On Windows, *Note `InnoDB': innodb-storage-engine. could not be - built as a statically linked library. (Bug #48317) + * The *Note `mysql': mysql. client `status' command displayed an + incorrect value for the server character set. (Bug #47671) - * *Note `mysql_secure_installation': mysql-secure-installation. did - not work on Solaris. (Bug #48086) + * The `IGNORE' clause on a *Note `DELETE': delete. statement masked + an SQL statement error that occurred during trigger processing. + (Bug #46425) - * When running *Note `mysql_secure_installation': - mysql-secure-installation, the command failed if the `root' - password contained multiple space, `'\'', `'#'', or quote - characters. (Bug #48031) + * If a session acquired a global read lock with *Note `FLUSH TABLES + WITH READ LOCK': flush, acquired a lock for one table with *Note + `LOCK TABLES': lock-tables, and issued an *Note `INSERT DELAYED': + insert-delayed. statement for another table, deadlock could occur. + (Bug #47682) - * `MATCH IN BOOLEAN MODE' searches could return too many results - inside a subquery. (Bug #47930) + * The return value was not checked for some `my_hash_insert()' calls. + (Bug #45613) * User-defined collations with an ID less than 256 were not initialized correctly when loaded and caused a server crash. (Bug #47756) - * If a session acquired a global read lock with *Note `FLUSH TABLES - WITH READ LOCK': flush, acquired a lock for one table with *Note - `LOCK TABLES': lock-tables, and issued an *Note `INSERT DELAYED': - insert-delayed. statement for another table, deadlock could occur. - (Bug #47682) + * The result of comparison between nullable *Note `BIGINT': + numeric-types. and *Note `INT': numeric-types. columns was + inconsistent. (Bug #49517) - * The *Note `mysql': mysql. client `status' command displayed an - incorrect value for the server character set. (Bug #47671) + * Incorrect cache initialization prevented storage of converted + constant values and could produce incorrect comparison results. + (Bug #49489) - * Connecting to a 4.1.x server from a 5.1.x or higher *Note `mysql': - mysql. client resulted in a memory-free error when disconnecting. - (Bug #47655) + * Comparisons involving *Note `YEAR': year. values could produce + incorrect results. (Bug #49480) References: See also Bug #43668. - * Queries containing `GROUP BY ... WITH ROLLUP' that did not use - indexes could return incorrect results. (Bug #47650) + * If a query involving a table was terminated with *Note `KILL': + kill, a subsequent *Note `SHOW CREATE TABLE': show-create-table. + for that table caused a server crash. (Bug #48985) - * Assignment of a system variable sharing the same base name as a - declared stored program variable in the same context could lead to - a crash. (Bug #47627) + * A Valgrind error in `make_cond_for_table_from_pred()' was + corrected. Thanks to Sergey Petrunya for the patch to fix this bug. + (Bug #49506) + + * Valgrind warnings for *Note `CHECKSUM TABLE': checksum-table. were + corrected. (Bug #49465) + + * The *Note `mysql.server': mysql-server. script had incorrect + shutdown logic. (Bug #49772) * On Solaris, the server printed no stack trace to the error log after a crash. (Bug #47391) - * The first execution of *Note `STOP SLAVE UNTIL': stop-slave. - stopped too early. (Bug #47210) + * The error message for `ER_UPDATE_INFO' was subject to buffer + overflow or truncation. (Bug #48500) - * The `innodb_file_format_check' system variable could not be set at - runtime to `DEFAULT' or to the value of a user-defined variable. - (Bug #47167) + * Specifying an index algorithm (such as `BTREE') for `SPATIAL' or + `FULLTEXT' indexes caused a server crash. These index types do not + support algorithm specification, and it is not longer permitted to + do so. (Bug #49250) - * The `IGNORE' clause on a *Note `DELETE': delete. statement masked - an SQL statement error that occurred during trigger processing. - (Bug #46425) + * The optimizer sometimes incorrectly handled conditions of the form + `WHERE COL_NAME='CONST1' AND COL_NAME='CONST2''. (Bug #49199) - * Valgrind errors for `InnoDB' were corrected. (Bug #45992, Bug - #46656) + * The `LIKE' operator did not work correctly when using an index for + a `ucs2' column. (Bug #49028) - * The return value was not checked for some `my_hash_insert()' calls. - (Bug #45613) + * Execution of `DECODE()' and `ENCODE()' could be inefficient + because multiple executions within a single statement + reinitialized the random generator multiple times even with + constant parameters. (Bug #49141) + + * `check_key_in_view()' was missing a `DBUG_RETURN' in one code + branch, causing a crash in debug builds. (Bug #48995) + + * For debug builds on Windows, `SAFEMALLOC' was defined + inconsistently, leading to mismatches when using `my_malloc()' and + `my_free()'. (Bug #49811) * It was possible for `init_available_charsets()' not to initialize correctly. (Bug #45058) - * `GROUP BY' on a `constant' (single-row) `InnoDB' table joined to - other tables caused a server crash. (Bug #44886) + * With binary logging enabled, *Note `REVOKE ... ON + {PROCEDURE|FUNCTION} FROM ...': revoke. could cause a crash. (Bug + #49119) - * For a *Note `VARCHAR(N)': char. column, `ORDER BY - BINARY(COL_NAME)' sorted using only the first N bytes of the - column, even though column values could be longer than N bytes if - they contained multibyte characters. (Bug #44131) + * Re-execution of a prepared statement could cause a server crash. + (Bug #48508) - * For *Note `YEAR(2)': year. values, `MIN()', `MAX()', and - comparisons could yield incorrect results. (Bug #43668) + * *Note `SHOW BINLOG EVENTS': show-binlog-events. could fail with a + error: `Wrong offset or I/O error'. (Bug #48357) - * Comparison with `NULL' values sometimes did not produce a correct - result. (Bug #42760) + * Valgrind warnings related to binary logging of *Note `LOAD DATA + INFILE': load-data. statements were corrected. (Bug #48340) - * In debug builds, killing a *Note `LOAD XML INFILE': load-xml. - statement raised an assertion. + * The first execution of *Note `STOP SLAVE UNTIL': stop-slave. + stopped too early. (Bug #47210) - Implemented in the course of fixing this bug, `mysqltest' has a new - `send_eval' command that combines the functionality of the - existing `send' and `eval' commands. (Bug #42520) + * Incomplete reset of internal `TABLE' structures could cause a + crash with `eq_ref' table access in subqueries. (Bug #48709) + + * The `push_warning_printf()' function was being called with an + invalid error level, `MYSQL_ERROR::WARN_LEVEL_ERROR', causing an + assertion failure. To fix the problem, + `MYSQL_ERROR::WARN_LEVEL_ERROR' has been replaced by + `MYSQL_ERROR::WARN_LEVEL_WARN'. (Bug #49638) + + * Queries containing `GROUP BY ... WITH ROLLUP' that did not use + indexes could return incorrect results. (Bug #47650) + + * Use of *Note `InnoDB': innodb-storage-engine. monitoring (*Note + `SHOW ENGINE INNODB STATUS': show-engine. or one of the *Note + `InnoDB': innodb-storage-engine. Monitor tables) could cause a + server crash due to invalid access to a shared variable in a + concurrent environment. (Bug #38883) + + * `GROUP BY' on a `constant' (single-row) `InnoDB' table joined to + other tables caused a server crash. (Bug #44886) + + * For *Note `YEAR(2)': year. values, `MIN()', `MAX()', and + comparisons could yield incorrect results. (Bug #43668) * The server could crash when attempting to access a non-conformant `mysql.proc' system table. For example, the server could crash @@ -240786,18 +244290,15 @@ from MySQL 5.0 to 5.1 without running *Note `mysql_upgrade': mysql-upgrade. (Bug #41726) + * Comparison with `NULL' values sometimes did not produce a correct + result. (Bug #42760) + * The *Note `mysql_upgrade': mysql-upgrade. command added three columns to the `mysql.proc' table (`character_set_client', `collation_connection', and `db_collation'), but did not populate the columns with correct values. This led to error messages reported during stored procedure execution. (Bug #41569) - * Use of *Note `InnoDB': innodb-storage-engine. monitoring (*Note - `SHOW ENGINE INNODB STATUS': show-engine. or one of the *Note - `InnoDB': innodb-storage-engine. Monitor tables) could cause a - server crash due to invalid access to a shared variable in a - concurrent environment. (Bug #38883) - * When compressed *Note `MyISAM': myisam-storage-engine. files were opened, they were always memory mapped, sometimes causing memory-swapping problems. To deal with this, a new system @@ -240805,6 +244306,18 @@ amount of memory used for memory mapping of *Note `MyISAM': myisam-storage-engine. files. (Bug #37408) + * In debug builds, killing a *Note `LOAD XML INFILE': load-xml. + statement raised an assertion. + + Implemented in the course of fixing this bug, `mysqltest' has a new + `send_eval' command that combines the functionality of the + existing `send' and `eval' commands. (Bug #42520) + + * For a *Note `VARCHAR(N)': char. column, `ORDER BY + BINARY(COL_NAME)' sorted using only the first N bytes of the + column, even though column values could be longer than N bytes if + they contained multibyte characters. (Bug #44131) + * On Windows, the *Note `mysql_secure_installation': mysql-secure-installation. command failed to load the `Term::ReadKey' module, which was required for correct operation. @@ -240825,13 +244338,13 @@ statement when using partitions in `InnoDB' tables caused `Invalid (old?) table or database name' errors to be logged. (Bug #32430) - * Output from *Note `mysql --html': mysql. did not encode the `'<'', - `'>'', or `'&'' characters. (Bug #27884) - * Under heavy load with a large query cache, invalidating part of the cache could cause the server to freeze (that is, to be unable to service other operations until the invalidation was complete). - (Bug #21074) See also Bug #39253. + (Bug #21074) References: See also Bug #39253. + + * Output from *Note `mysql --html': mysql. did not encode the `'<'', + `'>'', or `'&'' characters. (Bug #27884) * On some Windows systems, `InnoDB' could report `Operating system error number 995 in a file operation' due to transient driver or @@ -240841,8 +244354,8 @@  File: manual.info, Node: news-5-5-0, Prev: news-5-5-1, Up: news-5-5-x -D.1.21 Changes in MySQL 5.5.0 (07 December 2009 Milestone 2) ------------------------------------------------------------- +D.1.23 Changes in MySQL 5.5.0 (07 December 2009, Milestone 2) +------------------------------------------------------------- Previously, MySQL development proceeded by including a large set of features and moving them over many versions within a release series @@ -240874,6 +244387,7 @@ milestone numbers as part of version numbers at the time. *InnoDB Notes* + * The `InnoDB Plugin' is included in MySQL 5.5 releases as the built-in version of `InnoDB'. The version of the `InnoDB' in this release is 1.0.5 and is considered of Release Candidate (RC) @@ -240932,12 +244446,6 @@ * *Incompatible Change*: Several changes have been made regarding the language and character set of error messages: - * The `--language' option for specifying the directory for the - error message file is now deprecated. The new - `--lc-messages-dir' and `--lc-messages' options should be - used instead, and `--language' is handled as an alias for - `--lc-messages-dir'. - * The `language' system variable has been removed and replaced with the new `lc_messages_dir' and `lc_messages' system variables. `lc_messages_dir' has only a global value and is @@ -240948,17 +244456,43 @@ changing their session `lc_messages' value to a different locale name. + * The `--language' option for specifying the directory for the + error message file is now deprecated. The new + `lc_messages_dir' and `lc_messages' system variables should + be used instead, and the server treats `--language' as an + alias for `lc_messages_dir'. + * Error messages previously were constructed in a mix of character sets. This issue is resolved by constructing error messages internally within the server using UTF-8 and returning them to the client in the character set specified by the `character_set_results' system variable. The content of error messages therefore may in some cases differ from the - messags returned previously. + messages returned previously. See *Note error-message-language::, and *Note charset-errors::. - See also Bug #46218, Bug #46236. + References: See also Bug #46218, Bug #46236. + + * *Partitioning*: It is now possible to assign indexes on partitioned + *Note `MyISAM': myisam-storage-engine. tables to key caches using + the *Note `CACHE INDEX': cache-index. and to preload such indexes + into the cache using *Note `LOAD INDEX INTO CACHE': load-index. + statements. Cache assignment and preloading of indexes for such + tables can be performed for one, several, or all partitions of the + table. + + This functionality is supported for only those partitioned tables + that employ the *Note `MyISAM': myisam-storage-engine. storage + engine. + + * *Partitioning*: A new *Note `ALTER TABLE': alter-table. option, + `TRUNCATE PARTITION', makes it possible to delete rows from one or + more selected partitions only. Unlike the case with `ALTER TABLE + ... DROP PARTITION', *Note `ALTER TABLE ... TRUNCATE PARTITION': + alter-table-partition-operations. merely deletes all rows from the + specified partition or partitions, and does not change the + definition of the table. * *Partitioning*: New `PARTITION BY RANGE COLUMNS(COLUMN_LIST)' and `PARTITION BY LIST COLUMNS(COLUMN_LIST)' options are added for the @@ -240977,25 +244511,10 @@ See *Note partitioning-range::, *Note partitioning-list::, and *Note partitioning-pruning::. - * *Partitioning*: A new *Note `ALTER TABLE': alter-table. option, - `TRUNCATE PARTITION', makes it possible to delete rows from one or - more selected partitions only. Unlike the case with `ALTER TABLE - ... DROP PARTITION', *Note `ALTER TABLE ... TRUNCATE PARTITION': - alter-table-partition-operations. merely deletes all rows from the - specified partition or partitions, and does not change the - definition of the table. - - * *Partitioning*: It is now possible to assign indexes on partitioned - *Note `MyISAM': myisam-storage-engine. tables to key caches using - the *Note `CACHE INDEX': cache-index. and to preload such indexes - into the cache using *Note `LOAD INDEX INTO CACHE': load-index. - statements. Cache assignment and preloading of indexes for such - tables can be performed for one, several, or all partitions of the - table. - - This functionality is supported for only those partitioned tables - that employ the *Note `MyISAM': myisam-storage-engine. storage - engine. + * *Replication*: Because *Note `SHOW BINLOG EVENTS': + show-binlog-events. cannot be used to read events from relay log + files, a new *Note `SHOW RELAYLOG EVENTS': show-relaylog-events. + statement has been added for this purpose. (Bug #28777) * *Replication*: The global server variable `sync_relay_log' is introduced for use on replication slaves. Setting this variable to @@ -241032,11 +244551,6 @@ For more information, see *Note replication-options-slave::. (Bug #31665, Bug #35542, Bug #40337) - * *Replication*: Because *Note `SHOW BINLOG EVENTS': - show-binlog-events. cannot be used to read events from relay log - files, a new *Note `SHOW RELAYLOG EVENTS': show-relaylog-events. - statement has been added for this purpose. (Bug #28777) - * *Replication*: In circular replication, it was sometimes possible for an event to propagate such that it would be reapplied on all servers. This could occur when the originating server was removed @@ -241054,7 +244568,7 @@ `SHOW SLAVE STATUS': show-slave-status. has two new fields. `Replicate_Ignore_Server_Ids' displays information about ignored servers. `Master_Server_Id' displays the `server_id' value from - the master. (Bug #25998) See also Bug #27808. + the master. (Bug #25998) References: See also Bug #27808. * *Replication*: A replication heartbeat mechanism has been added to facilitate monitoring. This provides an alternative to checking @@ -241163,6 +244677,17 @@ (Bug #47549) + * The `have_community_features' system variable was renamed to + `have_profiling'. + + Previously, to enable profiling, it was necessary to run + `configure' with the `--enable-community-features' and + `--enable-profiling' + (http://dev.mysql.com/doc/refman/5.1/en/source-configuration-options.html#option_configure_enable-profiling) + options. Now only `--enable-profiling' + (http://dev.mysql.com/doc/refman/5.1/en/source-configuration-options.html#option_configure_enable-profiling) + is needed. (Bug #44651) + * The *Note `InnoDB': innodb-storage-engine. buffer pool is divided into two sublists: A new sublist containing blocks that are heavily used by queries, and an old sublist containing less-used @@ -241206,28 +244731,6 @@ See *Note innodb-buffer-pool::. (Bug #45015) - * The `have_community_features' system variable was renamed to - `have_profiling'. - - Previously, to enable profiling, it was necessary to run - `configure' with the `--enable-community-features' and - `--enable-profiling' - (http://dev.mysql.com/doc/refman/5.1/en/source-configuration-options.html#option_configure_enable-profiling) - options. Now only `--enable-profiling' - (http://dev.mysql.com/doc/refman/5.1/en/source-configuration-options.html#option_configure_enable-profiling) - is needed. (Bug #44651) - - * Columns that provide a catalog value in `INFORMATION_SCHEMA' - tables (for example, `TABLES.TABLE_CATALOG') now have a value of - `def' rather than `NULL'. (Bug #35427) - - * Previously, *Note `mysqldump': mysqldump. would not dump the - `INFORMATION_SCHEMA' database and ignored it if it was named on - the command line. Now, *Note `mysqldump': mysqldump. will dump - `INFORMATION_SCHEMA' if it is named on the command line. - Currently, this requires that the `--skip-lock-tables' (or - `--skip-opt') option be given. (Bug #33762) - * Several undocumented C API functions were removed: `mysql_manager_close()', `mysql_manager_command()', `mysql_manager_connect()', `mysql_manager_fetch_line()', @@ -241240,42 +244743,67 @@ `mysql_slave_query()', and `mysql_slave_send_query()'. (Bug #31952, Bug #31954) - * Sinhala collations `utf8_sinhala_ci' and `ucs2_sinhala_ci' were - added for the `utf8' and `ucs2' character sets. (Bug #26474) + * Columns that provide a catalog value in `INFORMATION_SCHEMA' + tables (for example, `TABLES.TABLE_CATALOG') now have a value of + `def' rather than `NULL'. (Bug #35427) + + * Previously, *Note `mysqldump': mysqldump. would not dump the + `INFORMATION_SCHEMA' database and ignored it if it was named on + the command line. Now, *Note `mysqldump': mysqldump. will dump + `INFORMATION_SCHEMA' if it is named on the command line. + Currently, this requires that the `--skip-lock-tables' (or + `--skip-opt') option be given. (Bug #33762) * If the value of the `--log-warnings' option is greater than 1, the server now writes access-denied errors for new connection attempts to the error log (for example, if a client user name or password is incorrect). (Bug #25822) + * Sinhala collations `utf8_sinhala_ci' and `ucs2_sinhala_ci' were + added for the `utf8' and `ucs2' character sets. (Bug #26474) + * On Windows, use of POSIX I/O interfaces in `mysys' was replaced with Win32 API calls (`CreateFile()', `WriteFile()', and so forth) and the default maximum number of open files has been increased to 16384. The maximum can be increased further by using the `--open-files-limit=N' option at server startup. (Bug #24509) + * The undocumented, deprecated, and not useful `SHOW COLUMN TYPES' + statement has been removed. (Bug #5299) + * MySQL now implements the SQL standard *Note `SIGNAL': signal. and *Note `RESIGNAL': resignal. statements. See *Note condition-handling::. (Bug #11661) - * The undocumented, deprecated, and not useful `SHOW COLUMN TYPES' - statement has been removed. (Bug #5299) + * The *Note `LOAD XML INFILE': load-xml. statement was added. This + statement makes it possible to read data directly from XML files + into database tables. For more information, see *Note load-xml::. - * The `libmysqlclient' client library is now built as a thread-safe - library. The `libmysqlclient_r' client library is still present - for compatibility, but is just a symlink to `libmysqlclient'. + * Parser performance was improved for identifier scanning and + conversion of ASCII string literals. - * The `FORMAT()' function now supports an optional third parameter - that enables a locale to be specified to be used for the result - number's decimal point, thousands separator, and grouping between - separators. Permissible locale values are the same as the legal - values for the `lc_time_names' system variable (see *Note - locale-support::). For example, the result from - `FORMAT(1234567.89,2,'de_DE')' is `1.234.567,89'. If no locale is - specified, the default is `'en_US''. + * Added the `TO_SECONDS()' function, which converts a date or + datetime value to a number of seconds since the year 0. This is a + general-purpose function, but is useful for partitioning. You may + use this function in partitioning expressions, and partition + pruning is supported for tables defined using such expressions. - * The Greek locale `'el_GR'' is now a permissible value for the - `lc_time_names' system variable. + * The server now supports a Debug Sync facility for thread + synchronization during testing and debugging. To compile in this + facility, configure MySQL with the `--enable-debug-sync' option. + The `debug_sync' system variable provides the user interface Debug + Sync. *Note `mysqld': mysqld. and `mysql-test-run.pl' support a + `--debug-sync-timeout' option to enable the facility and set the + default synchronization point timeout. + + * The `CREATE TABLESPACE' privilege has been introduced. This + privilege exists at the global (superuser) level and enables you + to create, alter, and drop tablespaces and logfile groups. + + * *Note `mysql_upgrade': mysql-upgrade. now has an + `--upgrade-system-tables' option that causes only the system + tables to be upgraded. With this option, data upgrades are not + performed. * Previously, in the absence of other information, the MySQL client programs `mysql', `mysqladmin', `mysqlcheck', `mysqlimport', and @@ -241299,9 +244827,9 @@ An implication of this change is that if your environment is configured to use a non-`latin1' locale, MySQL client programs will use a different connection character set than previously, as - though you had issued an implicit *Note `SET NAMES': set-option. - statement. If the previous behavior is required, start the client - with the `--default-character-set=latin1' option. + though you had issued an implicit *Note `SET NAMES': + set-statement. statement. If the previous behavior is required, + start the client with the `--default-character-set=latin1' option. Third-party applications that wish to use character set autodetection based on the OS setting can use the following *Note @@ -241314,37 +244842,40 @@ See *Note charset-connection::. - * *Note `mysql_upgrade': mysql-upgrade. now has an - `--upgrade-system-tables' option that causes only the system - tables to be upgraded. With this option, data upgrades are not - performed. + * The Greek locale `'el_GR'' is now a permissible value for the + `lc_time_names' system variable. - * The `CREATE TABLESPACE' privilege has been introduced. This - privilege exists at the global (superuser) level and enables you - to create, alter, and drop tablespaces and logfile groups. + * The `FORMAT()' function now supports an optional third parameter + that enables a locale to be specified to be used for the result + number's decimal point, thousands separator, and grouping between + separators. Permissible locale values are the same as the legal + values for the `lc_time_names' system variable (see *Note + locale-support::). For example, the result from + `FORMAT(1234567.89,2,'de_DE')' is `1.234.567,89'. If no locale is + specified, the default is `'en_US''. - * The server now supports a Debug Sync facility for thread - synchronization during testing and debugging. To compile in this - facility, configure MySQL with the `--enable-debug-sync' option. - The `debug_sync' system variable provides the user interface Debug - Sync. *Note `mysqld': mysqld. and `mysql-test-run.pl' support a - `--debug-sync-timeout' option to enable the facility and set the - default synchronization point timeout. + * The `libmysqlclient' client library is now built as a thread-safe + library. The `libmysqlclient_r' client library is still present + for compatibility, but is just a symlink to `libmysqlclient'. - * Added the `TO_SECONDS()' function, which converts a date or - datetime value to a number of seconds since the year 0. This is a - general-purpose function, but is useful for partitioning. You may - use this function in partitioning expressions, and partition - pruning is supported for tables defined using such expressions. +*Bugs Fixed* - * Parser performance was improved for identifier scanning and - conversion of ASCII string literals. + * *Important Change*: *Security Fix*: It was possible to circumvent + privileges through the creation of `MyISAM' tables employing the + `DATA DIRECTORY' and `INDEX DIRECTORY' options to overwrite + existing table files in the MySQL data directory. Use of the MySQL + data directory in `DATA DIRECTORY' and `INDEX DIRECTORY' is no + longer permitted. This is now also true of these options when used + with partitioned tables and individual partitions of such tables. + (Bug #32167, CVE-2008-2079) References: See also Bug #39277. - * The *Note `LOAD XML INFILE': load-xml. statement was added. This - statement makes it possible to read data directly from XML files - into database tables. For more information, see *Note load-xml::. + * *Security Fix*: MySQL clients linked against OpenSSL could be + tricked not to check server certificates. (Bug #47320, + CVE-2009-4028) -*Bugs Fixed* + * *Security Fix*: The server crashed if an account without the + proper privileges attempted to create a stored procedure. (Bug + #44658) * *Performance*: The server unnecessarily acquired a query cache mutex even with the query cache disabled, resulting in a small @@ -241363,23 +244894,6 @@ performing a `MyISAM' repair on a table used within a transaction. (Bug #32149) - * *Important Change*: *Security Fix*: It was possible to circumvent - privileges through the creation of `MyISAM' tables employing the - `DATA DIRECTORY' and `INDEX DIRECTORY' options to overwrite - existing table files in the MySQL data directory. Use of the MySQL - data directory in `DATA DIRECTORY' and `INDEX DIRECTORY' is no - longer permitted. This is now also true of these options when used - with partitioned tables and individual partitions of such tables. - (Bug #32167, CVE-2008-2079) See also Bug #39277. - - * *Security Fix*: MySQL clients linked against OpenSSL could be - tricked not to check server certificates. (Bug #47320, - CVE-2009-4028) - - * *Security Fix*: The server crashed if an account without the - proper privileges attempted to create a stored procedure. (Bug - #44658) - * *Incompatible Change*: *Replication*: Concurrent transactions that inserted rows into a table with an `AUTO_INCREMENT' column could break statement-based or mixed-format replication error 1062 @@ -241393,8 +244907,14 @@ trigger or function to update an `AUTO_INCREMENT' column is now considered unsafe for statement-based replication. For more information, see *Note replication-features-auto-increment::. - (Bug #45677) See also Bug #42415, Bug #48608, Bug #50440, Bug - #53079. + (Bug #45677) References: See also Bug #42415, Bug #48608, Bug + #50440, Bug #53079. + + * *Incompatible Change*: In binary installations of MySQL, the + supplied `binary-configure' script would start and configure + MySQL, even when command help was requested with the `--help' + command-line option. The `--help' option, if provided, no longer + starts and installs the server. (Bug #30954) * *Incompatible Change*: For system variables that take values of `ON' or `OFF', `OF' was accepted as a legal variable. Now system @@ -241403,12 +244923,6 @@ assigned using unambiguous prefixes of permissible values, such as `tx_isolation'. (Bug #34828) - * *Incompatible Change*: In binary installations of MySQL, the - supplied `binary-configure' script would start and configure - MySQL, even when command help was requested with the `--help' - command-line option. The `--help' option, if provided, no longer - starts and installs the server. (Bug #30954) - * *Incompatible Change*: Access privileges for several statements are more accurately checked: @@ -241476,8 +244990,8 @@ * *Partitioning*: An *Note `ALTER TABLE ... ADD PARTITION': alter-table. statement that caused `open_files_limit' to be - exceeded led to a MySQL server crash. (Bug #46922) See also Bug - #47343. + exceeded led to a MySQL server crash. (Bug #46922) References: + See also Bug #47343. * *Partitioning*: When performing an *Note `INSERT ... SELECT': insert-select. into a partitioned table, `read_buffer_size' bytes @@ -241497,13 +245011,43 @@ queries against partitioned tables in many if not most cases. (Bug #44059) - * *Partitioning*: Truncating a partitioned `MyISAM' table did not - reset the `AUTO_INCREMENT' value. (Bug #35111) - * *Partitioning*: For partitioned tables with more than ten partitions, a full table scan was used in some cases when only a subset of the partitions were needed. (Bug #33730) + * *Partitioning*: Truncating a partitioned `MyISAM' table did not + reset the `AUTO_INCREMENT' value. (Bug #35111) + + * *Replication*: When using the row-based format to replicate a + transaction involving both transactional and nontransactional + engines, which contained a DML statement affecting multiple rows, + the statement failed. If this transaction was followed by a *Note + `COMMIT': commit, the master and the slave could diverge, because + the statement was correctly rolled back on the master, but was + applied on the slave. (Bug #47287) References: See also Bug + #46864. + + * *Replication*: A problem with the `BINLOG' statement in the output + of *Note `mysqlbinlog': mysqlbinlog. could break replication; + statements could be logged with the server ID stored within events + by the `BINLOG' statement rather than the ID of the running + server. With this fix, the server ID of the server executing the + statements can no longer be overridden by the server ID stored in + the binary log's `format description' statement. (Bug #46640) + References: This bug was introduced by Bug #32407. + + * *Replication*: When a session was closed on the master, temporary + tables belonging to that session were logged with the wrong + database names when either of the following conditions was true: + + 1. The length of the name of the database to which the temporary + table belonged was greater than the length of the current + database name. + + 2. The current database was not set. + + (Bug #48216) References: See also Bug #46861, Bug #48297. + * *Replication*: When using statement-based or mixed-format replication, the database name was not written to the binary log when executing a *Note `LOAD DATA INFILE': load-data. statement. @@ -241516,63 +245060,34 @@ always logged using its fully qualified name when the database to which it belongs is not the current database. (Bug #48297) - * *Replication*: When a session was closed on the master, temporary - tables belonging to that session were logged with the wrong - database names when either of the following conditions was true: - - 1. The length of the name of the database to which the temporary - table belonged was greater than the length of the current - database name. - - 2. The current database was not set. + * *Replication*: When *Note `mysqlbinlog': mysqlbinlog. `--verbose' + was used to read a binary log that had been written using + row-based format, the output for events that updated some but not + all columns of tables was not correct. (Bug #47323) - (Bug #48216) See also Bug #46861, Bug #48297. + * *Replication*: When using row-based replication, *Note `DROP + TEMPORARY TABLE IF EXISTS': drop-table. was written to the binary + log if the table named in the statement did not exist, even though + a *Note `DROP TEMPORARY TABLE': drop-table. statement should never + be logged in row-based logging mode, whether the table exists or + not. (Bug #46572) * *Replication*: When using row-based replication, changes to nontransactional tables that occurred early in a transaction were not immediately flushed upon committing a statement. This behavior could break consistency since changes made to nontransactional tables become immediately visible to other connections. (Bug - #47678) See also Bug #47287, Bug #46864, Bug #43929, Bug - #11752675, Bug #46129. - - * *Replication*: When *Note `mysqlbinlog': mysqlbinlog. `--verbose' - was used to read a binary log that had been written using - row-based format, the output for events that updated some but not - all columns of tables was not correct. (Bug #47323) + #47678) References: See also Bug #47287, Bug #46864, Bug #43929, + Bug #11752675, Bug #46129. This bug is a regression of Bug #40116. * *Replication*: Performing *Note `ALTER TABLE ... DISABLE KEYS': alter-table. on a slave table caused row-based replication to fail. (Bug #47312) - * *Replication*: When using the row-based format to replicate a - transaction involving both transactional and nontransactional - engines, which contained a DML statement affecting multiple rows, - the statement failed. If this transaction was followed by a *Note - `COMMIT': commit, the master and the slave could diverge, because - the statement was correctly rolled back on the master, but was - applied on the slave. (Bug #47287) See also Bug #46864. - * *Replication*: *Note `BEGIN': commit. statements were not included in the output of *Note `mysqlbinlog': mysqlbinlog. (Bug #46998) - * *Replication*: A problem with the `BINLOG' statement in the output - of *Note `mysqlbinlog': mysqlbinlog. could break replication; - statements could be logged with the server ID stored within events - by the `BINLOG' statement rather than the ID of the running - server. With this fix, the server ID of the server executing the - statements can no longer be overridden by the server ID stored in - the binary log's `format description' statement. (Bug #46640) - This regression was introduced by Bug #32407. - - * *Replication*: When using row-based replication, *Note `DROP - TEMPORARY TABLE IF EXISTS': drop-table. was written to the binary - log if the table named in the statement did not exist, even though - a *Note `DROP TEMPORARY TABLE': drop-table. statement should never - be logged in row-based logging mode, whether the table exists or - not. (Bug #46572) - * *Replication*: The internal function `get_master_version_and_clock()' (defined in `sql/slave.cc') ignored errors and passed directly when queries failed, or when @@ -241583,10 +245098,12 @@ master (in the event the master is a very old version of MySQL, compared to the slave.) (Bug #45214) - * *Replication*: Replicating *Note `TEXT': blob. or *Note `VARCHAR': - char. columns declared as `NULL' on the master but `NOT NULL' on - the slave caused the slave to crash. (Bug #43789) See also Bug - #38850, Bug #43783, Bug #43785, Bug #47741, Bug #48091. + * *Replication*: When using statement-based replication and the + transaction isolation level was set to `READ COMMITTED' or a less + strict level, *Note `InnoDB': innodb-storage-engine. returned an + error even if the statement in question was filtered out according + to the `--binlog-do-db' or `--binlog-ignore-db' rules in effect at + the time. (Bug #42829) * *Replication*: By default, all statements executed by the *Note `mysql_upgrade': mysql-upgrade. program on the master are written @@ -241600,22 +245117,6 @@ `--skip-write-binlog', can be used to disable binary logging while the upgrade is in progress. (Bug #43579) - * *Replication*: Two issues encountered on replication slaves during - startup were fixed: - - 1. A failure while allocating the master info structure caused - the slave to crash. - - 2. A failure during recovery caused the relay log file not to be - properly initialized which led to a crash on the slave. - - (Bug #43075) - - * *Replication*: When the logging format was set without binary - logging being enabled, the server failed to start. Now in such - cases, the server starts successfully, `binlog_format' is set, and - a warning is logged instead of an error. (Bug #42928) - * *Replication*: On the master, if a binary log event is larger than `max_allowed_packet', the error message `ER_MASTER_FATAL_ERROR_READING_BINLOG' is sent to a slave when it @@ -241628,15 +245129,13 @@ why the slave had stopped in such cases. Now, *Note `Last_IO_Error': show-slave-status. is reported when `max_allowed_packet' is exceeded, and provides the reason for - which the slave I/O thread stopped. (Bug #42914) See also Bug - #14068, Bug #47200, Bug #47303. + which the slave I/O thread stopped. (Bug #42914) References: See + also Bug #14068, Bug #47200, Bug #47303. - * *Replication*: When using statement-based replication and the - transaction isolation level was set to `READ COMMITTED' or a less - strict level, *Note `InnoDB': innodb-storage-engine. returned an - error even if the statement in question was filtered out according - to the `--binlog-do-db' or `--binlog-ignore-db' rules in effect at - the time. (Bug #42829) + * *Replication*: When the logging format was set without binary + logging being enabled, the server failed to start. Now in such + cases, the server starts successfully, `binlog_format' is set, and + a warning is logged instead of an error. (Bug #42928) * *Replication*: When using row-based format, replication failed with the error `Could not execute Write_rows event on table ...; @@ -241646,8 +245145,24 @@ in use and the statement would otherwise have succeeded on the master. Now the SQL mode is checked, and the statement is replicated unless strict mode is in effect. For more information, - see *Note server-sql-mode::. (Bug #38173) See also Bug #38262, - Bug #43992. + see *Note server-sql-mode::. (Bug #38173) References: See also + Bug #38262, Bug #43992. + + * *Replication*: Replicating *Note `TEXT': blob. or *Note `VARCHAR': + char. columns declared as `NULL' on the master but `NOT NULL' on + the slave caused the slave to crash. (Bug #43789) References: See + also Bug #38850, Bug #43783, Bug #43785, Bug #47741, Bug #48091. + + * *Replication*: Two issues encountered on replication slaves during + startup were fixed: + + 1. A failure while allocating the master info structure caused + the slave to crash. + + 2. A failure during recovery caused the relay log file not to be + properly initialized which led to a crash on the slave. + + (Bug #43075) * *Replication*: When `autocommit' was set equal to `1' after starting a transaction, the binary log did not commit the @@ -241660,18 +245175,13 @@ as well. (Bug #37221) * *Replication*: *Note `FLUSH LOGS': flush. did not close and reopen - the binary log index file. (Bug #34582) See also Bug #48738. + the binary log index file. (Bug #34582) References: See also Bug + #48738. * *Replication*: An error message relating to permissions required for *Note `SHOW SLAVE STATUS': show-slave-status. was confusing. (Bug #34227) - * *Replication*: The `--base64-output' option for *Note - `mysqlbinlog': mysqlbinlog. was not honored for all types of - events. This interfered in some cases with performing - point-in-time recovery. (Bug #32407) See also Bug #46640, Bug - #34777. - * *Replication*: The value of `Slave_IO_running' in the output of *Note `SHOW SLAVE STATUS': show-slave-status. did not distinguish between all 3 possible states of the slave I/O thread (not @@ -241683,9 +245193,15 @@ change, and is now consistent with what is shown for `Slave_IO_running'. (Bug #30703, Bug #41613, Bug #51089) + * *Replication*: The `--base64-output' option for *Note + `mysqlbinlog': mysqlbinlog. was not honored for all types of + events. This interfered in some cases with performing + point-in-time recovery. (Bug #32407) References: See also Bug + #46640, Bug #34777. + * *Replication*: Queries written to the slow query log on the master were not written to the slow query log on the slave. (Bug #23300) - See also Bug #48632. + References: See also Bug #48632. * *Replication*: Valgrind revealed an issue with *Note `mysqld': mysqld. that was corrected: memory corruption in replication @@ -241697,139 +245213,214 @@ that only one thread can initialize the POSIX threads library. (Bug #42850) - * Certain `INTERVAL' expressions could cause a crash on 64-bit - systems. (Bug #48739) + * If `InnoDB' reached its limit on the number of concurrent + transactions (1023), it wrote a descriptive message to the error + log but returned a misleading error message to the client, or an + assertion failure occurred. (Bug #46672) References: See also Bug + #18828. - * Following a literal, the `COLLATE' clause was mishandled such that - different results could be produced depending on whether an index - was used. (Bug #48447) + * An infinite hang and 100% CPU usage occurred after a handler tried + to open a merge table. - * `SUM()' artificially increased the precision of a *Note `DECIMAL': - numeric-types. argument, which was truncated when a temporary - table was created to hold the results. (Bug #48370) See also Bug - #45261. + If the command *Note `mysqladmin shutdown': mysqladmin. was + executed during the hang, the debug server generated the following + assert: - * *Note `GRANT': grant. and *Note `REVOKE': revoke. crashed if a - user name was specified as `CURRENT_USER()'. (Bug #48319) + mysqld: table.cc:407: void free_table_share(TABLE_SHARE*): Assertion `share->ref_count == + 0' failed. + 090610 14:54:04 - mysqld got signal 6 ; - * If an outer query was invalid, a subquery might not be set up. - *Note `EXPLAIN EXTENDED': explain. did not expect this and caused - a crash by trying to dereference improperly set up information. - (Bug #48295) + (Bug #45781) + + * When building a pluggable storage engine on Windows, the engine + name could be based on the directory name where the engine was + located, rather than the configured storage engine name. (Bug + #47795) + + * The `mysys/mf_strip.c' file, which defines the `strip_sp()' + function, has been removed from the MySQL source. The function was + no longer used within the main build, and the supplied function + was causing symbol errors on Windows builds. (Bug #47857) + + * When building storage engines on Windows it was not possible to + specify additional libraries within the `CMake' file required for + the build. An `${engine}_LIBS' macro has been included in the + files to support these additional storage-engine specific + libraries. (Bug #47797) + + * When creating a new instance on Windows using *Note `mysqld-nt': + mysqld. and the `--install' parameter, the value of the service + would be set incorrectly, resulting in a failure to start the + configured service. (Bug #46917) + + * The combination of `MIN()' or `MAX()' in the select list with + `WHERE' and `GROUP BY' clauses could lead to incorrect results. + (Bug #45386) + + * After an error such as a table-full condition, *Note `INSERT + IGNORE': insert. could cause an assertion failure for debug + builds. (Bug #46075) + + * The server crashed if a shutdown occurred while a connection was + idle. This happened because of a `NULL' pointer dereference while + logging to the error log. (Bug #46267) + + * The test suite was missing from RPM packages. (Bug #46834) + + * *Note `CREATE TABLE ... SELECT': create-table. could cause a + server crash if no default database was selected. (Bug #45998) + + * Truncation of *Note `DECIMAL': numeric-types. values could lead to + assertion failures; for example, when deducing the type of a table + column from a literal *Note `DECIMAL': numeric-types. value. (Bug + #45261) References: See also Bug #48370. + + * *Note `SHOW CREATE TRIGGER': show-create-trigger. for a *Note + `MERGE': merge-storage-engine. table trigger caused an assertion + failure. (Bug #46614) + + * A query containing a subquery in the `FROM' clause and `PROCEDURE + ANALYSE()' caused a server crash. (Bug #46184) References: See + also Bug #48293. * A query containing a view using temporary tables and multiple tables in the `FROM' clause and `PROCEDURE ANALYSE()' caused a server crash. As a result of this bug fix, `PROCEDURE ANALYSE()' is legal only - in a top-level `SELECT'. (Bug #48293) See also Bug #46184. + in a top-level `SELECT'. (Bug #48293) References: See also Bug + #46184. - * Error handling was missing for *Note `SELECT': select. statements - containing subqueries in the `WHERE' clause and that assigned a - *Note `SELECT': select. result to a user variable. The server - could crash as a result. (Bug #48291) + * *Note `TRUNCATE TABLE': truncate-table. for a table that was + opened with *Note `HANDLER': handler. did not close the handler + and left it in an inconsistent state that could lead to a server + crash. Now *Note `TRUNCATE TABLE': truncate-table. for a table + closes all open handlers for the table. (Bug #46456) - * An assertion could fail if the optimizer used a `SPATIAL' index. - (Bug #48258, Bug #47019) + * The server could crash for queries with the following elements: 1. + An `impossible where' in the outermost `SELECT'; 2. An aggregate + in the outermost `SELECT'; 3. A correlated subquery with a `WHERE' + clause that includes an outer field reference as a top-level + `WHERE' sargable predicate; (Bug #46749) - * *Note `InnoDB': innodb-storage-engine. mishandled memory-allocation - failures in the `os_mem_alloc_large()' function. (Bug #48237) + * Concurrent *Note `INSERT INTO ... SELECT': insert. statements for + an `InnoDB' table could cause an `AUTO_INCREMENT' assertion + failure. (Bug #46650) - * `WHERE' clauses with `OUTER_VALUE_LIST NOT IN SUBQUERY' were - handled incorrectly if the outer value list contained multiple - items at least one of which could be `NULL'. (Bug #48177) + * The *Note `mysql_config': mysql-config. script contained a + reference to `@innodb_system_libs@' that was not replaced with the + corresponding library flags during the build process and ended up + in the output of *Note `mysql_config --libs': mysql-config. (Bug + #47007) - * Searches using a nondefault collation could return different - results for a table depending on whether partitioning was used. - (Bug #48161) + * For `InnoDB' tables, an unnecessary table rebuild for *Note `ALTER + TABLE': alter-table. could sometimes occur for metadata-only + changes. (Bug #46760) - * A combination of `GROUP BY WITH ROLLUP', `DISTINCT' and the - `const' join type in a query caused a server crash when the - optimizer used a temporary table to resolve `DISTINCT'. (Bug - #48131) + * `DIV' operations that are out of range generated an error `Error + (Code 1264): Out of range value' (correct), but also an error: + `Error (Code 1041): Out of memory' (incorrect). (Bug #46606) - * The subquery optimizer had a memory leak. (Bug #48060) + * An assertion could be raised for *Note `CREATE TABLE': + create-table. if there was a pending *Note `INSERT DELAYED': + insert. or *Note `REPLACE DELAYED': replace. for the same table. + (Bug #47274) - * Server shutdown failed on Windows. (Bug #48047) + * Queries of the form `SELECT SUM(DISTINCT VARCHAR_KEY) FROM + TBL_NAME' caused a server crash. (Bug #47421) - * In some cases, using a null microsecond part in a `WHERE' - condition (for example, `WHERE date_time_field <= 'YYYY-MM-DD - HH:MM:SS.0000'') could lead to incorrect results due to improper - *Note `DATETIME': datetime. comparison. (Bug #47963) + * Client flags were incorrectly initialized for the embedded server, + causing several tests in the `jp' test suite to fail. (Bug #45159) - * A build configured using the `--without-server' option did not - compile the yaSSL code, so if `--with-ssl' was also used, the - build failed. (Bug #47957) + * Failed multiple-table *Note `DELETE': delete. statements could + raise an assertion. (Bug #46958) - * When a query used a *Note `DATE': datetime. or *Note `DATETIME': - datetime. value formatted using any separator characters other - than hyphen (`'-'') and a `>=' condition matching only the - greatest value in an indexed column, the result was empty if an - index range scan was employed. (Bug #47925) + * The `socket' system variable was unavailable on Windows. (Bug + #45498) - * `mysys/mf_keycache.c' requires threading, but no test was made for - thread support. (Bug #47923) + * *Note `EXPLAIN': explain. caused a server crash for certain valid + queries. (Bug #47106) - * For debug builds, an assertion could fail during the next - statement executed for a temporary table after a multiple-table - *Note `UPDATE': update. involving that table modified an - `AUTO_INCREMENT' column with a user-supplied value. (Bug #47919) + * The `configure' option `--without-server' did not work. (Bug + #46980) - * The `mysys/mf_strip.c' file, which defines the `strip_sp()' - function, has been removed from the MySQL source. The function was - no longer used within the main build, and the supplied function - was causing symbol errors on Windows builds. (Bug #47857) + * Solaris binary packages now are compiled with `-g0' rather than + `-g'. (Bug #47137) - * When building storage engines on Windows it was not possible to - specify additional libraries within the `CMake' file required for - the build. An `${engine}_LIBS' macro has been included in the - files to support these additional storage-engine specific - libraries. (Bug #47797) + * The `pthread_cond_wait()' implementations for Windows could + deadlock in some rare circumstances. (Bug #47768) - * When building a pluggable storage engine on Windows, the engine - name could be based on the directory name where the engine was - located, rather than the configured storage engine name. (Bug - #47795) + * Appending values to an *Note `ENUM': enum. or *Note `SET': set. + definition is a metadata change for which *Note `ALTER TABLE': + alter-table. need not rebuild the table, but it was being rebuilt + anyway. (Bug #45567) - * During cleanup of a stored procedure's internal structures, the - flag to ignore the errors for *Note `INSERT IGNORE': insert. or - *Note `UPDATE IGNORE': update. was not cleaned up, which could - result in a server crash. (Bug #47788) + * Debug builds could not be compiled with the Sun Studio compiler. + (Bug #47474) - * If the first argument to `GeomFromWKB()' function was a geometry - value, the function just returned its value. However, it failed to - preserve the argument's `null_value' flag, which caused an - unexpected `NULL' value to be returned to the caller, resulting in - a server crash. (Bug #47780) + * On Mac OS X or Windows, sending a `SIGHUP' signal to the server or + an asynchronous flush (triggered by `flush_time') caused the server + to crash. (Bug #47525) - * *Note `InnoDB': innodb-storage-engine. could crash when updating - spatial values. (Bug #47777) + * A multiple-table *Note `UPDATE': update. involving a natural join + and a mergeable view raised an assertion. (Bug #47150) - * The `pthread_cond_wait()' implementations for Windows could - deadlock in some rare circumstances. (Bug #47768) + * `InnoDB' did not disallow creation of an index with the name + `GEN_CLUST_INDEX', which is used internally. (Bug #46000) - * The encoding of values for `SET SYSTEM_VARIABLE = IDENTIFIER' - statements was incorrect, resulting in incorrect error messages. - (Bug #47597) + * Dropping an `InnoDB' table that used an unknown collation (created + on a different server, for example) caused a server crash. (Bug + #46256) + + * Incorrect handling of predicates involving `NULL' by the range + optimizer could lead to an infinite loop during query execution. + (Bug #47123) + + * A simple *Note `SELECT': select. with implicit grouping could + return many rows rather than a single row if the query was ordered + by the aggregated column in the select list. (Bug #47280) + + * During the build of the Red Hat IA64 MySQL server RPM, the system + library link order was incorrect. This made the resulting Red Hat + IA64 RPM depend on "libc.so.6.1(GLIBC_PRIVATE)(64bit)", thus + preventing installation of the package. (Bug #45706) + + * A build configured using the `--without-server' option did not + compile the yaSSL code, so if `--with-ssl' was also used, the + build failed. (Bug #47957) + + * `mysys/mf_keycache.c' requires threading, but no test was made for + thread support. (Bug #47923) + + * The GPL and commercial license headers had different sizes, so + that error log, backtrace, core dump, and cluster trace file line + numbers could be off by one if they were not checked against the + version of the source used for the build. (For example, checking a + GPL build backtrace against commercial sources.) (Bug #46216) + + * Repair by sort or parallel repair of *Note `MyISAM': + myisam-storage-engine. tables might not fail over to repair with + key cache. (Bug #47073) + + * Trailing spaces were not ignored for user-defined collations that + mapped spaces to a character other than 0x20. (Bug #46448) + References: See also Bug #29468. + + * Server shutdown failed on Windows. (Bug #48047) + + * Concurrent execution of statements requiring a table-level lock + and statements requiring a non-table-level write lock for a table + could deadlock. (Bug #45143) * On Windows, when an idle named pipe connection was forcibly closed with a *Note `KILL': kill. statement or because the server was being shut down, the thread that was closing the connection would hang infinitely. - As a result of the work done for this bug, the `net_read_timeout' - and `net_write_timeout' system variables now apply to connections - over all transports, not just to TCP/IP. (Bug #47571, Bug #31621) - - * On Mac OS X or Windows, sending a `SIGHUP' signal to the server or - an asynchronous flush (triggered by `flush_time') caused the server - to crash. (Bug #47525) - - * Debug builds could not be compiled with the Sun Studio compiler. - (Bug #47474) - - * Queries of the form `SELECT SUM(DISTINCT VARCHAR_KEY) FROM - TBL_NAME' caused a server crash. (Bug #47421) + As a result of the work done for this bug, the `net_read_timeout', + `net_write_timeout', and `wait_timeout', system variables now + apply to connections over all transports, not just to TCP/IP. + (Bug #47571, Bug #31621) * A function call could end without throwing an error or setting the return value. For example, this could happen when an error @@ -241837,49 +245428,50 @@ setting the value to `NULL' when an error occurs during evaluation of an expression. (Bug #47412) - * *Note `mysqladmin debug': mysqladmin. could crash on 64-bit - systems. (Bug #47382) - - * A simple *Note `SELECT': select. with implicit grouping could - return many rows rather than a single row if the query was ordered - by the aggregated column in the select list. (Bug #47280) - - * An assertion could be raised for *Note `CREATE TABLE': - create-table. if there was a pending *Note `INSERT DELAYED': - insert. or *Note `REPLACE DELAYED': replace. for the same table. - (Bug #47274) + * If a transaction was rolled back inside *Note `InnoDB': + innodb-storage-engine. due to a deadlock or lock wait timeout, and + a statement in the transaction had an `IGNORE' clause, the server + could crash at the end of the statement or on shutdown. (Bug + #46539) - * `InnoDB' raised errors in some cases in a manner not compatible - with `SIGNAL' and `RESIGNAL'. (Bug #47233) + * During cleanup of a stored procedure's internal structures, the + flag to ignore the errors for *Note `INSERT IGNORE': insert. or + *Note `UPDATE IGNORE': update. was not cleaned up, which could + result in a server crash. (Bug #47788) - * A multiple-table *Note `UPDATE': update. involving a natural join - and a mergeable view raised an assertion. (Bug #47150) + * Error handling was missing for *Note `SELECT': select. statements + containing subqueries in the `WHERE' clause and that assigned a + *Note `SELECT': select. result to a user variable. The server + could crash as a result. (Bug #48291) - * On FreeBSD, memory mapping for *Note `MERGE': - merge-storage-engine. tables could fail if underlying tables were - empty. (Bug #47139) + * *Note `InnoDB': innodb-storage-engine. could crash when updating + spatial values. (Bug #47777) - * Solaris binary packages now are compiled with `-g0' rather than - `-g'. (Bug #47137) + * If the first argument to `GeomFromWKB()' function was a geometry + value, the function just returned its value. However, it failed to + preserve the argument's `null_value' flag, which caused an + unexpected `NULL' value to be returned to the caller, resulting in + a server crash. (Bug #47780) - * If an *Note `InnoDB': innodb-storage-engine. table was created with - the `AUTO_INCREMENT' table option to specify an initial - auto-increment value, and an index was added in a separate - operation later, the auto-increment value was lost (subsequent - inserts began at 1 rather than the specified value). (Bug #47125) + * An assertion could fail if the optimizer used a `SPATIAL' index. + (Bug #48258, Bug #47019) - * Incorrect handling of predicates involving `NULL' by the range - optimizer could lead to an infinite loop during query execution. - (Bug #47123) + * For debug builds, an assertion could fail during the next + statement executed for a temporary table after a multiple-table + *Note `UPDATE': update. involving that table modified an + `AUTO_INCREMENT' column with a user-supplied value. (Bug #47919) - * *Note `EXPLAIN': explain. caused a server crash for certain valid - queries. (Bug #47106) + * The Serbian locale name `'sr_YU'' is obsolete. It is still + recognized for backward compatibility, but `'sr_RS'' now should be + used instead. (Bug #46633) - * Repair by sort or parallel repair of *Note `MyISAM': - myisam-storage-engine. tables might not fail over to repair with - key cache. (Bug #47073) + * The `caseinfo' member of the `CHARSET_INFO' structure was not + initialized for user-defined Unicode collations, leading to a + server crash. (Bug #45645) - * `InnoDB' did not compile on some Solaris systems. (Bug #47058) + * On Solaris and HP-UX systems with the environment set to the + default `C' locale, MySQL client programs issued an `Unknown OS + character set' error. (Bug #46619) * On Windows, when a failed I/O operation occurred with return code of `ERROR_WORKING_SET_QUOTA', *Note `InnoDB': @@ -241887,24 +245479,22 @@ `InnoDB': innodb-storage-engine. sleeps for 100ms and retries the failed operation. (Bug #47055) - * The *Note `mysql_config': mysql-config. script contained a - reference to `@innodb_system_libs@' that was not replaced with the - corresponding library flags during the build process and ended up - in the output of *Note `mysql_config --libs': mysql-config. (Bug - #47007) + * Following a literal, the `COLLATE' clause was mishandled such that + different results could be produced depending on whether an index + was used. (Bug #48447) - * The `configure' option `--without-server' did not work. (Bug - #46980) + * A combination of `GROUP BY WITH ROLLUP', `DISTINCT' and the + `const' join type in a query caused a server crash when the + optimizer used a temporary table to resolve `DISTINCT'. (Bug + #48131) - * *Note `InnoDB': innodb-storage-engine. now ignores negative values - supplied by a user for an `AUTO_INCREMENT' column when calculating - the next value to store in the data dictionary. Setting - `AUTO_INCREMENT' columns to negative values is undefined behavior - and this change should bring the behavior of *Note `InnoDB': - innodb-storage-engine. closer to what users expect. (Bug #46965) + * Searches using a nondefault collation could return different + results for a table depending on whether partitioning was used. + (Bug #48161) - * Failed multiple-table *Note `DELETE': delete. statements could - raise an assertion. (Bug #46958) + * The encoding of values for `SET SYSTEM_VARIABLE = IDENTIFIER' + statements was incorrect, resulting in incorrect error messages. + (Bug #47597) * When MySQL crashed (or a snapshot was taken that simulates a crash), it was possible that internal XA transactions (used to @@ -241919,168 +245509,145 @@ phase should then be able to clean up all pending XA transactions. (Bug #46944) - * When creating a new instance on Windows using *Note `mysqld-nt': - mysqld. and the `--install' parameter, the value of the service - would be set incorrectly, resulting in a failure to start the - configured service. (Bug #46917) - - * The test suite was missing from RPM packages. (Bug #46834) - - * For `InnoDB' tables, an unnecessary table rebuild for *Note `ALTER - TABLE': alter-table. could sometimes occur for metadata-only - changes. (Bug #46760) - - * The server could crash for queries with the following elements: 1. - An `impossible where' in the outermost `SELECT'; 2. An aggregate - in the outermost `SELECT'; 3. A correlated subquery with a `WHERE' - clause that includes an outer field reference as a top-level - `WHERE' sargable predicate; (Bug #46749) - - * `InnoDB' did not compile using `gcc' 4.1 on PowerPC systems. (Bug - #46718) - - * If `InnoDB' reached its limit on the number of concurrent - transactions (1023), it wrote a descriptive message to the error - log but returned a misleading error message to the client, or an - assertion failure occurred. (Bug #46672) See also Bug #18828. + * On FreeBSD, memory mapping for *Note `MERGE': + merge-storage-engine. tables could fail if underlying tables were + empty. (Bug #47139) - * A Valgrind error during index creation by `InnoDB' was corrected. - (Bug #46657) + * In some cases, using a null microsecond part in a `WHERE' + condition (for example, `WHERE date_time_field <= 'YYYY-MM-DD + HH:MM:SS.0000'') could lead to incorrect results due to improper + *Note `DATETIME': datetime. comparison. (Bug #47963) - * Concurrent *Note `INSERT INTO ... SELECT': insert. statements for - an `InnoDB' table could cause an `AUTO_INCREMENT' assertion - failure. (Bug #46650) + * The subquery optimizer had a memory leak. (Bug #48060) - * The Serbian locale name `'sr_YU'' is obsolete. It is still - recognized for backward compatibility, but `'sr_RS'' now should be - used instead. (Bug #46633) + * Configuring MySQL for DTrace support resulted in a build failure + on Solaris if the directory for the `dtrace' executable was not in + `PATH'. (Bug #45810) - * On Solaris and HP-UX systems with the environment set to the - default `C' locale, MySQL client programs issued an `Unknown OS - character set' error. (Bug #46619) + * `SUM()' artificially increased the precision of a *Note `DECIMAL': + numeric-types. argument, which was truncated when a temporary + table was created to hold the results. (Bug #48370) References: + See also Bug #45261. - * *Note `SHOW CREATE TRIGGER': show-create-trigger. for a *Note - `MERGE': merge-storage-engine. table trigger caused an assertion - failure. (Bug #46614) + * *Note `InnoDB': innodb-storage-engine. mishandled memory-allocation + failures in the `os_mem_alloc_large()' function. (Bug #48237) - * `DIV' operations that are out of range generated an error `Error - (Code 1264): Out of range value' (correct), but also an error: - `Error (Code 1041): Out of memory' (incorrect). (Bug #46606) + * `WHERE' clauses with `OUTER_VALUE_LIST NOT IN SUBQUERY' were + handled incorrectly if the outer value list contained multiple + items at least one of which could be `NULL'. (Bug #48177) - * If a transaction was rolled back inside *Note `InnoDB': - innodb-storage-engine. due to a deadlock or lock wait timeout, and - a statement in the transaction had an `IGNORE' clause, the server - could crash at the end of the statement or on shutdown. (Bug - #46539) + * If an outer query was invalid, a subquery might not be set up. + *Note `EXPLAIN EXTENDED': explain. did not expect this and caused + a crash by trying to dereference improperly set up information. + (Bug #48295) - * *Note `TRUNCATE TABLE': truncate-table. for a table that was - opened with *Note `HANDLER': handler. did not close the handler - and left it in an inconsistent state that could lead to a server - crash. Now *Note `TRUNCATE TABLE': truncate-table. for a table - closes all open handlers for the table. (Bug #46456) + * When a query used a *Note `DATE': datetime. or *Note `DATETIME': + datetime. value formatted using any separator characters other + than hyphen (`'-'') and a `>=' condition matching only the + greatest value in an indexed column, the result was empty if an + index range scan was employed. (Bug #47925) - * Trailing spaces were not ignored for user-defined collations that - mapped spaces to a character other than 0x20. (Bug #46448) See - also Bug #29468. + * If an *Note `InnoDB': innodb-storage-engine. table was created with + the `AUTO_INCREMENT' table option to specify an initial + auto-increment value, and an index was added in a separate + operation later, the auto-increment value was lost (subsequent + inserts began at 1 rather than the specified value). (Bug #47125) - * The server crashed if a shutdown occurred while a connection was - idle. This happened because of a `NULL' pointer dereference while - logging to the error log. (Bug #46267) + * `InnoDB' did not compile on some Solaris systems. (Bug #47058) - * Dropping an `InnoDB' table that used an unknown collation (created - on a different server, for example) caused a server crash. (Bug - #46256) + * `InnoDB' did not compile using `gcc' 4.1 on PowerPC systems. (Bug + #46718) - * The GPL and commercial license headers had different sizes, so - that error log, backtrace, core dump, and cluster trace file line - numbers could be off by one if they were not checked against the - version of the source used for the build. (For example, checking a - GPL build backtrace against commercial sources.) (Bug #46216) + * `InnoDB' raised errors in some cases in a manner not compatible + with `SIGNAL' and `RESIGNAL'. (Bug #47233) - * A query containing a subquery in the `FROM' clause and `PROCEDURE - ANALYSE()' caused a server crash. (Bug #46184) See also Bug - #48293. + * *Note `InnoDB': innodb-storage-engine. now ignores negative values + supplied by a user for an `AUTO_INCREMENT' column when calculating + the next value to store in the data dictionary. Setting + `AUTO_INCREMENT' columns to negative values is undefined behavior + and this change should bring the behavior of *Note `InnoDB': + innodb-storage-engine. closer to what users expect. (Bug #46965) - * After an error such as a table-full condition, *Note `INSERT - IGNORE': insert. could cause an assertion failure for debug - builds. (Bug #46075) + * A Valgrind error during index creation by `InnoDB' was corrected. + (Bug #46657) * On 64-bit systems, `--skip-innodb' did not skip *Note `InnoDB': innodb-storage-engine. startup. (Bug #46043) - * `InnoDB' did not disallow creation of an index with the name - `GEN_CLUST_INDEX', which is used internally. (Bug #46000) - - * *Note `CREATE TABLE ... SELECT': create-table. could cause a - server crash if no default database was selected. (Bug #45998) - - * Configuring MySQL for DTrace support resulted in a build failure - on Solaris if the directory for the `dtrace' executable was not in - `PATH'. (Bug #45810) + * *Note `mysqladmin debug': mysqladmin. could crash on 64-bit + systems. (Bug #47382) - * An infinite hang and 100% CPU usage occurred after a handler tried - to open a merge table. + * Certain `INTERVAL' expressions could cause a crash on 64-bit + systems. (Bug #48739) - If the command *Note `mysqladmin shutdown': mysqladmin. was - executed during the hang, the debug server generated the following - assert: + * *Note `GRANT': grant. and *Note `REVOKE': revoke. crashed if a + user name was specified as `CURRENT_USER()'. (Bug #48319) - mysqld: table.cc:407: void free_table_share(TABLE_SHARE*): Assertion `share->ref_count == - 0' failed. - 090610 14:54:04 - mysqld got signal 6 ; + * The `mysql-stress-test.pl' test script was missing from the + `noinstall' packages on Windows. (Bug #41546) - (Bug #45781) + * If the server was started with an option that had a missing or + invalid value, a subsequent error that normally would cause the + server to shut down could cause it to crash instead. (Bug #42244) - * During the build of the Red Hat IA64 MySQL server RPM, the system - library link order was incorrect. This made the resulting Red Hat - IA64 RPM depend on "libc.so.6.1(GLIBC_PRIVATE)(64bit)", thus - preventing installation of the package. (Bug #45706) + * A Valgrind warning in `open_tables()' was corrected. (Bug #41759) - * The `caseinfo' member of the `CHARSET_INFO' structure was not - initialized for user-defined Unicode collations, leading to a - server crash. (Bug #45645) + * `INFORMATION_SCHEMA' access optimizations did not work properly in + some cases. (Bug #39270) - * Appending values to an *Note `ENUM': enum. or *Note `SET': set. - definition is a metadata change for which *Note `ALTER TABLE': - alter-table. need not rebuild the table, but it was being rebuilt - anyway. (Bug #45567) + * When a storage engine plugin failed to initialize before + allocating a slot number, it would acidentally unplug the engine + installed in slot 0. (Bug #41013) - * The `socket' system variable was unavailable on Windows. (Bug - #45498) + * The *Note `mysql_stmt_close()': mysql-stmt-close. C API function + did not flush all pending data associated with the prepared + statement. (Bug #39519) - * The combination of `MIN()' or `MAX()' in the select list with - `WHERE' and `GROUP BY' clauses could lead to incorrect results. - (Bug #45386) + * A workload consisting of *Note `CREATE TABLE ... SELECT': + create-table. and DML operations could cause deadlock. (Bug + #37433) - * Truncation of *Note `DECIMAL': numeric-types. values could lead to - assertion failures; for example, when deducing the type of a table - column from a literal *Note `DECIMAL': numeric-types. value. (Bug - #45261) See also Bug #48370. + * Optimized builds of *Note `mysqld': mysqld. crashed when built + with Sun Studio on SPARC platforms. (Bug #40244) - * Client flags were incorrectly initialized for the embedded server, - causing several tests in the `jp' test suite to fail. (Bug #45159) + * The `ALTER ROUTINE' privilege incorrectly permitted *Note `SHOW + CREATE TABLE': show-create-table. (Bug #38347) - * Concurrent execution of statements requiring a table-level lock - and statements requiring a non-table-level write lock for a table - could deadlock. (Bug #45143) + * *Note `mysqlbinlog': mysqlbinlog. option-processing code had a + memory leak. (Bug #38468) * For settings of `lower_case_table_names' greater than 0, some queries for `INFORMATION_SCHEMA' tables left entries with incorrect lettercase in the table definition cache. (Bug #44738) + * Setting the `general_log_file' or `slow_query_log_file' system + variable to a nonconstant expression caused the variable to become + unset. (Bug #38124) + + * *Note `DROP DATABASE': drop-database. did not clear the message + list. (Bug #43012, Bug #43138) + + * Previously, `InnoDB' performed `REPLACE INTO T SELECT ... FROM S + WHERE ...' by setting shared next-key locks on rows from `S'. Now + `InnoDB' selects rows from `S' with shared locks or as a + consistent read, as for *Note `INSERT ... SELECT': insert-select. + This reduces lock contention between sessions. (Bug #37232) + * *Note `mysqld_safe': mysqld-safe. could fail to find the `logger' program. (Bug #44736) - * Some Perl scripts in AIX packages contained an incorrect path to - the `perl' executable. (Bug #44643) + * Redefining a trigger could cause an assertion failure. (Bug + #43054) - * With `InnoDB', renaming a table column and then creating an index - on the renamed column caused a server crash to the `.frm' file and - the `InnoDB' data directory going out of sync. Now `InnoDB' 1.0.5 - returns an error instead: `ERROR 1034 (HY000): Incorrect key file - for table 'TBL_NAME'; try to repair it'. To work around the - problem, create another table with the same structure and copy the - original table to it. (Bug #44571) + * *Note `ALTER TABLE': alter-table. neglected to preserve + `ROW_FORMAT' information from the original table, which could + cause subsequent *Note `ALTER TABLE': alter-table. and *Note + `OPTIMIZE TABLE': optimize-table. statements to lose the row + format for `InnoDB' tables. (Bug #39200) + + * *Note `CREATE TABLE': create-table. failed if a column name in a + `FOREIGN KEY' clause was given in a lettercase different from the + corresponding index definition. (Bug #39932) * For debug builds, executing a stored procedure as a prepared statement could sometimes cause an assertion failure. (Bug #44521) @@ -242088,99 +245655,90 @@ * Using *Note `mysql_stmt_execute()': mysql-stmt-execute. to call a stored procedure could cause a server crash. (Bug #44495) - * `InnoDB' did not always disallow creating tables containing - columns with names that match the names of internal columns, such - as `DB_ROW_ID', `DB_TRX_ID', `DB_ROLL_PTR', and `DB_MIX_ID'. (Bug - #44369) + * Some Perl scripts in AIX packages contained an incorrect path to + the `perl' executable. (Bug #44643) - * An *Note `InnoDB': innodb-storage-engine. error message incorrectly - referred to the nonexistent `innodb_max_files_open' variable - rather than to `innodb_open_files'. (Bug #44338) + * *Note `SHOW ERRORS': show-errors. returned an empty result set + after an attempt to drop a nonexistent table. (Bug #42364) - * *Note `SELECT ... WHERE ... IN (NULL, ...)': select. was executed - using a full table scan, even if the same query without the `NULL' - used an efficient range scan. (Bug #44139) See also Bug #18360. + * Attempts to enable `large_pages' with a shared memory segment + larger than 4GB caused a server crash. (Bug #43606) - * `InnoDB' use of `SELECT MAX(AUTOINC_COLUMN)' could cause a crash - when MySQL data dictionaries went out of sync. (Bug #44030) + * Selecting from the process list in the embedded server caused a + crash. (Bug #43733) References: See also Bug #47304. * *Note `LOAD DATA INFILE': load-data. statements were written to the binary log in such a way that parsing problems could occur when re-executing the statement from the log. (Bug #43746) - * Selecting from the process list in the embedded server caused a - crash. (Bug #43733) See also Bug #47304. - - * Attempts to enable `large_pages' with a shared memory segment - larger than 4GB caused a server crash. (Bug #43606) - - * For *Note `ALTER TABLE': alter-table, renaming a *Note `DATETIME': - datetime. or *Note `TIMESTAMP': datetime. column unnecessarily - caused a table copy operation. (Bug #43508) - - * The weekday names for the Romanian `lc_time_names' locale - `'ro_RO'' were incorrect. Thanks to Andrei Boros for the patch to - fix this bug. (Bug #43207) + * *Note `SELECT ... WHERE ... IN (NULL, ...)': select. was executed + using a full table scan, even if the same query without the `NULL' + used an efficient range scan. (Bug #44139) References: See also + Bug #18360. - * *Note `XA START': xa. could cause an assertion failure or server - crash when it is called after a unilateral rollback issued by the - Resource Manager (both in a regular transaction and after an XA - transaction). (Bug #43171) + * The MySQL client library mishandled `EINPROGRESS' errors for + connections in nonblocking mode. This could lead to replication + failures on hosts capable of resolving both IPv4 and IPv6 network + addresses, when trying to resolve `localhost'. (Bug #37267) + References: See also Bug #44344. - * Redefining a trigger could cause an assertion failure. (Bug - #43054) + * `InnoDB' did not always disallow creating tables containing + columns with names that match the names of internal columns, such + as `DB_ROW_ID', `DB_TRX_ID', `DB_ROLL_PTR', and `DB_MIX_ID'. (Bug + #44369) - * The `FORCE INDEX FOR ORDER BY' index hint was ignored when join - buffering was used. (Bug #43029) + * The server used the wrong lock type (always `TL_READ' instead of + `TL_READ_NO_INSERT' when appropriate) for tables used in + subqueries of *Note `UPDATE': update. statements. This led in some + cases to replication failure because statements were written in + the wrong order to the binary log. (Bug #42108) - * *Note `DROP DATABASE': drop-database. did not clear the message - list. (Bug #43012, Bug #43138) + * `InnoDB' use of `SELECT MAX(AUTOINC_COLUMN)' could cause a crash + when MySQL data dictionaries went out of sync. (Bug #44030) * The `NUM_FLAG' bit of the `MYSQL_FIELD.flags' member now is set for columns of type `MYSQL_TYPE_NEWDECIMAL'. (Bug #42980) - * Incorrect handling of range predicates combined with `OR' - operators could yield incorrect results. (Bug #42846) - * Failure to treat *Note `BIT': numeric-types. values as unsigned could lead to unpredictable results. (Bug #42803) - * For the embedded server on Windows, *Note `InnoDB': - innodb-storage-engine. crashed when `innodb_file_per_table' was - enabled and a table name was in full path format. (Bug #42383) + * Incorrect handling of range predicates combined with `OR' + operators could yield incorrect results. (Bug #42846) - * *Note `SHOW ERRORS': show-errors. returned an empty result set - after an attempt to drop a nonexistent table. (Bug #42364) + * The `FORCE INDEX FOR ORDER BY' index hint was ignored when join + buffering was used. (Bug #43029) - * If the server was started with an option that had a missing or - invalid value, a subsequent error that normally would cause the - server to shut down could cause it to crash instead. (Bug #42244) + * With `InnoDB', renaming a table column and then creating an index + on the renamed column caused a server crash to the `.frm' file and + the `InnoDB' data directory going out of sync. Now `InnoDB' 1.0.5 + returns an error instead: `ERROR 1034 (HY000): Incorrect key file + for table 'TBL_NAME'; try to repair it'. To work around the + problem, create another table with the same structure and copy the + original table to it. (Bug #44571) - * Some queries with nested outer joins could lead to crashes or - incorrect results because an internal data structure was handled - improperly. (Bug #42116) + * An *Note `InnoDB': innodb-storage-engine. error message incorrectly + referred to the nonexistent `innodb_max_files_open' variable + rather than to `innodb_open_files'. (Bug #44338) - * The server used the wrong lock type (always `TL_READ' instead of - `TL_READ_NO_INSERT' when appropriate) for tables used in - subqueries of *Note `UPDATE': update. statements. This led in some - cases to replication failure because statements were written in - the wrong order to the binary log. (Bug #42108) + * For certain *Note `SELECT': select. statements using `ref' access, + MySQL estimated an incorrect number of rows, which could lead to + inefficient query plans. (Bug #38049) - * A Valgrind warning in `open_tables()' was corrected. (Bug #41759) + * The weekday names for the Romanian `lc_time_names' locale + `'ro_RO'' were incorrect. Thanks to Andrei Boros for the patch to + fix this bug. (Bug #43207) - * In a replication scenario with `innodb_locks_unsafe_for_binlog' - enabled on the slave, where rows were changed only on the slave - (not through replication), in some rare cases, many messages of - the following form were written to the slave error log: `InnoDB: - Error: unlock row could not find a 4 mode lock on the record'. - (Bug #41756) + * For *Note `ALTER TABLE': alter-table, renaming a *Note `DATETIME': + datetime. or *Note `TIMESTAMP': datetime. column unnecessarily + caused a table copy operation. (Bug #43508) - * After renaming a user, granting that user privileges could result - in the user having privileges additional to those granted. (Bug - #41597) + * For the embedded server on Windows, *Note `InnoDB': + innodb-storage-engine. crashed when `innodb_file_per_table' was + enabled and a table name was in full path format. (Bug #42383) - * The `mysql-stress-test.pl' test script was missing from the - `noinstall' packages on Windows. (Bug #41546) + * Simultaneous *Note `ANALYZE TABLE': analyze-table. operations for + an *Note `InnoDB': innodb-storage-engine. tables could be subject + to a race condition. (Bug #38996) * With a nonstandard *Note `InnoDB': innodb-storage-engine. page size, some error messages became inaccurate. @@ -242200,6 +245758,26 @@ (Bug #41490) + * In a replication scenario with `innodb_locks_unsafe_for_binlog' + enabled on the slave, where rows were changed only on the slave + (not through replication), in some rare cases, many messages of + the following form were written to the slave error log: `InnoDB: + Error: unlock row could not find a 4 mode lock on the record'. + (Bug #41756) + + * *Note `XA START': xa. could cause an assertion failure or server + crash when it is called after a unilateral rollback issued by the + Resource Manager (both in a regular transaction and after an XA + transaction). (Bug #43171) + + * Some queries with nested outer joins could lead to crashes or + incorrect results because an internal data structure was handled + improperly. (Bug #42116) + + * After renaming a user, granting that user privileges could result + in the user having privileges additional to those granted. (Bug + #41597) + * In some cases, the server did not recognize lettercase differences between *Note `GRANT': grant. attributes such as table name or user name. For example, a user was able to perform operations on a @@ -242208,107 +245786,55 @@ In consequence of this bug fix, the collation for the `Routine_name' column of the `mysql.proc' table is changed from - `utf8_bin' to `utf8_general_ci'. (Bug #41049) See also Bug #48872. - - * When a storage engine plugin failed to initialize before - allocating a slot number, it would acidentally unplug the engine - installed in slot 0. (Bug #41013) - - * Optimized builds of *Note `mysqld': mysqld. crashed when built - with Sun Studio on SPARC platforms. (Bug #40244) - - * *Note `CREATE TABLE': create-table. failed if a column name in a - `FOREIGN KEY' clause was given in a lettercase different from the - corresponding index definition. (Bug #39932) - - * The *Note `mysql_stmt_close()': mysql-stmt-close. C API function - did not flush all pending data associated with the prepared - statement. (Bug #39519) - - * `INFORMATION_SCHEMA' access optimizations did not work properly in - some cases. (Bug #39270) - - * *Note `ALTER TABLE': alter-table. neglected to preserve - `ROW_FORMAT' information from the original table, which could - cause subsequent *Note `ALTER TABLE': alter-table. and *Note - `OPTIMIZE TABLE': optimize-table. statements to lose the row - format for `InnoDB' tables. (Bug #39200) - - * Simultaneous *Note `ANALYZE TABLE': analyze-table. operations for - an *Note `InnoDB': innodb-storage-engine. tables could be subject - to a race condition. (Bug #38996) - - * *Note `mysqlbinlog': mysqlbinlog. option-processing code had a - memory leak. (Bug #38468) + `utf8_bin' to `utf8_general_ci'. (Bug #41049) References: See + also Bug #48872. - * The `ALTER ROUTINE' privilege incorrectly permitted *Note `SHOW - CREATE TABLE': show-create-table. (Bug #38347) - - * Setting the `general_log_file' or `slow_query_log_file' system - variable to a nonconstant expression caused the variable to become - unset. (Bug #38124) - - * For certain *Note `SELECT': select. statements using `ref' access, - MySQL estimated an incorrect number of rows, which could lead to - inefficient query plans. (Bug #38049) - - * A workload consisting of *Note `CREATE TABLE ... SELECT': - create-table. and DML operations could cause deadlock. (Bug - #37433) - - * The MySQL client library mishandled `EINPROGRESS' errors for - connections in nonblocking mode. This could lead to replication - failures on hosts capable of resolving both IPv4 and IPv6 network - addresses, when trying to resolve `localhost'. (Bug #37267) See - also Bug #44344. - - * Previously, `InnoDB' performed `REPLACE INTO T SELECT ... FROM S - WHERE ...' by setting shared next-key locks on rows from `S'. Now - `InnoDB' selects rows from `S' with shared locks or as a - consistent read, as for *Note `INSERT ... SELECT': insert-select. - This reduces lock contention between sessions. (Bug #37232) - - * Some warnings were being reported as errors. (Bug #36777) + * There was a race condition between the event scheduler and the + server shutdown thread. (Bug #32771) - * Privileges for *Note `SHOW CREATE VIEW': show-create-view. were - not being checked correctly. (Bug #35996) + * Concurrent execution of *Note `FLUSH TABLES': flush. along with + *Note `SHOW FUNCTION STATUS': show-function-status. or *Note + `SHOW PROCEDURE STATUS': show-procedure-status. could cause a + server crash. (Bug #34895) * Different invocations of *Note `CHECKSUM TABLE': checksum-table. could return different results for a table containing columns with spatial data types. (Bug #35570) - * Result set metadata for columns retrieved from - `INFORMATION_SCHEMA' tables did not have the `db' or `org_table' - members of the `MYSQL_FIELD' structure set. (Bug #35428) - - * *Note `SHOW CREATE EVENT': show-create-event. output did not - include the `DEFINER' clause. (Bug #35297) - - * For its warning count, the *Note `mysql_info()': mysql-info. C API - function could print the number of truncated data items rather - than the number of warnings. (Bug #34898) + * The *Note `SHOW FUNCTION CODE': show-function-code. and *Note + `SHOW PROCEDURE CODE': show-procedure-code. statements are not + present in nondebug builds, but attempting to use them resulted in + a `syntax error' message. Now the error message indicates that the + statements are disabled and that you must use a debug build. (Bug + #33637) - * Concurrent execution of *Note `FLUSH TABLES': flush. along with - *Note `SHOW FUNCTION STATUS': show-function-status. or *Note - `SHOW PROCEDURE STATUS': show-procedure-status. could cause a - server crash. (Bug #34895) + * Some warnings were being reported as errors. (Bug #36777) - * Executing *Note `SHOW MASTER LOGS': show-binary-logs. as a - prepared statement without binary logging enabled caused a crash - for debug builds. (Bug #34741) + * *Note `mysql_real_connect()': mysql-real-connect. did not check + whether the `MYSQL' connection handler was already connected and + connected again even if so. Now a `CR_ALREADY_CONNECTED' error + occurs. (Bug #33831) * There were spurious warnings about `"Truncated incorrect DOUBLE value"' in queries with `MATCH ... AGAINST' and `>' or `<' with a constant (which was reported as an incorrect `DOUBLE' value) in the `WHERE' condition. (Bug #34374) - * A `COMMENT' longer than 64 characters caused *Note `CREATE - PROCEDURE': create-procedure. to fail. (Bug #34197) + * *Note `ALTER TABLE': alter-table. statements that added a column + and added a nonpartial index on the column failed to add the index. + (Bug #31031) - * *Note `mysql_real_connect()': mysql-real-connect. did not check - whether the `MYSQL' connection handler was already connected and - connected again even if so. Now a `CR_ALREADY_CONNECTED' error - occurs. (Bug #33831) + * Result set metadata for columns retrieved from + `INFORMATION_SCHEMA' tables did not have the `db' or `org_table' + members of the `MYSQL_FIELD' structure set. (Bug #35428) + + * *Note `SHOW CREATE EVENT': show-create-event. output did not + include the `DEFINER' clause. (Bug #35297) + + * When an `InnoDB' tablespace filled up, an error was logged to the + client, but not to the error log. Also, the error message was + misleading and did not indicate the real source of the problem. + (Bug #31183) * *Note `INSTALL PLUGIN': install-plugin. and *Note `UNINSTALL PLUGIN': uninstall-plugin. did not handle plugin identifiers @@ -242332,12 +245858,8 @@ contrary to the documentation. This issue is to be addressed as Bug #45359. (Bug #33693) - * The *Note `SHOW FUNCTION CODE': show-function-code. and *Note - `SHOW PROCEDURE CODE': show-procedure-code. statements are not - present in nondebug builds, but attempting to use them resulted in - a `syntax error' message. Now the error message indicates that the - statements are disabled and that you must use a debug build. (Bug - #33637) + * A `COMMENT' longer than 64 characters caused *Note `CREATE + PROCEDURE': create-procedure. to fail. (Bug #34197) * The `LAST_DAY()' and `MAKEDATE()' functions could return `NULL', but the result metadata indicated `NOT NULL'. Thanks to Hiromichi @@ -242347,31 +245869,21 @@ reference to it still appeared in the *Note `mysql.server': mysql-server. script. (Bug #33472) - * There was a race condition between the event scheduler and the - server shutdown thread. (Bug #32771) - - * When an `InnoDB' tablespace filled up, an error was logged to the - client, but not to the error log. Also, the error message was - misleading and did not indicate the real source of the problem. - (Bug #31183) + * For its warning count, the *Note `mysql_info()': mysql-info. C API + function could print the number of truncated data items rather + than the number of warnings. (Bug #34898) - * *Note `ALTER TABLE': alter-table. statements that added a column - and added a nonpartial index on the column failed to add the index. - (Bug #31031) + * Privileges for *Note `SHOW CREATE VIEW': show-create-view. were + not being checked correctly. (Bug #35996) * For `const' tables that were optimized away, *Note `EXPLAIN EXTENDED': explain. displayed them in the `FROM' clause. Now they are not displayed. If all tables are optimized away, `FROM DUAL' is displayed. (Bug #30302) - * There were cases where string-to-number conversions would produce - warnings for *Note `CHAR': char. values but not for *Note - `VARCHAR': char. values. (Bug #28299) - - * In *Note `mysql': mysql, using `Control+C' to kill the current - query resulted in a `ERROR 1053 (08S01): Server shutdown in - progress" message' if the query was waiting for a lock. (Bug - #28141) + * Executing *Note `SHOW MASTER LOGS': show-binary-logs. as a + prepared statement without binary logging enabled caused a crash + for debug builds. (Bug #34741) * When building MySQL on Windows from source, the `WITH_BERKELEY_STORAGE_ENGINE' option would fail to configure @@ -242381,10 +245893,19 @@ database') if *Note `DROP DATABASE': drop-database. for that database failed. (Bug #26704) + * There were cases where string-to-number conversions would produce + warnings for *Note `CHAR': char. values but not for *Note + `VARCHAR': char. values. (Bug #28299) + * *Note `DROP TABLE': drop-table. for `INFORMATION_SCHEMA' tables produced an `Unknown table' error rather than the more appropriate `Access denied'. (Bug #24062) + * In *Note `mysql': mysql, using `Control+C' to kill the current + query resulted in a `ERROR 1053 (08S01): Server shutdown in + progress" message' if the query was waiting for a lock. (Bug + #28141) + * `SELECT COUNT(DISTINCT)' was slow compared with `SELECT DISTINCT'. Now the server can use loose index scan for certain forms of aggregate functions that use `DISTINCT'. See *Note @@ -242417,6 +245938,7 @@ * Menu: +* connector-odbc-news-5-1-10:: Changes in MySQL Connector/ODBC 5.1.10 (02 February 2012) * connector-odbc-news-5-1-9:: Changes in MySQL Connector/ODBC 5.1.9 (06 October 2011) * connector-odbc-news-5-1-8:: Changes in MySQL Connector/ODBC 5.1.8 (07 November 2010) * connector-odbc-news-5-1-7:: Changes in MySQL Connector/ODBC 5.1.7 (24 August 2010) @@ -242429,9 +245951,26 @@ * connector-odbc-news-5-1-0:: Changes in MySQL Connector/ODBC 5.1.0 (10 September 2007)  -File: manual.info, Node: connector-odbc-news-5-1-9, Next: connector-odbc-news-5-1-8, Prev: connector-odbc-news-5-1-x, Up: connector-odbc-news-5-1-x +File: manual.info, Node: connector-odbc-news-5-1-10, Next: connector-odbc-news-5-1-9, Prev: connector-odbc-news-5-1-x, Up: connector-odbc-news-5-1-x + +D.2.1.1 Changes in MySQL Connector/ODBC 5.1.10 (02 February 2012) +................................................................. + +*Bugs Fixed* + + * `SQLFetch' has to return error if indicator pointer is `NULL' for + `NULL' value. (Bug #13542600) + + * In some cases, a `TIMESTAMP' field could be described as + `SQL_NO_NULLS'. (Bug #13532987) + + * A failure on one statement causes another statement to fail. (Bug + #13097201, Bug #62657) + + +File: manual.info, Node: connector-odbc-news-5-1-9, Next: connector-odbc-news-5-1-8, Prev: connector-odbc-news-5-1-10, Up: connector-odbc-news-5-1-x -D.2.1.1 Changes in MySQL Connector/ODBC 5.1.9 (06 October 2011) +D.2.1.2 Changes in MySQL Connector/ODBC 5.1.9 (06 October 2011) ............................................................... Only the source code and Windows binaries are available with this @@ -242442,6 +245981,7 @@ 64-bit support. *Pluggable Authentication Notes* + * The binaries for this distribution of Connector/ODBC can now connect to MySQL server accounts that use the PAM or Windows Native Authentication Plugins for authentication. See *Note @@ -242488,7 +246028,7 @@  File: manual.info, Node: connector-odbc-news-5-1-8, Next: connector-odbc-news-5-1-7, Prev: connector-odbc-news-5-1-9, Up: connector-odbc-news-5-1-x -D.2.1.2 Changes in MySQL Connector/ODBC 5.1.8 (07 November 2010) +D.2.1.3 Changes in MySQL Connector/ODBC 5.1.8 (07 November 2010) ................................................................ *Functionality Added or Changed* @@ -242498,6 +246038,21 @@ *Bugs Fixed* + * When used after a call to `SQLTables()', `SQLRowCount()' did not + return the correct value. (Bug #55870) + + * When attempting to install the latest Connector/ODBC 5.1.6 on + Windows using the MSI, with an existing 5.1.x version already + installed, the following error was generated: + + Another version of this product is already installed. Installation of this version + cannot continue. To configure or remove the existing version of this product, use + Add/Remove Programs on the Control Panel. + + Also, the version number displayed in the ODBC Data Source + Administrator/Drivers tab did not get updated when removing or + installing a new version of 5.1.x. (Bug #54314) + * For some procedure and parameter combinations `SQLProcedureColumns()' did not work correctly. For example, it could not return records for an existing procedure with correct @@ -242507,6 +246062,13 @@ example, it returned `VARCHAR(20)' instead of `VARCHAR'. (Bug #57182) + * After installing MySQL Connector/ODBC, the system DSN created + could not be configured or deleted. An error dialog was displayed, + showing the error message `Invalid attribute string'. + + In this case the problem was due to the fact that the driver could + not parse the NULL-separated connection string. (Bug #56233) + * The MySQL Connector/ODBC MSI installer did not set the `InstallLocation' value in the Microsoft Windows registry. (Bug #56978) @@ -242528,32 +246090,10 @@ `SQLExecute()' the driver ran `SET @@sql_select_limit=1', which limited the resultset to just one row. (Bug #56677) - * After installing MySQL Connector/ODBC, the system DSN created - could not be configured or deleted. An error dialog was displayed, - showing the error message `Invalid attribute string'. - - In this case the problem was due to the fact that the driver could - not parse the NULL-separated connection string. (Bug #56233) - - * When used after a call to `SQLTables()', `SQLRowCount()' did not - return the correct value. (Bug #55870) - - * When attempting to install the latest Connector/ODBC 5.1.6 on - Windows using the MSI, with an existing 5.1.x version already - installed, the following error was generated: - - Another version of this product is already installed. Installation of this version - cannot continue. To configure or remove the existing version of this product, use - Add/Remove Programs on the Control Panel. - - Also, the version number displayed in the ODBC Data Source - Administrator/Drivers tab did not get updated when removing or - installing a new version of 5.1.x. (Bug #54314) -  File: manual.info, Node: connector-odbc-news-5-1-7, Next: connector-odbc-news-5-1-6, Prev: connector-odbc-news-5-1-8, Up: connector-odbc-news-5-1-x -D.2.1.3 Changes in MySQL Connector/ODBC 5.1.7 (24 August 2010) +D.2.1.4 Changes in MySQL Connector/ODBC 5.1.7 (24 August 2010) .............................................................. *Functionality Added or Changed* @@ -242581,15 +246121,6 @@ including terminating null byte. It should not have included the null byte. (Bug #54206) - * The `SQLColumns' function returned the incorrect transfer octet - length into the column `BUFFER_LENGTH' for `DECIMAL' type. (Bug - #53235) - - * `SQLForeignKeys()' did not return the correct information. The - list of foreign keys in other tables should not have included - foreign keys that point to unique constraints in the specified - table. (Bug #51422) - * When executing the `SQLProcedureColumns()' ODBC function, the driver reported the following error: @@ -242609,37 +246140,44 @@ (Bug #50195) - * MySQL Connector/ODBC manually added a `LIMIT' clause to the end of - certain SQL statements, causing errors for statements that - contained code that should be positioned after the `LIMIT' clause. - (Bug #49726) - - * If `NO_BACKSLASH_ESCAPES' mode was used on a server, escaping - binary data led to server query parsing errors. (Bug #49029) - - * Bulk upload operations did not work for queries that used - parameters. (Bug #48310) + * `SQLForeignKeys()' did not return the correct information. The + list of foreign keys in other tables should not have included + foreign keys that point to unique constraints in the specified + table. (Bug #51422) * Retrieval of the current catalog at the moment when a connection was not ready, such as when the connection had been broken or when not all pending results had been processed, resulted in the application crashing. (Bug #46910) - * Describing a view or table caused SQLPrepare to prefetch table - data. For large tables this created an intolerable performance hit. - (Bug #46411) - * If an application was invoked by the root user, `SQLDriverConnect()' was not able to use the username and password in the connection string to connect to the database. (Bug #45378) - * Calling `SQLColAttribute' on a date column did not set - `SQL_DESC_DATETIME_INTERVAL_CODE'. `SQLColAttribute' returned - `SQL_SUCCESS' but the integer passed in was not set to - `SQL_CODE_DATE'. (Bug #44576) + * The `SQLColumns' function returned the incorrect transfer octet + length into the column `BUFFER_LENGTH' for `DECIMAL' type. (Bug + #53235) - * Conversions for many types were missing from the file - `driver/info.c'. (Bug #43855) + * Describing a view or table caused `SQLPrepare' to prefetch table + data. For large tables this created an intolerable performance hit. + (Bug #46411) + + * Bulk upload operations did not work for queries that used + parameters. (Bug #48310) + + * MySQL Connector/ODBC manually added a `LIMIT' clause to the end of + certain SQL statements, causing errors for statements that + contained code that should be positioned after the `LIMIT' clause. + (Bug #49726) + + * If `NO_BACKSLASH_ESCAPES' mode was used on a server, escaping + binary data led to server query parsing errors. (Bug #49029) + + * Executing `SQLForeignKeys' to get imported foreign keys for tables + took an excessively long time. For example, getting imported + foreign keys for 252 tables to determine parent/child dependencies + took about 3 minutes and 14 seconds for the 5.1.5 driver, whereas + it took 3 seconds for the 3.5x.x driver. (Bug #39562) * The `SQLTables()' function required approximately two to four minutes to return the list of 400 tables in a database. The `SHOW @@ -242650,15 +246188,17 @@ nature of the result set (the row count was re-calculated every time), impacting performance further. (Bug #43664) - * Executing `SQLForeignKeys' to get imported foreign keys for tables - took an excessively long time. For example, getting imported - foreign keys for 252 tables to determine parent/child dependencies - took about 3 minutes and 14 seconds for the 5.1.5 driver, whereas - it took 3 seconds for the 3.5x.x driver. (Bug #39562) - * `SQLDescribeCol' returned incorrect column definitions for `SQLTables' result. (Bug #37621) + * Calling `SQLColAttribute' on a date column did not set + `SQL_DESC_DATETIME_INTERVAL_CODE'. `SQLColAttribute' returned + `SQL_SUCCESS' but the integer passed in was not set to + `SQL_CODE_DATE'. (Bug #44576) + + * Conversions for many types were missing from the file + `driver/info.c'. (Bug #43855) + * When opening `ADO.Recordset' from Microsoft Access 2003, a run-time error occurred: @@ -242666,24 +246206,24 @@ (Bug #36996) - * `SQLPrimaryKeysW' returned mangled strings for table name, column - name and primary key name. (Bug #36441) - * On Windows, the SOCKET parameter to the DSN was used as the named pipe name to connect to. This was not exposed in the Windows setup GUI. (Bug #34477) + * Option for handling bad dates was not available in the GUI. (Bug + #30539) + + * `SQLPrimaryKeysW' returned mangled strings for table name, column + name and primary key name. (Bug #36441) + * MySQL Connector/ODBC returned a value of zero for a column with a non-zero value. This happened when the column had a data type of `BIT', and any numeric type was used in `SQLBindCol'. (Bug #32821) - * Option for handling bad dates was not available in the GUI. (Bug - #30539) -  File: manual.info, Node: connector-odbc-news-5-1-6, Next: connector-odbc-news-5-1-5, Prev: connector-odbc-news-5-1-7, Up: connector-odbc-news-5-1-x -D.2.1.4 Changes in MySQL Connector/ODBC 5.1.6 (09 November 2009) +D.2.1.5 Changes in MySQL Connector/ODBC 5.1.6 (09 November 2009) ................................................................ *Functionality Added or Changed* @@ -242696,6 +246236,28 @@ *Bugs Fixed* + * MySQL Connector/ODBC overwrote the query log. MySQL Connector/ODBC + was changed to append the log, rather than overwrite it. (Bug + #44965) + + * Inserting a new record using `SQLSetPos' did not correspond to the + database name specified in the `SELECT' statement when querying + tables from databases other than the current one. + + `SQLSetPos' attempted to do the `INSERT' in the current database, + but finished with a `SQL_ERROR' result and `Table does not exist' + message from MySQL Server. (Bug #41946) + + * Binding `SQL_C_BIT' to an `INTEGER' column did not work. + + The `sql_get_data()' function only worked correctly for `BOOLEAN' + columns that corresponded to `SQL_C_BIT' buffers. (Bug #39644) + + * In Access 97, when linking a table containing a `LONGTEXT' or + `TEXT' field to a MySQL Connector/ODBC DSN, the fields were shown + as `TEXT(255)' in the table structure. Data was therefore + truncated to 255 characters. (Bug #40932) + * An error randomly occurred on Windows 2003 Servers (German language Version) serving classic ASP scripts on IIS6 MDAC version 2.8 SP2 on Windows 2003 SP2. The application connected to MySQL @@ -242725,50 +246287,23 @@ (Bug #44971) - * MySQL Connector/ODBC overwrote the query log. MySQL Connector/ODBC - was changed to append the log, rather than overwrite it. (Bug - #44965) - - * MySQL Connector/ODBC failed to build with MySQL 5.1.30 due to - incorrect use of the data type `bool'. (Bug #42120) - - * Inserting a new record using `SQLSetPos' did not correspond to the - database name specified in the `SELECT' statement when querying - tables from databases other than the current one. - - `SQLSetPos' attempted to do the `INSERT' in the current database, - but finished with a `SQL_ERROR' result and `Table does not exist' - message from MySQL Server. (Bug #41946) - - * Calling `SQLDescribeCol()' with a NULL buffer and nonzero buffer - length caused a crash. (Bug #41942) - - * MySQL Connector/ODBC updated some fields with random values, - rather than with `NULL'. (Bug #41256) - * When a column of type `DECIMAL' containing `NULL' was accessed, MySQL Connector/ODBC returned a 0 rather than a `NULL'. (Bug #41081) - * In Access 97, when linking a table containing a `LONGTEXT' or - `TEXT' field to a MySQL Connector/ODBC DSN, the fields were shown - as `TEXT(255)' in the table structure. Data was therefore - truncated to 255 characters. (Bug #40932) - - * Calling `SQLDriverConnect()' with a `NULL' pointer for the output - buffer caused a crash if `SQL_DRIVER_NOPROMPT' was also specified: - - SQLDriverConnect(dbc, NULL, "DSN=myodbc5", SQL_NTS, NULL, 0, NULL, SQL_DRIVER_NOPROMPT) + * MySQL Connector/ODBC updated some fields with random values, + rather than with `NULL'. (Bug #41256) - (Bug #40316) + * Calling `SQLDescribeCol()' with a NULL buffer and nonzero buffer + length caused a crash. (Bug #41942) - * Setting the ADO `Recordset' decimal field value to 44.56 resulted - in an incorrect value of 445600.0000 being stored when the record - set was updated with the `Update' method. (Bug #39961) + * MySQL Connector/ODBC failed to build with MySQL 5.1.30 due to + incorrect use of the data type `bool'. (Bug #42120) - * The `SQLTablesW' API gave incorrect results. For example, table - name and table type were returned as `NULL' rather than as the - correct values. (Bug #39957) + * The connection string option `Enable Auto-reconnect' did not work. + When the connection failed, it could not be restored, and the + errors generated were the same as if the option had not been + selected. (Bug #37179) * Connector/ODBC would crash when a character set was being used on the server that was not supported in the client, for example @@ -242779,19 +246314,6 @@ The fix causes Connector/ODBC to return an error message instead of crashing. (Bug #39831) - * Binding `SQL_C_BIT' to an `INTEGER' column did not work. - - The `sql_get_data()' function only worked correctly for `BOOLEAN' - columns that corresponded to `SQL_C_BIT' buffers. (Bug #39644) - - * When the SQLTables method was called with `NULL' passed as the - `tablename' parameter, only one row in the `resultset', with table - name of `NULL' was returned, instead of all tables for the given - database. (Bug #39561) - - * The `SQLGetInfo()' function returned 0 for `SQL_CATALOG_USAGE' - information. (Bug #39560) - * Connector/ODBC 5.1.5 was not able to connect if the connection string parameters contained spaces or tab symbols. For example, if the `SERVER' parameter was specified as `SERVER= localhost' @@ -242802,10 +246324,20 @@ (Bug #39085) - * The pointer passed to the SQLDriverConnect method to retrieve the - output connection string length was one greater than it should - have been due to the inclusion of the NULL terminator. (Bug - #38949) + * Setting the ADO `Recordset' decimal field value to 44.56 resulted + in an incorrect value of 445600.0000 being stored when the record + set was updated with the `Update' method. (Bug #39961) + + * The `SQLTablesW' API gave incorrect results. For example, table + name and table type were returned as `NULL' rather than as the + correct values. (Bug #39957) + + * Calling `SQLDriverConnect()' with a `NULL' pointer for the output + buffer caused a crash if `SQL_DRIVER_NOPROMPT' was also specified: + + SQLDriverConnect(dbc, NULL, "DSN=myodbc5", SQL_NTS, NULL, 0, NULL, SQL_DRIVER_NOPROMPT) + + (Bug #40316) * Data-at-execution parameters were not supported during positioned update. This meant updating a long text field with a cursor update @@ -242814,13 +246346,21 @@ database, even when `column_name' had been assigned a valid nonnull string. (Bug #37649) + * The pointer passed to the SQLDriverConnect method to retrieve the + output connection string length was one greater than it should + have been due to the inclusion of the NULL terminator. (Bug + #38949) + * The SQLDriverConnect method truncated the `OutputConnectionString' parameter to 52 characters. (Bug #37278) - * The connection string option `Enable Auto-reconnect' did not work. - When the connection failed, it could not be restored, and the - errors generated were the same as if the option had not been - selected. (Bug #37179) + * The `SQLGetInfo()' function returned 0 for `SQL_CATALOG_USAGE' + information. (Bug #39560) + + * When the SQLTables method was called with `NULL' passed as the + `tablename' parameter, only one row in the `resultset', with table + name of `NULL' was returned, instead of all tables for the given + database. (Bug #39561) * Insertion of data into a `LONGTEXT' table field did not work. If such an attempt was made the corresponding field would be found to @@ -242859,11 +246399,15 @@  File: manual.info, Node: connector-odbc-news-5-1-5, Next: connector-odbc-news-5-1-4, Prev: connector-odbc-news-5-1-6, Up: connector-odbc-news-5-1-x -D.2.1.5 Changes in MySQL Connector/ODBC 5.1.5 (18 August 2008) +D.2.1.6 Changes in MySQL Connector/ODBC 5.1.5 (18 August 2008) .............................................................. *Bugs Fixed* + * The connector failed to prompt for additional information required + to create a DSN-less connection from an application such as + Microsoft Excel. (Bug #37254) + * ODBC *Note `TIMESTAMP': datetime. string format is not handled properly by Connector/ODBC. When passing a *Note `TIMESTAMP': datetime. or *Note `DATE': datetime. to Connector/ODBC, in the @@ -242871,31 +246415,27 @@ represents this is copied once into the SQL statement, and then added again, as an escaped string. (Bug #37342) - * The connector failed to prompt for additional information required - to create a DSN-less connection from an application such as - Microsoft Excel. (Bug #37254) + * Assigning a string longer than 67 characters to the `TableType' + parameter resulted in a buffer overrun when the `SQLTables()' + function was called. (Bug #36275) + + * After having successfully established a connection, a crash occurs + when calling `SQLProcedures()' followed by `SQLFreeStmt()', using + the ODBC C API. (Bug #36069) * `SQLDriverConnect' does not return `SQL_NO_DATA' on cancel. The ODBC documentation specifies that this method should return `SQL_NO_DATA' when the user cancels the dialog to connect. The connector, however, returns `SQL_ERROR'. (Bug #36293) - * Assigning a string longer than 67 characters to the `TableType' - parameter resulted in a buffer overrun when the `SQLTables()' - function was called. (Bug #36275) - * The ODBC connector randomly uses logon information stored in `odbc-profile', or prompts the user for connection information and ignores any settings stored in `odbc-profile'. (Bug #36203) - * After having successfully established a connection, a crash occurs - when calling `SQLProcedures()' followed by `SQLFreeStmt()', using - the ODBC C API. (Bug #36069) -  File: manual.info, Node: connector-odbc-news-5-1-4, Next: connector-odbc-news-5-1-3, Prev: connector-odbc-news-5-1-5, Up: connector-odbc-news-5-1-x -D.2.1.6 Changes in MySQL Connector/ODBC 5.1.4 (15 April 2008) +D.2.1.7 Changes in MySQL Connector/ODBC 5.1.4 (15 April 2008) ............................................................. *Bugs Fixed* @@ -242903,25 +246443,25 @@ * Wrong result obtained when using `sum()' on a `decimal(8,2)' field type. (Bug #35920) + * The driver crashes ODBC Administrator on attempting to add a new + DSN. (Bug #32057) + * The driver installer could not create a new DSN if many other drivers were already installed. (Bug #35776) + * On Linux, `SQLGetDiagRec()' returned `SQL_SUCCESS' in cases when + it should have returned `SQL_NO_DATA'. (Bug #33910) + * The `SQLColAttribute()' function returned `SQL_TRUE' when querying the `SQL_DESC_FIXED_PREC_SCALE (SQL_COLUMN_MONEY)' attribute of a *Note `DECIMAL': numeric-types. column. Previously, the correct value of `SQL_FALSE' was returned; this is now again the case. (Bug #35581) - * On Linux, `SQLGetDiagRec()' returned `SQL_SUCCESS' in cases when - it should have returned `SQL_NO_DATA'. (Bug #33910) - - * The driver crashes ODBC Administrator on attempting to add a new - DSN. (Bug #32057) -  File: manual.info, Node: connector-odbc-news-5-1-3, Next: connector-odbc-news-5-1-2, Prev: connector-odbc-news-5-1-4, Up: connector-odbc-news-5-1-x -D.2.1.7 Changes in MySQL Connector/ODBC 5.1.3 (26 March 2008) +D.2.1.8 Changes in MySQL Connector/ODBC 5.1.3 (26 March 2008) ............................................................. *Platform-Specific Notes* @@ -242929,15 +246469,15 @@ * *Important Change*: You must uninstall previous 5.1.x editions of MySQL Connector/ODBC before installing the new version. - * The HP-UX 11.23 IA64 binary package does not include the GUI bits - because of problems building Qt on that platform. + * The installer for 64-bit Windows installs both the 32-bit and + 64-bit driver. Please note that Microsoft does not yet supply a + 64-bit bridge from ADO to ODBC. * There is no binary package for Mac OS X on 64-bit PowerPC because Apple does not currently provide a 64-bit PowerPC version of iODBC. - * The installer for 64-bit Windows installs both the 32-bit and - 64-bit driver. Please note that Microsoft does not yet supply a - 64-bit bridge from ADO to ODBC. + * The HP-UX 11.23 IA64 binary package does not include the GUI bits + because of problems building Qt on that platform. *Bugs Fixed* @@ -242948,32 +246488,32 @@ certificate during connection, use the `SSLVERIFY' DSN parameter, setting the value to 1. (Bug #29955, Bug #34648) - * Inserting characters to a UTF8 table using surrogate pairs would - fail and insert invalid data. (Bug #34672) - - * Installation of MySQL Connector/ODBC would fail because it was - unable to uninstall a previous installed version. The file being - requested would match an older release version than any installed - version of the connector. (Bug #34522) + * Microsoft Access would be unable to use + `DBEngine.RegisterDatabase' to create a DSN using the MySQL + Connector/ODBC driver. (Bug #33825) * Using `SqlGetData' in combination with `SQL_C_WCHAR' would return overlapping data. (Bug #34429) - * Descriptor records were not cleared correctly when calling - `SQLFreeStmt(SQL_UNBIND)'. (Bug #34271) + * Inserting characters to a UTF8 table using surrogate pairs would + fail and insert invalid data. (Bug #34672) + + * MySQL Connector/ODBC erroneously reported that it supported the + `CAST()' and `CONVERT()' ODBC functions for parsing values in SQL + statements, which could lead to bad SQL generation during a query. + (Bug #33808) * The dropdown selection for databases on a server when creating a DSN was too small. The list size now automatically adjusts up to a maximum size of 20 potential databases. (Bug #33918) - * Microsoft Access would be unable to use - `DBEngine.RegisterDatabase' to create a DSN using the MySQL - Connector/ODBC driver. (Bug #33825) + * Installation of MySQL Connector/ODBC would fail because it was + unable to uninstall a previous installed version. The file being + requested would match an older release version than any installed + version of the connector. (Bug #34522) - * MySQL Connector/ODBC erroneously reported that it supported the - `CAST()' and `CONVERT()' ODBC functions for parsing values in SQL - statements, which could lead to bad SQL generation during a query. - (Bug #33808) + * Descriptor records were not cleared correctly when calling + `SQLFreeStmt(SQL_UNBIND)'. (Bug #34271) * Using a linked table in Access 2003 where the table has a *Note `BIGINT': numeric-types. column as the first column in the table, @@ -242986,7 +246526,7 @@  File: manual.info, Node: connector-odbc-news-5-1-2, Next: connector-odbc-news-5-1-1, Prev: connector-odbc-news-5-1-3, Up: connector-odbc-news-5-1-x -D.2.1.8 Changes in MySQL Connector/ODBC 5.1.2 (13 February 2008) +D.2.1.9 Changes in MySQL Connector/ODBC 5.1.2 (13 February 2008) ................................................................ MySQL Connector/ODBC 5.1.2-beta, a new version of the ODBC driver for @@ -243002,42 +246542,45 @@ *Platform-Specific Notes* - * The HP-UX 11.23 IA64 binary package does not include the GUI bits - because of problems building Qt on that platform. + * Due to differences with the installation process used on Windows + and potential registry corruption, it is recommended that + uninstall any existing versions of MySQL Connector/ODBC 5.1.x + before upgrading. - * There is no binary package for Mac OS X on 64-bit PowerPC because - Apple does not currently provide a 64-bit PowerPC version of iODBC. + References: See also Bug #34571. * The installer for 64-bit Windows installs both the 32-bit and 64-bit driver. Please note that Microsoft does not yet supply a 64-bit bridge from ADO to ODBC. - * Due to differences with the installation process used on Windows - and potential registry corruption, it is recommended that - uninstall any existing versions of MySQL Connector/ODBC 5.1.x - before upgrading. + * There is no binary package for Mac OS X on 64-bit PowerPC because + Apple does not currently provide a 64-bit PowerPC version of iODBC. - See also Bug #34571. + * The HP-UX 11.23 IA64 binary package does not include the GUI bits + because of problems building Qt on that platform. *Functionality Added or Changed* * Explicit descriptors are implemented. (Bug #32064) - * A full implementation of SQLForeignKeys based on the information - available from INFORMATION_SCHEMA in 5.0 and later versions of the - server has been implemented. - - * Changed `SQL_ATTR_PARAMSET_SIZE' to return an error until support - for it is implemented. + * `SQLForeignKeys' uses `INFORMATION_SCHEMA' when it is available on + the server, which enables more complete information to be returned. * Disabled `MYSQL_OPT_SSL_VERIFY_SERVER_CERT' when using an SSL connection. - * `SQLForeignKeys' uses `INFORMATION_SCHEMA' when it is available on - the server, which enables more complete information to be returned. + * Changed `SQL_ATTR_PARAMSET_SIZE' to return an error until support + for it is implemented. + + * A full implementation of SQLForeignKeys based on the information + available from INFORMATION_SCHEMA in 5.0 and later versions of the + server has been implemented. *Bugs Fixed* + * Specifying a nonexistent database name within the GUI dialog would + result in an empty list, not an error. (Bug #33615) + * The `SSLCIPHER' option would be incorrectly recorded within the SSL configuration on Windows. (Bug #33897) @@ -243047,19 +246590,16 @@ within the DSN when the option was not configured as the last parameter within the DSN. (Bug #33822) - * Specifying a nonexistent database name within the GUI dialog would - result in an empty list, not an error. (Bug #33615) - * When deleting rows from a static cursor, the cursor position would be incorrectly reported. (Bug #33388) - * `SQLGetInfo()' reported characters for `SQL_SPECIAL_CHARACTERS' - that were not encoded correctly. (Bug #33130) - * Retrieving data from a *Note `BLOB': blob. column would fail within `SQLGetData'when the target data type was `SQL_C_WCHAR' due to incorrect handling of the character buffer. (Bug #32684) + * `SQLGetInfo()' reported characters for `SQL_SPECIAL_CHARACTERS' + that were not encoded correctly. (Bug #33130) + * Renaming an existing DSN entry would create a new entry with the new name without deleting the old entry. (Bug #31165) @@ -243067,9 +246607,6 @@ UTF8 data would result in the wrong information being returned during a query. (Bug #28617) - * `SQLForeignKeys' would return an empty string for the schema - columns instead of `NULL'. (Bug #19923) - * When accessing column data, `FLAG_COLUMN_SIZE_S32' did not limit the octet length or display size reported for fields, causing problems with Microsoft Visual FoxPro. @@ -243090,6 +246627,9 @@ (Bug #12805, Bug #30890) + * `SQLForeignKeys' would return an empty string for the schema + columns instead of `NULL'. (Bug #19923) + * Dynamic cursors on statements with parameters were not supported. (Bug #11846) @@ -243103,8 +246643,8 @@  File: manual.info, Node: connector-odbc-news-5-1-1, Next: connector-odbc-news-5-1-0, Prev: connector-odbc-news-5-1-2, Up: connector-odbc-news-5-1-x -D.2.1.9 Changes in MySQL Connector/ODBC 5.1.1 (13 December 2007) -................................................................ +D.2.1.10 Changes in MySQL Connector/ODBC 5.1.1 (13 December 2007) +................................................................. MySQL Connector/ODBC 5.1.1-beta, a new version of the ODBC driver for the MySQL database management system, has been released. This release @@ -243125,113 +246665,113 @@ *Platform-Specific Notes* - * The HP-UX 11.23 IA64 binary package does not include the GUI bits - because of problems building Qt on that platform. + * Due to differences with the installation process used on Windows + and potential registry corruption, it is recommended that + uninstall any existing versions of MySQL Connector/ODBC 5.1.x + before upgrading. - * There is no binary package for Mac OS X on 64-bit PowerPC because - Apple does not currently provide a 64-bit PowerPC version of iODBC. + References: See also Bug #34571. * The installer for 64-bit Windows installs both the 32-bit and 64-bit driver. Please note that Microsoft does not yet supply a 64-bit bridge from ADO to ODBC. - * Due to differences with the installation process used on Windows - and potential registry corruption, it is recommended that - uninstall any existing versions of MySQL Connector/ODBC 5.1.x - before upgrading. + * There is no binary package for Mac OS X on 64-bit PowerPC because + Apple does not currently provide a 64-bit PowerPC version of iODBC. - See also Bug #34571. + * The HP-UX 11.23 IA64 binary package does not include the GUI bits + because of problems building Qt on that platform. *Functionality Added or Changed* - * *Incompatible Change*: Replaced myodbc3i (now myodbc-installer) - with MySQL Connector/ODBC 5.0 version. + * *Incompatible Change*: Do not permit `SET NAMES' in initial + statement and in executed statements. * *Incompatible Change*: Removed monitor (myodbc3m) and dsn-editor (myodbc3c). - * *Incompatible Change*: Do not permit `SET NAMES' in initial - statement and in executed statements. + * *Incompatible Change*: Replaced myodbc3i (now myodbc-installer) + with MySQL Connector/ODBC 5.0 version. + + * Added MSI installer for Windows 64-bit. (Bug #31510) * A wrapper for the `SQLGetPrivateProfileStringW()' function, which is required for Unicode support, has been created. This function is missing from the unixODBC driver manager. (Bug #32685) - * Added MSI installer for Windows 64-bit. (Bug #31510) - * Implemented support for `SQLCancel()'. (Bug #15601) - * Added support for `SQL_NUMERIC_STRUCT'. (Bug #3028, Bug #24920) - - * Removed nonthreadsafe configuration of the driver. The driver is - now always built against the threadsafe version of libmysql. - - * Implemented native Windows setup library + * The Windows installer now places files in a subdirectory of the + `Program Files' directory instead of the Windows system directory. * Replaced the internal library which handles creation and loading of DSN information. The new library, which was originally a part of MySQL Connector/ODBC 5.0, supports Unicode option values. - * The Windows installer now places files in a subdirectory of the - `Program Files' directory instead of the Windows system directory. + * Implemented native Windows setup library -*Bugs Fixed* + * Added support for `SQL_NUMERIC_STRUCT'. (Bug #3028, Bug #24920) - * The `SET NAMES' statement has been disabled because it causes - problems in the ODBC driver when determining the current client - character set. (Bug #32596) + * Removed nonthreadsafe configuration of the driver. The driver is + now always built against the threadsafe version of libmysql. - * `SQLDescribeColW' returned UTF-8 column as `SQL_VARCHAR' instead of - `SQL_WVARCHAR'. (Bug #32161) +*Bugs Fixed* * ADO was unable to open record set using dynamic cursor. (Bug #32014) - * ADO applications would not open a `RecordSet' that contained a - *Note `DECIMAL': numeric-types. field. (Bug #31720) - - * Memory usage would increase considerably. (Bug #31115) - - * SQL statements are limited to 64KB. (Bug #30983, Bug #30984) + * `SQLDescribeColW' returned UTF-8 column as `SQL_VARCHAR' instead of + `SQL_WVARCHAR'. (Bug #32161) * `SQLSetPos' with `SQL_DELETE' advances dynamic cursor incorrectly. (Bug #29765) + * ADO applications would not open a `RecordSet' that contained a + *Note `DECIMAL': numeric-types. field. (Bug #31720) + * Using an ODBC prepared statement with bound columns would produce an empty result set when called immediately after inserting a row into a table. (Bug #29239) - * ADO Not possible to update a client side cursor. (Bug #27961) + * The `SET NAMES' statement has been disabled because it causes + problems in the ODBC driver when determining the current client + character set. (Bug #32596) + + * Memory usage would increase considerably. (Bug #31115) + + * SQL statements are limited to 64KB. (Bug #30983, Bug #30984) * Recordset `Update()' fails when using `adUseClient' cursor. (Bug #26985) + * ADO Not possible to update a client side cursor. (Bug #27961) + * MySQL Connector/ODBC would fail to connect to the server if the password contained certain characters, including the semicolon and other punctuation marks. (Bug #16178) - * Fixed `SQL_ATTR_PARAM_BIND_OFFSET', and fixed row offsets to work - with updatable cursors. + * Diagnostics were not correctly cleared on connection and + environment handles. - * `SQLSetConnectAttr()' did not clear previous errors, possibly - confusing `SQLError()'. + * `SQLCopyDesc()' did not correctly copy all records. - * `SQLError()' incorrectly cleared the error information, making it - unavailable from subsequent calls to `SQLGetDiagRec()'. + * `SQL_ODBC_SQL_CONFORMANCE' was not handled by `SQLGetInfo()'. * NULL pointers passed to `SQLGetInfo()' could result in a crash. - * `SQL_ODBC_SQL_CONFORMANCE' was not handled by `SQLGetInfo()'. + * `SQLError()' incorrectly cleared the error information, making it + unavailable from subsequent calls to `SQLGetDiagRec()'. - * `SQLCopyDesc()' did not correctly copy all records. + * `SQLSetConnectAttr()' did not clear previous errors, possibly + confusing `SQLError()'. - * Diagnostics were not correctly cleared on connection and - environment handles. + * Fixed `SQL_ATTR_PARAM_BIND_OFFSET', and fixed row offsets to work + with updatable cursors.  File: manual.info, Node: connector-odbc-news-5-1-0, Prev: connector-odbc-news-5-1-1, Up: connector-odbc-news-5-1-x -D.2.1.10 Changes in MySQL Connector/ODBC 5.1.0 (10 September 2007) +D.2.1.11 Changes in MySQL Connector/ODBC 5.1.0 (10 September 2007) .................................................................. This release is the first of the new 5.1 series and is suitable for use @@ -243248,28 +246788,28 @@ *Platform-Specific Notes* - * The HP-UX 11.23 IA64 binary package does not include the GUI bits - because of problems building Qt on that platform. - - * There is no binary package for Mac OS X on 64-bit PowerPC because - Apple does not currently provide a 64-bit PowerPC version of iODBC. - - * There are no installer packages for Microsoft Windows x64 Edition. - * Due to differences with the installation process used on Windows and potential registry corruption, it is recommended that uninstall any existing versions of MySQL Connector/ODBC 5.1.x before upgrading. - See also Bug #34571. + References: See also Bug #34571. + + * There are no installer packages for Microsoft Windows x64 Edition. + + * There is no binary package for Mac OS X on 64-bit PowerPC because + Apple does not currently provide a 64-bit PowerPC version of iODBC. + + * The HP-UX 11.23 IA64 binary package does not include the GUI bits + because of problems building Qt on that platform. *Functionality Added or Changed* - * Added support for Unicode functions (`SQLConnectW', etc). + * Added support for `SQL_C_WCHAR'. * Added descriptor support (`SQLGetDescField', `SQLGetDescRec', etc). - * Added support for `SQL_C_WCHAR'. + * Added support for Unicode functions (`SQLConnectW', etc).  File: manual.info, Node: connector-odbc-news-5-0-x, Next: connector-odbc-news-3-51-x, Prev: connector-odbc-news-5-1-x, Up: connector-odbc-news @@ -243319,28 +246859,28 @@ *Functionality Added or Changed* - * Added support for ODBC v2 statement options using attributes. - * Driver now builds and is partially tested under Linux with the iODBC driver manager. + * Added support for ODBC v2 statement options using attributes. + *Bugs Fixed* - * Connection string parsing for DSN-less connections could fail to - identify some parameters. (Bug #25316) + * Transaction support has been added and tested. (Bug #25045) * Updates of `MEMO' or *Note `TEXT': blob. columns from within Microsoft Access would fail. (Bug #25263) - * Transaction support has been added and tested. (Bug #25045) - * Internal function, `my_setpos_delete_ignore()' could cause a crash. (Bug #22796) - * Fixed occasional mis-handling of the `SQL_NUMERIC_C' type. + * Connection string parsing for DSN-less connections could fail to + identify some parameters. (Bug #25316) * Fixed the binding of certain integer types. + * Fixed occasional mis-handling of the `SQL_NUMERIC_C' type. +  File: manual.info, Node: connector-odbc-news-5-0-10, Next: connector-odbc-news-5-0-9, Prev: connector-odbc-news-5-0-11, Up: connector-odbc-news-5-0-x @@ -243356,12 +246896,12 @@ the whole data. Mainly used in Access when fetching very large text fields. (Bug #24876) - * Added initial unicode support in data and metadata. (Bug #24837) - * Added initial support for removing braces when calling stored procedures and retrieving result sets from procedure calls. (Bug #24485) + * Added initial unicode support in data and metadata. (Bug #24837) + * Added loose handling of retrieving some diagnostic data. (Bug #15782) @@ -243387,32 +246927,32 @@ *Functionality Added or Changed* - * Added support for column binding as SQL_NUMERIC_STRUCT. - * Added recognition of `SQL_C_SHORT' and `SQL_C_TINYINT' as C types. -*Bugs Fixed* + * Added support for column binding as SQL_NUMERIC_STRUCT. - * Fixed wildcard handling of and listing of catalogs and tables in - `SQLTables'. +*Bugs Fixed* - * Added limit of display size when requested using - `SQLColAttribute'/`SQL_DESC_DISPLAY_SIZE'. + * Fixed SQLGetData to clear the NULL indicator correctly during + multiple calls. - * Fixed buffer length return for SQLDriverConnect. + * Corrected retrieval multiple field types bit and blob/text. - * ODBC v2 behavior in driver now supports ODBC v3 date/time types - (since DriverManager maps them). + * Fixed statistics to fail if it couldn't be completed. * Catch use of `SQL_ATTR_PARAMSET_SIZE' and report error until we fully support. - * Fixed statistics to fail if it couldn't be completed. + * ODBC v2 behavior in driver now supports ODBC v3 date/time types + (since DriverManager maps them). - * Corrected retrieval multiple field types bit and blob/text. + * Fixed buffer length return for SQLDriverConnect. - * Fixed SQLGetData to clear the NULL indicator correctly during - multiple calls. + * Added limit of display size when requested using + `SQLColAttribute'/`SQL_DESC_DISPLAY_SIZE'. + + * Fixed wildcard handling of and listing of catalogs and tables in + `SQLTables'.  File: manual.info, Node: connector-odbc-news-5-0-8, Next: connector-odbc-news-5-0-7, Prev: connector-odbc-news-5-0-9, Up: connector-odbc-news-5-0-x @@ -243427,46 +246967,46 @@ *Functionality Added or Changed* - * Also made `SQL_DESC_NAME' only fill in the name if there was a - data pointer given, otherwise just the length. - - * Fixed display size to be length if max length isn't available. + * Wildcards now support escaped chars and underscore matching + (needed to link tables with underscores in access). * Made distinction between *Note `CHAR': char./*Note `BINARY': binary-varbinary. (and VAR versions). - * Wildcards now support escaped chars and underscore matching - (needed to link tables with underscores in access). + * Fixed display size to be length if max length isn't available. + + * Also made `SQL_DESC_NAME' only fill in the name if there was a + data pointer given, otherwise just the length. *Bugs Fixed* - * Fixed binding using `SQL_C_LONG'. + * Fixed string length to chars, not bytes, returned by SQLGetDiagRec. - * Fixed using wrong pointer for `SQL_MAX_DRIVER_CONNECTIONS' in - `SQLGetInfo'. + * Fix size return from `SQLDescribeCol'. - * Set default return to `SQL_SUCCESS' if nothing is done for - `SQLSpecialColumns'. + * Fixed type returned for `MYSQL_TYPE_LONG' to `SQL_INTEGER' instead + of `SQL_TINYINT'. - * Fixed MDiagnostic to use correct v2/v3 error codes. + * Fixed handling of numeric pointers in SQLColAttribute. - * Allow SQLDescribeCol to be called to retrieve the length of the - column name, but not the name itself. + * Updated retrieval of descriptor fields to use the right pointer + types. * Length now used when handling bind parameter (needed in particular for `SQL_WCHAR') - this enables updating char data in MS Access. - * Updated retrieval of descriptor fields to use the right pointer - types. + * Allow SQLDescribeCol to be called to retrieve the length of the + column name, but not the name itself. - * Fixed handling of numeric pointers in SQLColAttribute. + * Fixed MDiagnostic to use correct v2/v3 error codes. - * Fixed type returned for `MYSQL_TYPE_LONG' to `SQL_INTEGER' instead - of `SQL_TINYINT'. + * Set default return to `SQL_SUCCESS' if nothing is done for + `SQLSpecialColumns'. - * Fix size return from `SQLDescribeCol'. + * Fixed using wrong pointer for `SQL_MAX_DRIVER_CONNECTIONS' in + `SQLGetInfo'. - * Fixed string length to chars, not bytes, returned by SQLGetDiagRec. + * Fixed binding using `SQL_C_LONG'.  File: manual.info, Node: connector-odbc-news-5-0-7, Next: connector-odbc-news-5-0-6, Prev: connector-odbc-news-5-0-8, Up: connector-odbc-news-5-0-x @@ -243481,19 +247021,19 @@ *Functionality Added or Changed* - * Added support for `SQLStatistics' to `MYODBCShell'. - * Improved trace/log. + * Added support for `SQLStatistics' to `MYODBCShell'. + *Bugs Fixed* - * SQLBindParameter now handles `SQL_C_DEFAULT'. + * Fixed `SQLDescribeCol' returning column name length in bytes + rather than chars. * Corrected incorrect column index within `SQLStatistics'. Many more tables can now be linked into MS Access. - * Fixed `SQLDescribeCol' returning column name length in bytes - rather than chars. + * SQLBindParameter now handles `SQL_C_DEFAULT'.  File: manual.info, Node: connector-odbc-news-5-0-6, Next: connector-odbc-news-5-0-5, Prev: connector-odbc-news-5-0-7, Up: connector-odbc-news-5-0-x @@ -243507,23 +247047,24 @@ use within a production environment. *Features, Limitations, and Notes on this Release* - * MySQL Connector/ODBC supports both `User' and `System' DSNs. + + * You no longer have to have MySQL Connector/ODBC 3.51 installed + before installing this version. * Installation is provided in the form of a standard Microsoft System Installer (MSI). - * You no longer have to have MySQL Connector/ODBC 3.51 installed - before installing this version. + * MySQL Connector/ODBC supports both `User' and `System' DSNs. *Bugs Fixed* - * You no longer have to have MySQL Connector/ODBC 3.51 installed - before installing this version. + * Installation is provided in the form of a standard Microsoft + System Installer (MSI). * MySQL Connector/ODBC supports both `User' and `System' DSNs. - * Installation is provided in the form of a standard Microsoft - System Installer (MSI). + * You no longer have to have MySQL Connector/ODBC 3.51 installed + before installing this version.  File: manual.info, Node: connector-odbc-news-5-0-5, Next: connector-odbc-news-5-0-3, Prev: connector-odbc-news-5-0-6, Up: connector-odbc-news-5-0-x @@ -243659,6 +247200,7 @@ * Menu: +* connector-odbc-news-3-51-30:: Changes in MySQL Connector/ODBC 3.51.30 (02 February 2012) * connector-odbc-news-3-51-29:: Changes in MySQL Connector/ODBC 3.51.29 (04 October 2011) * connector-odbc-news-3-51-28:: Changes in MySQL Connector/ODBC 3.51.28 (09 February 2011) * connector-odbc-news-3-51-27:: Changes in MySQL Connector/ODBC 3.51.27 (20 November 2008) @@ -243680,12 +247222,39 @@ * connector-odbc-news-3-51-11:: Changes in MySQL Connector/ODBC 3.51.11 (28 January 2005)  -File: manual.info, Node: connector-odbc-news-3-51-29, Next: connector-odbc-news-3-51-28, Prev: connector-odbc-news-3-51-x, Up: connector-odbc-news-3-51-x +File: manual.info, Node: connector-odbc-news-3-51-30, Next: connector-odbc-news-3-51-29, Prev: connector-odbc-news-3-51-x, Up: connector-odbc-news-3-51-x + +D.2.3.1 Changes in MySQL Connector/ODBC 3.51.30 (02 February 2012) +.................................................................. + +*Bugs Fixed* + + * `SQLFetch' has to return error if indicator pointer is `NULL' for + `NULL' value. (Bug #13542600) + + * In some cases, a `TIMESTAMP' field could be described as + `SQL_NO_NULLS'. (Bug #13532987) + + * A failure on one statement causes another statement to fail. (Bug + #13097201, Bug #62657) + + * Describing a view or table caused `SQLPrepare' to prefetch table + data. For large tables this created an intolerable performance hit. + (Bug #46411) + + * MySQL Connector/ODBC manually added a `LIMIT' clause to the end of + certain SQL statements, causing errors for statements that + contained code that should be positioned after the `LIMIT' clause. + (Bug #49726) + + +File: manual.info, Node: connector-odbc-news-3-51-29, Next: connector-odbc-news-3-51-28, Prev: connector-odbc-news-3-51-30, Up: connector-odbc-news-3-51-x -D.2.3.1 Changes in MySQL Connector/ODBC 3.51.29 (04 October 2011) +D.2.3.2 Changes in MySQL Connector/ODBC 3.51.29 (04 October 2011) ................................................................. *Pluggable Authentication Notes* + * The binaries for this distribution of Connector/ODBC can now connect to MySQL server accounts that use the PAM or Windows Native Authentication Plugins for authentication. See *Note @@ -243720,7 +247289,7 @@  File: manual.info, Node: connector-odbc-news-3-51-28, Next: connector-odbc-news-3-51-27, Prev: connector-odbc-news-3-51-29, Up: connector-odbc-news-3-51-x -D.2.3.2 Changes in MySQL Connector/ODBC 3.51.28 (09 February 2011) +D.2.3.3 Changes in MySQL Connector/ODBC 3.51.28 (09 February 2011) .................................................................. *Bugs Fixed* @@ -243737,6 +247306,10 @@ * If `NO_BACKSLASH_ESCAPES' mode was used on a server, escaping binary data led to server query parsing errors. (Bug #49029) + * When using MySQL Connector/ODBC to fetch data, if a + `net_write_timeout' condition occurred, the operation returned the + standard "end of data" status, rather than an error. (Bug #39878) + * Inserting a new record using `SQLSetPos' did not correspond to the database name specified in the `SELECT' statement when querying tables from databases other than the current one. @@ -243745,10 +247318,6 @@ but finished with a `SQL_ERROR' result and `Table does not exist' message from MySQL Server. (Bug #41946) - * When using MySQL Connector/ODBC to fetch data, if a - `net_write_timeout' condition occurred, the operation returned the - standard "end of data" status, rather than an error. (Bug #39878) - * No result record was returned for `SQLGetTypeInfo' for the `TIMESTAMP' data type. An application would receive the result `return code 100 (SQL_NO_DATA_FOUND)'. (Bug #30626) @@ -243760,7 +247329,7 @@  File: manual.info, Node: connector-odbc-news-3-51-27, Next: connector-odbc-news-3-51-26, Prev: connector-odbc-news-3-51-28, Up: connector-odbc-news-3-51-x -D.2.3.3 Changes in MySQL Connector/ODBC 3.51.27 (20 November 2008) +D.2.3.4 Changes in MySQL Connector/ODBC 3.51.27 (20 November 2008) .................................................................. *Bugs Fixed* @@ -243785,7 +247354,7 @@  File: manual.info, Node: connector-odbc-news-3-51-26, Next: connector-odbc-news-3-51-25, Prev: connector-odbc-news-3-51-27, Up: connector-odbc-news-3-51-x -D.2.3.4 Changes in MySQL Connector/ODBC 3.51.26 (07 July 2008) +D.2.3.5 Changes in MySQL Connector/ODBC 3.51.26 (07 July 2008) .............................................................. *Functionality Added or Changed* @@ -243807,20 +247376,20 @@  File: manual.info, Node: connector-odbc-news-3-51-25, Next: connector-odbc-news-3-51-24, Prev: connector-odbc-news-3-51-26, Up: connector-odbc-news-3-51-x -D.2.3.5 Changes in MySQL Connector/ODBC 3.51.25 (11 April 2008) +D.2.3.6 Changes in MySQL Connector/ODBC 3.51.25 (11 April 2008) ............................................................... *Bugs Fixed* + * The driver crashes ODBC Administrator on attempting to add a new + DSN. (Bug #32057) + * The `SQLColAttribute()' function returned `SQL_TRUE' when querying the `SQL_DESC_FIXED_PREC_SCALE (SQL_COLUMN_MONEY)' attribute of a *Note `DECIMAL': numeric-types. column. Previously, the correct value of `SQL_FALSE' was returned; this is now again the case. (Bug #35581) - * The driver crashes ODBC Administrator on attempting to add a new - DSN. (Bug #32057) - * When accessing column data, `FLAG_COLUMN_SIZE_S32' did not limit the octet length or display size reported for fields, causing problems with Microsoft Visual FoxPro. @@ -243844,7 +247413,7 @@  File: manual.info, Node: connector-odbc-news-3-51-24, Next: connector-odbc-news-3-51-23, Prev: connector-odbc-news-3-51-25, Up: connector-odbc-news-3-51-x -D.2.3.6 Changes in MySQL Connector/ODBC 3.51.24 (14 March 2008) +D.2.3.7 Changes in MySQL Connector/ODBC 3.51.24 (14 March 2008) ............................................................... *Bugs Fixed* @@ -243863,24 +247432,6 @@ certificate during connection, use the `SSLVERIFY' DSN parameter, setting the value to 1. (Bug #29955, Bug #34648) - * When using ADO, the count of parameters in a query would always - return zero. (Bug #33298) - - * Using tables with a single quote or other nonstandard characters - in the table or column names through ODBC would fail. (Bug #32989) - - * When using Crystal Reports, table and column names would be - truncated to 21 characters, and truncated columns in tables where - the truncated name was the duplicated would lead to only a single - column being displayed. (Bug #32864) - - * `SQLExtendedFetch()' and `SQLFetchScroll()' ignored the rowset - size if the `Don't cache result' DSN option was set. (Bug #32420) - - * When using the ODBC `SQL_TXN_READ_COMMITTED' option, 'dirty' - records would be read from tables as if the option had not been - applied. (Bug #31959) - * When creating a System DSN using the ODBC Administrator on Mac OS X, a User DSN would be created instead. The root cause is a problem with the iODBC driver manager used on Mac OS X. The fix @@ -243898,46 +247449,67 @@ * Calling `SQLFetch' or `SQLFetchScroll' would return negative data lengths when using `SQL_C_WCHAR'. (Bug #31220) + * Using tables with a single quote or other nonstandard characters + in the table or column names through ODBC would fail. (Bug #32989) + + * When using ADO, the count of parameters in a query would always + return zero. (Bug #33298) + + * When using Crystal Reports, table and column names would be + truncated to 21 characters, and truncated columns in tables where + the truncated name was the duplicated would lead to only a single + column being displayed. (Bug #32864) + + * When using the ODBC `SQL_TXN_READ_COMMITTED' option, 'dirty' + records would be read from tables as if the option had not been + applied. (Bug #31959) + + * `SQLExtendedFetch()' and `SQLFetchScroll()' ignored the rowset + size if the `Don't cache result' DSN option was set. (Bug #32420) + * `SQLSetParam()' caused memory allocation errors due to driver manager's mapping of deprecated functions (buffer length -1). (Bug #29871) - * Static cursor was unable to be used through ADO when dynamic - cursors were enabled. (Bug #27351) - * Using `connection.Execute' to create a record set based on a table without declaring the cmd option as `adCmdTable' will fail when communicating with versions of MySQL 5.0.37 and higher. The issue is related to the way that `SQLSTATE' is returned when ADO tries to confirm the existence of the target object. (Bug #27158) - * Updating a `RecordSet' when the query involves a *Note `BLOB': - blob. field would fail. (Bug #19065) + * Static cursor was unable to be used through ADO when dynamic + cursors were enabled. (Bug #27351) * With some connections to MySQL databases using MySQL Connector/ODBC, the connection would mistakenly report 'user cancelled' for accesses to the database information. (Bug #16653) + * Updating a `RecordSet' when the query involves a *Note `BLOB': + blob. field would fail. (Bug #19065) +  File: manual.info, Node: connector-odbc-news-3-51-23, Next: connector-odbc-news-3-51-22, Prev: connector-odbc-news-3-51-24, Up: connector-odbc-news-3-51-x -D.2.3.7 Changes in MySQL Connector/ODBC 3.51.23 (09 January 2008) +D.2.3.8 Changes in MySQL Connector/ODBC 3.51.23 (09 January 2008) ................................................................. *Platform-Specific Notes* - * The HP-UX 11.23 IA64 binary package does not include the GUI bits - because of problems building Qt on that platform. + * There are no installer packages for Microsoft Windows x64 Edition. * There is no binary package for Mac OS X on 64-bit PowerPC because Apple does not currently provide a 64-bit PowerPC version of iODBC. - * There are no installer packages for Microsoft Windows x64 Edition. + * The HP-UX 11.23 IA64 binary package does not include the GUI bits + because of problems building Qt on that platform. *Bugs Fixed* - * MySQL Connector/ODBC would incorrectly return `SQL_SUCCESS' when - checking for distributed transaction support. (Bug #32727) + * Renaming an existing DSN entry would create a new entry with the + new name without deleting the old entry. (Bug #31165) + + * Cleaning up environment handles in multithread environments could + result in a five (or more) second delay. (Bug #32366) * When using unixODBC or directly linked applications where the thread level is set to less than 3 (within `odbcinst.ini'), a @@ -243946,11 +247518,8 @@ synchronize access to the list of statements associated with a connection. (Bug #32587) - * Cleaning up environment handles in multithread environments could - result in a five (or more) second delay. (Bug #32366) - - * Renaming an existing DSN entry would create a new entry with the - new name without deleting the old entry. (Bug #31165) + * MySQL Connector/ODBC would incorrectly return `SQL_SUCCESS' when + checking for distributed transaction support. (Bug #32727) * Setting the default database using the `DefaultDatabase' property of an ADO `Connection' object would fail with the error `Provider @@ -243961,7 +247530,7 @@  File: manual.info, Node: connector-odbc-news-3-51-22, Next: connector-odbc-news-3-51-21, Prev: connector-odbc-news-3-51-23, Up: connector-odbc-news-3-51-x -D.2.3.8 Changes in MySQL Connector/ODBC 3.51.22 (13 November 2007) +D.2.3.9 Changes in MySQL Connector/ODBC 3.51.22 (13 November 2007) .................................................................. *Functionality Added or Changed* @@ -243969,19 +247538,19 @@ * The workaround for this bug was removed due to the fixes in MySQL Server 5.0.48 and 5.1.21. - This regression was introduced by Bug #10491. + References: This bug was introduced by Bug #10491. *Bugs Fixed* - * The `English' locale would be used when formatting floating point - values. The `C' locale is now used for these values. (Bug #32294) + * Unsigned integer values greater than the maximum value of a signed + integer would be handled incorrectly. (Bug #32171) * When accessing information about supported operations, the driver would return incorrect information about the support for *Note `UNION': union. (Bug #32253) - * Unsigned integer values greater than the maximum value of a signed - integer would be handled incorrectly. (Bug #32171) + * The `English' locale would be used when formatting floating point + values. The `C' locale is now used for these values. (Bug #32294) * The wrong result was returned by `SQLGetData()' when the data was an empty string and a zero-sized buffer was specified. (Bug @@ -243995,18 +247564,21 @@  File: manual.info, Node: connector-odbc-news-3-51-21, Next: connector-odbc-news-3-51-20, Prev: connector-odbc-news-3-51-22, Up: connector-odbc-news-3-51-x -D.2.3.9 Changes in MySQL Connector/ODBC 3.51.21 (08 October 2007) -................................................................. +D.2.3.10 Changes in MySQL Connector/ODBC 3.51.21 (08 October 2007) +.................................................................. *Bugs Fixed* + * Uninitiated memory could be used when C/ODBC internally calls + `SQLGetFunctions()'. (Bug #31055) + * When using a rowset/cursor and add a new row with a number of fields, subsequent rows with fewer fields will include the original fields from the previous row in the final *Note `INSERT': insert. statement. (Bug #31246) - * Uninitiated memory could be used when C/ODBC internally calls - `SQLGetFunctions()'. (Bug #31055) + * Not specifying a user in the DSN dialog would raise a warning even + though the parameter is optional. (Bug #30499) * The wrong `SQL_DESC_LITERAL_PREFIX' would be returned for date/time types. (Bug #31009) @@ -244018,9 +247590,6 @@ a new DSN could cause the wrong character set to be selected. (Bug #30568) - * Not specifying a user in the DSN dialog would raise a warning even - though the parameter is optional. (Bug #30499) - * `SQLSetParam()' caused memory allocation errors due to driver manager's mapping of deprecated functions (buffer length -1). (Bug #29871) @@ -244039,23 +247608,23 @@  File: manual.info, Node: connector-odbc-news-3-51-20, Next: connector-odbc-news-3-51-19, Prev: connector-odbc-news-3-51-21, Up: connector-odbc-news-3-51-x -D.2.3.10 Changes in MySQL Connector/ODBC 3.51.20 (10 September 2007) +D.2.3.11 Changes in MySQL Connector/ODBC 3.51.20 (10 September 2007) .................................................................... *Bugs Fixed* - * Using `FLAG_NO_PROMPT' doesn't suppress the dialogs normally - handled by `SQLDriverConnect'. (Bug #30840) + * The wrong column size was returned for binary data. (Bug #30547) * The specified length of the user name and authentication parameters to `SQLConnect()' were not being honored. (Bug #30774) - * The wrong column size was returned for binary data. (Bug #30547) - * `SQLGetData()' will now always return `SQL_NO_DATA_FOUND' on second call when no data left, even if requested size is 0. (Bug #30520) + * Using `FLAG_NO_PROMPT' doesn't suppress the dialogs normally + handled by `SQLDriverConnect'. (Bug #30840) + * `SQLGetConnectAttr()' did not reflect the connection state correctly. (Bug #14639) @@ -244066,7 +247635,7 @@  File: manual.info, Node: connector-odbc-news-3-51-19, Next: connector-odbc-news-3-51-18, Prev: connector-odbc-news-3-51-20, Up: connector-odbc-news-3-51-x -D.2.3.11 Changes in MySQL Connector/ODBC 3.51.19 (10 August 2007) +D.2.3.12 Changes in MySQL Connector/ODBC 3.51.19 (10 August 2007) ................................................................. Connector/ODBC 3.51.19 fixes a specific issue with the 3.51.18 release. @@ -244083,26 +247652,26 @@  File: manual.info, Node: connector-odbc-news-3-51-18, Next: connector-odbc-news-3-51-17, Prev: connector-odbc-news-3-51-19, Up: connector-odbc-news-3-51-x -D.2.3.12 Changes in MySQL Connector/ODBC 3.51.18 (08 August 2007) +D.2.3.13 Changes in MySQL Connector/ODBC 3.51.18 (08 August 2007) ................................................................. *Platform-Specific Notes* - * The HP-UX 11.23 IA64 binary package does not include the GUI bits - because of problems building Qt on that platform. + * A binary package without an installer is available for Microsoft + Windows x64 Edition. There are no installer packages for Microsoft + Windows x64 Edition. - * There is no binary package for Mac OS X on 64-bit PowerPC because - Apple does not currently provide a 64-bit PowerPC version of iODBC. + * Binary packages as disk images with installers are now available + for Mac OS X. * Binary packages for Sun Solaris are now available as `PKG' packages. - * Binary packages as disk images with installers are now available - for Mac OS X. + * There is no binary package for Mac OS X on 64-bit PowerPC because + Apple does not currently provide a 64-bit PowerPC version of iODBC. - * A binary package without an installer is available for Microsoft - Windows x64 Edition. There are no installer packages for Microsoft - Windows x64 Edition. + * The HP-UX 11.23 IA64 binary package does not include the GUI bits + because of problems building Qt on that platform. *Functionality Added or Changed* @@ -244137,11 +247706,15 @@ *Bugs Fixed* + * Getting table metadata (through the `SQLColumns()' would fail, + returning a bad table definition to calling applications. (Bug + #29888) + * When using a table with multiple *Note `TIMESTAMP': datetime. columns, the final *Note `TIMESTAMP': datetime. column within the - table definition would not be updateable. Note that there is still - a limitation in MySQL server regarding multiple *Note `TIMESTAMP': - datetime. columns. (Bug #30081) See also Bug #9927. + table definition would not be updatable. Note that there is still a + limitation in MySQL server regarding multiple *Note `TIMESTAMP': + datetime. columns. (Bug #30081) References: See also Bug #9927. * Fixed an issue where the `myodbc3i' would update the user ODBC configuration file (`~/Library/ODBC/odbcinst.ini') instead of the @@ -244149,10 +247722,6 @@ `myodbc3i' was not honoring the `s' and `u' modifiers for the `-d' command-line option. (Bug #29964) - * Getting table metadata (through the `SQLColumns()' would fail, - returning a bad table definition to calling applications. (Bug - #29888) - * *Note `DATETIME': datetime. column types would return `FALSE' in place of `SQL_SUCCESS' when requesting the column type information. (Bug #28657) @@ -244165,86 +247734,86 @@ specification. The `FLAG_FIELD_LENGTH' option no longer has any affect on the results returned. (Bug #27862) - * Obtaining the length of a column when using a character set for - the connection of `utf8' would result in the length being returned - incorrectly. (Bug #19345) - * The `SQLColumns()' function could return incorrect information about *Note `TIMESTAMP': datetime. columns, indicating that the field was not nullable. (Bug #14414) + * Obtaining the length of a column when using a character set for + the connection of `utf8' would result in the length being returned + incorrectly. (Bug #19345) + * The `SQLColumns()' function could return incorrect information about `AUTO_INCREMENT' columns, indicating that the field was not nullable. (Bug #14407) - * A binary package without an installer is available for Microsoft - Windows x64 Edition. There are no installer packages for Microsoft - Windows x64 Edition. - - * There is no binary package for Mac OS X on 64-bit PowerPC because - Apple does not currently provide a 64-bit PowerPC version of iODBC. - - * `BIT(n)' columns are now treated as `SQL_BIT' data where `n = 1' - and binary data where `n > 1'. + * The `SQL_DATA_TYPE' column in `SQLColumns()' results did not + report the correct value for date and time types. - * The wrong value from `SQL_DESC_LITERAL_SUFFIX' was returned for - binary fields. + * The wrong value for `DECIMAL_DIGITS' in `SQLColumns()' was + reported for *Note `FLOAT': numeric-types. and *Note `DOUBLE': + numeric-types. fields, as well as the wrong value for the scale + parameter to `SQLDescribeCol()', and the `SQL_DESC_SCALE' + attribute from `SQLColAttribute()'. - * The `SQL_DATETIME_SUB' column in SQLColumns() was not correctly - set for date and time types. + * Binary packages for Sun Solaris are now available as `PKG' + packages. - * The value for `SQL_DESC_FIXED_PREC_SCALE' was not returned - correctly for values in MySQL 5.0 and later. + * Binary packages as disk images with installers are now available + for Mac OS X. - * The wrong value for `SQL_DESC_TYPE' was returned for date and time - types. + * The HP-UX 11.23 IA64 binary package does not include the GUI bits + because of problems building Qt on that platform. * `SQLConnect()' and `SQLDriverConnect()' were rewritten to eliminate duplicate code and ensure all options were supported using both connection methods. `SQLDriverConnect()' now only requires the setup library to be present when the call requires it. - * The HP-UX 11.23 IA64 binary package does not include the GUI bits - because of problems building Qt on that platform. + * The wrong value for `SQL_DESC_TYPE' was returned for date and time + types. - * Binary packages as disk images with installers are now available - for Mac OS X. + * The value for `SQL_DESC_FIXED_PREC_SCALE' was not returned + correctly for values in MySQL 5.0 and later. - * Binary packages for Sun Solaris are now available as `PKG' - packages. + * The `SQL_DATETIME_SUB' column in SQLColumns() was not correctly + set for date and time types. - * The wrong value for `DECIMAL_DIGITS' in `SQLColumns()' was - reported for *Note `FLOAT': numeric-types. and *Note `DOUBLE': - numeric-types. fields, as well as the wrong value for the scale - parameter to `SQLDescribeCol()', and the `SQL_DESC_SCALE' - attribute from `SQLColAttribute()'. + * The wrong value from `SQL_DESC_LITERAL_SUFFIX' was returned for + binary fields. - * The `SQL_DATA_TYPE' column in `SQLColumns()' results did not - report the correct value for date and time types. + * `BIT(n)' columns are now treated as `SQL_BIT' data where `n = 1' + and binary data where `n > 1'. + + * There is no binary package for Mac OS X on 64-bit PowerPC because + Apple does not currently provide a 64-bit PowerPC version of iODBC. + + * A binary package without an installer is available for Microsoft + Windows x64 Edition. There are no installer packages for Microsoft + Windows x64 Edition.  File: manual.info, Node: connector-odbc-news-3-51-17, Next: connector-odbc-news-3-51-16, Prev: connector-odbc-news-3-51-18, Up: connector-odbc-news-3-51-x -D.2.3.13 Changes in MySQL Connector/ODBC 3.51.17 (14 July 2007) +D.2.3.14 Changes in MySQL Connector/ODBC 3.51.17 (14 July 2007) ............................................................... *Platform-Specific Notes* - * The HP-UX 11.23 IA64 binary package does not include the GUI bits - because of problems building Qt on that platform. + * A binary package without an installer is available for Microsoft + Windows x64 Edition. There are no installer packages for Microsoft + Windows x64 Edition. - * There is no binary package for Mac OS X on 64-bit PowerPC because - Apple does not currently provide a 64-bit PowerPC version of iODBC. + * Binary packages as disk images with installers are now available + for Mac OS X. * Binary packages for Sun Solaris are now available as `PKG' packages. - * Binary packages as disk images with installers are now available - for Mac OS X. + * There is no binary package for Mac OS X on 64-bit PowerPC because + Apple does not currently provide a 64-bit PowerPC version of iODBC. - * A binary package without an installer is available for Microsoft - Windows x64 Edition. There are no installer packages for Microsoft - Windows x64 Edition. + * The HP-UX 11.23 IA64 binary package does not include the GUI bits + because of problems building Qt on that platform. *Functionality Added or Changed* @@ -244253,24 +247822,21 @@ `SET NAMES' statement. You can also configure the character set value from the GUI configuration. (Bug #9498, Bug #6667) - * Fixed calling convention ptr and wrong free in `myodbc3i', and - fixed the null terminating (was only one, not two) when writing - DSN to string. + * The setup library has been split into its own RPM package, to + enable installing the driver itself with no GUI dependencies. * Dis-allow NULL ptr for null indicator when calling SQLGetData() if value is null. Now returns SQL_ERROR w/state 22002. - * The setup library has been split into its own RPM package, to - enable installing the driver itself with no GUI dependencies. + * Fixed calling convention ptr and wrong free in `myodbc3i', and + fixed the null terminating (was only one, not two) when writing + DSN to string. *Bugs Fixed* * `myodbc3i' did not correctly format driver info, which could cause the installation to fail. (Bug #29709) - * MySQL Connector/ODBC crashed with Crystal Reports due to a - rproblem with `SQLProcedures()'. (Bug #28316) - * Fixed a problem where the GUI would crash when configuring or removing a System or User DSN. (Bug #27315) @@ -244278,25 +247844,21 @@ catalog functions. This might raise errors in code paths that had ignored them in the past. (Bug #26934) + * MySQL Connector/ODBC crashed with Crystal Reports due to a problem + with `SQLProcedures()'. (Bug #28316) + * For a stored procedure that returns multiple result sets, MySQL Connector/ODBC returned only the first result set. (Bug #16817) - * Calling `SQLGetDiagField' with `RecNumber 0, DiagIdentifier NOT 0' - returned `SQL_ERROR', preventing access to diagnostic header - fields. (Bug #16224) - * Added a new DSN option (`FLAG_ZERO_DATE_TO_MIN') to retrieve `XXXX-00-00' dates as the minimum permitted ODBC date (`XXXX-01-01'). Added another option (`FLAG_MIN_DATE_TO_ZERO') to mirror this but for bound parameters. `FLAG_MIN_DATE_TO_ZERO' only changes `0000-01-01' to `0000-00-00'. (Bug #13766) - * If there was more than one unique key on a table, the correct - fields were not used in handling `SQLSetPos()'. (Bug #10563) - - * When inserting a large *Note `BLOB': blob. field, MySQL - Connector/ODBC would crash due to a memory allocation error. (Bug - #10562) + * Calling `SQLGetDiagField' with `RecNumber 0, DiagIdentifier NOT 0' + returned `SQL_ERROR', preventing access to diagnostic header + fields. (Bug #16224) * The driver was using `mysql_odbc_escape_string()', which does not handle the `NO_BACKSLASH_ESCAPES' SQL mode. Now it uses *Note @@ -244309,30 +247871,37 @@ escaped correctly when they contained nonalphanumeric characters. (Bug #8860) - * There are no binary packages for Microsoft Windows x64 Edition. + * When inserting a large *Note `BLOB': blob. field, MySQL + Connector/ODBC would crash due to a memory allocation error. (Bug + #10562) - * There is no binary package for Mac OS X on 64-bit PowerPC because - Apple does not currently provide a 64-bit PowerPC version of iODBC. + * If there was more than one unique key on a table, the correct + fields were not used in handling `SQLSetPos()'. (Bug #10563) - * Correctly return error if `SQLBindCol' is called with an invalid - column. + * The HP-UX 11.23 IA64 binary package does not include the GUI bits + because of problems building Qt on that platform. - * Fixed possible crash if `SQLBindCol()' was not called before - `SQLSetPos()'. + * The binary packages for Sun Solaris are only provided as tarballs, + not the PKG format. * The Mac OS X binary packages are only provided as tarballs, there is no installer. - * The binary packages for Sun Solaris are only provided as tarballs, - not the PKG format. + * Fixed possible crash if `SQLBindCol()' was not called before + `SQLSetPos()'. - * The HP-UX 11.23 IA64 binary package does not include the GUI bits - because of problems building Qt on that platform. + * Correctly return error if `SQLBindCol' is called with an invalid + column. + + * There is no binary package for Mac OS X on 64-bit PowerPC because + Apple does not currently provide a 64-bit PowerPC version of iODBC. + + * There are no binary packages for Microsoft Windows x64 Edition.  File: manual.info, Node: connector-odbc-news-3-51-16, Next: connector-odbc-news-3-51-15, Prev: connector-odbc-news-3-51-17, Up: connector-odbc-news-3-51-x -D.2.3.14 Changes in MySQL Connector/ODBC 3.51.16 (14 June 2007) +D.2.3.15 Changes in MySQL Connector/ODBC 3.51.16 (14 June 2007) ............................................................... *Functionality Added or Changed* @@ -244346,9 +247915,6 @@ * Calls to SQLNativeSql() could cause stack corruption due to an incorrect pointer cast. (Bug #28758) - * Using cursors on results sets with multi-column keys could select - the wrong value. (Bug #28255) - * `SQLForeignKeys' does not escape `_' and `%' in the table name arguments. (Bug #27723) @@ -244356,13 +247922,19 @@ second stored procedure call after an initial stored procedure call, the second statement will fail. (Bug #27544) - * SQLTables() did not distinguish tables from views. (Bug #23031) + * Using cursors on results sets with multi-column keys could select + the wrong value. (Bug #28255) * Return values from `SQLTables()' may be truncated. (Bug #22797) + * SQLTables() did not distinguish tables from views. (Bug #23031) + * Data in *Note `TEXT': blob. columns would fail to be read correctly. (Bug #16917) + * Using `BETWEEN' with date values, the wrong results could be + returned. (Bug #15773) + * Specifying strings as parameters using the `adBSTR' or `adVarWChar' types, (`SQL_WVARCHAR' and `SQL_WLONGVARCHAR') would be incorrectly quoted. (Bug #16235) @@ -244370,9 +247942,6 @@ * SQL_WVARCHAR and SQL_WLONGVARCHAR parameters were not properly quoted and escaped. (Bug #16235) - * Using `BETWEEN' with date values, the wrong results could be - returned. (Bug #15773) - * When using the `Don't Cache Results' (option value `1048576') with Microsoft Access, the connection will fail using DAO/VisualBasic. (Bug #4657) @@ -244380,31 +247949,31 @@  File: manual.info, Node: connector-odbc-news-3-51-15, Next: connector-odbc-news-3-51-14, Prev: connector-odbc-news-3-51-16, Up: connector-odbc-news-3-51-x -D.2.3.15 Changes in MySQL Connector/ODBC 3.51.15 (07 May 2007) +D.2.3.16 Changes in MySQL Connector/ODBC 3.51.15 (07 May 2007) .............................................................. *Bugs Fixed* - * MySQL Connector/ODBC would incorrectly claim to support - `SQLProcedureColumns' (by returning true when queried about - `SQLPROCEDURECOLUMNS' with `SQLGetFunctions'), but this - functionality is not supported. (Bug #27591) + * When inserting data using bulk statements (through + `SQLBulkOperations'), the indicators for all rows within the + insert would not updated correctly. (Bug #24306) * An incorrect transaction isolation level may not be returned when accessing the connection attributes. (Bug #27589) + * The `SQLTransact()' function did not support an empty connection + handle. (Bug #21588) + * Adding a new DSN with the `myodbc3i' utility under AIX would fail. (Bug #27220) - * When inserting data using bulk statements (through - `SQLBulkOperations'), the indicators for all rows within the - insert would not updated correctly. (Bug #24306) - * Using `SQLProcedures' does not return the database name within the returned resultset. (Bug #23033) - * The `SQLTransact()' function did not support an empty connection - handle. (Bug #21588) + * MySQL Connector/ODBC would incorrectly claim to support + `SQLProcedureColumns' (by returning true when queried about + `SQLPROCEDURECOLUMNS' with `SQLGetFunctions'), but this + functionality is not supported. (Bug #27591) * Using `SQLDriverConnect' instead of `SQLConnect' could cause later operations to fail. (Bug #7912) @@ -244418,7 +247987,7 @@  File: manual.info, Node: connector-odbc-news-3-51-14, Next: connector-odbc-news-3-51-13, Prev: connector-odbc-news-3-51-15, Up: connector-odbc-news-3-51-x -D.2.3.16 Changes in MySQL Connector/ODBC 3.51.14 (08 March 2007) +D.2.3.17 Changes in MySQL Connector/ODBC 3.51.14 (08 March 2007) ................................................................ *Functionality Added or Changed* @@ -244432,20 +248001,20 @@ * Added auto is null option to MySQL Connector/ODBC option parameters. (Bug #10910) + * Added support for the `HENV' handlers in `SQLEndTran()'. + * Added auto-reconnect option to MySQL Connector/ODBC option parameters. - * Added support for the `HENV' handlers in `SQLEndTran()'. - *Bugs Fixed* - * On 64-bit systems, some types would be incorrectly returned. (Bug - #26024) - * When retrieving *Note `TIME': time. columns, C/ODBC would incorrectly interpret the type of the string and could interpret it as a *Note `DATE': datetime. type instead. (Bug #25846) + * On 64-bit systems, some types would be incorrectly returned. (Bug + #26024) + * MySQL Connector/ODBC may insert the wrong parameter values when using prepared statements under 64-bit Linux. (Bug #22446) @@ -244453,6 +248022,12 @@ length to the return value from `SQL_LEN_DATA_AT_EXEC' fails with a memory allocation error. (Bug #20547) + * The `SQLDriverConnect()' ODBC method did not work with recent + MySQL Connector/ODBC releases. (Bug #12393) + + * The ODBC driver name and version number were incorrectly reported + by the driver. (Bug #19740) + * Using `DataAdapter', MySQL Connector/ODBC may continually consume memory when reading the same records within a loop (Windows Server 2003 SP1/SP2 only). (Bug #20459) @@ -244461,30 +248036,24 @@ `COMPRESS()', the retrieved data would be truncated to 8KB. (Bug #20208) - * The ODBC driver name and version number were incorrectly reported - by the driver. (Bug #19740) - * A string format exception would be raised when using iODBC, MySQL Connector/ODBC and the embedded MySQL server. (Bug #16535) - * The `SQLDriverConnect()' ODBC method did not work with recent - MySQL Connector/ODBC releases. (Bug #12393) -  File: manual.info, Node: connector-odbc-news-3-51-13, Next: connector-odbc-news-3-51-12, Prev: connector-odbc-news-3-51-14, Up: connector-odbc-news-3-51-x -D.2.3.17 Changes in MySQL Connector/ODBC 3.51.13 (Never released) +D.2.3.18 Changes in MySQL Connector/ODBC 3.51.13 (Never released) ................................................................. Connector/ODBC 3.51.13 was an internal implementation and testing release. -This section has no changelog entries. +Version 3.51.13 has no changelog entries.  File: manual.info, Node: connector-odbc-news-3-51-12, Next: connector-odbc-news-3-51-11, Prev: connector-odbc-news-3-51-13, Up: connector-odbc-news-3-51-x -D.2.3.18 Changes in MySQL Connector/ODBC 3.51.12 (11 February 2005) +D.2.3.19 Changes in MySQL Connector/ODBC 3.51.12 (11 February 2005) ................................................................... *Functionality Added or Changed* @@ -244497,15 +248066,15 @@ set correctly to `adCmdStoredProc', calls to stored procedures would fail. (Bug #15635) - * File DSNs could not be saved. (Bug #12019) - * `SQLColumns()' returned no information for tables that had a column named using a reserved word. (Bug #9539) + * File DSNs could not be saved. (Bug #12019) +  File: manual.info, Node: connector-odbc-news-3-51-11, Prev: connector-odbc-news-3-51-12, Up: connector-odbc-news-3-51-x -D.2.3.19 Changes in MySQL Connector/ODBC 3.51.11 (28 January 2005) +D.2.3.20 Changes in MySQL Connector/ODBC 3.51.11 (28 January 2005) .................................................................. *Bugs Fixed* @@ -244527,6 +248096,7 @@ * Menu: +* connector-net-news-6-5-x:: Changes in MySQL Connector/Net Version 6.5.x * connector-net-news-6-4-x:: Changes in MySQL Connector/Net Version 6.4.x * connector-net-news-6-3-x:: Changes in MySQL Connector/Net Version 6.3.x * connector-net-news-6-2-x:: Changes in MySQL Connector/Net Version 6.2.x @@ -244549,9 +248119,99 @@ * connector-net-news-0-50:: Changes in MySQL Connector/Net Version 0.50  -File: manual.info, Node: connector-net-news-6-4-x, Next: connector-net-news-6-3-x, Prev: connector-net-news, Up: connector-net-news +File: manual.info, Node: connector-net-news-6-5-x, Next: connector-net-news-6-4-x, Prev: connector-net-news, Up: connector-net-news + +D.3.1 Changes in MySQL Connector/Net Version 6.5.x +-------------------------------------------------- + +* Changes in MySQL Connector/Net 6.5.3 (27 February 2012) * + +*Bugs Fixed* + + * *InnoDB Storage Engine*: Fixed `MySqlTime' parsing to avoid + throwing an exception when handling milliseconds (as result of a + `timediff' operation). (Bug #13708884, Bug #64268) + +* Changes in MySQL Connector/Net 6.5.2 (15 February 2012) * + +*Bugs Fixed* + + * *InnoDB Storage Engine*: When using connection pooling, the + connections in the pool were not automatically closed upon + application exit. With the setting `log-warnings=2', you could + encounter `Aborted connection' errors in the MySQL error log. The + workaround was to explicitly call + `MySql.Data.MySqlClient.MySqlConnection.ClearAllPools();' upon + exiting the application. (Bug #13629471, Bug #63942) + + * *InnoDB Storage Engine*: If `MySqlCommand.CommandText' was equal to + `null', then `MySqlCommand.ExecuteReader()' would throw the wrong + exception: `NullReferenceException' instead of + `InvalidOperationException'. (Bug #13624659, Bug #64092) + + * *InnoDB Storage Engine*: The MySQL script generated by using the + function `CreateDatabaseScript' used names with incorrect + singular/plural forms. (Bug #13582837, Bug #62150) + + * When designating a primary key for a table in Table Designer, the + key icon could fail to appear until the Table Designer was + restarted. (Bug #13481246) + +* Changes in MySQL Connector/Net 6.5.1 (23 January 2012) * + +*Bugs Fixed* + + * *InnoDB Storage Engine*: After an *Note `UPDATE': update. + statement, Connector/Net would generate incorrect *Note `SELECT': + select. SQL statements if a value in the `WHERE' clause was not + also present in the `SET' clause of the `UPDATE'. (Bug #13491689, + Bug #62134) + + * IntelliSense would emit an error when the "`-'" (minus) character + was typed. (Bug #13522344) + +* Changes in MySQL Connector/Net 6.5.0 (22 December 2011) * + +*Functionality Added or Changed* + + * Added better IntelliSense support, including auto-completion when + editing stored procedures or `.mysql' files. + + * Adds a `MySqlClientPermission' class to help users define the + security policies for the database connections within any + application using a MySQL database. + + * Added better partial-trust support, thus allowing Connector/NET to + run in a partial trust scenario. It will work correctly in a + medium-trust level environment when the library is installed in + the GAC. + + * Added fractional seconds support, as per MySQL Server 5.6 and + above. For more information, see *Note fractional-seconds:: + + * Added exception and command injector support. + +*Bugs Fixed* + + * *InnoDB Storage Engine*: The `MySqlDataReader.GetDateTime()' + method was not recognizing that `TIMESTAMP' values had already + been converted to the local time zone of the MySQL server, which + could cause incorrect results if the value was later processed + through the `ToLocalTime()' method. The fix causes the `Kind' + property to be correctly set to `Local' rather than `Unspecified'. + (Bug #13591554, Bug #63812) + + * *InnoDB Storage Engine*: Visual Studio 2010 Table Designer could + give an error `Object reference not set to an instance of an + object' for schemas with certain combinations of column names and + foreign key references. The SQL syntax was incorrect for the *Note + `ALTER TABLE': alter-table. statement generated by the Table + Designer. (Bug #13591545, Bug #63714) + + +File: manual.info, Node: connector-net-news-6-4-x, Next: connector-net-news-6-3-x, Prev: connector-net-news-6-5-x, Up: connector-net-news -D.3.1 Changes in MySQL Connector/Net Version 6.4.x +D.3.2 Changes in MySQL Connector/Net Version 6.4.x -------------------------------------------------- * Menu: @@ -244559,12 +248219,12 @@ * connector-net-news-6-4-4:: Changes in MySQL Connector/Net 6.4.4 (26 September 2011) * connector-net-news-6-4-3:: Changes in MySQL Connector/Net 6.4.3 (03 July 2011) * connector-net-news-6-4-2:: Changes in MySQL Connector/Net 6.4.2 (29 June 2011) -* connector-net-news-6-4-1:: Changes in MySQL Connector/Net 6.4.1 (06 June 2011 Alpha) +* connector-net-news-6-4-1:: Changes in MySQL Connector/Net 6.4.1 (06 June 2011, Alpha)  File: manual.info, Node: connector-net-news-6-4-4, Next: connector-net-news-6-4-3, Prev: connector-net-news-6-4-x, Up: connector-net-news-6-4-x -D.3.1.1 Changes in MySQL Connector/Net 6.4.4 (26 September 2011) +D.3.2.1 Changes in MySQL Connector/Net 6.4.4 (26 September 2011) ................................................................ This release fixes bugs since 6.4.3. @@ -244577,24 +248237,52 @@ *Bugs Fixed* - * `MySqlDataReader.Close' was modified to use Default behavior when - clearing remaining result sets. (Bug #61690, Bug #12723423) + * *InnoDB Storage Engine*: Using a combination of `ListView', + `EntityDataSource' with `TypeFilter' and `Include EntityCollection + Navigation Property', and `DataPager' caused a + `NullReferenceException' error in the + `System.Web.UI.WebControls.EntityDataSourceView.ExecuteSelect' + function. (Bug #12776517, Bug #61714) + + * (Bug #12897149) + + * When creating a tableadapter through a Dataset form in Visual + Studio, the `MaxLength' of the field for a `CHAR' column could be + set to 3 times the length of the table column. Although this many + bytes could be needed to hold a UTF-8 character value, the length + value was not appropriate for restricting the length of a + `TextBox'. (Bug #12860224, Bug #62094) + + * An error `out of sync with server' could occur when connecting in + the Visual Studio Entity Framework. The issue occurred only on + some MySQL servers, all with versions earlier than MySQL 5.5. + (Bug #12853286, Bug #61806) + + * When adding a `MEDIUMTEXT' or `LONGTEXT' column Visual Studio, the + facet `Fixed length' had to be set to `false', even though these + types allow arbitrary lengths. (Bug #12848277, Bug #54915) + + * Executing a `LINQ to Entity' query could result in a + `NullReferenceException' error. (Bug #12776598, Bug #61729) * `MySqlScript' was modified to enable correct processing of the `DELIMITER' command when not followed by a new line. (Bug #61680, Bug #12732279) - * The ASP.NET membership provider was modified to create and query - all related tables using lowercase names. (Bug #61108, Bug - #12702009) + * `MySqlDataReader.Close' was modified to use Default behavior when + clearing remaining result sets. (Bug #61690, Bug #12723423) * On Model First changed column types generated in SQL scripts to produce more suitable `MySql' types. (Bug #59244, Bug #12707104) + * The ASP.NET membership provider was modified to create and query + all related tables using lowercase names. (Bug #61108, Bug + #12702009) +  File: manual.info, Node: connector-net-news-6-4-3, Next: connector-net-news-6-4-2, Prev: connector-net-news-6-4-4, Up: connector-net-news-6-4-x -D.3.1.2 Changes in MySQL Connector/Net 6.4.3 (03 July 2011) +D.3.2.2 Changes in MySQL Connector/Net 6.4.3 (03 July 2011) ........................................................... This release fixes bugs since 6.4.2. @@ -244610,7 +248298,7 @@  File: manual.info, Node: connector-net-news-6-4-2, Next: connector-net-news-6-4-1, Prev: connector-net-news-6-4-3, Up: connector-net-news-6-4-x -D.3.1.3 Changes in MySQL Connector/Net 6.4.2 (29 June 2011) +D.3.2.3 Changes in MySQL Connector/Net 6.4.2 (29 June 2011) ........................................................... This release fixes bugs since 6.4.1. @@ -244631,8 +248319,8 @@  File: manual.info, Node: connector-net-news-6-4-1, Prev: connector-net-news-6-4-2, Up: connector-net-news-6-4-x -D.3.1.4 Changes in MySQL Connector/Net 6.4.1 (06 June 2011 Alpha) -................................................................. +D.3.2.4 Changes in MySQL Connector/Net 6.4.1 (06 June 2011, Alpha) +.................................................................. First alpha release. @@ -244652,55 +248340,121 @@  File: manual.info, Node: connector-net-news-6-3-x, Next: connector-net-news-6-2-x, Prev: connector-net-news-6-4-x, Up: connector-net-news -D.3.2 Changes in MySQL Connector/Net Version 6.3.x +D.3.3 Changes in MySQL Connector/Net Version 6.3.x -------------------------------------------------- * Menu: * connector-net-news-6-3-9:: Changes in MySQL Connector/Net 6.3.9 (Not yet released) -* connector-net-news-6-3-8:: Changes in MySQL Connector/Net 6.3.8 (Not yet released) +* connector-net-news-6-3-8:: Changes in MySQL Connector/Net 6.3.8 (16 December 2011) * connector-net-news-6-3-7:: Changes in MySQL Connector/Net 6.3.7 (22 June 2011) * connector-net-news-6-3-6:: Changes in MySQL Connector/Net 6.3.6 (03 January 2011) * connector-net-news-6-3-5:: Changes in MySQL Connector/Net 6.3.5 (12 October 2010) -* connector-net-news-6-3-4:: Changes in MySQL Connector/Net 6.3.4 (01 September 2010 GA) +* connector-net-news-6-3-4:: Changes in MySQL Connector/Net 6.3.4 (01 September 2010, Generally Available) * connector-net-news-6-3-3:: Changes in MySQL Connector/Net 6.3.3 (27 July 2010) -* connector-net-news-6-3-2:: Changes in MySQL Connector/Net 6.3.2 (24 May 2010 beta) +* connector-net-news-6-3-2:: Changes in MySQL Connector/Net 6.3.2 (24 May 2010, beta) * connector-net-news-6-3-1:: Changes in MySQL Connector/Net 6.3.1 (02 March 2010) -* connector-net-news-6-3-0:: Changes in MySQL Connector/Net 6.3.0 (16 February 2010 alpha) +* connector-net-news-6-3-0:: Changes in MySQL Connector/Net 6.3.0 (16 February 2010, alpha)  File: manual.info, Node: connector-net-news-6-3-9, Next: connector-net-news-6-3-8, Prev: connector-net-news-6-3-x, Up: connector-net-news-6-3-x -D.3.2.1 Changes in MySQL Connector/Net 6.3.9 (Not yet released) +D.3.3.1 Changes in MySQL Connector/Net 6.3.9 (Not yet released) ............................................................... This release fixes bugs since 6.3.8. *Bugs Fixed* - * Connector/NET would incorrectly map decimal values to ANSI strings. - (Bug #62246, Bug #13050570) + * *InnoDB Storage Engine*: After an *Note `UPDATE': update. + statement, Connector/Net would generate incorrect *Note `SELECT': + select. SQL statements if a value in the `WHERE' clause was not + also present in the `SET' clause of the `UPDATE'. (Bug #13491689, + Bug #62134) + + * In Visual Studio's Server Explorer, right-clicking on a table in + the Tables tree and selecting Create Trigger could cause an error, + `Object reference not set to an instance of an object'. (Bug + #13511801) + + * The class `MySql.Data.Types.MySqlDateTime' was not serializable. + (Bug #11750161, Bug #40555) * Connector/NET incorrectly maps `PrimitiveTypeKind.Byte' to `tinyint', instead of `utinyint'. And `PrimitiveTypeKind.SByte' mapping was added, to `tinyint'. (Bug #62135, Bug #13061713) + * Connector/NET would incorrectly map decimal values to ANSI strings. + (Bug #62246, Bug #13050570) + * On Model First changed column types generated in SQL scripts to produce more suitable `MySql' types. (Bug #59244, Bug #12707104)  File: manual.info, Node: connector-net-news-6-3-8, Next: connector-net-news-6-3-7, Prev: connector-net-news-6-3-9, Up: connector-net-news-6-3-x -D.3.2.2 Changes in MySQL Connector/Net 6.3.8 (Not yet released) +D.3.3.2 Changes in MySQL Connector/Net 6.3.8 (16 December 2011) ............................................................... This release fixes bugs since 6.3.7. *Bugs Fixed* + * *InnoDB Storage Engine*: Visual Studio 2010 Table Designer could + give an error `Object reference not set to an instance of an + object' for schemas with certain combinations of column names and + foreign key references. The SQL syntax was incorrect for the *Note + `ALTER TABLE': alter-table. statement generated by the Table + Designer. (Bug #13591545, Bug #63714) + + * *InnoDB Storage Engine*: The Connector/Net installed for all + users, and thus was not available in the `Add/Remove Programs' + dialog for users other than the one who installed it. (Bug + #13447941) + + * *InnoDB Storage Engine*: Using a combination of `ListView', + `EntityDataSource' with `TypeFilter' and `Include EntityCollection + Navigation Property', and `DataPager' caused a + `NullReferenceException' error in the + `System.Web.UI.WebControls.EntityDataSourceView.ExecuteSelect' + function. (Bug #12776517, Bug #61714) + + * When a new column was added in Table Designer without selecting an + associated data type, an error would occur trying to save the + column definition. (Bug #13481298) + + * When creating a foreign key relationship in Table Designer, + changes to the `ON UPDATE' and `ON CASCADE' settings were not + reflected in the actual table definition, as displayed by `SHOW + CREATE TABLE'. (Bug #13481348) + + * Removing a method was not affecting the indexes list of the table + object, as defined within the Table Designer. (Bug #13481313) + + * The columns added in descending sort order were not included in + the index, as defined within the Server Explorer. (Bug #13481709) + + * The comment property and index type were not added in the + definition of the index, as defined within the Server Explorer. + (Bug #13481314) + * The default value for `VARCHAR' and `CHAR' field types would contain single quotation marks. (Bug #13442506) + * When creating a tableadapter through a Dataset form in Visual + Studio, the `MaxLength' of the field for a `CHAR' column could be + set to 3 times the length of the table column. Although this many + bytes could be needed to hold a UTF-8 character value, the length + value was not appropriate for restricting the length of a + `TextBox'. (Bug #12860224, Bug #62094) + + * When adding a `MEDIUMTEXT' or `LONGTEXT' column Visual Studio, the + facet `Fixed length' had to be set to `false', even though these + types allow arbitrary lengths. (Bug #12848277, Bug #54915) + + * Executing a `LINQ to Entity' query could result in a + `NullReferenceException' error. (Bug #12776598, Bug #61729) + * Connector/NET experienced poor performance when adding parameters to the `MySQLCommand'. (Bug #62653, Bug #13331475) @@ -244713,12 +248467,9 @@ * The `Mono' runtime did not support hashed passwords. (Bug #62203, Bug #13041618) - * `MySqlDataReader.Close' was modified to use Default behavior when - clearing remaining result sets. (Bug #61690, Bug #12723423) - - * `MySqlScript' was modified to enable correct processing of the - `DELIMITER' command when not followed by a new line. (Bug #61680, - Bug #12732279) + * Modified `MySqlConnection.BeginTransaction' to throw a + `NotSupportedException' for `Snapshot' isolation level. (Bug + #61589, Bug #12698020) * `SchemaDefinition-5.5.ssdl' was modified to treat `CHAR(36)' columns as a GUID. (Bug #61657, Bug #12708208) @@ -244726,21 +248477,24 @@ * `SqlFragment.QuoteIdentifier' was modified to add MySQL quotes around identifiers. (Bug #61635, Bug #12707285) - * Modified `MySqlConnection.BeginTransaction' to throw a - `NotSupportedException' for `Snapshot' isolation level. (Bug - #61589, Bug #12698020) + * `MySqlScript' was modified to enable correct processing of the + `DELIMITER' command when not followed by a new line. (Bug #61680, + Bug #12732279) - * The ASP.NET membership provider was modified to create and query - all related tables using lowercase names. (Bug #61108, Bug - #12702009) + * `MySqlDataReader.Close' was modified to use Default behavior when + clearing remaining result sets. (Bug #61690, Bug #12723423) * Modified `ProviderManifest.xml' to map `TIMESTAMP' database columns to the `DateTime' .NET type. (Bug #55351, Bug #12652602) + * The ASP.NET membership provider was modified to create and query + all related tables using lowercase names. (Bug #61108, Bug + #12702009) +  File: manual.info, Node: connector-net-news-6-3-7, Next: connector-net-news-6-3-6, Prev: connector-net-news-6-3-8, Up: connector-net-news-6-3-x -D.3.2.3 Changes in MySQL Connector/Net 6.3.7 (22 June 2011) +D.3.3.3 Changes in MySQL Connector/Net 6.3.7 (22 June 2011) ........................................................... This release fixes bugs since 6.3.6. @@ -244752,15 +248506,13 @@ *Bugs Fixed* - * MySQL Connector/Net 6.3.6 did not work with Visual Studio 2010. - (Bug #60723, Bug #12394470) - - * `MysqlDataReader.GetSchemaTable' returned incorrect values and - types. (Bug #59989, Bug #11776346) + * *InnoDB Storage Engine*: + `MySQLConnectionStringBuilder.ContainsKey()' incorrectly returned + `false' when testing whether a keyword was part of the connection + string. (Bug #11766671, Bug #59835) - * All queries other than `INSERT' were executed individually instead - of as a batch even though batching was enabled for the connection. - (Bug #59616, Bug #11850286) + * A `NullReferenceException' was thrown on disposal of a + `TransactionScope' object. (Bug #59346, Bug #11766272) * MySQL Connector/Net generated an exception when executing a query consisting of ';', for example: @@ -244778,11 +248530,18 @@ (Bug #59537, Bug #11766433) + * MySQL Connector/Net 6.3.6 did not work with Visual Studio 2010. + (Bug #60723, Bug #12394470) + + * `MysqlDataReader.GetSchemaTable' returned incorrect values and + types. (Bug #59989, Bug #11776346) + * Setting `Membership.ApplicationName' had no effect. (Bug #59438, Bug #11770465) - * A `NullReferenceException' was thrown on disposal of a - `TransactionScope' object. (Bug #59346, Bug #11766272) + * All queries other than `INSERT' were executed individually instead + of as a batch even though batching was enabled for the connection. + (Bug #59616, Bug #11850286) * The setup wizard failed with the error `Setup Wizard ended prematurely because of an error'. This was because it assumed .NET @@ -244796,7 +248555,7 @@  File: manual.info, Node: connector-net-news-6-3-6, Next: connector-net-news-6-3-5, Prev: connector-net-news-6-3-7, Up: connector-net-news-6-3-x -D.3.2.4 Changes in MySQL Connector/Net 6.3.6 (03 January 2011) +D.3.3.4 Changes in MySQL Connector/Net 6.3.6 (03 January 2011) .............................................................. This release fixes bugs since 6.3.5. @@ -244813,13 +248572,6 @@ *Bugs Fixed* - * `MembershipProvider' did not generate hashes correctly if the - algorithm was keyed. The Key of the algorithm should have been set - if the `HashAlgorithm' was `KeyedHashAlgorithm'. (Bug #58906) - - * Code introduced to fix bug #54863 proved problematic on .NET - version 3.5 and above. (Bug #58853) - * The `MySqlTokenizer' contained unnecessary `Substring' and `Trim' calls: @@ -244828,34 +248580,28 @@ The variable `token' was not used anywhere in the code. (Bug #58757) + * `MembershipProvider' did not generate hashes correctly if the + algorithm was keyed. The Key of the algorithm should have been set + if the `HashAlgorithm' was `KeyedHashAlgorithm'. (Bug #58906) + + * When attempting to create an ADO.NET Entity Data Model, MySQL + connections were not available. (Bug #58278) + * `MySqlCommand.ExecuteReader(CommandBehavior)' threw a `NullReferenceException' when being called with `CommandBehavior.CloseConnection', if the SQL statement contained a syntax error, or contained invalid data such as an invalid column name. (Bug #58652) - * `ReadFieldLength()' returned incorrect value for `BIGINT' - autoincrement columns. (Bug #58373) - - * When attempting to create an ADO.NET Entity Data Model, MySQL - connections were not available. (Bug #58278) - - * MySQL Connector/Net did not support the `utf8mb4' character set. - When attempting to connect to `utf8mb4' tables or columns, an - exception `KeyNotFoundException' was generated. (Bug #58244) - - * Installation of MySQL Connector/Net 6.3.5 failed. The error - reported was: - - MySQL Connector Net 6.3.5 Setup Wizard ended - prematurely because of an error. Your system has not been modified. + * The ADO.NET Entity Data Model could not add stored procedures from + MySQL Server 5.0.45 but worked fine using MySQL Server 5.1. (Bug + #55349) - (Bug #57654) + * Code introduced to fix bug #54863 proved problematic on .NET + version 3.5 and above. (Bug #58853) - * When the tracing driver was used and an SQL statement was longer - than 300 characters, an ArgumentOutOfRangeExcpetion occurred if - the statement also contained a quoted character, and the 300th - character was in the middle of a quoted token. (Bug #57641) + * `ReadFieldLength()' returned incorrect value for `BIGINT' + autoincrement columns. (Bug #58373) * Calling the `Read()' method on a `DataReader' obtained from `MySqlHelper.ExecuteReader' generated the following exception: @@ -244867,6 +248613,10 @@ (Bug #57501) + * MySQL Connector/Net did not support the `utf8mb4' character set. + When attempting to connect to `utf8mb4' tables or columns, an + exception `KeyNotFoundException' was generated. (Bug #58244) + * Default values returned for text columns were not quoted. This meant that the `COLUMN_DEFAULT' field of the `GetSchema' columns collection did not return a valid SQL expression. (Bug #56509) @@ -244882,15 +248632,24 @@ (Bug #56509) + * When the tracing driver was used and an SQL statement was longer + than 300 characters, an ArgumentOutOfRangeExcpetion occurred if + the statement also contained a quoted character, and the 300th + character was in the middle of a quoted token. (Bug #57641) + * MySQL Connector/Net for .NET/Mono attempted to dynamically load the assembly `Mono.Posix.dll' when a Unix socket was used to connect to the server. This failed and the connector was not able to use a Unix socket unless the `Mono.Posix.dll' assembly was previously loaded by the program. (Bug #56410) - * The ADO.NET Entity Data Model could not add stored procedures from - MySQL Server 5.0.45 but worked fine using MySQL Server 5.1. (Bug - #55349) + * Installation of MySQL Connector/Net 6.3.5 failed. The error + reported was: + + MySQL Connector Net 6.3.5 Setup Wizard ended + prematurely because of an error. Your system has not been modified. + + (Bug #57654) * In the ADO.NET Entity Data Model Wizard, the time to update a model scaled abnormally as the number of entities increased. (Bug @@ -244899,7 +248658,7 @@  File: manual.info, Node: connector-net-news-6-3-5, Next: connector-net-news-6-3-4, Prev: connector-net-news-6-3-6, Up: connector-net-news-6-3-x -D.3.2.5 Changes in MySQL Connector/Net 6.3.5 (12 October 2010) +D.3.3.5 Changes in MySQL Connector/Net 6.3.5 (12 October 2010) .............................................................. This release fixes bugs since 6.3.4. @@ -244912,9 +248671,15 @@ * Setting `MySqlCommand.CommandTimeout' to 0 had no effect. It should have resulted in an infinite timeout. (Bug #57265) + * When an output parameter was declared as type `MySqlDbType.Bit', + it failed to return with the correct value. (Bug #56756) + * When performing a row-by-row update, only the first row was updated and all other rows were ignored. (Bug #57092) + * Setting the `Default Command Timeout' connection string option had + no effect. (Bug #56806) + * MySQL Connector/Net experienced two problems as follows: 1. A call to `System.Data.Objects.ObjectContext.DatabaseExists()' @@ -244927,12 +248692,6 @@ (Bug #56859) - * Setting the `Default Command Timeout' connection string option had - no effect. (Bug #56806) - - * When an output parameter was declared as type `MySqlDbType.Bit', - it failed to return with the correct value. (Bug #56756) - * `MySqlHelper.ExecuteReader' did not include an overload accepting `MySqlParameter' objects when using a `MySqlConnection'. However, `MySqlHelper' did include an overload for `MySqlParameter' objects @@ -244962,17 +248721,13 @@  File: manual.info, Node: connector-net-news-6-3-4, Next: connector-net-news-6-3-3, Prev: connector-net-news-6-3-5, Up: connector-net-news-6-3-x -D.3.2.6 Changes in MySQL Connector/Net 6.3.4 (01 September 2010 GA) -................................................................... +D.3.3.6 Changes in MySQL Connector/Net 6.3.4 (01 September 2010, Generally Available) +..................................................................................... First GA release. This release fixes bugs since 6.3.3. *Bugs Fixed* - * The calculation of `lockAge' in the Session Provider sometimes - generated a `System.Data.SqlTypes.SqlNullValueException'. (Bug - #55701) - * Attempting to read `Double.MinValue' from a `DOUBLE' column in MySQL table generated the following exception: @@ -244991,9 +248746,9 @@ (Bug #55644) - * Calling `MySqlDataAdapter.Update(DataTable)' resulted in an - unacceptable performance hit when updating large amounts of data. - (Bug #55609) + * The calculation of `lockAge' in the Session Provider sometimes + generated a `System.Data.SqlTypes.SqlNullValueException'. (Bug + #55701) * If using MySQL Server 5.0.x it was not possible to alter stored routines in Visual Studio. If the stored routine was clicked, and @@ -245005,6 +248760,14 @@ (Bug #55170) + * Calling `MySqlDataAdapter.Update(DataTable)' resulted in an + unacceptable performance hit when updating large amounts of data. + (Bug #55609) + + * Stored procedure enumeration code generated an error if a + procedure was used in a dataset that did not return any resultsets. + (Bug #50671) + * EventLog was not disposed in the SessionState provider. (Bug #52550) @@ -245022,10 +248785,6 @@ MySQL Connector/Net has now been changed so that all `TIMESTAMP' columns will be surfaced as `DateTime'. (Bug #52550) - * Stored procedure enumeration code generated an error if a - procedure was used in a dataset that did not return any resultsets. - (Bug #50671) - * The `INSERT' command was significantly slower with MySQL Connector/Net 6.x compared to 5.x, when compression was enabled. (Bug #48243) @@ -245037,13 +248796,26 @@  File: manual.info, Node: connector-net-news-6-3-3, Next: connector-net-news-6-3-2, Prev: connector-net-news-6-3-4, Up: connector-net-news-6-3-x -D.3.2.7 Changes in MySQL Connector/Net 6.3.3 (27 July 2010) +D.3.3.7 Changes in MySQL Connector/Net 6.3.3 (27 July 2010) ........................................................... This release fixes bugs since 6.3.2. *Bugs Fixed* + * MySQL Connector/Net 6.3.2 failed to install on Windows Vista. + (Bug #53975) + + * MySQL Connector/Net did not process `Thread.Abort()' correctly, + and failed to cancel queries currently running on the server. + (Bug #54012) + + * MySQL Connector/Net did not throw an `EndOfStreamException' + exception when `net_write_timeout' was exceeded. (Bug #53439) + + * The icon for the MySQL Web Configuration Tool was not displayed in + Visual Studio for Web Application Projects. (Bug #54571) + * `MySqlDataAdapter.Update()' generated concurrency violations for custom stored procedure driven update commands that used `UpdateRowSource.FirstReturnedRecord'. (Bug #54895) @@ -245055,13 +248827,6 @@ * MySQL Connector/Net generated a null reference exception when `TransactionScope' was used by multiple threads. (Bug #54681) - * The icon for the MySQL Web Configuration Tool was not displayed in - Visual Studio for Web Application Projects. (Bug #54571) - - * The `MySqlHelper' object did not have an overloaded version of the - `ExecuteReader' method that accepted a `MySqlConnection' object. - (Bug #54570) - * If `MySqlDataAdapter' was used with an `INSERT' command where the `VALUES' clause contained an expression with parentheses in it, and set the `adapter.UpdateBatchSize' parameter to be greater than @@ -245069,16 +248834,9 @@ exception or failed to batch the commands, executing each insert individually. (Bug #54386) - * The method `MySql.Data.Common.QueryNormalizer.CollapseValueList' - generated an `ArgumentOutOfRangeException'. (Bug #54152, Bug - #53865) - - * MySQL Connector/Net did not process `Thread.Abort()' correctly, - and failed to cancel queries currently running on the server. - (Bug #54012) - - * MySQL Connector/Net 6.3.2 failed to install on Windows Vista. - (Bug #53975) + * The `MySqlHelper' object did not have an overloaded version of the + `ExecuteReader' method that accepted a `MySqlConnection' object. + (Bug #54570) * Garbage Collector disposal of a `MySqlConnection' object caused the following exception: @@ -245092,9 +248850,6 @@ (Bug #53457) - * MySQL Connector/Net did not throw an `EndOfStreamException' - exception when `net_write_timeout' was exceeded. (Bug #53439) - * After a timeout exception, if an attempt was made to reuse a connection returned to the connection pool the following exception was generated: @@ -245115,18 +248870,22 @@ (Bug #53357) + * The method `MySql.Data.Common.QueryNormalizer.CollapseValueList' + generated an `ArgumentOutOfRangeException'. (Bug #54152, Bug + #53865) + * Membership schema creation failed if the default schema collation was not Latin1. (Bug #53174) + * `CHAR(36)' columns were not recognized as GUIDs when used in views + with entity models. (Bug #52085) + * The MySQL Connector/Net installation failed due to `machine.config' files not being present in configuration folders. MySQL Connector/Net has been changed to skip over configuration folders that do not contain a `machine.config' file. (Bug #52352) - * `CHAR(36)' columns were not recognized as GUIDs when used in views - with entity models. (Bug #52085) - * When an application was subjected to increased concurrent load, MySQL Connector/Net generated the following error when calling stored procedures: @@ -245157,14 +248916,14 @@  File: manual.info, Node: connector-net-news-6-3-2, Next: connector-net-news-6-3-1, Prev: connector-net-news-6-3-3, Up: connector-net-news-6-3-x -D.3.2.8 Changes in MySQL Connector/Net 6.3.2 (24 May 2010 beta) -............................................................... +D.3.3.8 Changes in MySQL Connector/Net 6.3.2 (24 May 2010, beta) +................................................................ First Beta release. This release fixes bugs since 6.3.1. *Functionality Added or Changed* - * Procedure cacheing had a problem whereby if you created a + * Procedure caching had a problem whereby if you created a procedure, dropped it, and recreated it with a different number of parameters an exception was generated. @@ -245223,6 +248982,14 @@ * A non-terminated string in SQL threw a CLR exception rather than a syntax exception. (Bug #51788) + * When using table per type inheritance and listing the contents of + the parent table, the result of the query was a list of child + objects, even though there was no related child record with the + same parent Id. (Bug #49850) + + * MySQL Connector/Net 6.3.1 failed to install. (Bug #51407, Bug + #51604) + * When calling `ExecuteNonQuery' on a command object, the following exception occurred: @@ -245231,18 +248998,10 @@ (Bug #51610) - * MySQL Connector/Net 6.3.1 failed to install. (Bug #51407, Bug - #51604) - - * When using table per type inheritance and listing the contents of - the parent table, the result of the query was a list of child - objects, even though there was no related child record with the - same parent Id. (Bug #49850) -  File: manual.info, Node: connector-net-news-6-3-1, Next: connector-net-news-6-3-0, Prev: connector-net-news-6-3-2, Up: connector-net-news-6-3-x -D.3.2.9 Changes in MySQL Connector/Net 6.3.1 (02 March 2010) +D.3.3.9 Changes in MySQL Connector/Net 6.3.1 (02 March 2010) ............................................................ This release fixes bugs since 6.3.0. @@ -245258,28 +249017,28 @@ *Bugs Fixed* - * Specifying a connection string where an option had no value - generated an error, rather than the value being set to the - default. For example, a connection string such as the following - would result in an error: + * Binary Columns were not displayed in the Query Builder of Visual + Studio. (Bug #50171) - server=localhost;user=root;compress=;database=test;port=3306;password=123456; + * `MySqlCommand.Parameters.Clear()' did not work. (Bug #50444) - (Bug #51209) + * When the `UpdateBatchSize' property was set to a value greater + than 1, only the first row was applied to the database. (Bug + #50123) * The method `Command.TrimSemicolons' used `StringBuilder', and therefore allocated memory for the query even if it did not need to be trimmed. This led to excessive memory consumption when executing a number of large queries. (Bug #51149) - * `MySqlCommand.Parameters.Clear()' did not work. (Bug #50444) + * Specifying a connection string where an option had no value + generated an error, rather than the value being set to the + default. For example, a connection string such as the following + would result in an error: - * Binary Columns were not displayed in the Query Builder of Visual - Studio. (Bug #50171) + server=localhost;user=root;compress=;database=test;port=3306;password=123456; - * When the `UpdateBatchSize' property was set to a value greater - than 1, only the first row was applied to the database. (Bug - #50123) + (Bug #51209) * When trying to create stored procedures from an SQL script, a `MySqlException' was thrown when attempting to redefine the @@ -245313,8 +249072,8 @@  File: manual.info, Node: connector-net-news-6-3-0, Prev: connector-net-news-6-3-1, Up: connector-net-news-6-3-x -D.3.2.10 Changes in MySQL Connector/Net 6.3.0 (16 February 2010 alpha) -...................................................................... +D.3.3.10 Changes in MySQL Connector/Net 6.3.0 (16 February 2010, alpha) +....................................................................... First alpha release of 6.3. @@ -245332,26 +249091,26 @@ *Bugs Fixed* + * The method `MySqlDataReader.GetSchemaTable()' returned 0 in the + `NumericPrecision' field for decimal and newdecimal columns. (Bug + #48171) + + * Attempting to execute a load data local infile on a file where the + user did not have write permissions, or the file was open in an + editor gave an access denied error. (Bug #48944) + * When adding a data set in Visual Studio 2008, the following error was generated: - Relations couldn't be addded. Column 'REFERENCED_TABLE_CATALOG' does not belong to table. + Relations couldn't be added. Column 'REFERENCED_TABLE_CATALOG' does not belong to table. This was due to a 'REFERENCED_TABLE_CATALOG' column not being included in the foreign keys collection. (Bug #48974) - * Attempting to execute a load data local infile on a file where the - user did not have write permissions, or the file was open in an - editor gave an access denied error. (Bug #48944) - - * The method `MySqlDataReader.GetSchemaTable()' returned 0 in the - `NumericPrecision' field for decimal and newdecimal columns. (Bug - #48171) -  File: manual.info, Node: connector-net-news-6-2-x, Next: connector-net-news-6-1-x, Prev: connector-net-news-6-3-x, Up: connector-net-news -D.3.3 Changes in MySQL Connector/Net Version 6.2.x +D.3.4 Changes in MySQL Connector/Net Version 6.2.x -------------------------------------------------- * Menu: @@ -245360,57 +249119,78 @@ * connector-net-news-6-2-5:: Changes in MySQL Connector/Net 6.2.5 (01 July 2011) * connector-net-news-6-2-4:: Changes in MySQL Connector/Net 6.2.4 (30 August 2010) * connector-net-news-6-2-3:: Changes in MySQL Connector/Net 6.2.3 (10 April 2010) -* connector-net-news-6-2-2:: Changes in MySQL Connector/Net 6.2.2 (22 December 2009 GA) -* connector-net-news-6-2-1:: Changes in MySQL Connector/Net 6.2.1 (16 November 2009 beta) -* connector-net-news-6-2-0:: Changes in MySQL Connector/Net 6.2.0 (21 October 2009 alpha) +* connector-net-news-6-2-2:: Changes in MySQL Connector/Net 6.2.2 (22 December 2009, Generally Available) +* connector-net-news-6-2-1:: Changes in MySQL Connector/Net 6.2.1 (16 November 2009, beta) +* connector-net-news-6-2-0:: Changes in MySQL Connector/Net 6.2.0 (21 October 2009, alpha)  File: manual.info, Node: connector-net-news-6-2-6, Next: connector-net-news-6-2-5, Prev: connector-net-news-6-2-x, Up: connector-net-news-6-2-x -D.3.3.1 Changes in MySQL Connector/Net 6.2.6 (Not yet released) +D.3.4.1 Changes in MySQL Connector/Net 6.2.6 (Not yet released) ............................................................... This release fixes bugs since 6.2.5. *Bugs Fixed* + * *InnoDB Storage Engine*: Using a combination of `ListView', + `EntityDataSource' with `TypeFilter' and `Include EntityCollection + Navigation Property', and `DataPager' caused a + `NullReferenceException' error in the + `System.Web.UI.WebControls.EntityDataSourceView.ExecuteSelect' + function. (Bug #12776517, Bug #61714) + + * When creating a tableadapter through a Dataset form in Visual + Studio, the `MaxLength' of the field for a `CHAR' column could be + set to 3 times the length of the table column. Although this many + bytes could be needed to hold a UTF-8 character value, the length + value was not appropriate for restricting the length of a + `TextBox'. (Bug #12860224, Bug #62094) + + * Executing a `LINQ to Entity' query could result in a + `NullReferenceException' error. (Bug #12776598, Bug #61729) + * `MySqlScript' was modified to enable correct processing of the `DELIMITER' command when not followed by a new line. (Bug #61680, Bug #12732279) + * On Model First changed column types generated in SQL scripts to + produce more suitable `MySql' types. (Bug #59244, Bug #12707104) + * The ASP.NET membership provider was modified to create and query all related tables using lowercase names. (Bug #61108, Bug #12702009) - * On Model First changed column types generated in SQL scripts to - produce more suitable `MySql' types. (Bug #59244, Bug #12707104) -  File: manual.info, Node: connector-net-news-6-2-5, Next: connector-net-news-6-2-4, Prev: connector-net-news-6-2-6, Up: connector-net-news-6-2-x -D.3.3.2 Changes in MySQL Connector/Net 6.2.5 (01 July 2011) +D.3.4.2 Changes in MySQL Connector/Net 6.2.5 (01 July 2011) ........................................................... This release fixes bugs since 6.2.4. *Bugs Fixed* + * *InnoDB Storage Engine*: + `MySQLConnectionStringBuilder.ContainsKey()' incorrectly returned + `false' when testing whether a keyword was part of the connection + string. (Bug #11766671, Bug #59835) + + * Modified `MySqlConnection.BeginTransaction' to throw a + `NotSupportedException' for `Snapshot' isolation level. (Bug + #61589, Bug #12698020) + * `SchemaDefinition-5.5.ssdl' was modified to treat `CHAR(36)' columns as a GUID. (Bug #61657, Bug #12708208) * `SqlFragment.QuoteIdentifier' was modified to add MySQL quotes around identifiers. (Bug #61635, Bug #12707285) - * Modified `MySqlConnection.BeginTransaction' to throw a - `NotSupportedException' for `Snapshot' isolation level. (Bug - #61589, Bug #12698020) - - * `MysqlDataReader.GetSchemaTable' returned incorrect values and - types. (Bug #59989, Bug #11776346) + * Modified `ProviderManifest.xml' to map `TIMESTAMP' database + columns to the `DateTime' .NET type. (Bug #55351, Bug #12652602) - * All queries other than `INSERT' were executed individually instead - of as a batch even though batching was enabled for the connection. - (Bug #59616, Bug #11850286) + * A `NullReferenceException' was thrown on disposal of a + `TransactionScope' object. (Bug #59346, Bug #11766272) * MySQL Connector/Net generated an exception when executing a query consisting of ';', for example: @@ -245428,18 +249208,18 @@ (Bug #59537, Bug #11766433) - * Setting `Membership.ApplicationName' had no effect. (Bug #59438, - Bug #11770465) + * A typed dataset did not get the table name. (Bug #57894, Bug + #11764989) - * A `NullReferenceException' was thrown on disposal of a - `TransactionScope' object. (Bug #59346, Bug #11766272) + * `MysqlDataReader.GetSchemaTable' returned incorrect values and + types. (Bug #59989, Bug #11776346) - * `MembershipProvider' did not generate hashes correctly if the - algorithm was keyed. The Key of the algorithm should have been set - if the `HashAlgorithm' was `KeyedHashAlgorithm'. (Bug #58906) + * Setting `Membership.ApplicationName' had no effect. (Bug #59438, + Bug #11770465) - * Code introduced to fix bug #54863 proved problematic on .NET - version 3.5 and above. (Bug #58853) + * All queries other than `INSERT' were executed individually instead + of as a batch even though batching was enabled for the connection. + (Bug #59616, Bug #11850286) * The `MySqlTokenizer' contained unnecessary `Substring' and `Trim' calls: @@ -245449,12 +249229,23 @@ The variable `token' was not used anywhere in the code. (Bug #58757) + * `MembershipProvider' did not generate hashes correctly if the + algorithm was keyed. The Key of the algorithm should have been set + if the `HashAlgorithm' was `KeyedHashAlgorithm'. (Bug #58906) + * `MySqlCommand.ExecuteReader(CommandBehavior)' threw a `NullReferenceException' when being called with `CommandBehavior.CloseConnection', if the SQL statement contained a syntax error, or contained invalid data such as an invalid column name. (Bug #58652) + * The ADO.NET Entity Data Model could not add stored procedures from + MySQL Server 5.0.45 but worked fine using MySQL Server 5.1. (Bug + #55349) + + * Code introduced to fix bug #54863 proved problematic on .NET + version 3.5 and above. (Bug #58853) + * `ReadFieldLength()' returned incorrect value for `BIGINT' autoincrement columns. (Bug #58373) @@ -245462,44 +249253,34 @@ When attempting to connect to `utf8mb4' tables or columns, an exception `KeyNotFoundException' was generated. (Bug #58244) - * A typed dataset did not get the table name. (Bug #57894, Bug - #11764989) + * Default values returned for text columns were not quoted. This + meant that the `COLUMN_DEFAULT' field of the `GetSchema' columns + collection did not return a valid SQL expression. (Bug #56509) + + * MySQL Connector/Net for .NET/Mono attempted to dynamically load + the assembly `Mono.Posix.dll' when a Unix socket was used to + connect to the server. This failed and the connector was not able + to use a Unix socket unless the `Mono.Posix.dll' assembly was + previously loaded by the program. (Bug #56410) * Setting `MySqlCommand.CommandTimeout' to 0 had no effect. It should have resulted in an infinite timeout. (Bug #57265) + * When an output parameter was declared as type `MySqlDbType.Bit', + it failed to return with the correct value. (Bug #56756) + * When performing a row-by-row update, only the first row was updated and all other rows were ignored. (Bug #57092) * Setting the `Default Command Timeout' connection string option had no effect. (Bug #56806) - * When an output parameter was declared as type `MySqlDbType.Bit', - it failed to return with the correct value. (Bug #56756) - * `MySqlHelper.ExecuteReader' did not include an overload accepting `MySqlParameter' objects when using a `MySqlConnection'. However, `MySqlHelper' did include an overload for `MySqlParameter' objects when using a string object containing the connection string to the database. (Bug #56755) - * Default values returned for text columns were not quoted. This - meant that the `COLUMN_DEFAULT' field of the `GetSchema' columns - collection did not return a valid SQL expression. (Bug #56509) - - * MySQL Connector/Net for .NET/Mono attempted to dynamically load - the assembly `Mono.Posix.dll' when a Unix socket was used to - connect to the server. This failed and the connector was not able - to use a Unix socket unless the `Mono.Posix.dll' assembly was - previously loaded by the program. (Bug #56410) - - * Modified `ProviderManifest.xml' to map `TIMESTAMP' database - columns to the `DateTime' .NET type. (Bug #55351, Bug #12652602) - - * The ADO.NET Entity Data Model could not add stored procedures from - MySQL Server 5.0.45 but worked fine using MySQL Server 5.1. (Bug - #55349) - * Fixed Entity Framework provider `GROUP BY' clause generation by adding all group-by keys to the `SELECT' statement. (Bug #46742, Bug #12622129) @@ -245507,14 +249288,14 @@  File: manual.info, Node: connector-net-news-6-2-4, Next: connector-net-news-6-2-3, Prev: connector-net-news-6-2-5, Up: connector-net-news-6-2-x -D.3.3.3 Changes in MySQL Connector/Net 6.2.4 (30 August 2010) +D.3.4.3 Changes in MySQL Connector/Net 6.2.4 (30 August 2010) ............................................................. This release fixes bugs since 6.2.3. *Functionality Added or Changed* - * Procedure cacheing had a problem whereby if you created a + * Procedure caching had a problem whereby if you created a procedure, dropped it, and recreated it with a different number of parameters an exception was generated. @@ -245524,10 +249305,6 @@ *Bugs Fixed* - * The calculation of `lockAge' in the Session Provider sometimes - generated a `System.Data.SqlTypes.SqlNullValueException'. (Bug - #55701) - * Attempting to read `Double.MinValue' from a `DOUBLE' column in MySQL table generated the following exception: @@ -245546,12 +249323,9 @@ (Bug #55644) - * After an exception, the internal datareader, - `MySqlCommand.Connection.Reader', was not properly closed (it was - not set to null). If another query was subsequently executed on - that command object an exception was generated with the message - `There is already an open DataReader associated with this - Connection which must be closed first.' (Bug #55558) + * The calculation of `lockAge' in the Session Provider sometimes + generated a `System.Data.SqlTypes.SqlNullValueException'. (Bug + #55701) * If using MySQL Server 5.0.x it was not possible to alter stored routines in Visual Studio. If the stored routine was clicked, and @@ -245563,6 +249337,23 @@ (Bug #55170) + * After an exception, the internal datareader, + `MySqlCommand.Connection.Reader', was not properly closed (it was + not set to null). If another query was subsequently executed on + that command object an exception was generated with the message + `There is already an open DataReader associated with this + Connection which must be closed first.' (Bug #55558) + + * MySQL Connector/Net did not process `Thread.Abort()' correctly, + and failed to cancel queries currently running on the server. + (Bug #54012) + + * MySQL Connector/Net did not throw an `EndOfStreamException' + exception when `net_write_timeout' was exceeded. (Bug #53439) + + * The icon for the MySQL Web Configuration Tool was not displayed in + Visual Studio for Web Application Projects. (Bug #54571) + * `MySqlDataAdapter.Update()' generated concurrency violations for custom stored procedure driven update commands that used `UpdateRowSource.FirstReturnedRecord'. (Bug #54895) @@ -245571,13 +249362,6 @@ to `DataTable' resulted in `ConcurrencyException' exceptions being generated. (Bug #54863) - * The icon for the MySQL Web Configuration Tool was not displayed in - Visual Studio for Web Application Projects. (Bug #54571) - - * The `MySqlHelper' object did not have an overloaded version of the - `ExecuteReader' method that accepted a `MySqlConnection' object. - (Bug #54570) - * If `MySqlDataAdapter' was used with an `INSERT' command where the `VALUES' clause contained an expression with parentheses in it, and set the `adapter.UpdateBatchSize' parameter to be greater than @@ -245585,13 +249369,9 @@ exception or failed to batch the commands, executing each insert individually. (Bug #54386) - * The method `MySql.Data.Common.QueryNormalizer.CollapseValueList' - generated an `ArgumentOutOfRangeException'. (Bug #54152, Bug - #53865) - - * MySQL Connector/Net did not process `Thread.Abort()' correctly, - and failed to cancel queries currently running on the server. - (Bug #54012) + * The `MySqlHelper' object did not have an overloaded version of the + `ExecuteReader' method that accepted a `MySqlConnection' object. + (Bug #54570) * Garbage Collector disposal of a `MySqlConnection' object caused the following exception: @@ -245605,9 +249385,6 @@ (Bug #53457) - * MySQL Connector/Net did not throw an `EndOfStreamException' - exception when `net_write_timeout' was exceeded. (Bug #53439) - * After a timeout exception, if an attempt was made to reuse a connection returned to the connection pool the following exception was generated: @@ -245628,17 +249405,45 @@ (Bug #53357) + * The method `MySql.Data.Common.QueryNormalizer.CollapseValueList' + generated an `ArgumentOutOfRangeException'. (Bug #54152, Bug + #53865) + + * In the ADO.NET Entity Data Model Wizard, the time to update a + model scaled abnormally as the number of entities increased. (Bug + #48791, Bug #12596237) + + * Stored procedure enumeration code generated an error if a + procedure was used in a dataset that did not return any resultsets. + (Bug #50671) + + * EventLog was not disposed in the SessionState provider. (Bug + #52550) + + * The `INSERT' command was significantly slower with MySQL + Connector/Net 6.x compared to 5.x, when compression was enabled. + (Bug #48243) + * Membership schema creation failed if the default schema collation was not Latin1. (Bug #53174) + * `CHAR(36)' columns were not recognized as GUIDs when used in views + with entity models. (Bug #52085) + + * When an application was subjected to increased concurrent load, + MySQL Connector/Net generated the following error when calling + stored procedures: + + A DataTable named \'Procedure Parameters\' + already belongs to this DataSet. + + (Bug #49118) + * In MySQL Connector/Net, the `MySqlConnection.Abort()' method contained a `try...catch' construct, with an empty `catch' block. This meant that any exception generated at this point would not be caught. (Bug #52769) - * EventLog was not disposed in the SessionState provider. (Bug - #52550) - * The procedure cache affected the MySQL Connector/Net performance, reducing it by around 65%. This was due to unnecessary calls of `String.Format()', related to debug logging. Even though the @@ -245649,17 +249454,6 @@ the decimal separator (according to locale) was not interpreted. (Bug #52187) - * Periodically the session provider threw an `SqlNullValueException' - exception. When this happened, the row within the - `my_aspnet_Sessions' table had `locked' always set to '1'. The - locked status never changed back to '0' and the user experienced - the exception on every page, until their browser was closed and - reopened (recreating a new sessionID), or the `locked' value was - manually changed to '0'. (Bug #52175) - - * `CHAR(36)' columns were not recognized as GUIDs when used in views - with entity models. (Bug #52085) - * In MySQL Connector/Net, the `LoadCharsetMap()' function of the `CharSetMap' class set the following incorrect mapping: @@ -245674,28 +249468,15 @@ This is because MySQL's `latin1' character set is the same as the `windows-cp1252' character set and it extends the official ISO - 8859-1 or IANA latin1. (Bug #51927) - - * Stored procedure enumeration code generated an error if a - procedure was used in a dataset that did not return any resultsets. - (Bug #50671) - - * When an application was subjected to increased concurrent load, - MySQL Connector/Net generated the following error when calling - stored procedures: - - A DataTable named \'Procedure Parameters\' - already belongs to this DataSet. - - (Bug #49118) - - * In the ADO.NET Entity Data Model Wizard, the time to update a - model scaled abnormally as the number of entities increased. (Bug - #48791, Bug #12596237) + 8859-1 or IANA latin1. (Bug #51927) - * The `INSERT' command was significantly slower with MySQL - Connector/Net 6.x compared to 5.x, when compression was enabled. - (Bug #48243) + * Periodically the session provider threw an `SqlNullValueException' + exception. When this happened, the row within the + `my_aspnet_Sessions' table had `locked' always set to '1'. The + locked status never changed back to '0' and the user experienced + the exception on every page, until their browser was closed and + reopened (recreating a new sessionID), or the `locked' value was + manually changed to '0'. (Bug #52175) * When the connection string option `Connection Reset = True' was used, a connection reset used the previously used encoding for the @@ -245722,7 +249503,7 @@  File: manual.info, Node: connector-net-news-6-2-3, Next: connector-net-news-6-2-2, Prev: connector-net-news-6-2-4, Up: connector-net-news-6-2-x -D.3.3.4 Changes in MySQL Connector/Net 6.2.3 (10 April 2010) +D.3.4.4 Changes in MySQL Connector/Net 6.2.3 (10 April 2010) ............................................................ This release fixes bugs since 6.2.2. @@ -245739,6 +249520,11 @@ * A non-terminated string in SQL threw a CLR exception rather than a syntax exception. (Bug #51788) + * When using table per type inheritance and listing the contents of + the parent table, the result of the query was a list of child + objects, even though there was no related child record with the + same parent Id. (Bug #49850) + * When calling `ExecuteNonQuery' on a command object, the following exception occurred: @@ -245747,21 +249533,28 @@ (Bug #51610) - * Specifying a connection string where an option had no value - generated an error, rather than the value being set to the - default. For example, a connection string such as the following - would result in an error: + * Binary Columns were not displayed in the Query Builder of Visual + Studio. (Bug #50171) - server=localhost;user=root;compress=;database=test;port=3306;password=123456; + * `MySqlCommand.Parameters.Clear()' did not work. (Bug #50444) - (Bug #51209) + * When the `UpdateBatchSize' property was set to a value greater + than 1, only the first row was applied to the database. (Bug + #50123) * The method `Command.TrimSemicolons' used `StringBuilder', and therefore allocated memory for the query even if it did not need to be trimmed. This led to excessive memory consumption when executing a number of large queries. (Bug #51149) - * `MySqlCommand.Parameters.Clear()' did not work. (Bug #50444) + * Specifying a connection string where an option had no value + generated an error, rather than the value being set to the + default. For example, a connection string such as the following + would result in an error: + + server=localhost;user=root;compress=;database=test;port=3306;password=123456; + + (Bug #51209) * When the `MySqlScript.execute()' method was called, the following exception was generated: @@ -245778,24 +249571,15 @@ (Bug #50321) - * Binary Columns were not displayed in the Query Builder of Visual - Studio. (Bug #50171) - - * When the `UpdateBatchSize' property was set to a value greater - than 1, only the first row was applied to the database. (Bug - #50123) - - * When using table per type inheritance and listing the contents of - the parent table, the result of the query was a list of child - objects, even though there was no related child record with the - same parent Id. (Bug #49850) + * A `FormatException' was generated when an empty string was + returned from a stored function. (Bug #49642) * `MySqlDataReader.GetUInt64' returned an incorrect value when reading a `BIGINT UNSIGNED' column containing a value greater than 2147483647. (Bug #49794) - * A `FormatException' was generated when an empty string was - returned from a stored function. (Bug #49642) + * Calling a User Defined Function using Entity SQL in the Entity + Framework caused a `NullReferenceException'. (Bug #45277) * When trying to create stored procedures from an SQL script, a `MySqlException' was thrown when attempting to redefine the @@ -245821,9 +249605,6 @@ Note: The `MySqlScript' class has been fixed to support the delimiter statement as it is found in SQL scripts. (Bug #46429) - * Calling a User Defined Function using Entity SQL in the Entity - Framework caused a `NullReferenceException'. (Bug #45277) - * A connection string set in `web.config' could not be reused after Visual Studio 2008 Professional was shut down. It continued working for the existing controls, but did not work for new @@ -245832,29 +249613,29 @@  File: manual.info, Node: connector-net-news-6-2-2, Next: connector-net-news-6-2-1, Prev: connector-net-news-6-2-3, Up: connector-net-news-6-2-x -D.3.3.5 Changes in MySQL Connector/Net 6.2.2 (22 December 2009 GA) -.................................................................. +D.3.4.5 Changes in MySQL Connector/Net 6.2.2 (22 December 2009, Generally Available) +.................................................................................... First GA release of 6.2. This release fixes bugs since 6.2.1. *Bugs Fixed* + * The method `MySqlDataReader.GetSchemaTable()' returned 0 in the + `NumericPrecision' field for decimal and newdecimal columns. (Bug + #48171) + + * Attempting to execute a load data local infile on a file where the + user did not have write permissions, or the file was open in an + editor gave an access denied error. (Bug #48944) + * When adding a data set in Visual Studio 2008, the following error was generated: - Relations couldn't be addded. Column 'REFERENCED_TABLE_CATALOG' does not belong to table. + Relations couldn't be added. Column 'REFERENCED_TABLE_CATALOG' does not belong to table. This was due to a 'REFERENCED_TABLE_CATALOG' column not being included in the foreign keys collection. (Bug #48974) - * Attempting to execute a load data local infile on a file where the - user did not have write permissions, or the file was open in an - editor gave an access denied error. (Bug #48944) - - * The method `MySqlDataReader.GetSchemaTable()' returned 0 in the - `NumericPrecision' field for decimal and newdecimal columns. (Bug - #48171) - * MySQL Connector/Net generated an invalid operation exception during a transaction rollback: @@ -245875,8 +249656,8 @@  File: manual.info, Node: connector-net-news-6-2-1, Next: connector-net-news-6-2-0, Prev: connector-net-news-6-2-2, Up: connector-net-news-6-2-x -D.3.3.6 Changes in MySQL Connector/Net 6.2.1 (16 November 2009 beta) -.................................................................... +D.3.4.6 Changes in MySQL Connector/Net 6.2.1 (16 November 2009, beta) +..................................................................... This release fixes bugs since 6.2.0. @@ -245890,22 +249671,11 @@ the column. This feature is designed as an aid to the developer. (Bug #48586) - * Prior to MySQL Connector/Net 6.2, `MySqlCommand.CommandTimeout' - included user processing time, that is processing time not related - to direct use of the connector. Timeout was implemented through a - .NET Timer, that triggered after `CommandTimeout' seconds. - - MySQL Connector/Net 6.2 introduced timeouts that are aligned with - how Microsoft handles `SqlCommand.CommandTimeout'. This property - is the cumulative timeout for all network reads and writes during - command execution or processing of the results. A timeout can - still occur in the `MySqlReader.Read' method after the first row - is returned, and does not include user processing time, only IO - operations. - - Further details on this can be found in the relevant Microsoft - documentation - (http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.commandtimeout.aspx). + * MySQL Connector/Net now supports the processing of certificates + when connecting to an SSL-enabled MySQL Server. For further + information see the connection string option SSL Mode in the + section *Note connector-net-connection-options:: and the tutorial + *Note connector-net-tutorials-ssl::. * Starting with MySQL Connector/Net 6.2, there is a background job that runs every three minutes and removes connections from pool @@ -245921,24 +249691,33 @@ 1000 open sockets at the server, without ever freeing up those resources from the connection pool. - * MySQL Connector/Net now supports the processing of certificates - when connecting to an SSL-enabled MySQL Server. For further - information see the connection string option SSL Mode in the - section *Note connector-net-connection-options:: and the tutorial - *Note connector-net-tutorials-ssl::. + * Prior to MySQL Connector/Net 6.2, `MySqlCommand.CommandTimeout' + included user processing time, that is processing time not related + to direct use of the connector. Timeout was implemented through a + .NET Timer, that triggered after `CommandTimeout' seconds. -*Bugs Fixed* + MySQL Connector/Net 6.2 introduced timeouts that are aligned with + how Microsoft handles `SqlCommand.CommandTimeout'. This property + is the cumulative timeout for all network reads and writes during + command execution or processing of the results. A timeout can + still occur in the `MySqlReader.Read' method after the first row + is returned, and does not include user processing time, only IO + operations. - * Cloning of `MySqlCommand' was not typesafe. To clone a - `MySqlCommand' it was necessary to do: + Further details on this can be found in the relevant Microsoft + documentation + (http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.commandtimeout.aspx). - MySqlCommand clone = (MySqlCommand)((ICloneable)comm).Clone(); +*Bugs Fixed* - MySQL Connector/Net was changed so that it was possible to do: + * When building the `MySql.Data' project with .NET Framework 3.5 + installed, the following build output was displayed: - MySqlCommand clone = comm.Clone(); + Project file contains ToolsVersion="4.0", which is not supported by this version of + MSBuild. Treating the project as if it had ToolsVersion="3.5". - (Bug #48460) + The project had been created using the .NET Framework 4.0, which + was beta, instead of using the 3.5 framework. (Bug #48271) * When used, the `Encrypt' connection string option caused a `Keyword not supported' exception to be generated. @@ -245948,21 +249727,16 @@ it does not generate an exception, it will be removed completely in version 6.4. (Bug #48290) - * When building the `MySql.Data' project with .NET Framework 3.5 - installed, the following build output was displayed: + * Cloning of `MySqlCommand' was not typesafe. To clone a + `MySqlCommand' it was necessary to do: - Project file contains ToolsVersion="4.0", which is not supported by this version of - MSBuild. Treating the project as if it had ToolsVersion="3.5". + MySqlCommand clone = (MySqlCommand)((ICloneable)comm).Clone(); - The project had been created using the .NET Framework 4.0, which - was beta, instead of using the 3.5 framework. (Bug #48271) + MySQL Connector/Net was changed so that it was possible to do: - * It was not possible to retrieve a value from a MySQL server table, - if the value was larger than that supported by the .NET type - `System.Decimal'. + MySqlCommand clone = comm.Clone(); - MySQL Connector/Net was changed to expose the `MySqlDecimal' type, - along with the supporting method `GetMySqlDecimal'. (Bug #48100) + (Bug #48460) * An entity model created from a schema containing a table with a column of type `UNSIGNED BIGINT' and a view of the table did not @@ -245970,6 +249744,13 @@ view, the column that was of type `UNSIGNED BIGINT' was displayed as `BIGINT'. (Bug #47872) + * It was not possible to retrieve a value from a MySQL server table, + if the value was larger than that supported by the .NET type + `System.Decimal'. + + MySQL Connector/Net was changed to expose the `MySqlDecimal' type, + along with the supporting method `GetMySqlDecimal'. (Bug #48100) + * MySQL Connector/Net session support did not work with MySQL Server versions prior to 5.0, as the Session Provider used a call to `TIMESTAMPDIFF', which was not available on servers prior to 5.0. @@ -245978,8 +249759,8 @@  File: manual.info, Node: connector-net-news-6-2-0, Prev: connector-net-news-6-2-1, Up: connector-net-news-6-2-x -D.3.3.7 Changes in MySQL Connector/Net 6.2.0 (21 October 2009 alpha) -.................................................................... +D.3.4.7 Changes in MySQL Connector/Net 6.2.0 (21 October 2009, alpha) +..................................................................... The first alpha release of 6.2. @@ -246022,40 +249803,40 @@  File: manual.info, Node: connector-net-news-6-1-x, Next: connector-net-news-6-0-x, Prev: connector-net-news-6-2-x, Up: connector-net-news -D.3.4 Changes in MySQL Connector/Net Version 6.1.x +D.3.5 Changes in MySQL Connector/Net Version 6.1.x -------------------------------------------------- * Menu: -* connector-net-news-6-1-7:: Changes in MySQL Connector/Net 6.1.7 (Not released GA) -* connector-net-news-6-1-6:: Changes in MySQL Connector/Net 6.1.6 (Not released GA) -* connector-net-news-6-1-5:: Changes in MySQL Connector/Net 6.1.5 (30 August 2010 GA) -* connector-net-news-6-1-4:: Changes in MySQL Connector/Net 6.1.4 (28 April 2010 GA) -* connector-net-news-6-1-3:: Changes in MySQL Connector/Net 6.1.3 (16 November 2009 GA) -* connector-net-news-6-1-2:: Changes in MySQL Connector/Net 6.1.2 (08 September 2009 GA) -* connector-net-news-6-1-1:: Changes in MySQL Connector/Net 6.1.1 (20 August 2009 beta) -* connector-net-news-6-1-0:: Changes in MySQL Connector/Net 6.1.0 (15 July 2009 alpha) +* connector-net-news-6-1-7:: Changes in MySQL Connector/Net 6.1.7 (Not released, Generally Available) +* connector-net-news-6-1-6:: Changes in MySQL Connector/Net 6.1.6 (Not released, Generally Available) +* connector-net-news-6-1-5:: Changes in MySQL Connector/Net 6.1.5 (30 August 2010, Generally Available) +* connector-net-news-6-1-4:: Changes in MySQL Connector/Net 6.1.4 (28 April 2010, Generally Available) +* connector-net-news-6-1-3:: Changes in MySQL Connector/Net 6.1.3 (16 November 2009, Generally Available) +* connector-net-news-6-1-2:: Changes in MySQL Connector/Net 6.1.2 (08 September 2009, Generally Available) +* connector-net-news-6-1-1:: Changes in MySQL Connector/Net 6.1.1 (20 August 2009, beta) +* connector-net-news-6-1-0:: Changes in MySQL Connector/Net 6.1.0 (15 July 2009, alpha)  File: manual.info, Node: connector-net-news-6-1-7, Next: connector-net-news-6-1-6, Prev: connector-net-news-6-1-x, Up: connector-net-news-6-1-x -D.3.4.1 Changes in MySQL Connector/Net 6.1.7 (Not released GA) -.............................................................. +D.3.5.1 Changes in MySQL Connector/Net 6.1.7 (Not released, Generally Available) +................................................................................ This release fixes bugs since 6.1.6. *Bugs Fixed* - * `MySqlScript' was modified to enable correct processing of the - `DELIMITER' command when not followed by a new line. (Bug #61680, - Bug #12732279) - * `SchemaDefinition-5.5.ssdl' was modified to treat `CHAR(36)' columns as a GUID. (Bug #61657, Bug #12708208) * `SqlFragment.QuoteIdentifier' was modified to add MySQL quotes around identifiers. (Bug #61635, Bug #12707285) + * `MySqlScript' was modified to enable correct processing of the + `DELIMITER' command when not followed by a new line. (Bug #61680, + Bug #12732279) + * The ASP.NET membership provider was modified to create and query all related tables using lowercase names. (Bug #61108, Bug #12702009) @@ -246063,23 +249844,24 @@  File: manual.info, Node: connector-net-news-6-1-6, Next: connector-net-news-6-1-5, Prev: connector-net-news-6-1-7, Up: connector-net-news-6-1-x -D.3.4.2 Changes in MySQL Connector/Net 6.1.6 (Not released GA) -.............................................................. +D.3.5.2 Changes in MySQL Connector/Net 6.1.6 (Not released, Generally Available) +................................................................................ This release fixes bugs since 6.1.5. *Bugs Fixed* + * *InnoDB Storage Engine*: + `MySQLConnectionStringBuilder.ContainsKey()' incorrectly returned + `false' when testing whether a keyword was part of the connection + string. (Bug #11766671, Bug #59835) + * Modified `MySqlConnection.BeginTransaction' to throw a `NotSupportedException' for `Snapshot' isolation level. (Bug #61589, Bug #12698020) - * `MysqlDataReader.GetSchemaTable' returned incorrect values and - types. (Bug #59989, Bug #11776346) - - * All queries other than `INSERT' were executed individually instead - of as a batch even though batching was enabled for the connection. - (Bug #59616, Bug #11850286) + * Modified `ProviderManifest.xml' to map `TIMESTAMP' database + columns to the `DateTime' .NET type. (Bug #55351, Bug #12652602) * MySQL Connector/Net generated an exception when executing a query consisting of ';', for example: @@ -246097,15 +249879,18 @@ (Bug #59537, Bug #11766433) + * A typed dataset did not get the table name. (Bug #57894, Bug + #11764989) + + * `MysqlDataReader.GetSchemaTable' returned incorrect values and + types. (Bug #59989, Bug #11776346) + * Setting `Membership.ApplicationName' had no effect. (Bug #59438, Bug #11770465) - * `MembershipProvider' did not generate hashes correctly if the - algorithm was keyed. The Key of the algorithm should have been set - if the `HashAlgorithm' was `KeyedHashAlgorithm'. (Bug #58906) - - * Code introduced to fix bug #54863 proved problematic on .NET - version 3.5 and above. (Bug #58853) + * All queries other than `INSERT' were executed individually instead + of as a batch even though batching was enabled for the connection. + (Bug #59616, Bug #11850286) * The `MySqlTokenizer' contained unnecessary `Substring' and `Trim' calls: @@ -246115,12 +249900,23 @@ The variable `token' was not used anywhere in the code. (Bug #58757) + * `MembershipProvider' did not generate hashes correctly if the + algorithm was keyed. The Key of the algorithm should have been set + if the `HashAlgorithm' was `KeyedHashAlgorithm'. (Bug #58906) + * `MySqlCommand.ExecuteReader(CommandBehavior)' threw a `NullReferenceException' when being called with `CommandBehavior.CloseConnection', if the SQL statement contained a syntax error, or contained invalid data such as an invalid column name. (Bug #58652) + * The ADO.NET Entity Data Model could not add stored procedures from + MySQL Server 5.0.45 but worked fine using MySQL Server 5.1. (Bug + #55349) + + * Code introduced to fix bug #54863 proved problematic on .NET + version 3.5 and above. (Bug #58853) + * `ReadFieldLength()' returned incorrect value for `BIGINT' autoincrement columns. (Bug #58373) @@ -246128,44 +249924,34 @@ When attempting to connect to `utf8mb4' tables or columns, an exception `KeyNotFoundException' was generated. (Bug #58244) - * A typed dataset did not get the table name. (Bug #57894, Bug - #11764989) + * Default values returned for text columns were not quoted. This + meant that the `COLUMN_DEFAULT' field of the `GetSchema' columns + collection did not return a valid SQL expression. (Bug #56509) + + * MySQL Connector/Net for .NET/Mono attempted to dynamically load + the assembly `Mono.Posix.dll' when a Unix socket was used to + connect to the server. This failed and the connector was not able + to use a Unix socket unless the `Mono.Posix.dll' assembly was + previously loaded by the program. (Bug #56410) * Setting `MySqlCommand.CommandTimeout' to 0 had no effect. It should have resulted in an infinite timeout. (Bug #57265) + * When an output parameter was declared as type `MySqlDbType.Bit', + it failed to return with the correct value. (Bug #56756) + * When performing a row-by-row update, only the first row was updated and all other rows were ignored. (Bug #57092) * Setting the `Default Command Timeout' connection string option had no effect. (Bug #56806) - * When an output parameter was declared as type `MySqlDbType.Bit', - it failed to return with the correct value. (Bug #56756) - * `MySqlHelper.ExecuteReader' did not include an overload accepting `MySqlParameter' objects when using a `MySqlConnection'. However, `MySqlHelper' did include an overload for `MySqlParameter' objects when using a string object containing the connection string to the database. (Bug #56755) - * Default values returned for text columns were not quoted. This - meant that the `COLUMN_DEFAULT' field of the `GetSchema' columns - collection did not return a valid SQL expression. (Bug #56509) - - * MySQL Connector/Net for .NET/Mono attempted to dynamically load - the assembly `Mono.Posix.dll' when a Unix socket was used to - connect to the server. This failed and the connector was not able - to use a Unix socket unless the `Mono.Posix.dll' assembly was - previously loaded by the program. (Bug #56410) - - * Modified `ProviderManifest.xml' to map `TIMESTAMP' database - columns to the `DateTime' .NET type. (Bug #55351, Bug #12652602) - - * The ADO.NET Entity Data Model could not add stored procedures from - MySQL Server 5.0.45 but worked fine using MySQL Server 5.1. (Bug - #55349) - * Fixed Entity Framework provider `GROUP BY' clause generation by adding all group-by keys to the `SELECT' statement. (Bug #46742, Bug #12622129) @@ -246173,17 +249959,13 @@  File: manual.info, Node: connector-net-news-6-1-5, Next: connector-net-news-6-1-4, Prev: connector-net-news-6-1-6, Up: connector-net-news-6-1-x -D.3.4.3 Changes in MySQL Connector/Net 6.1.5 (30 August 2010 GA) -................................................................ +D.3.5.3 Changes in MySQL Connector/Net 6.1.5 (30 August 2010, Generally Available) +.................................................................................. This release fixes bugs since 6.1.4. *Bugs Fixed* - * The calculation of `lockAge' in the Session Provider sometimes - generated a `System.Data.SqlTypes.SqlNullValueException'. (Bug - #55701) - * Attempting to read `Double.MinValue' from a `DOUBLE' column in MySQL table generated the following exception: @@ -246202,6 +249984,10 @@ (Bug #55644) + * The calculation of `lockAge' in the Session Provider sometimes + generated a `System.Data.SqlTypes.SqlNullValueException'. (Bug + #55701) + * If using MySQL Server 5.0.x it was not possible to alter stored routines in Visual Studio. If the stored routine was clicked, and the context sensitive menu option, Alter Routine, selected, the @@ -246212,6 +249998,12 @@ (Bug #55170) + * MySQL Connector/Net did not throw an `EndOfStreamException' + exception when `net_write_timeout' was exceeded. (Bug #53439) + + * The icon for the MySQL Web Configuration Tool was not displayed in + Visual Studio for Web Application Projects. (Bug #54571) + * `MySqlDataAdapter.Update()' generated concurrency violations for custom stored procedure driven update commands that used `UpdateRowSource.FirstReturnedRecord'. (Bug #54895) @@ -246220,13 +250012,6 @@ to `DataTable' resulted in `ConcurrencyException' exceptions being generated. (Bug #54863) - * The icon for the MySQL Web Configuration Tool was not displayed in - Visual Studio for Web Application Projects. (Bug #54571) - - * The `MySqlHelper' object did not have an overloaded version of the - `ExecuteReader' method that accepted a `MySqlConnection' object. - (Bug #54570) - * If `MySqlDataAdapter' was used with an `INSERT' command where the `VALUES' clause contained an expression with parentheses in it, and set the `adapter.UpdateBatchSize' parameter to be greater than @@ -246234,9 +250019,9 @@ exception or failed to batch the commands, executing each insert individually. (Bug #54386) - * The method `MySql.Data.Common.QueryNormalizer.CollapseValueList' - generated an `ArgumentOutOfRangeException'. (Bug #54152, Bug - #53865) + * The `MySqlHelper' object did not have an overloaded version of the + `ExecuteReader' method that accepted a `MySqlConnection' object. + (Bug #54570) * Garbage Collector disposal of a `MySqlConnection' object caused the following exception: @@ -246250,9 +250035,6 @@ (Bug #53457) - * MySQL Connector/Net did not throw an `EndOfStreamException' - exception when `net_write_timeout' was exceeded. (Bug #53439) - * After a timeout exception, if an attempt was made to reuse a connection returned to the connection pool the following exception was generated: @@ -246273,19 +250055,31 @@ (Bug #53357) - * Membership schema creation failed if the default schema collation - was not Latin1. (Bug #53174) + * The method `MySql.Data.Common.QueryNormalizer.CollapseValueList' + generated an `ArgumentOutOfRangeException'. (Bug #54152, Bug + #53865) + + * In the ADO.NET Entity Data Model Wizard, the time to update a + model scaled abnormally as the number of entities increased. (Bug + #48791, Bug #12596237) + + * Stored procedure enumeration code generated an error if a + procedure was used in a dataset that did not return any resultsets. + (Bug #50671) * EventLog was not disposed in the SessionState provider. (Bug #52550) + * The `INSERT' command was significantly slower with MySQL + Connector/Net 6.x compared to 5.x, when compression was enabled. + (Bug #48243) + + * Membership schema creation failed if the default schema collation + was not Latin1. (Bug #53174) + * `CHAR(36)' columns were not recognized as GUIDs when used in views with entity models. (Bug #52085) - * Stored procedure enumeration code generated an error if a - procedure was used in a dataset that did not return any resultsets. - (Bug #50671) - * When an application was subjected to increased concurrent load, MySQL Connector/Net generated the following error when calling stored procedures: @@ -246295,14 +250089,6 @@ (Bug #49118) - * In the ADO.NET Entity Data Model Wizard, the time to update a - model scaled abnormally as the number of entities increased. (Bug - #48791, Bug #12596237) - - * The `INSERT' command was significantly slower with MySQL - Connector/Net 6.x compared to 5.x, when compression was enabled. - (Bug #48243) - * When the connection string option `Connection Reset = True' was used, a connection reset used the previously used encoding for the subsequent authentication operation. This failed, for example, if @@ -246328,14 +250114,14 @@  File: manual.info, Node: connector-net-news-6-1-4, Next: connector-net-news-6-1-3, Prev: connector-net-news-6-1-5, Up: connector-net-news-6-1-x -D.3.4.4 Changes in MySQL Connector/Net 6.1.4 (28 April 2010 GA) -............................................................... +D.3.5.4 Changes in MySQL Connector/Net 6.1.4 (28 April 2010, Generally Available) +................................................................................. This release fixes bugs since 6.1.3. *Functionality Added or Changed* - * Procedure cacheing had a problem whereby if you created a + * Procedure caching had a problem whereby if you created a procedure, dropped it, and recreated it with a different number of parameters an exception was generated. @@ -246378,6 +250164,11 @@ * A non-terminated string in SQL threw a CLR exception rather than a syntax exception. (Bug #51788) + * When using table per type inheritance and listing the contents of + the parent table, the result of the query was a list of child + objects, even though there was no related child record with the + same parent Id. (Bug #49850) + * When calling `ExecuteNonQuery' on a command object, the following exception occurred: @@ -246386,13 +250177,20 @@ (Bug #51610) + * Binary Columns were not displayed in the Query Builder of Visual + Studio. (Bug #50171) + + * `MySqlCommand.Parameters.Clear()' did not work. (Bug #50444) + + * When the `UpdateBatchSize' property was set to a value greater + than 1, only the first row was applied to the database. (Bug + #50123) + * The method `Command.TrimSemicolons' used `StringBuilder', and therefore allocated memory for the query even if it did not need to be trimmed. This led to excessive memory consumption when executing a number of large queries. (Bug #51149) - * `MySqlCommand.Parameters.Clear()' did not work. (Bug #50444) - * When the `MySqlScript.execute()' method was called, the following exception was generated: @@ -246400,41 +250198,32 @@ (Bug #50344) - * Binary Columns were not displayed in the Query Builder of Visual - Studio. (Bug #50171) - - * When the `UpdateBatchSize' property was set to a value greater - than 1, only the first row was applied to the database. (Bug - #50123) - - * When using table per type inheritance and listing the contents of - the parent table, the result of the query was a list of child - objects, even though there was no related child record with the - same parent Id. (Bug #49850) + * A `FormatException' was generated when an empty string was + returned from a stored function. (Bug #49642) * `MySqlDataReader.GetUInt64' returned an incorrect value when reading a `BIGINT UNSIGNED' column containing a value greater than 2147483647. (Bug #49794) - * A `FormatException' was generated when an empty string was - returned from a stored function. (Bug #49642) + * Calling a User Defined Function using Entity SQL in the Entity + Framework caused a `NullReferenceException'. (Bug #45277) + + * The method `MySqlDataReader.GetSchemaTable()' returned 0 in the + `NumericPrecision' field for decimal and newdecimal columns. (Bug + #48171) + + * Attempting to execute a load data local infile on a file where the + user did not have write permissions, or the file was open in an + editor gave an access denied error. (Bug #48944) * When adding a data set in Visual Studio 2008, the following error was generated: - Relations couldn't be addded. Column 'REFERENCED_TABLE_CATALOG' does not belong to table. + Relations couldn't be added. Column 'REFERENCED_TABLE_CATALOG' does not belong to table. This was due to a 'REFERENCED_TABLE_CATALOG' column not being included in the foreign keys collection. (Bug #48974) - * Attempting to execute a load data local infile on a file where the - user did not have write permissions, or the file was open in an - editor gave an access denied error. (Bug #48944) - - * The method `MySqlDataReader.GetSchemaTable()' returned 0 in the - `NumericPrecision' field for decimal and newdecimal columns. (Bug - #48171) - * When trying to create stored procedures from an SQL script, a `MySqlException' was thrown when attempting to redefine the `DELIMITER': @@ -246459,9 +250248,6 @@ Note: The `MySqlScript' class has been fixed to support the delimiter statement as it is found in SQL scripts. (Bug #46429) - * Calling a User Defined Function using Entity SQL in the Entity - Framework caused a `NullReferenceException'. (Bug #45277) - * A connection string set in `web.config' could not be reused after Visual Studio 2008 Professional was shut down. It continued working for the existing controls, but did not work for new @@ -246470,13 +250256,22 @@  File: manual.info, Node: connector-net-news-6-1-3, Next: connector-net-news-6-1-2, Prev: connector-net-news-6-1-4, Up: connector-net-news-6-1-x -D.3.4.5 Changes in MySQL Connector/Net 6.1.3 (16 November 2009 GA) -.................................................................. +D.3.5.5 Changes in MySQL Connector/Net 6.1.3 (16 November 2009, Generally Available) +.................................................................................... This release fixes bugs since 6.1.2. *Bugs Fixed* + * When building the `MySql.Data' project with .NET Framework 3.5 + installed, the following build output was displayed: + + Project file contains ToolsVersion="4.0", which is not supported by this version of + MSBuild. Treating the project as if it had ToolsVersion="3.5". + + The project had been created using the .NET Framework 4.0, which + was beta, instead of using the 3.5 framework. (Bug #48271) + * Cloning of `MySqlCommand' was not typesafe. To clone a `MySqlCommand' it was necessary to do: @@ -246488,14 +250283,26 @@ (Bug #48460) - * When building the `MySql.Data' project with .NET Framework 3.5 - installed, the following build output was displayed: + * An entity model created from a schema containing a table with a + column of type `UNSIGNED BIGINT' and a view of the table did not + behave correctly. When an entity was created and mapped to the + view, the column that was of type `UNSIGNED BIGINT' was displayed + as `BIGINT'. (Bug #47872) - Project file contains ToolsVersion="4.0", which is not supported by this version of - MSBuild. Treating the project as if it had ToolsVersion="3.5". + * For some character sets such as UTF-8, a `CHAR' column would + sometimes be incorrectly interpreted as a `GUID' by MySQL + Connector/Net. - The project had been created using the .NET Framework 4.0, which - was beta, instead of using the 3.5 framework. (Bug #48271) + MySQL Connector/Net was changed so that a column would only be + interpreted as a `GUID' if it had a character length of 36, as + opposed to a byte length of 36. (Bug #47985) + + * It was not possible to retrieve a value from a MySQL server table, + if the value was larger than that supported by the .NET type + `System.Decimal'. + + MySQL Connector/Net was changed to expose the `MySqlDecimal' type, + along with the supporting method `GetMySqlDecimal'. (Bug #48100) * If `MySqlConnection.GetSchema' was called for "Indexes" on a table named `b`a`d' as follows: @@ -246511,21 +250318,6 @@ (Bug #48101) - * It was not possible to retrieve a value from a MySQL server table, - if the value was larger than that supported by the .NET type - `System.Decimal'. - - MySQL Connector/Net was changed to expose the `MySqlDecimal' type, - along with the supporting method `GetMySqlDecimal'. (Bug #48100) - - * For some character sets such as UTF-8, a `CHAR' column would - sometimes be incorrectly interpreted as a `GUID' by MySQL - Connector/Net. - - MySQL Connector/Net was changed so that a column would only be - interpreted as a `GUID' if it had a character length of 36, as - opposed to a byte length of 36. (Bug #47985) - * When using a `BINARY(16)' column to represent a GUID and having specified `old guids = true' in the connection string, the values were returned correctly until a null value was encountered in that @@ -246536,12 +250328,6 @@ (Bug #47928) - * An entity model created from a schema containing a table with a - column of type `UNSIGNED BIGINT' and a view of the table did not - behave correctly. When an entity was created and mapped to the - view, the column that was of type `UNSIGNED BIGINT' was displayed - as `BIGINT'. (Bug #47872) - * The Session Provider created invalid `session expires' on a random basis. @@ -246582,8 +250368,8 @@  File: manual.info, Node: connector-net-news-6-1-2, Next: connector-net-news-6-1-1, Prev: connector-net-news-6-1-3, Up: connector-net-news-6-1-x -D.3.4.6 Changes in MySQL Connector/Net 6.1.2 (08 September 2009 GA) -................................................................... +D.3.5.6 Changes in MySQL Connector/Net 6.1.2 (08 September 2009, Generally Available) +..................................................................................... This is the first GA release of 6.1. This release fixes bugs since 6.1.1. @@ -246632,8 +250418,8 @@  File: manual.info, Node: connector-net-news-6-1-1, Next: connector-net-news-6-1-0, Prev: connector-net-news-6-1-2, Up: connector-net-news-6-1-x -D.3.4.7 Changes in MySQL Connector/Net 6.1.1 (20 August 2009 beta) -.................................................................. +D.3.5.7 Changes in MySQL Connector/Net 6.1.1 (20 August 2009, beta) +................................................................... This is the first Beta release of 6.1. @@ -246642,6 +250428,39 @@ * In the `MySqlDataReader' class the `GetSByte' function returned a `byte' value instead of an `sbyte' value. (Bug #46620) + * An exception was generated when using `TIMESTAMP' columns with the + Entity Framework. (Bug #46311) + + * Insert into two tables failed when using the Entity Framework. + The exception generated was: + + The value given is not an instance of type 'Edm.Int32' + + (Bug #45077) + + * Conversion of MySQL `TINYINT(1)' to `boolean' failed. (Bug + #46205, Bug #46359, Bug #41953) + + * Calling the Entity Framework `SaveChanges()' method of any MySQL + ORM Entity with a column type `TIME', generated an error message: + + Unknown PrimitiveKind Time + + (Bug #45457) + + * The Entity Framework provider was not calling `DBSortExpression' + correctly when the `Skip' and `Take' methods were used, such as in + the following statement: + + TestModel.tblquarantine.OrderByDescending(q => q.MsgDate).Skip(100).Take(100).ToList(); + + This resulted in the data being unsorted. (Bug #45723) + + * MySQL Connector/Net sometimes hung, without generating an + exception. This happened if a read from a stream failed returning + a 0, causing the code in `LoadPacket()' to enter an infinite loop. + (Bug #46308) + * The MySQL Connector/Net Profile Provider, `MySql.Web.Profile.MySQLProfileProvider', generated an error when running on Mono. When an attempt was made to save a string in @@ -246671,13 +250490,23 @@ (Bug #46375) - * An exception was generated when using `TIMESTAMP' columns with the - Entity Framework. (Bug #46311) + * When populating a MySQL database table in Visual Studio using the + Table Editor, if a `VARCHAR(10)' column was changed to a + `VARCHAR(20)' column an exception was generated: - * MySQL Connector/Net sometimes hung, without generating an - exception. This happened if a read from a stream failed returning - a 0, causing the code in `LoadPacket()' to enter an infinite loop. - (Bug #46308) + SystemArgumentException: DataGridViewComboBoxCell value is not valid. + To replace this default dialog please handle the DataError Event. + + (Bug #46100) + + * The MySQL Connector/Net 6.0.4 installer failed with an error. The + error message generated was: + + There is a problem with this Windows Installer package. A DLL required for this + install to complete could not be run. Contact your support personnel or package vendor. + + When `OK' was clicked to acknowledge the error the installer + exited. (Bug #45474) * When using MySQL Connector/Net 6.0.4 and a MySQL Server 4.1 an exception was generated when trying to execute: @@ -246725,63 +250554,31 @@ (Bug #46213) - * Conversion of MySQL `TINYINT(1)' to `boolean' failed. (Bug - #46205, Bug #46359, Bug #41953) - - * When populating a MySQL database table in Visual Studio using the - Table Editor, if a `VARCHAR(10)' column was changed to a - `VARCHAR(20)' column an exception was generated: - - SystemArgumentException: DataGridViewComboBoxCell value is not valid. - To replace this default dialog please handle the DataError Event. - - (Bug #46100) - - * The Entity Framework provider was not calling `DBSortExpression' - correctly when the `Skip' and `Take' methods were used, such as in - the following statement: - - TestModel.tblquarantine.OrderByDescending(q => q.MsgDate).Skip(100).Take(100).ToList(); - - This resulted in the data being unsorted. (Bug #45723) - - * The MySQL Connector/Net 6.0.4 installer failed with an error. The - error message generated was: - - There is a problem with this Windows Installer package. A DLL required for this - install to complete could not be run. Contact your support personnel or package vendor. - - When `OK' was clicked to acknowledge the error the installer - exited. (Bug #45474) - - * Calling the Entity Framework `SaveChanges()' method of any MySQL - ORM Entity with a column type `TIME', generated an error message: - - Unknown PrimitiveKind Time - - (Bug #45457) - - * Insert into two tables failed when using the Entity Framework. - The exception generated was: - - The value given is not an instance of type 'Edm.Int32' - - (Bug #45077) - * Errors occurred when using the Entity Framework with cultures that used a comma as the decimal separator. This was because the formatting for `SINGLE', `DOUBLE' and `DECIMAL' values was not handled correctly. (Bug #44455) + * When reading data, such as with a `MySqlDataAdapter' on a + `MySqlConnection', MySQL Connector/Net could potentially enter an + infinite loop in `CompressedStream.ReadNextpacket()' if + compression was enabled. (Bug #43678) + * When attempting to connect to MySQL using the Compact Framework version of MySQL Connector/Net, an `IndexOutOfRangeException' exception was generated on trying to open the connection. (Bug #43736) - * When reading data, such as with a `MySqlDataAdapter' on a - `MySqlConnection', MySQL Connector/Net could potentially enter an - infinite loop in `CompressedStream.ReadNextpacket()' if - compression was enabled. (Bug #43678) + * In the case of long network inactivity, especially when connection + pooling was used, connections were sometimes dropped, for example, + by firewalls. + + Note: The bugfix introduced a new `keepalive' parameter, which + prevents disconnects by sending an empty TCP packet after a + specified timeout. (Bug #40684) + + * MySQL Connector/Net CHM documentation stated that MySQL Server + 3.23 was supported. (Bug #42110) * An error occurred when building MySQL Connector/Net from source code checked out from the public SVN repository. This happened on @@ -246803,17 +250600,6 @@ (Bug #42411) - * MySQL Connector/Net CHM documentation stated that MySQL Server - 3.23 was supported. (Bug #42110) - - * In the case of long network inactivity, especially when connection - pooling was used, connections were sometimes dropped, for example, - by firewalls. - - Note: The bugfix introduced a new `keepalive' parameter, which - prevents disconnects by sending an empty TCP packet after a - specified timeout. (Bug #40684) - * Calling a Stored Procedure with an output parameter through MySQL Connector/Net resulted in a memory leak. Calling the same Stored Procedure without an output parameter did not result in a memory @@ -246822,13 +250608,26 @@  File: manual.info, Node: connector-net-news-6-1-0, Prev: connector-net-news-6-1-1, Up: connector-net-news-6-1-x -D.3.4.8 Changes in MySQL Connector/Net 6.1.0 (15 July 2009 alpha) -................................................................. +D.3.5.8 Changes in MySQL Connector/Net 6.1.0 (15 July 2009, alpha) +.................................................................. This is the first Alpha release of 6.1. *Functionality Added or Changed* + * Website Configuration Dialog - This is a new wizard that is + activated by clicking a button on the toolbar at the top of the + Visual Studio Solution Explorer. It works in conjunction with the + ASP.Net administration pages, making it easier to activate and set + advanced options for the different MySQL web providers included. + + * Session State Provider - This enables you to store the state of + your website in a MySQL server. + + * Support for native output parameters - This is supported when + connected to a server that supports native output parameters. + This includes servers as of 5.5.3 and 6.0.8. + * Changed GUID type - The backend representation of a guid type has been changed to be CHAR(36). This is so you can use the server UUID() function to populate a GUID table. UUID generates a 36 @@ -246836,23 +250635,10 @@ guids=true' to the connection string and the old BINARY(16) type will be used instead. - * Support for native output parameters - This is supported when - connected to a server that supports native output parameters. - This includes servers as of 5.5.3 and 6.0.8. - - * Session State Provider - This enables you to store the state of - your website in a MySQL server. - - * Website Configuration Dialog - This is a new wizard that is - activated by clicking a button on the toolbar at the top of the - Visual Studio Solution Explorer. It works in conjunction with the - ASP.Net administration pages, making it easier to activate and set - advanced options for the different MySQL web providers included. -  File: manual.info, Node: connector-net-news-6-0-x, Next: connector-net-news-5-3-x, Prev: connector-net-news-6-1-x, Up: connector-net-news -D.3.5 Changes in MySQL Connector/Net Version 6.0.x +D.3.6 Changes in MySQL Connector/Net Version 6.0.x -------------------------------------------------- * Menu: @@ -246863,26 +250649,24 @@ * connector-net-news-6-0-5:: Changes in MySQL Connector/Net 6.0.5 (12 November 2009) * connector-net-news-6-0-4:: Changes in MySQL Connector/Net 6.0.4 (16 June 2009) * connector-net-news-6-0-3:: Changes in MySQL Connector/Net 6.0.3 (28 April 2009) -* connector-net-news-6-0-2:: Changes in MySQL Connector/Net 6.0.2 (07 April 2009 beta) -* connector-net-news-6-0-1:: Changes in MySQL Connector/Net 6.0.1 (02 April 2009 beta) -* connector-net-news-6-0-0:: Changes in MySQL Connector/Net 6.0.0 (02 March 2009 alpha) +* connector-net-news-6-0-2:: Changes in MySQL Connector/Net 6.0.2 (07 April 2009, beta) +* connector-net-news-6-0-1:: Changes in MySQL Connector/Net 6.0.1 (02 April 2009, beta) +* connector-net-news-6-0-0:: Changes in MySQL Connector/Net 6.0.0 (02 March 2009, alpha)  File: manual.info, Node: connector-net-news-6-0-8, Next: connector-net-news-6-0-7, Prev: connector-net-news-6-0-x, Up: connector-net-news-6-0-x -D.3.5.1 Changes in MySQL Connector/Net 6.0.8 (Not released) +D.3.6.1 Changes in MySQL Connector/Net 6.0.8 (Not released) ........................................................... Fixes bugs since 6.0.7. *Bugs Fixed* - * `MysqlDataReader.GetSchemaTable' returned incorrect values and - types. (Bug #59989, Bug #11776346) - - * All queries other than `INSERT' were executed individually instead - of as a batch even though batching was enabled for the connection. - (Bug #59616, Bug #11850286) + * *InnoDB Storage Engine*: + `MySQLConnectionStringBuilder.ContainsKey()' incorrectly returned + `false' when testing whether a keyword was part of the connection + string. (Bug #11766671, Bug #59835) * MySQL Connector/Net generated an exception when executing a query consisting of ';', for example: @@ -246900,15 +250684,18 @@ (Bug #59537, Bug #11766433) + * A typed dataset did not get the table name. (Bug #57894, Bug + #11764989) + + * `MysqlDataReader.GetSchemaTable' returned incorrect values and + types. (Bug #59989, Bug #11776346) + * Setting `Membership.ApplicationName' had no effect. (Bug #59438, Bug #11770465) - * `MembershipProvider' did not generate hashes correctly if the - algorithm was keyed. The Key of the algorithm should have been set - if the `HashAlgorithm' was `KeyedHashAlgorithm'. (Bug #58906) - - * Code introduced to fix bug #54863 proved problematic on .NET - version 3.5 and above. (Bug #58853) + * All queries other than `INSERT' were executed individually instead + of as a batch even though batching was enabled for the connection. + (Bug #59616, Bug #11850286) * The `MySqlTokenizer' contained unnecessary `Substring' and `Trim' calls: @@ -246918,12 +250705,23 @@ The variable `token' was not used anywhere in the code. (Bug #58757) + * `MembershipProvider' did not generate hashes correctly if the + algorithm was keyed. The Key of the algorithm should have been set + if the `HashAlgorithm' was `KeyedHashAlgorithm'. (Bug #58906) + * `MySqlCommand.ExecuteReader(CommandBehavior)' threw a `NullReferenceException' when being called with `CommandBehavior.CloseConnection', if the SQL statement contained a syntax error, or contained invalid data such as an invalid column name. (Bug #58652) + * The ADO.NET Entity Data Model could not add stored procedures from + MySQL Server 5.0.45 but worked fine using MySQL Server 5.1. (Bug + #55349) + + * Code introduced to fix bug #54863 proved problematic on .NET + version 3.5 and above. (Bug #58853) + * `ReadFieldLength()' returned incorrect value for `BIGINT' autoincrement columns. (Bug #58373) @@ -246931,21 +250729,6 @@ When attempting to connect to `utf8mb4' tables or columns, an exception `KeyNotFoundException' was generated. (Bug #58244) - * A typed dataset did not get the table name. (Bug #57894, Bug - #11764989) - - * Setting `MySqlCommand.CommandTimeout' to 0 had no effect. It - should have resulted in an infinite timeout. (Bug #57265) - - * When performing a row-by-row update, only the first row was - updated and all other rows were ignored. (Bug #57092) - - * Setting the `Default Command Timeout' connection string option had - no effect. (Bug #56806) - - * When an output parameter was declared as type `MySqlDbType.Bit', - it failed to return with the correct value. (Bug #56756) - * Default values returned for text columns were not quoted. This meant that the `COLUMN_DEFAULT' field of the `GetSchema' columns collection did not return a valid SQL expression. (Bug #56509) @@ -246956,14 +250739,22 @@ to use a Unix socket unless the `Mono.Posix.dll' assembly was previously loaded by the program. (Bug #56410) - * The ADO.NET Entity Data Model could not add stored procedures from - MySQL Server 5.0.45 but worked fine using MySQL Server 5.1. (Bug - #55349) + * Setting `MySqlCommand.CommandTimeout' to 0 had no effect. It + should have resulted in an infinite timeout. (Bug #57265) + + * When an output parameter was declared as type `MySqlDbType.Bit', + it failed to return with the correct value. (Bug #56756) + + * When performing a row-by-row update, only the first row was + updated and all other rows were ignored. (Bug #57092) + + * Setting the `Default Command Timeout' connection string option had + no effect. (Bug #56806)  File: manual.info, Node: connector-net-news-6-0-7, Next: connector-net-news-6-0-6, Prev: connector-net-news-6-0-8, Up: connector-net-news-6-0-x -D.3.5.2 Changes in MySQL Connector/Net 6.0.7 (30 August 2010) +D.3.6.2 Changes in MySQL Connector/Net 6.0.7 (30 August 2010) ............................................................. Fixes bugs since 6.0.6. @@ -246996,10 +250787,6 @@ to `DataTable' resulted in `ConcurrencyException' exceptions being generated. (Bug #54863) - * The `MySqlHelper' object did not have an overloaded version of the - `ExecuteReader' method that accepted a `MySqlConnection' object. - (Bug #54570) - * If `MySqlDataAdapter' was used with an `INSERT' command where the `VALUES' clause contained an expression with parentheses in it, and set the `adapter.UpdateBatchSize' parameter to be greater than @@ -247007,9 +250794,9 @@ exception or failed to batch the commands, executing each insert individually. (Bug #54386) - * The method `MySql.Data.Common.QueryNormalizer.CollapseValueList' - generated an `ArgumentOutOfRangeException'. (Bug #54152, Bug - #53865) + * The `MySqlHelper' object did not have an overloaded version of the + `ExecuteReader' method that accepted a `MySqlConnection' object. + (Bug #54570) * Garbage Collector disposal of a `MySqlConnection' object caused the following exception: @@ -247043,16 +250830,28 @@ (Bug #53357) - * Membership schema creation failed if the default schema collation - was not Latin1. (Bug #53174) + * The method `MySql.Data.Common.QueryNormalizer.CollapseValueList' + generated an `ArgumentOutOfRangeException'. (Bug #54152, Bug + #53865) - * EventLog was not disposed in the SessionState provider. (Bug - #52550) + * In the ADO.NET Entity Data Model Wizard, the time to update a + model scaled abnormally as the number of entities increased. (Bug + #48791, Bug #12596237) * Stored procedure enumeration code generated an error if a procedure was used in a dataset that did not return any resultsets. (Bug #50671) + * EventLog was not disposed in the SessionState provider. (Bug + #52550) + + * The `INSERT' command was significantly slower with MySQL + Connector/Net 6.x compared to 5.x, when compression was enabled. + (Bug #48243) + + * Membership schema creation failed if the default schema collation + was not Latin1. (Bug #53174) + * When an application was subjected to increased concurrent load, MySQL Connector/Net generated the following error when calling stored procedures: @@ -247062,14 +250861,6 @@ (Bug #49118) - * In the ADO.NET Entity Data Model Wizard, the time to update a - model scaled abnormally as the number of entities increased. (Bug - #48791, Bug #12596237) - - * The `INSERT' command was significantly slower with MySQL - Connector/Net 6.x compared to 5.x, when compression was enabled. - (Bug #48243) - * When the connection string option `Connection Reset = True' was used, a connection reset used the previously used encoding for the subsequent authentication operation. This failed, for example, if @@ -247095,14 +250886,14 @@  File: manual.info, Node: connector-net-news-6-0-6, Next: connector-net-news-6-0-5, Prev: connector-net-news-6-0-7, Up: connector-net-news-6-0-x -D.3.5.3 Changes in MySQL Connector/Net 6.0.6 (28 April 2010) +D.3.6.3 Changes in MySQL Connector/Net 6.0.6 (28 April 2010) ............................................................ Fixes bugs since 6.0.5. *Functionality Added or Changed* - * Procedure cacheing had a problem whereby if you created a + * Procedure caching had a problem whereby if you created a procedure, dropped it, and recreated it with a different number of parameters an exception was generated. @@ -247155,6 +250946,11 @@ * A non-terminated string in SQL threw a CLR exception rather than a syntax exception. (Bug #51788) + * When using table per type inheritance and listing the contents of + the parent table, the result of the query was a list of child + objects, even though there was no related child record with the + same parent Id. (Bug #49850) + * When calling `ExecuteNonQuery' on a command object, the following exception occurred: @@ -247163,13 +250959,20 @@ (Bug #51610) + * Binary Columns were not displayed in the Query Builder of Visual + Studio. (Bug #50171) + + * `MySqlCommand.Parameters.Clear()' did not work. (Bug #50444) + + * When the `UpdateBatchSize' property was set to a value greater + than 1, only the first row was applied to the database. (Bug + #50123) + * The method `Command.TrimSemicolons' used `StringBuilder', and therefore allocated memory for the query even if it did not need to be trimmed. This led to excessive memory consumption when executing a number of large queries. (Bug #51149) - * `MySqlCommand.Parameters.Clear()' did not work. (Bug #50444) - * When the `MySqlScript.execute()' method was called, the following exception was generated: @@ -247177,41 +250980,32 @@ (Bug #50344) - * Binary Columns were not displayed in the Query Builder of Visual - Studio. (Bug #50171) - - * When the `UpdateBatchSize' property was set to a value greater - than 1, only the first row was applied to the database. (Bug - #50123) - - * When using table per type inheritance and listing the contents of - the parent table, the result of the query was a list of child - objects, even though there was no related child record with the - same parent Id. (Bug #49850) + * A `FormatException' was generated when an empty string was + returned from a stored function. (Bug #49642) * `MySqlDataReader.GetUInt64' returned an incorrect value when reading a `BIGINT UNSIGNED' column containing a value greater than 2147483647. (Bug #49794) - * A `FormatException' was generated when an empty string was - returned from a stored function. (Bug #49642) + * Calling a User Defined Function using Entity SQL in the Entity + Framework caused a `NullReferenceException'. (Bug #45277) + + * The method `MySqlDataReader.GetSchemaTable()' returned 0 in the + `NumericPrecision' field for decimal and newdecimal columns. (Bug + #48171) + + * Attempting to execute a load data local infile on a file where the + user did not have write permissions, or the file was open in an + editor gave an access denied error. (Bug #48944) * When adding a data set in Visual Studio 2008, the following error was generated: - Relations couldn't be addded. Column 'REFERENCED_TABLE_CATALOG' does not belong to table. + Relations couldn't be added. Column 'REFERENCED_TABLE_CATALOG' does not belong to table. This was due to a 'REFERENCED_TABLE_CATALOG' column not being included in the foreign keys collection. (Bug #48974) - * Attempting to execute a load data local infile on a file where the - user did not have write permissions, or the file was open in an - editor gave an access denied error. (Bug #48944) - - * The method `MySqlDataReader.GetSchemaTable()' returned 0 in the - `NumericPrecision' field for decimal and newdecimal columns. (Bug - #48171) - * When trying to create stored procedures from an SQL script, a `MySqlException' was thrown when attempting to redefine the `DELIMITER': @@ -247236,9 +251030,6 @@ Note: The `MySqlScript' class has been fixed to support the delimiter statement as it is found in SQL scripts. (Bug #46429) - * Calling a User Defined Function using Entity SQL in the Entity - Framework caused a `NullReferenceException'. (Bug #45277) - * A connection string set in `web.config' could not be reused after Visual Studio 2008 Professional was shut down. It continued working for the existing controls, but did not work for new @@ -247247,7 +251038,7 @@  File: manual.info, Node: connector-net-news-6-0-5, Next: connector-net-news-6-0-4, Prev: connector-net-news-6-0-6, Up: connector-net-news-6-0-x -D.3.5.4 Changes in MySQL Connector/Net 6.0.5 (12 November 2009) +D.3.6.4 Changes in MySQL Connector/Net 6.0.5 (12 November 2009) ............................................................... This is a new release, fixing recently discovered bugs. @@ -247265,6 +251056,19 @@ (Bug #48460) + * An entity model created from a schema containing a table with a + column of type `UNSIGNED BIGINT' and a view of the table did not + behave correctly. When an entity was created and mapped to the + view, the column that was of type `UNSIGNED BIGINT' was displayed + as `BIGINT'. (Bug #47872) + + * It was not possible to retrieve a value from a MySQL server table, + if the value was larger than that supported by the .NET type + `System.Decimal'. + + MySQL Connector/Net was changed to expose the `MySqlDecimal' type, + along with the supporting method `GetMySqlDecimal'. (Bug #48100) + * If `MySqlConnection.GetSchema' was called for "Indexes" on a table named `b`a`d' as follows: @@ -247279,19 +251083,6 @@ (Bug #48101) - * It was not possible to retrieve a value from a MySQL server table, - if the value was larger than that supported by the .NET type - `System.Decimal'. - - MySQL Connector/Net was changed to expose the `MySqlDecimal' type, - along with the supporting method `GetMySqlDecimal'. (Bug #48100) - - * An entity model created from a schema containing a table with a - column of type `UNSIGNED BIGINT' and a view of the table did not - behave correctly. When an entity was created and mapped to the - view, the column that was of type `UNSIGNED BIGINT' was displayed - as `BIGINT'. (Bug #47872) - * When loading the `MySQLClient-mono.sln' file included with the Connector/Net source into Mono Develop, the following error occurred: @@ -247323,6 +251114,39 @@ * In the `MySqlDataReader' class the `GetSByte' function returned a `byte' value instead of an `sbyte' value. (Bug #46620) + * An exception was generated when using `TIMESTAMP' columns with the + Entity Framework. (Bug #46311) + + * Insert into two tables failed when using the Entity Framework. + The exception generated was: + + The value given is not an instance of type 'Edm.Int32' + + (Bug #45077) + + * Conversion of MySQL `TINYINT(1)' to `boolean' failed. (Bug + #46205, Bug #46359, Bug #41953) + + * Calling the Entity Framework `SaveChanges()' method of any MySQL + ORM Entity with a column type `TIME', generated an error message: + + Unknown PrimitiveKind Time + + (Bug #45457) + + * The Entity Framework provider was not calling `DBSortExpression' + correctly when the `Skip' and `Take' methods were used, such as in + the following statement: + + TestModel.tblquarantine.OrderByDescending(q => q.MsgDate).Skip(100).Take(100).ToList(); + + This resulted in the data being unsorted. (Bug #45723) + + * MySQL Connector/Net sometimes hung, without generating an + exception. This happened if a read from a stream failed returning + a 0, causing the code in `LoadPacket()' to enter an infinite loop. + (Bug #46308) + * The MySQL Connector/Net Profile Provider, `MySql.Web.Profile.MySQLProfileProvider', generated an error when running on Mono. When an attempt was made to save a string in @@ -247352,13 +251176,23 @@ (Bug #46375) - * An exception was generated when using `TIMESTAMP' columns with the - Entity Framework. (Bug #46311) + * When populating a MySQL database table in Visual Studio using the + Table Editor, if a `VARCHAR(10)' column was changed to a + `VARCHAR(20)' column an exception was generated: - * MySQL Connector/Net sometimes hung, without generating an - exception. This happened if a read from a stream failed returning - a 0, causing the code in `LoadPacket()' to enter an infinite loop. - (Bug #46308) + SystemArgumentException: DataGridViewComboBoxCell value is not valid. + To replace this default dialog please handle the DataError Event. + + (Bug #46100) + + * The MySQL Connector/Net 6.0.4 installer failed with an error. The + error message generated was: + + There is a problem with this Windows Installer package. A DLL required for this + install to complete could not be run. Contact your support personnel or package vendor. + + When `OK' was clicked to acknowledge the error the installer + exited. (Bug #45474) * When using MySQL Connector/Net 6.0.4 and a MySQL Server 4.1 an exception was generated when trying to execute: @@ -247406,17 +251240,10 @@ (Bug #46213) - * Conversion of MySQL `TINYINT(1)' to `boolean' failed. (Bug - #46205, Bug #46359, Bug #41953) - - * When populating a MySQL database table in Visual Studio using the - Table Editor, if a `VARCHAR(10)' column was changed to a - `VARCHAR(20)' column an exception was generated: - - SystemArgumentException: DataGridViewComboBoxCell value is not valid. - To replace this default dialog please handle the DataError Event. - - (Bug #46100) + * The `EscapeString' code carried out escaping by calling + `string.Replace' multiple times. This resulted in a performance + bottleneck, as for every line a new string was allocated and + another was disposed of by the garbage collector. (Bug #45699) * In MySQL Connector/Net 6.0.4 using `GetProcData' generated an error because the `parameters' data table was only created if @@ -247427,19 +251254,6 @@ exception. This was because the `parameters' data table, which was null, was used in a `for each' loop. (Bug #45952) - * The Entity Framework provider was not calling `DBSortExpression' - correctly when the `Skip' and `Take' methods were used, such as in - the following statement: - - TestModel.tblquarantine.OrderByDescending(q => q.MsgDate).Skip(100).Take(100).ToList(); - - This resulted in the data being unsorted. (Bug #45723) - - * The `EscapeString' code carried out escaping by calling - `string.Replace' multiple times. This resulted in a performance - bottleneck, as for every line a new string was allocated and - another was disposed of by the garbage collector. (Bug #45699) - * Adding the `Allow Batch=False' option to the connection string caused MySQL Connector/Net to generate the error: @@ -247448,15 +251262,6 @@ (Bug #45502) - * The MySQL Connector/Net 6.0.4 installer failed with an error. The - error message generated was: - - There is a problem with this Windows Installer package. A DLL required for this - install to complete could not be run. Contact your support personnel or package vendor. - - When `OK' was clicked to acknowledge the error the installer - exited. (Bug #45474) - * A MySQL Connector/Net test program that connected to MySQL Server using the connection string option `compress=true' crashed, but only when running on Mono. The program worked as expected when @@ -247466,20 +251271,6 @@ avoid using `WeakReferences' in the `Compressed' stream class, which was causing the crash. (Bug #45463) - * Calling the Entity Framework `SaveChanges()' method of any MySQL - ORM Entity with a column type `TIME', generated an error message: - - Unknown PrimitiveKind Time - - (Bug #45457) - - * Insert into two tables failed when using the Entity Framework. - The exception generated was: - - The value given is not an instance of type 'Edm.Int32' - - (Bug #45077) - * Input parameters were missing from Stored Procedures when using them with ADO.NET Data Entities. (Bug #44985) @@ -247488,15 +251279,26 @@ formatting for `SINGLE', `DOUBLE' and `DECIMAL' values was not handled correctly. (Bug #44455) + * When reading data, such as with a `MySqlDataAdapter' on a + `MySqlConnection', MySQL Connector/Net could potentially enter an + infinite loop in `CompressedStream.ReadNextpacket()' if + compression was enabled. (Bug #43678) + * When attempting to connect to MySQL using the Compact Framework version of MySQL Connector/Net, an `IndexOutOfRangeException' exception was generated on trying to open the connection. (Bug #43736) - * When reading data, such as with a `MySqlDataAdapter' on a - `MySqlConnection', MySQL Connector/Net could potentially enter an - infinite loop in `CompressedStream.ReadNextpacket()' if - compression was enabled. (Bug #43678) + * In the case of long network inactivity, especially when connection + pooling was used, connections were sometimes dropped, for example, + by firewalls. + + Note: The bugfix introduced a new `keepalive' parameter, which + prevents disconnects by sending an empty TCP packet after a + specified timeout. (Bug #40684) + + * MySQL Connector/Net CHM documentation stated that MySQL Server + 3.23 was supported. (Bug #42110) * An error occurred when building MySQL Connector/Net from source code checked out from the public SVN repository. This happened on @@ -247518,31 +251320,6 @@ (Bug #42411) - * After a Reference to "C:\Program Files\MySQL\MySQL Connector Net - 5.2.4\Compact Framework\MySql.Data.CF.dll" was added to a Windows - Mobile 5.0 project, the project then failed to build, generating a - Microsoft Visual C# compiler error. - - The error generated was: - - Error 2 The type 'System.Runtime.CompilerServices.CompilerGeneratedAttribute' - has no constructors defined MysqlTest - Error 3 Internal Compiler Error (0xc0000005 at address 5A7E3714): - likely culprit is 'COMPILE'. - - (Bug #42261) - - * MySQL Connector/Net CHM documentation stated that MySQL Server - 3.23 was supported. (Bug #42110) - - * In the case of long network inactivity, especially when connection - pooling was used, connections were sometimes dropped, for example, - by firewalls. - - Note: The bugfix introduced a new `keepalive' parameter, which - prevents disconnects by sending an empty TCP packet after a - specified timeout. (Bug #40684) - * MySQL Connector/Net generated the following exception: System.NullReferenceException: Object reference not set to an instance of an object. @@ -247560,10 +251337,19 @@ (Bug #40005) - * Calling a Stored Procedure with an output parameter through MySQL - Connector/Net resulted in a memory leak. Calling the same Stored - Procedure without an output parameter did not result in a memory - leak. (Bug #36027) + * After a Reference to "C:\Program Files\MySQL\MySQL Connector Net + 5.2.4\Compact Framework\MySql.Data.CF.dll" was added to a Windows + Mobile 5.0 project, the project then failed to build, generating a + Microsoft Visual C# compiler error. + + The error generated was: + + Error 2 The type 'System.Runtime.CompilerServices.CompilerGeneratedAttribute' + has no constructors defined MysqlTest + Error 3 Internal Compiler Error (0xc0000005 at address 5A7E3714): + likely culprit is 'COMPILE'. + + (Bug #42261) * Using a `DataAdapter' with a linked `MySqlCommandBuilder' the following exception was thrown when trying to call @@ -247573,10 +251359,15 @@ (Bug #34657) + * Calling a Stored Procedure with an output parameter through MySQL + Connector/Net resulted in a memory leak. Calling the same Stored + Procedure without an output parameter did not result in a memory + leak. (Bug #36027) +  File: manual.info, Node: connector-net-news-6-0-4, Next: connector-net-news-6-0-3, Prev: connector-net-news-6-0-5, Up: connector-net-news-6-0-x -D.3.5.5 Changes in MySQL Connector/Net 6.0.4 (16 June 2009) +D.3.6.5 Changes in MySQL Connector/Net 6.0.4 (16 June 2009) ........................................................... This is the first post-GA release, fixing recently discovered bugs. @@ -247605,6 +251396,19 @@ (Bug #45021) + * The Data Set editor generated an error when attempts were made to + modify insert, update or delete commands: + + Error in WHERE clause near '@'. + Unable to parse query text. + + (Bug #44512) + + * MySQL Connector/Net was missing the capability to validate the + server's certificate when using encryption. This made it possible + to conduct a man-in-the-middle attack against the connection, which + defeated the security provided by SSL. (Bug #38700) + * A SQL query string containing an escaped backslash caused an exception to be generated: @@ -247626,17 +251430,6 @@ invalid. Several projects could not be loaded and thus it was not possible to build MySQL Connector/Net from source. (Bug #44822) - * The Data Set editor generated an error when attempts were made to - modify insert, update or delete commands: - - Error in WHERE clause near '@'. - Unable to parse query text. - - (Bug #44512) - - * The DataReader in MySQL Connector/Net 6.0.3 considered a - BINARY(16) field as a GUID with a length of 16. (Bug #44507) - * When creating a new DataSet the following error was generated: Failed to open a connection to database. @@ -247644,18 +251437,16 @@ (Bug #44460) + * The DataReader in MySQL Connector/Net 6.0.3 considered a + BINARY(16) field as a GUID with a length of 16. (Bug #44507) + * The MySQL Connector/Net MySQLRoleProvider reported that there were no roles, even when roles existed. (Bug #44414) - * MySQL Connector/Net was missing the capability to validate the - server's certificate when using encryption. This made it possible - to conduct a man-in-the-middle attack against the connection, which - defeated the security provided by SSL. (Bug #38700) -  File: manual.info, Node: connector-net-news-6-0-3, Next: connector-net-news-6-0-2, Prev: connector-net-news-6-0-4, Up: connector-net-news-6-0-x -D.3.5.6 Changes in MySQL Connector/Net 6.0.3 (28 April 2009) +D.3.6.6 Changes in MySQL Connector/Net 6.0.3 (28 April 2009) ............................................................ First GA release. @@ -247691,13 +251482,6 @@ *Bugs Fixed* - * `MySQL.Data' was not displayed as a Reference inside Microsoft - Visual Studio 2008 Professional. - - When a new C# project was created in Microsoft Visual Studio 2008 - Professional, `MySQL.Data' was not displayed when `References', - `Add Reference' was selected. (Bug #44141) - * Column types for `SchemaProvider' and `ISSchemaProvider' did not match. @@ -247709,11 +251493,18 @@ `INT64' and the column types used by `ISSchemaProvider' were `UNSIGNED'. (Bug #44123) + * `MySQL.Data' was not displayed as a Reference inside Microsoft + Visual Studio 2008 Professional. + + When a new C# project was created in Microsoft Visual Studio 2008 + Professional, `MySQL.Data' was not displayed when `References', + `Add Reference' was selected. (Bug #44141) +  File: manual.info, Node: connector-net-news-6-0-2, Next: connector-net-news-6-0-1, Prev: connector-net-news-6-0-3, Up: connector-net-news-6-0-x -D.3.5.7 Changes in MySQL Connector/Net 6.0.2 (07 April 2009 beta) -................................................................. +D.3.6.7 Changes in MySQL Connector/Net 6.0.2 (07 April 2009, beta) +.................................................................. This is a new development release, fixing recently discovered bugs. @@ -247732,27 +251523,27 @@  File: manual.info, Node: connector-net-news-6-0-1, Next: connector-net-news-6-0-0, Prev: connector-net-news-6-0-2, Up: connector-net-news-6-0-x -D.3.5.8 Changes in MySQL Connector/Net 6.0.1 (02 April 2009 beta) -................................................................. +D.3.6.8 Changes in MySQL Connector/Net 6.0.1 (02 April 2009, beta) +.................................................................. This is a new Beta development release, fixing recently discovered bugs. *Bugs Fixed* - * An insert and update error was generated by the decimal data type - in the Entity Framework, when a German collation was used. (Bug - #43574) - * Generating an Entity Data Model (EDM) schema with a table containing columns with data types `MEDIUMTEXT' and `LONGTEXT' generated a runtime error message `Max value too long or too short for Int32'. (Bug #43480) + * An insert and update error was generated by the decimal data type + in the Entity Framework, when a German collation was used. (Bug + #43574) +  File: manual.info, Node: connector-net-news-6-0-0, Prev: connector-net-news-6-0-1, Up: connector-net-news-6-0-x -D.3.5.9 Changes in MySQL Connector/Net 6.0.0 (02 March 2009 alpha) -.................................................................. +D.3.6.9 Changes in MySQL Connector/Net 6.0.0 (02 March 2009, alpha) +................................................................... This is a new Alpha development release. @@ -247764,7 +251555,7 @@  File: manual.info, Node: connector-net-news-5-3-x, Next: connector-net-news-5-2-x, Prev: connector-net-news-6-0-x, Up: connector-net-news -D.3.6 Changes in MySQL Connector/Net Version 5.3.x +D.3.7 Changes in MySQL Connector/Net Version 5.3.x -------------------------------------------------- * Menu: @@ -247774,18 +251565,18 @@  File: manual.info, Node: connector-net-news-5-3-0, Prev: connector-net-news-5-3-x, Up: connector-net-news-5-3-x -D.3.6.1 Changes in MySQL Connector/Net 5.3.0 (Not released) +D.3.7.1 Changes in MySQL Connector/Net 5.3.0 (Not released) ........................................................... *Bugs Fixed* + * The MySQL Connector/Net installer program ended prematurely + without reporting the specific error. (Bug #39019) + * The Web Provider did not work at all on a remote host, and did not create a database when using `autogenerateschema="true"'. (Bug #39072) - * The MySQL Connector/Net installer program ended prematurely - without reporting the specific error. (Bug #39019) - * When called with an incorrect password the MembershipProvider.GetPassword() method threw a MySQLException instead of a MembershipPasswordException . (Bug #38939) @@ -247798,7 +251589,7 @@  File: manual.info, Node: connector-net-news-5-2-x, Next: connector-net-news-5-1-x, Prev: connector-net-news-5-3-x, Up: connector-net-news -D.3.7 Changes in MySQL Connector/Net Version 5.2.x +D.3.8 Changes in MySQL Connector/Net Version 5.2.x -------------------------------------------------- * Menu: @@ -247816,11 +251607,17 @@  File: manual.info, Node: connector-net-news-5-2-8, Next: connector-net-news-5-2-7, Prev: connector-net-news-5-2-x, Up: connector-net-news-5-2-x -D.3.7.1 Changes in MySQL Connector/Net 5.2.8 (Not released) +D.3.8.1 Changes in MySQL Connector/Net 5.2.8 (Not released) ........................................................... *Bugs Fixed* + * When the connection string option `Connection Reset = True' was + used, a connection reset used the previously used encoding for the + subsequent authentication operation. This failed, for example, if + UCS2 was used to read the last column before the reset. (Bug + #47153) + * If `MySqlConnection.GetSchema' was called for "Indexes" on a table named `b`a`d' as follows: @@ -247835,38 +251632,15 @@ (Bug #48101) - * When the connection string option `Connection Reset = True' was - used, a connection reset used the previously used encoding for the - subsequent authentication operation. This failed, for example, if - UCS2 was used to read the last column before the reset. (Bug - #47153) + * If the application slept for longer than the specified + `net_write_timeout', and then resumed `Read' operations on a + connection, then the application failed silently. (Bug #45978) * In the `MySqlDataReader' class the `GetSByte' function returned a `byte' value instead of an `sbyte' value. (Bug #46620) - * When trying to create stored procedures from an SQL script, a - `MySqlException' was thrown when attempting to redefine the - `DELIMITER': - - MySql.Data.MySqlClient.MySqlException was unhandled - Message="You have an error in your SQL syntax; check the manual that corresponds to your - MySQL server version for the right syntax to use near 'DELIMITER' at line 1" - Source="MySql.Data" - ErrorCode=-2147467259 - Number=1064 - StackTrace: - a` MySql.Data.MySqlClient.MySqlStream.ReadPacket() - a` MySql.Data.MySqlClient.NativeDriver.ReadResult(UInt64& affectedRows, Int64& - lastInsertId) - a` MySql.Data.MySqlClient.MySqlDataReader.GetResultSet() - a` MySql.Data.MySqlClient.MySqlDataReader.NextResult() - a` MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior) - a` MySql.Data.MySqlClient.MySqlCommand.ExecuteReader() - a` MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery() - a` MySql.Data.MySqlClient.MySqlScript.Execute() - - Note: The `MySqlScript' class has been fixed to support the - delimiter statement as it is found in SQL scripts. (Bug #46429) + * Conversion of MySQL `TINYINT(1)' to `boolean' failed. (Bug + #46205, Bug #46359, Bug #41953) * The MySQL Connector/Net Profile Provider, `MySql.Web.Profile.MySQLProfileProvider', generated an error when @@ -247897,6 +251671,30 @@ (Bug #46375) + * When trying to create stored procedures from an SQL script, a + `MySqlException' was thrown when attempting to redefine the + `DELIMITER': + + MySql.Data.MySqlClient.MySqlException was unhandled + Message="You have an error in your SQL syntax; check the manual that corresponds to your + MySQL server version for the right syntax to use near 'DELIMITER' at line 1" + Source="MySql.Data" + ErrorCode=-2147467259 + Number=1064 + StackTrace: + a` MySql.Data.MySqlClient.MySqlStream.ReadPacket() + a` MySql.Data.MySqlClient.NativeDriver.ReadResult(UInt64& affectedRows, Int64& + lastInsertId) + a` MySql.Data.MySqlClient.MySqlDataReader.GetResultSet() + a` MySql.Data.MySqlClient.MySqlDataReader.NextResult() + a` MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior) + a` MySql.Data.MySqlClient.MySqlCommand.ExecuteReader() + a` MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery() + a` MySql.Data.MySqlClient.MySqlScript.Execute() + + Note: The `MySqlScript' class has been fixed to support the + delimiter statement as it is found in SQL scripts. (Bug #46429) + * When using MySQL Connector/Net 6.0.4 and a MySQL Server 4.1 an exception was generated when trying to execute: @@ -247943,18 +251741,14 @@ (Bug #46213) - * Conversion of MySQL `TINYINT(1)' to `boolean' failed. (Bug - #46205, Bug #46359, Bug #41953) - - * If the application slept for longer than the specified - `net_write_timeout', and then resumed `Read' operations on a - connection, then the application failed silently. (Bug #45978) - * When reading data, such as with a `MySqlDataAdapter' on a `MySqlConnection', MySQL Connector/Net could potentially enter an infinite loop in `CompressedStream.ReadNextpacket()' if compression was enabled. (Bug #43678) + * MySQL Connector/Net CHM documentation stated that MySQL Server + 3.23 was supported. (Bug #42110) + * An error occurred when building MySQL Connector/Net from source code checked out from the public SVN repository. This happened on Linux using Mono and Nant. The Mono JIT compiler version was @@ -247975,9 +251769,6 @@ (Bug #42411) - * MySQL Connector/Net CHM documentation stated that MySQL Server - 3.23 was supported. (Bug #42110) - * Using a `DataAdapter' with a linked `MySqlCommandBuilder' the following exception was thrown when trying to call `da.Update(DataRow[] rows)': @@ -247989,7 +251780,7 @@  File: manual.info, Node: connector-net-news-5-2-7, Next: connector-net-news-5-2-6, Prev: connector-net-news-5-2-8, Up: connector-net-news-5-2-x -D.3.7.2 Changes in MySQL Connector/Net 5.2.7 (15 July 2009) +D.3.8.2 Changes in MySQL Connector/Net 5.2.7 (15 July 2009) ........................................................... *Bugs Fixed* @@ -248008,6 +251799,37 @@ avoid using `WeakReferences' in the `Compressed' stream class, which was causing the crash. (Bug #45463) + * MySQL Connector/Net generated the following exception: + + System.NullReferenceException: Object reference not set to an instance of an object. + bei MySql.Data.MySqlClient.MySqlCommand.TimeoutExpired(Object commandObject) + bei System.Threading._TimerCallback.TimerCallback_Context(Object state) + bei System.Threading.ExecutionContext.runTryCode(Object userData) + bei + System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode + code, CleanupCode backoutCode, Object userData) + bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, + ContextCallback callback, Object state) + bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, + ContextCallback callback, Object state) + bei System.Threading._TimerCallback.PerformTimerCallback(Object state) + + (Bug #40005) + + * After a Reference to "C:\Program Files\MySQL\MySQL Connector Net + 5.2.4\Compact Framework\MySql.Data.CF.dll" was added to a Windows + Mobile 5.0 project, the project then failed to build, generating a + Microsoft Visual C# compiler error. + + The error generated was: + + Error 2 The type 'System.Runtime.CompilerServices.CompilerGeneratedAttribute' + has no constructors defined MysqlTest + Error 3 Internal Compiler Error (0xc0000005 at address 5A7E3714): + likely culprit is 'COMPILE'. + + (Bug #42261) + * If a certain socket exception occurred when trying to establish a MySQL database connection, MySQL Connector/Net displayed an exception message that appeared to be unrelated to the underlying @@ -248037,37 +251859,6 @@ * The MySQL Connector/Net MySQLRoleProvider reported that there were no roles, even when roles existed. (Bug #44414) - * After a Reference to "C:\Program Files\MySQL\MySQL Connector Net - 5.2.4\Compact Framework\MySql.Data.CF.dll" was added to a Windows - Mobile 5.0 project, the project then failed to build, generating a - Microsoft Visual C# compiler error. - - The error generated was: - - Error 2 The type 'System.Runtime.CompilerServices.CompilerGeneratedAttribute' - has no constructors defined MysqlTest - Error 3 Internal Compiler Error (0xc0000005 at address 5A7E3714): - likely culprit is 'COMPILE'. - - (Bug #42261) - - * MySQL Connector/Net generated the following exception: - - System.NullReferenceException: Object reference not set to an instance of an object. - bei MySql.Data.MySqlClient.MySqlCommand.TimeoutExpired(Object commandObject) - bei System.Threading._TimerCallback.TimerCallback_Context(Object state) - bei System.Threading.ExecutionContext.runTryCode(Object userData) - bei - System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode - code, CleanupCode backoutCode, Object userData) - bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, - ContextCallback callback, Object state) - bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, - ContextCallback callback, Object state) - bei System.Threading._TimerCallback.PerformTimerCallback(Object state) - - (Bug #40005) - * When a TableAdapter was created on a DataSet, it was not possible to use a stored procedure with variables. The following error was generated: @@ -248079,7 +251870,7 @@  File: manual.info, Node: connector-net-news-5-2-6, Next: connector-net-news-5-2-5, Prev: connector-net-news-5-2-7, Up: connector-net-news-5-2-x -D.3.7.3 Changes in MySQL Connector/Net 5.2.6 (28 April 2009) +D.3.8.3 Changes in MySQL Connector/Net 5.2.6 (28 April 2009) ............................................................ *Functionality Added or Changed* @@ -248116,6 +251907,13 @@ rolled back. The rollback was caused by a missing call to the `Complete' method of the transaction. (Bug #43553) + * A null reference exception was generated when + `MySqlConnection.ClearPool(connection)' was called. (Bug #42801) + + * The GetGuid() method of MySqlDataReader did not treat `BINARY(16)' + column data as a GUID. When operating on such a column a + `FormatException' exception was generated. (Bug #41452) + * When using `MySqlBulkLoader.Load()', the text file is opened by `NativeDriver.SendFileToServer'. If it encountered a problem opening the file as a stream, an exception was generated and @@ -248124,9 +251922,6 @@ was never successfully opened, this was an attempt to execute a method of a null reference. (Bug #43332) - * A null reference exception was generated when - `MySqlConnection.ClearPool(connection)' was called. (Bug #42801) - * `MySQLMembershipProvider.ValidateUser' only used the `userId' to validate. However, it should also use the `applicationId' to perform the validation correctly. @@ -248138,33 +251933,16 @@ Note that `applicationId' is not used. (Bug #42574) - * There was an error in the `ProfileProvider' class in the `private - ProfileInfoCollection GetProfiles()' function. The column of the - final table was named `lastUpdatdDate' ('e' is missing) instead of - the correct `lastUpdatedDate'. (Bug #41654) - - * The GetGuid() method of MySqlDataReader did not treat `BINARY(16)' - column data as a GUID. When operating on such a column a - `FormatException' exception was generated. (Bug #41452) - * When ASP.NET membership was configured to not require password question and answer using `requiresQuestionAndAnswer="false"', a `SqlNullValueException' was generated when using `MembershipUser.ResetPassword()' to reset the user password. (Bug #41408) - * If a `Stored Procedure' contained spaces in its parameter list, - and was then called from MySQL Connector/Net, an exception was - generated. However, the same `Stored Procedure' called from the - MySQL Query Analyzer or the MySQL Client worked correctly. - - The exception generated was: - - Parameter '0' not found in the collection. - - (Bug #41034) - - * The `DATETIME' format contained an erroneous space. (Bug #41021) + * There was an error in the `ProfileProvider' class in the `private + ProfileInfoCollection GetProfiles()' function. The column of the + final table was named `lastUpdatdDate' ('e' is missing) instead of + the correct `lastUpdatedDate'. (Bug #41654) * When `MySql.Web.Profile.MySQLProfileProvider' was configured, it was not possible to assign a name other than the default name @@ -248182,6 +251960,19 @@ provider*...', even though a different name was explicitly requested. (Bug #40871) + * If a `Stored Procedure' contained spaces in its parameter list, + and was then called from MySQL Connector/Net, an exception was + generated. However, the same `Stored Procedure' called from the + MySQL Query Analyzer or the MySQL Client worked correctly. + + The exception generated was: + + Parameter '0' not found in the collection. + + (Bug #41034) + + * The `DATETIME' format contained an erroneous space. (Bug #41021) + * When `ExecuteNonQuery' was called with a command type of `Stored Procedure' it worked for one user but resulted in a hang for another user with the same database permissions. @@ -248193,7 +251984,7 @@  File: manual.info, Node: connector-net-news-5-2-5, Next: connector-net-news-5-2-4, Prev: connector-net-news-5-2-6, Up: connector-net-news-5-2-x -D.3.7.4 Changes in MySQL Connector/Net 5.2.5 (19 November 2008) +D.3.8.4 Changes in MySQL Connector/Net 5.2.5 (19 November 2008) ............................................................... *Bugs Fixed* @@ -248215,7 +252006,7 @@  File: manual.info, Node: connector-net-news-5-2-4, Next: connector-net-news-5-2-3, Prev: connector-net-news-5-2-5, Up: connector-net-news-5-2-x -D.3.7.5 Changes in MySQL Connector/Net 5.2.4 (13 November 2008) +D.3.8.5 Changes in MySQL Connector/Net 5.2.4 (13 November 2008) ............................................................... *Bugs Fixed* @@ -248223,10 +252014,6 @@ * `MySqlDataReader' did not feature a `GetSByte' method. (Bug #40571) - * When working with stored procedures MySQL Connector/Net generated - an exception `Unknown "table parameters" in information_schema'. - (Bug #40382) - * `GetDefaultCollation' and `GetMaxLength' were not thread safe. These functions called the database to get a set of parameters and cached them in two static dictionaries in the function @@ -248234,6 +252021,16 @@ try to insert the same keys in the collections resulting in duplicate key exceptions. (Bug #40231) + * The connection string option `Functions Return String' did not set + the correct encoding for the result string. Even though the + connection string option `Functions Return String=true;' is set, + the result of `SELECT DES_DECRYPT()' contained `??' instead of the + correct national character symbols. (Bug #40076) + + * When working with stored procedures MySQL Connector/Net generated + an exception `Unknown "table parameters" in information_schema'. + (Bug #40382) + * If connection pooling was not set explicitly in the connection string, MySQL Connector/Net added `;Pooling=False' to the end of the connection string when `MySqlCommand.ExecuteReader()' was @@ -248249,22 +252046,16 @@ `pooling=True;Pooling=False'. This disabled connection pooling completely. (Bug #40091) - * The connection string option `Functions Return String' did not set - the correct encoding for the result string. Even though the - connection string option `Functions Return String=true;' is set, - the result of `SELECT DES_DECRYPT()' contained `??' instead of the - correct national character symbols. (Bug #40076) - - * If, when using the MySqlTransaction transaction object, an - exception was thrown, the transaction object was not disposed of - and the transaction was not rolled back. (Bug #39817) - * After the `ConnectionString' property was initialized using the public setter of DbConnectionStringBuilder, the GetConnectionString method of MySqlConnectionStringBuilder incorrectly returned `null' when `true' was assigned to the `includePass' parameter. (Bug #39728) + * If, when using the MySqlTransaction transaction object, an + exception was thrown, the transaction object was not disposed of + and the transaction was not rolled back. (Bug #39817) + * When using ProfileProvider, attempting to update a previously saved property failed. (Bug #39330) @@ -248275,6 +252066,13 @@ column through the use of MySqlParameter caused MySqlException to be thrown. (Bug #39275) + * The Web Provider did not work at all on a remote host, and did not + create a database when using `autogenerateschema="true"'. (Bug + #39072) + + * MySQL Connector/Net called hashed password methods not supported + in Mono 2.0 Preview 2. (Bug #38895) + * When a data connection was created in the server explorer of Visual Studio 2008 Team, an error was generated when trying to expand stored procedures that had parameters. @@ -248284,17 +252082,10 @@ to select a stored procedure, the window would close and no error message would be displayed. (Bug #39252) - * The Web Provider did not work at all on a remote host, and did not - create a database when using `autogenerateschema="true"'. (Bug - #39072) - - * MySQL Connector/Net called hashed password methods not supported - in Mono 2.0 Preview 2. (Bug #38895) -  File: manual.info, Node: connector-net-news-5-2-3, Next: connector-net-news-5-2-2, Prev: connector-net-news-5-2-4, Up: connector-net-news-5-2-x -D.3.7.6 Changes in MySQL Connector/Net 5.2.3 (19 August 2008) +D.3.8.6 Changes in MySQL Connector/Net 5.2.3 (19 August 2008) ............................................................. *Functionality Added or Changed* @@ -248303,6 +252094,10 @@ This has been changed to generate a `ConnectionState.Closed' event. (Bug #38119) + * String escaping functionality has been moved from the MySqlString + class to the MySqlHelper class, where it can be accessed by the + EscapeString method. (Bug #36205) + * Changed how the procedure schema collection is retrieved. If `use procedure bodies=true' then the `mysql.proc' table is selected directly as this is up to 50 times faster than the current @@ -248310,18 +252105,14 @@ bodies=false', then the `information_schema' collection is queried. (Bug #36694) - * String escaping functionality has been moved from the MySqlString - class to the MySqlHelper class, where it can be accessed by the - EscapeString method. (Bug #36205) - *Bugs Fixed* - * The GetOrdinal() method failed to return the ordinal if the column - name string contained an accent. (Bug #38721) - * MySQL Connector/Net uninstaller did not clean up all installed files. (Bug #38534) + * The GetOrdinal() method failed to return the ordinal if the column + name string contained an accent. (Bug #38721) + * There was a short circuit evaluation error in the MySqlCommand.CheckState() method. When the statement `connection == null' was true a NullReferenceException was thrown and not the @@ -248330,6 +252121,9 @@ * The provider did not silently create the user if the user did not exist. (Bug #38243) + * Unnecessary network traffic was generated for the normal case + where the web provider schema was up to date. (Bug #37469) + * Executing a command that resulted in a fatal exception did not close the connection. (Bug #37991) @@ -248357,15 +252151,9 @@ (Bug #37955) - * Unnecessary network traffic was generated for the normal case - where the web provider schema was up to date. (Bug #37469) - * MySqlReader.GetOrdinal() performance enhancements break existing functionality. (Bug #37239) - * The `autogenerateschema' option produced tables with incorrect - collations. (Bug #36444) - * GetSchema did not work correctly when querying for a collection, if using a non-English locale. (Bug #35459) @@ -248373,6 +252161,9 @@ provider, the value had less precision than the one stored. (Bug #33322) + * The `autogenerateschema' option produced tables with incorrect + collations. (Bug #36444) + * Using the MySQL Visual Studio plugin and a MySQL 4.1 server, certain field types (*Note `ENUM': enum.) would not be identified correctly. Also, when looking for tables, the plugin would list @@ -248383,7 +252174,7 @@  File: manual.info, Node: connector-net-news-5-2-2, Next: connector-net-news-5-2-1, Prev: connector-net-news-5-2-3, Up: connector-net-news-5-2-x -D.3.7.7 Changes in MySQL Connector/Net 5.2.2 (12 May 2008) +D.3.8.7 Changes in MySQL Connector/Net 5.2.2 (12 May 2008) .......................................................... *Bugs Fixed* @@ -248391,24 +252182,29 @@ * Product documentation incorrectly stated '?' is the preferred parameter marker. (Bug #37349) + * There was a high level of contention in the connection pooling + code that could lead to delays when opening connections and + submitting queries. The connection pooling code has been modified + to try and limit the effects of the contention issue. (Bug #34001) + * An incorrect value for a bit field would returned in a multi-row query if a preceding value for the field returned `NULL'. (Bug #36313) - * Tables with `GEOMETRY' field types would return an unknown data - type exception. (Bug #36081) - * When using the `MySQLProfileProvider', setting profile details and then reading back saved data would result in the default values being returned instead of the updated values. (Bug #36000) + * The DbCommandBuilder.QuoteIdentifer method was not implemented. + (Bug #35492) + + * Tables with `GEOMETRY' field types would return an unknown data + type exception. (Bug #36081) + * When creating a connection, setting the `ConnectionString' property of `MySqlConnection' to `NULL' would throw an exception. (Bug #35619) - * The DbCommandBuilder.QuoteIdentifer method was not implemented. - (Bug #35492) - * When using encrypted passwords, the `GetPassword()' function would return the wrong string. (Bug #35336) @@ -248420,86 +252216,81 @@ when a previous row contained a `NULL' value for that field. (Bug #35041) - * Using the `TableAdapter Wizard' would fail when generating - commands that used stored procedures due to the change in - supported parameter characters. (Bug #34941) - - * When creating a new stored procedures, the new parameter code - which permits the use of the `@' symbol would interfere with the - specification of a `DEFINER'. (Bug #34940) - * When using `SqlDataSource' to open a connection, the connection would not automatically be closed when access had completed. (Bug #34460) - * There was a high level of contention in the connection pooling - code that could lead to delays when opening connections and - submitting queries. The connection pooling code has been modified - to try and limit the effects of the contention issue. (Bug #34001) - - * Using the `TableAdaptor' wizard in combination with a suitable + * Using the `TableAdapter' wizard in combination with a suitable *Note `SELECT': select. statement, only the associated *Note `INSERT': insert. statement would also be created, rather than the required *Note `DELETE': delete. and *Note `UPDATE': update. statements. (Bug #31338) - * Fixed problem in datagrid code related to creating a new table. - This problem may have been introduced with .NET 2.0 SP1. + * When creating a new stored procedures, the new parameter code + which permits the use of the `@' symbol would interfere with the + specification of a `DEFINER'. (Bug #34940) + + * Using the `TableAdapter Wizard' would fail when generating + commands that used stored procedures due to the change in + supported parameter characters. (Bug #34941) * Fixed profile provider that would throw an exception if you were updating a profile that already existed. + * Fixed problem in datagrid code related to creating a new table. + This problem may have been introduced with .NET 2.0 SP1. +  File: manual.info, Node: connector-net-news-5-2-1, Next: connector-net-news-5-2-0, Prev: connector-net-news-5-2-2, Up: connector-net-news-5-2-x -D.3.7.8 Changes in MySQL Connector/Net 5.2.1 (27 February 2008) +D.3.8.8 Changes in MySQL Connector/Net 5.2.1 (27 February 2008) ............................................................... *Bugs Fixed* - * When using the provider to generate or update users and passwords, - the password checking algorithm would not validate the password - strength or requirements correctly. (Bug #34792) + * A race condition could occur within the procedure cache resulting + the cache contents overflowing beyond the configured cache size. + (Bug #34338) - * When executing statements that used stored procedures and - functions, the new parameter code could fail to identify the - correct parameter format. (Bug #34699) + * When altering a stored procedure within Visual Studio, the + parameters to the procedure could be lost. (Bug #34359) - * The installer would fail to the DDEX provider binary if the Visual - Studio 2005 component was not selected. The result would lead to - MySQL Connector/Net not loading properly when using the interface - to a MySQL server within Visual Studio. (Bug #34674) + * Attempting to use an isolation level other than the default with a + transaction scope would use the default isolation level. (Bug + #34448) * A number of issues were identified in the case, connection and schema areas of the code for `MembershipProvider', `RoleProvider', `ProfileProvider'. (Bug #34495) + * When executing statements that used stored procedures and + functions, the new parameter code could fail to identify the + correct parameter format. (Bug #34699) + * When using web providers, the MySQL Connector/Net would check the schema and cache the application id, even when the connection string had been set. The effect would be to break the membership provider list. (Bug #34451) - * Attempting to use an isolation level other than the default with a - transaction scope would use the default isolation level. (Bug - #34448) + * The installer would fail to the DDEX provider binary if the Visual + Studio 2005 component was not selected. The result would lead to + MySQL Connector/Net not loading properly when using the interface + to a MySQL server within Visual Studio. (Bug #34674) - * When altering a stored procedure within Visual Studio, the - parameters to the procedure could be lost. (Bug #34359) + * When using the provider to generate or update users and passwords, + the password checking algorithm would not validate the password + strength or requirements correctly. (Bug #34792) - * A race condition could occur within the procedure cache resulting - the cache contents overflowing beyond the configured cache size. - (Bug #34338) + * The provider code has been updated to fix a number of outstanding + issues. * Fixed problem with Visual Studio 2008 integration that caused pop-up menus on server explorer nodes to not function - * The provider code has been updated to fix a number of outstanding - issues. -  File: manual.info, Node: connector-net-news-5-2-0, Prev: connector-net-news-5-2-1, Up: connector-net-news-5-2-x -D.3.7.9 Changes in MySQL Connector/Net 5.2.0 (11 February 2008) +D.3.8.9 Changes in MySQL Connector/Net 5.2.0 (11 February 2008) ............................................................... *Functionality Added or Changed* @@ -248512,18 +252303,22 @@ the provider will treat `TINYINT(1)' as *Note `INT': numeric-types. (Bug #34052) - * Added support for `DbDataAdapter' `UpdateBatchSize'. Batching is - fully supported including collapsing inserts down into the - multi-value form if possible. + * Added ClearPool and ClearAllPools features. * DDEX provider now works under Visual Studio 2008 beta 2. - * Added ClearPool and ClearAllPools features. + * Added support for `DbDataAdapter' `UpdateBatchSize'. Batching is + fully supported including collapsing inserts down into the + multi-value form if possible. *Bugs Fixed* - * Some speed improvements have been implemented in the `TokenizeSql' - process used to identify elements of SQL statements. (Bug #34220) + * In an open connection where the server had disconnected + unexpectedly, the status information of the connection would not + be updated properly. (Bug #33909) + + * The status of connections reported through the state change + handler was not being updated correctly. (Bug #34082) * When accessing tables from different databases within the same `TransactionScope', the same user/password combination would be @@ -248532,15 +252327,20 @@ error is now returned if you attempt this process, instead of using the incorrect authorization information. (Bug #34204) - * The status of connections reported through the state change - handler was not being updated correctly. (Bug #34082) + * Some speed improvements have been implemented in the `TokenizeSql' + process used to identify elements of SQL statements. (Bug #34220) * Incorporated some connection string cache optimizations sent to us by Maxim Mass. (Bug #34000) - * In an open connection where the server had disconnected - unexpectedly, the status information of the connection would not - be updated properly. (Bug #33909) + * Commands executed from within the state change handler would fail + with a `NULL' exception. (Bug #30964) + + * Memory usage could increase and decrease significantly when + updating or inserting a large number of rows. (Bug #31090) + + * Column name metadata was not using the character set as defined + within the connection string being used. (Bug #31185) * Data cached from the connection string could return invalid information because the internal routines were not using @@ -248548,15 +252348,6 @@ options not being recognized if they were of a different case than the existing cached values. (Bug #31433) - * Column name metadata was not using the character set as defined - within the connection string being used. (Bug #31185) - - * Memory usage could increase and decrease significantly when - updating or inserting a large number of rows. (Bug #31090) - - * Commands executed from within the state change handeler would fail - with a `NULL' exception. (Bug #30964) - * When running a stored procedure multiple times on the same connection, the memory usage could increase indefinitely. (Bug #30116) @@ -248572,7 +252363,7 @@  File: manual.info, Node: connector-net-news-5-1-x, Next: connector-net-news-5-0-x, Prev: connector-net-news-5-2-x, Up: connector-net-news -D.3.8 Changes in MySQL Connector/Net Version 5.1.x +D.3.9 Changes in MySQL Connector/Net Version 5.1.x -------------------------------------------------- * Menu: @@ -248582,7 +252373,7 @@ * connector-net-news-5-1-6:: Changes in MySQL Connector/Net 5.1.6 (12 May 2008) * connector-net-news-5-1-5:: Changes in MySQL Connector/Net 5.1.5 (Not released) * connector-net-news-5-1-4:: Changes in MySQL Connector/Net 5.1.4 (20 November 2007) -* connector-net-news-5-1-3:: Changes in MySQL Connector/Net 5.1.3 (21 September 2007 beta) +* connector-net-news-5-1-3:: Changes in MySQL Connector/Net 5.1.3 (21 September 2007, beta) * connector-net-news-5-1-2:: Changes in MySQL Connector/Net 5.1.2 (18 June 2007) * connector-net-news-5-1-1:: Changes in MySQL Connector/Net 5.1.1 (23 May 2007) * connector-net-news-5-1-0:: Changes in MySQL Connector/Net 5.1.0 (01 May 2007) @@ -248590,11 +252381,28 @@  File: manual.info, Node: connector-net-news-5-1-8, Next: connector-net-news-5-1-7, Prev: connector-net-news-5-1-x, Up: connector-net-news-5-1-x -D.3.8.1 Changes in MySQL Connector/Net 5.1.8 (Not released) +D.3.9.1 Changes in MySQL Connector/Net 5.1.8 (Not released) ........................................................... *Bugs Fixed* + * MySQL Connector/Net generated the following exception: + + System.NullReferenceException: Object reference not set to an instance of an object. + bei MySql.Data.MySqlClient.MySqlCommand.TimeoutExpired(Object commandObject) + bei System.Threading._TimerCallback.TimerCallback_Context(Object state) + bei System.Threading.ExecutionContext.runTryCode(Object userData) + bei + System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode + code, CleanupCode backoutCode, Object userData) + bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, + ContextCallback callback, Object state) + bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, + ContextCallback callback, Object state) + bei System.Threading._TimerCallback.PerformTimerCallback(Object state) + + (Bug #40005) + * Calling `GetSchema()' on `Indexes' or `IndexColumns' failed where index or column names were restricted. @@ -248624,23 +252432,6 @@ `pooling=True;Pooling=False'. This disabled connection pooling completely. (Bug #40091) - * MySQL Connector/Net generated the following exception: - - System.NullReferenceException: Object reference not set to an instance of an object. - bei MySql.Data.MySqlClient.MySqlCommand.TimeoutExpired(Object commandObject) - bei System.Threading._TimerCallback.TimerCallback_Context(Object state) - bei System.Threading.ExecutionContext.runTryCode(Object userData) - bei - System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode - code, CleanupCode backoutCode, Object userData) - bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, - ContextCallback callback, Object state) - bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, - ContextCallback callback, Object state) - bei System.Threading._TimerCallback.PerformTimerCallback(Object state) - - (Bug #40005) - * If, when using the MySqlTransaction transaction object, an exception was thrown, the transaction object was not disposed of and the transaction was not rolled back. (Bug #39817) @@ -248659,7 +252450,7 @@  File: manual.info, Node: connector-net-news-5-1-7, Next: connector-net-news-5-1-6, Prev: connector-net-news-5-1-8, Up: connector-net-news-5-1-x -D.3.8.2 Changes in MySQL Connector/Net 5.1.7 (21 August 2008) +D.3.9.2 Changes in MySQL Connector/Net 5.1.7 (21 August 2008) ............................................................. *Bugs Fixed* @@ -248669,6 +252460,17 @@ == null' was true a NullReferenceException was thrown and not the expected InvalidOperationException. (Bug #38276) + * Documentation incorrectly stated that `the DataColumn class in + .NET 1.0 and 1.1 does not permit columns with type of UInt16, + UInt32, or UInt64 to be autoincrement columns'. (Bug #37350) + + * As MySqlDbType.DateTime is not available in `VB.Net' the warning + `The datetime enum value is obsolete' was always shown during + compilation. (Bug #37406) + + * An unknown `MySqlErrorCode' was encountered when opening a + connection with an incorrect password. (Bug #37398) + * Executing a command that resulted in a fatal exception did not close the connection. (Bug #37991) @@ -248691,20 +252493,6 @@ (Bug #37955) - * As MySqlDbType.DateTime is not available in `VB.Net' the warning - `The datetime enum value is obsolete' was always shown during - compilation. (Bug #37406) - - * An unknown `MySqlErrorCode' was encountered when opening a - connection with an incorrect password. (Bug #37398) - - * Documentation incorrectly stated that `the DataColumn class in - .NET 1.0 and 1.1 does not permit columns with type of UInt16, - UInt32, or UInt64 to be autoincrement columns'. (Bug #37350) - - * SemaphoreFullException is generated when application is closed. - (Bug #36688) - * GetSchema did not work correctly when querying for a collection, if using a non-English locale. (Bug #35459) @@ -248712,6 +252500,9 @@ provider, the value had less precision than the one stored. (Bug #33322) + * SemaphoreFullException is generated when application is closed. + (Bug #36688) + * Using the MySQL Visual Studio plugin and a MySQL 4.1 server, certain field types (*Note `ENUM': enum.) would not be identified correctly. Also, when looking for tables, the plugin would list @@ -248722,19 +252513,22 @@  File: manual.info, Node: connector-net-news-5-1-6, Next: connector-net-news-5-1-5, Prev: connector-net-news-5-1-7, Up: connector-net-news-5-1-x -D.3.8.3 Changes in MySQL Connector/Net 5.1.6 (12 May 2008) +D.3.9.3 Changes in MySQL Connector/Net 5.1.6 (12 May 2008) .......................................................... *Bugs Fixed* - * When creating a connection pool, specifying an invalid IP address - will cause the entire application to crash, instead of providing - an exception. (Bug #36432) - * An incorrect value for a bit field would returned in a multi-row query if a preceding value for the field returned `NULL'. (Bug #36313) + * The DbCommandBuilder.QuoteIdentifer method was not implemented. + (Bug #35492) + + * When creating a connection pool, specifying an invalid IP address + will cause the entire application to crash, instead of providing + an exception. (Bug #36432) + * The `MembershipProvider' will raise an exception when the connection string is configured with `enablePasswordRetrival = true' and `RequireQuestionAndAnswer = false'. (Bug #36159) @@ -248749,25 +252543,22 @@ property of `MySqlConnection' to `NULL' would throw an exception. (Bug #35619) - * The DbCommandBuilder.QuoteIdentifer method was not implemented. - (Bug #35492) + * A race condition could occur within the procedure cache resulting + the cache contents overflowing beyond the configured cache size. + (Bug #34338) - * When using `SqlDataSource' to open a connection, the connection - would not automatically be closed when access had completed. (Bug - #34460) + * When altering a stored procedure within Visual Studio, the + parameters to the procedure could be lost. (Bug #34359) * Attempting to use an isolation level other than the default with a transaction scope would use the default isolation level. (Bug #34448) - * When altering a stored procedure within Visual Studio, the - parameters to the procedure could be lost. (Bug #34359) - - * A race condition could occur within the procedure cache resulting - the cache contents overflowing beyond the configured cache size. - (Bug #34338) + * When using `SqlDataSource' to open a connection, the connection + would not automatically be closed when access had completed. (Bug + #34460) - * Using the `TableAdaptor' wizard in combination with a suitable + * Using the `TableAdapter' wizard in combination with a suitable *Note `SELECT': select. statement, only the associated *Note `INSERT': insert. statement would also be created, rather than the required *Note `DELETE': delete. and *Note `UPDATE': update. @@ -248776,7 +252567,7 @@  File: manual.info, Node: connector-net-news-5-1-5, Next: connector-net-news-5-1-4, Prev: connector-net-news-5-1-6, Up: connector-net-news-5-1-x -D.3.8.4 Changes in MySQL Connector/Net 5.1.5 (Not released) +D.3.9.4 Changes in MySQL Connector/Net 5.1.5 (Not released) ........................................................... *Functionality Added or Changed* @@ -248791,8 +252582,12 @@ *Bugs Fixed* - * Some speed improvements have been implemented in the `TokenizeSql' - process used to identify elements of SQL statements. (Bug #34220) + * In an open connection where the server had disconnected + unexpectedly, the status information of the connection would not + be updated properly. (Bug #33909) + + * The status of connections reported through the state change + handler was not being updated correctly. (Bug #34082) * When accessing tables from different databases within the same `TransactionScope', the same user/password combination would be @@ -248801,23 +252596,19 @@ error is now returned if you attempt this process, instead of using the incorrect authorization information. (Bug #34204) - * The status of connections reported through the state change - handler was not being updated correctly. (Bug #34082) + * Some speed improvements have been implemented in the `TokenizeSql' + process used to identify elements of SQL statements. (Bug #34220) * Incorporated some connection string cache optimizations sent to us by Maxim Mass. (Bug #34000) - * In an open connection where the server had disconnected - unexpectedly, the status information of the connection would not - be updated properly. (Bug #33909) - - * MySQL Connector/Net would fail to compile properly with `nant'. - (Bug #33508) - * Problem with membership provider would mean that `FindUserByEmail' would fail with a `MySqlException' because it was trying to add a second parameter with the same name as the first. (Bug #33347) + * MySQL Connector/Net would fail to compile properly with `nant'. + (Bug #33508) + * Using compression in the MySQL connection with MySQL Connector/Net would be slower than using native (uncompressed) communication. (Bug #27865) @@ -248825,33 +252616,33 @@  File: manual.info, Node: connector-net-news-5-1-4, Next: connector-net-news-5-1-3, Prev: connector-net-news-5-1-5, Up: connector-net-news-5-1-x -D.3.8.5 Changes in MySQL Connector/Net 5.1.4 (20 November 2007) +D.3.9.5 Changes in MySQL Connector/Net 5.1.4 (20 November 2007) ............................................................... *Bugs Fixed* - * Setting the size of a string parameter after the value could cause - an exception. (Bug #32094) + * Trying to use a connection that was not open could return an + ambiguous and misleading error message. (Bug #31262) - * Creation of parameter objects with noninput direction using a - constructor would fail. This was cause by some old legacy code - preventing their use. (Bug #32093) + * A syntax error in a set of batch statements could leave the data + adapter in a state that appears hung. (Bug #31930) + + * MySQL Connector/Net would incorrectly report success when + enlisting in a distributed transaction, although distributed + transactions are not supported. (Bug #31703) * A date string could be returned incorrectly by `MySqlDateTime.ToString()' when the date returned by MySQL was `0000-00-00 00:00:00'. (Bug #32010) - * A syntax error in a set of batch statements could leave the data - adapter in a state that appears hung. (Bug #31930) + * Commands executed from within the state change handler would fail + with a `NULL' exception. (Bug #30964) - * Installing over a failed uninstall of a previous version could - result in multiple clients being registered in the - `machine.config'. This would prevent certain aspects of the MySQL - connection within Visual Studio to work properly. (Bug #31731) + * Memory usage could increase and decrease significantly when + updating or inserting a large number of rows. (Bug #31090) - * MySQL Connector/Net would incorrectly report success when - enlisting in a distributed transaction, although distributed - transactions are not supported. (Bug #31703) + * Column name metadata was not using the character set as defined + within the connection string being used. (Bug #31185) * Data cached from the connection string could return invalid information because the internal routines were not using @@ -248859,45 +252650,45 @@ options not being recognized if they were of a different case than the existing cached values. (Bug #31433) - * Trying to use a connection that was not open could return an - ambiguous and misleading error message. (Bug #31262) + * Installing over a failed uninstall of a previous version could + result in multiple clients being registered in the + `machine.config'. This would prevent certain aspects of the MySQL + connection within Visual Studio to work properly. (Bug #31731) - * Column name metadata was not using the character set as defined - within the connection string being used. (Bug #31185) + * Creation of parameter objects with noninput direction using a + constructor would fail. This was cause by some old legacy code + preventing their use. (Bug #32093) - * Memory usage could increase and decrease significantly when - updating or inserting a large number of rows. (Bug #31090) + * Setting the size of a string parameter after the value could cause + an exception. (Bug #32094) - * Commands executed from within the state change handeler would fail - with a `NULL' exception. (Bug #30964) + * When running a stored procedure multiple times on the same + connection, the memory usage could increase indefinitely. (Bug + #30116) * Extracting data through XML functions within a query returns the data as `System.Byte[]'. This was due to MySQL Connector/Net incorrectly identifying *Note `BLOB': blob. fields as binary, rather than text. (Bug #30233) - * When running a stored procedure multiple times on the same - connection, the memory usage could increase indefinitely. (Bug - #30116) - - * Column types with only 1-bit (such as *Note `BOOLEAN': - numeric-types. and `TINYINT(1)' were not returned as boolean - fields. (Bug #27959) - * When accessing certain statements, the command would timeout before the command completed. Because this cannot always be controlled through the individual command timeout options, a `default command timeout' has been added to the connection string options. (Bug #27958) - * The server error code was not updated in the `Data[]' hash, which - prevented `DbProviderFactory' users from accessing the server - error code. (Bug #27436) + * Column types with only 1-bit (such as *Note `BOOLEAN': + numeric-types. and `TINYINT(1)' were not returned as boolean + fields. (Bug #27959) * The `MySqlDbType.Datetime' has been replaced with `MySqlDbType.DateTime'. The old format has been obsoleted. (Bug #26344) + * The server error code was not updated in the `Data[]' hash, which + prevented `DbProviderFactory' users from accessing the server + error code. (Bug #27436) + * Changing the connection string of a connection to one that changes the parameter marker after the connection had been assigned to a command but before the connection is opened could cause parameters @@ -248906,8 +252697,8 @@  File: manual.info, Node: connector-net-news-5-1-3, Next: connector-net-news-5-1-2, Prev: connector-net-news-5-1-4, Up: connector-net-news-5-1-x -D.3.8.6 Changes in MySQL Connector/Net 5.1.3 (21 September 2007 beta) -..................................................................... +D.3.9.6 Changes in MySQL Connector/Net 5.1.3 (21 September 2007, beta) +...................................................................... This is a new Beta development release, fixing recently discovered bugs. @@ -248917,36 +252708,39 @@ `INSERT': insert. when adding rows to a table with a multiple-column unique key index. (Bug #30204) - * A *Note `DATE': datetime. field would be updated with a date/time - value, causing a `MySqlDataAdapter.Update()' exception. (Bug - #30077) - - * The Saudi Hijri calendar was not supported. (Bug #29931) + * The availability of a MySQL server would not be reset when using + pooled connections (`pooling=true'). This would lead to the server + being reported as unavailable, even if the server become available + while the application was still running. (Bug #29409) * Calling *Note `SHOW CREATE PROCEDURE': show-create-procedure. for routines with a hyphen in the catalog name produced a syntax error. (Bug #29526) - * Connecting to a MySQL server earlier than version 4.1 would raise - a `NullException'. (Bug #29476) - - * The availability of a MySQL server would not be reset when using - pooled connections (`pooling=true'). This would lead to the server - being reported as unavailable, even if the server become available - while the application was still running. (Bug #29409) + * Using the membership/role providers when `validationKey' or + `decryptionKey' parameters are set to `AutoGenerate', an exception + would be raised when accessing the corresponding values. (Bug + #29235) - * A `FormatException' error would be raised if a parameter had not - been found, instead of `Resources.ParameterMustBeDefined'. (Bug - #29312) + * _Visual Studio Plugin_: Adding a new query based on a stored + procedure that uses the *Note `SELECT': select. statement would + terminate the query/TableAdapter wizard. (Bug #29098) * An exception would be thrown when using the Manage Role functionality within the web administrator to assign a role to a user. (Bug #29236) - * Using the membership/role providers when `validationKey' or - `decryptionKey' parameters are set to `AutoGenerate', an exception - would be raised when accessing the corresponding values. (Bug - #29235) + * Using `TransactionScope' would cause an + `InvalidOperationException'. (Bug #28709) + + * The Saudi Hijri calendar was not supported. (Bug #29931) + + * A *Note `DATE': datetime. field would be updated with a date/time + value, causing a `MySqlDataAdapter.Update()' exception. (Bug + #30077) + + * Connecting to a MySQL server earlier than version 4.1 would raise + a `NullException'. (Bug #29476) * Certain operations would not check the `UsageAdvisor' setting, causing log messages from the Usage Advisor even when it was @@ -248956,17 +252750,14 @@ `Database=DBNAME' appearing multiple times in the resulting string. (Bug #29123) - * _Visual Studio Plugin_: Adding a new query based on a stored - procedure that uses the *Note `SELECT': select. statement would - terminate the query/TableAdapter wizard. (Bug #29098) - - * Using `TransactionScope' would cause an - `InvalidOperationException'. (Bug #28709) + * A `FormatException' error would be raised if a parameter had not + been found, instead of `Resources.ParameterMustBeDefined'. (Bug + #29312)  File: manual.info, Node: connector-net-news-5-1-2, Next: connector-net-news-5-1-1, Prev: connector-net-news-5-1-3, Up: connector-net-news-5-1-x -D.3.8.7 Changes in MySQL Connector/Net 5.1.2 (18 June 2007) +D.3.9.7 Changes in MySQL Connector/Net 5.1.2 (18 June 2007) ........................................................... This is a new Beta development release, fixing recently discovered bugs. @@ -248978,18 +252769,18 @@ * Creating a user would fail due to the application name being set incorrectly. (Bug #28648) - * _Visual Studio Plugin_: Adding a new query based on a stored - procedure that used a *Note `UPDATE': update, *Note `INSERT': - insert. or *Note `DELETE': delete. statement would terminate the - query/TableAdapter wizard. (Bug #28536) + * Accessing the results from a large query when using data + compression in the connection would fail to return all the data. + (Bug #28204) * _Visual Studio Plugin_: Query Builder would fail to show *Note `TINYTEXT': blob. columns, and any columns listed after a *Note `TINYTEXT': blob. column correctly. (Bug #28437) - * Accessing the results from a large query when using data - compression in the connection would fail to return all the data. - (Bug #28204) + * _Visual Studio Plugin_: Adding a new query based on a stored + procedure that used a *Note `UPDATE': update, *Note `INSERT': + insert. or *Note `DELETE': delete. statement would terminate the + query/TableAdapter wizard. (Bug #28536) * _Visual Studio Plugin_: Update commands would not be generated correctly when using the TableAdapter wizard. (Bug #26347) @@ -248997,7 +252788,7 @@  File: manual.info, Node: connector-net-news-5-1-1, Next: connector-net-news-5-1-0, Prev: connector-net-news-5-1-2, Up: connector-net-news-5-1-x -D.3.8.8 Changes in MySQL Connector/Net 5.1.1 (23 May 2007) +D.3.9.8 Changes in MySQL Connector/Net 5.1.1 (23 May 2007) .......................................................... *Bugs Fixed* @@ -249006,27 +252797,27 @@ would return columns as byte arrays instead of native columns. (Bug #28448) - * Installation of the MySQL Connector/Net on Windows would fail if - VisualStudio had not already been installed. (Bug #28260) - - * MySQL Connector/Net would look for the wrong table when executing - `User.IsRole().' (Bug #28251) - * Building a connection string within a tight loop would show slow performance. (Bug #28167) - * The `UNSIGNED' flag for parameters in a stored procedure would be - ignored when using `MySqlCommandBuilder' to obtain the parameter - information. (Bug #27679) - * Using `MySQLDataAdapter.FillSchema()' on a stored procedure would raise an exception: `Invalid attempt to access a field before calling Read()'. (Bug #27668) - * *Note `DATETIME': datetime. fields from versions of MySQL bgefore + * Installation of the MySQL Connector/Net on Windows would fail if + VisualStudio had not already been installed. (Bug #28260) + + * *Note `DATETIME': datetime. fields from versions of MySQL before 4.1 would be incorrectly parsed, resulting in a exception. (Bug #23342) + * The `UNSIGNED' flag for parameters in a stored procedure would be + ignored when using `MySqlCommandBuilder' to obtain the parameter + information. (Bug #27679) + + * MySQL Connector/Net would look for the wrong table when executing + `User.IsRole().' (Bug #28251) + * Fixed password property on `MySqlConnectionStringBuilder' to use `PasswordPropertyText' attribute. This causes dots to show instead of actual password text. @@ -249034,30 +252825,30 @@  File: manual.info, Node: connector-net-news-5-1-0, Prev: connector-net-news-5-1-1, Up: connector-net-news-5-1-x -D.3.8.9 Changes in MySQL Connector/Net 5.1.0 (01 May 2007) +D.3.9.9 Changes in MySQL Connector/Net 5.1.0 (01 May 2007) .......................................................... *Functionality Added or Changed* - * Now compiles for .NET CF 2.0. - - * Rewrote stored procedure parsing code using a new SQL tokenizer. - Really nasty procedures including nested comments are now - supported. + * Added Membership and Role provider contributed by Sean Wright + (thanks!). * GetSchema will now report objects relative to the currently selected database. What this means is that passing in null as a database restriction will report objects on the currently selected database only. - * Added Membership and Role provider contributed by Sean Wright - (thanks!). + * Rewrote stored procedure parsing code using a new SQL tokenizer. + Really nasty procedures including nested comments are now + supported. + + * Now compiles for .NET CF 2.0.  File: manual.info, Node: connector-net-news-5-0-x, Next: connector-net-news-1-0-x, Prev: connector-net-news-5-1-x, Up: connector-net-news -D.3.9 Changes in MySQL Connector/Net Version 5.0.x --------------------------------------------------- +D.3.10 Changes in MySQL Connector/Net Version 5.0.x +--------------------------------------------------- * Menu: @@ -249076,8 +252867,8 @@  File: manual.info, Node: connector-net-news-5-0-10, Next: connector-net-news-5-0-9, Prev: connector-net-news-5-0-x, Up: connector-net-news-5-0-x -D.3.9.1 Changes in MySQL Connector/Net 5.0.10 (Not released) -............................................................ +D.3.10.1 Changes in MySQL Connector/Net 5.0.10 (Not released) +............................................................. *Bugs Fixed* @@ -249112,10 +252903,6 @@ (Bug #37955) - * When creating a connection pool, specifying an invalid IP address - will cause the entire application to crash, instead of providing - an exception. (Bug #36432) - * GetSchema did not work correctly when querying for a collection, if using a non-English locale. (Bug #35459) @@ -249123,35 +252910,36 @@ provider, the value had less precision than the one stored. (Bug #33322) + * When creating a connection pool, specifying an invalid IP address + will cause the entire application to crash, instead of providing + an exception. (Bug #36432) +  File: manual.info, Node: connector-net-news-5-0-9, Next: connector-net-news-5-0-8, Prev: connector-net-news-5-0-10, Up: connector-net-news-5-0-x -D.3.9.2 Changes in MySQL Connector/Net 5.0.9 (Not released) -........................................................... +D.3.10.2 Changes in MySQL Connector/Net 5.0.9 (Not released) +............................................................ *Bugs Fixed* * The DbCommandBuilder.QuoteIdentifer method was not implemented. (Bug #35492) - * Setting the size of a string parameter after the value could cause - an exception. (Bug #32094) - - * Creation of parameter objects with noninput direction using a - constructor would fail. This was cause by some old legacy code - preventing their use. (Bug #32093) + * A syntax error in a set of batch statements could leave the data + adapter in a state that appears hung. (Bug #31930) * A date string could be returned incorrectly by `MySqlDateTime.ToString()' when the date returned by MySQL was `0000-00-00 00:00:00'. (Bug #32010) - * A syntax error in a set of batch statements could leave the data - adapter in a state that appears hung. (Bug #31930) + * Commands executed from within the state change handler would fail + with a `NULL' exception. (Bug #30964) - * Installing over a failed uninstall of a previous version could - result in multiple clients being registered in the - `machine.config'. This would prevent certain aspects of the MySQL - connection within Visual Studio to work properly. (Bug #31731) + * Memory usage could increase and decrease significantly when + updating or inserting a large number of rows. (Bug #31090) + + * Column name metadata was not using the character set as defined + within the connection string being used. (Bug #31185) * Data cached from the connection string could return invalid information because the internal routines were not using @@ -249159,14 +252947,17 @@ options not being recognized if they were of a different case than the existing cached values. (Bug #31433) - * Column name metadata was not using the character set as defined - within the connection string being used. (Bug #31185) + * Installing over a failed uninstall of a previous version could + result in multiple clients being registered in the + `machine.config'. This would prevent certain aspects of the MySQL + connection within Visual Studio to work properly. (Bug #31731) - * Memory usage could increase and decrease significantly when - updating or inserting a large number of rows. (Bug #31090) + * Creation of parameter objects with noninput direction using a + constructor would fail. This was cause by some old legacy code + preventing their use. (Bug #32093) - * Commands executed from within the state change handeler would fail - with a `NULL' exception. (Bug #30964) + * Setting the size of a string parameter after the value could cause + an exception. (Bug #32094) * When running a stored procedure multiple times on the same connection, the memory usage could increase indefinitely. (Bug @@ -249184,8 +252975,8 @@  File: manual.info, Node: connector-net-news-5-0-8, Next: connector-net-news-5-0-7, Prev: connector-net-news-5-0-9, Up: connector-net-news-5-0-x -D.3.9.3 Changes in MySQL Connector/Net 5.0.8 (21 August 2007) -............................................................. +D.3.10.3 Changes in MySQL Connector/Net 5.0.8 (21 August 2007) +.............................................................. *Note*: @@ -249193,18 +252984,14 @@ *Bugs Fixed* - * Extracting data through XML functions within a query returns the - data as `System.Byte[]'. This was due to MySQL Connector/Net - incorrectly identifying *Note `BLOB': blob. fields as binary, - rather than text. (Bug #30233) - * An incorrect `ConstraintException' could be raised on an *Note `INSERT': insert. when adding rows to a table with a multiple-column unique key index. (Bug #30204) - * A *Note `DATE': datetime. field would be updated with a date/time - value, causing a `MySqlDataAdapter.Update()' exception. (Bug - #30077) + * The availability of a MySQL server would not be reset when using + pooled connections (`pooling=true'). This would lead to the server + being reported as unavailable, even if the server become available + while the application was still running. (Bug #29409) * Fixed bug where MySQL Connector/Net was hand building some date time patterns rather than using the patterns provided under @@ -249215,123 +253002,121 @@ routines with a hyphen in the catalog name produced a syntax error. (Bug #29526) - * The availability of a MySQL server would not be reset when using - pooled connections (`pooling=true'). This would lead to the server - being reported as unavailable, even if the server become available - while the application was still running. (Bug #29409) + * A *Note `DATE': datetime. field would be updated with a date/time + value, causing a `MySqlDataAdapter.Update()' exception. (Bug + #30077) - * A `FormatException' error would be raised if a parameter had not - been found, instead of `Resources.ParameterMustBeDefined'. (Bug - #29312) + * Log messages would be truncated to 300 bytes. (Bug #28706) * Certain operations would not check the `UsageAdvisor' setting, causing log messages from the Usage Advisor even when it was disabled. (Bug #29124) + * Extracting data through XML functions within a query returns the + data as `System.Byte[]'. This was due to MySQL Connector/Net + incorrectly identifying *Note `BLOB': blob. fields as binary, + rather than text. (Bug #30233) + * Using the same connection string multiple times would result in `Database=DBNAME' appearing multiple times in the resulting string. (Bug #29123) - * Log messages would be truncated to 300 bytes. (Bug #28706) + * A `FormatException' error would be raised if a parameter had not + been found, instead of `Resources.ParameterMustBeDefined'. (Bug + #29312) * Accessing the results from a large query when using data compression in the connection will fail to return all the data. (Bug #28204) - * Fixed problem where `MySqlConnection.BeginTransaction' checked the - drivers status var before checking if the connection was open. - The result was that the driver could report an invalid condition - on a previously opened connection. - - * Fixed problem where we were not closing prepared statement handles - when commands are disposed. This could lead to using up all - prepared statement handles on the server. + * Fixed some serious issues with command timeout and cancel that + could present as exceptions about thread ownership. The issue was + that not all queries cancel the same. Some produce resultsets + while others don't. ExecuteReader had to be changed to check for + this. - * Fixed the database schema collection so that it works on servers - that are not properly respecting the `lower_case_table_names' - setting. + * Fixed problem where a command timing out just after it actually + finished would cause an exception to be thrown on the command + timeout thread which would then be seen as an unhandled exception. * Fixed problem where any attempt to not read all the records returned from a select where each row of the select is greater than 1024 bytes would hang the driver. - * Fixed problem where a command timing out just after it actually - finished would cause an exception to be thrown on the command - timeout thread which would then be seen as an unhandled exception. + * Fixed the database schema collection so that it works on servers + that are not properly respecting the `lower_case_table_names' + setting. - * Fixed some serious issues with command timeout and cancel that - could present as exceptions about thread ownership. The issue was - that not all queries cancel the same. Some produce resultsets - while others don't. ExecuteReader had to be changed to check for - this. + * Fixed problem where we were not closing prepared statement handles + when commands are disposed. This could lead to using up all + prepared statement handles on the server. + + * Fixed problem where `MySqlConnection.BeginTransaction' checked the + drivers status var before checking if the connection was open. + The result was that the driver could report an invalid condition + on a previously opened connection.  File: manual.info, Node: connector-net-news-5-0-7, Next: connector-net-news-5-0-6, Prev: connector-net-news-5-0-8, Up: connector-net-news-5-0-x -D.3.9.4 Changes in MySQL Connector/Net 5.0.7 (18 May 2007) -.......................................................... +D.3.10.4 Changes in MySQL Connector/Net 5.0.7 (18 May 2007) +........................................................... *Bugs Fixed* + * When cloning an open `MySqlClient.MySqlConnection' with the + `Persist Security Info=False' option set, the cloned connection is + not usable because the security information has not been cloned. + (Bug #27269) + * Running the statement *Note `SHOW PROCESSLIST': show-processlist. would return columns as byte arrays instead of native columns. (Bug #28448) - * Building a connection string within a tight loop would show slow - performance. (Bug #28167) + * Enlisting a null transaction would affect the current connection + object, such that further enlistment operations to the transaction + are not possible. (Bug #26754) + + * The `CreateFormat' column of the `DataTypes' collection did not + contain a format specification for creating a new column type. + (Bug #25947) * Using logging (with the `logging=true' parameter to the connection string) would not generate a log file. (Bug #27765) - * The `UNSIGNED' flag for parameters in a stored procedure would be - ignored when using `MySqlCommandBuilder' to obtain the parameter - information. (Bug #27679) + * Building a connection string within a tight loop would show slow + performance. (Bug #28167) + + * The `characterset' property would not be identified during a + connection (also affected Visual Studio Plugin). (Bug #26147, Bug + #27240) * Using `MySQLDataAdapter.FillSchema()' on a stored procedure would raise an exception: `Invalid attempt to access a field before calling Read()'. (Bug #27668) - * If you close an open connection with an active transaction, the - transaction is not automatically rolled back. (Bug #27289) - - * When cloning an open `MySqlClient.MySqlConnection' with the - `Persist Security Info=False' option set, the cloned connection is - not usable because the security information has not been cloned. - (Bug #27269) - - * Enlisting a null transaction would affect the current connection - object, such that further enlistment operations to the transaction - are not possible. (Bug #26754) - * Attempting to change the `Connection Protocol' property within a `PropertyGrid' control would raise an exception. (Bug #26472) - * The `characterset' property would not be identified during a - connection (also affected Visual Studion Plugin). (Bug #26147, - Bug #27240) - - * The `CreateFormat' column of the `DataTypes' collection did not - contain a format specification for creating a new column type. - (Bug #25947) - - * *Note `DATETIME': datetime. fields from versions of MySQL bgefore + * *Note `DATETIME': datetime. fields from versions of MySQL before 4.1 would be incorrectly parsed, resulting in a exception. (Bug #23342) + * The `UNSIGNED' flag for parameters in a stored procedure would be + ignored when using `MySqlCommandBuilder' to obtain the parameter + information. (Bug #27679) + + * If you close an open connection with an active transaction, the + transaction is not automatically rolled back. (Bug #27289) +  File: manual.info, Node: connector-net-news-5-0-6, Next: connector-net-news-5-0-5, Prev: connector-net-news-5-0-7, Up: connector-net-news-5-0-x -D.3.9.5 Changes in MySQL Connector/Net 5.0.6 (22 March 2007) -............................................................ +D.3.10.5 Changes in MySQL Connector/Net 5.0.6 (22 March 2007) +............................................................. *Bugs Fixed* - * Publisher listed in "Add/Remove Programs" is not consistent with - other MySQL products. (Bug #27253) - - * `DESCRIBE ....' SQL statement returns byte arrays rather than data - on MySQL versions older than 4.1.15. (Bug #27221) - * `cmd.Parameters.RemoveAt("Id")' will cause an error if the last item is requested. (Bug #27187) @@ -249339,81 +253124,77 @@ method can not be retrieved later using `ParameterName'. (Bug #27135) + * MySQL Visual Studio Plugin 1.1.2 does not work with MySQL + Connector/Net 5.0.5. (Bug #26960) + * Exception thrown when using large values in `UInt64' parameters. (Bug #27093) - * MySQL Visual Studio Plugin 1.1.2 does not work with MySQL - Connector/Net 5.0.5. (Bug #26960) + * Publisher listed in "Add/Remove Programs" is not consistent with + other MySQL products. (Bug #27253) + + * `DESCRIBE ....' SQL statement returns byte arrays rather than data + on MySQL versions older than 4.1.15. (Bug #27221)  File: manual.info, Node: connector-net-news-5-0-5, Next: connector-net-news-5-0-4, Prev: connector-net-news-5-0-6, Up: connector-net-news-5-0-x -D.3.9.6 Changes in MySQL Connector/Net 5.0.5 (07 March 2007) -............................................................ +D.3.10.6 Changes in MySQL Connector/Net 5.0.5 (07 March 2007) +............................................................. *Functionality Added or Changed* - * Reverted behavior that required parameter names to start with the - parameter marker. We apologize for this back and forth but we - mistakenly changed the behavior to not match what `SqlClient' - supports. We now support using either syntax for adding parameters - however we also respond exactly like `SqlClient' in that if you - ask for the index of a parameter using a syntax different from - when you added the parameter, the result will be -1. - - * Assembly now properly appears in the Visual Studio 2005 Add/Remove - Reference dialog. + * Added `Use Procedure Bodies' connection string option to enable + calling procedures without using procedure metadata. - * Fixed problem that prevented use of `SchemaOnly' or `SingleRow' - command behaviors with stored procedures or prepared statements. + * Fixed problem with calling stored functions when a return + parameter was not given. - * Added `MySqlParameterCollection.AddWithValue' and marked the - `Add(name, value)' method as obsolete. + * Fixed problem with parameter name hashing where the hashes were + not getting updated when parameters were removed from the + collection. * Return parameters created with DeriveParameters now have the name `RETURN_VALUE'. - * Fixed problem with parameter name hashing where the hashes were - not getting updated when parameters were removed from the - collection. + * Added `MySqlParameterCollection.AddWithValue' and marked the + `Add(name, value)' method as obsolete. - * Fixed problem with calling stored functions when a return - parameter was not given. + * Fixed problem that prevented use of `SchemaOnly' or `SingleRow' + command behaviors with stored procedures or prepared statements. - * Added `Use Procedure Bodies' connection string option to enable - calling procedures without using procedure metadata. + * Assembly now properly appears in the Visual Studio 2005 Add/Remove + Reference dialog. -*Bugs Fixed* + * Reverted behavior that required parameter names to start with the + parameter marker. We apologize for this back and forth but we + mistakenly changed the behavior to not match what `SqlClient' + supports. We now support using either syntax for adding parameters + however we also respond exactly like `SqlClient' in that if you + ask for the index of a parameter using a syntax different from + when you added the parameter, the result will be -1. - * `MySqlConnection.GetSchema' fails with `NullReferenceException' - for Foreign Keys. (Bug #26660) +*Bugs Fixed* - * MySQL Connector/Net would fail to install under Windows Vista. - (Bug #26430) + * *Note `BINARY': binary-varbinary. and *Note `VARBINARY': + binary-varbinary. columns would be returned as a string, not + binary, data type. (Bug #25605) - * Opening a connection would be slow due to host name lookup. (Bug - #26152) + * `MySqlConnection' throws an exception when connecting to MySQL + v4.1.7. (Bug #25726) * Incorrect values/formats would be applied when the `OldSyntax' connection string option was used. (Bug #25950) - * Registry would be incorrectly populated with installation - locations. (Bug #25928) - - * Times with negative values would be returned incorrectly. (Bug - #25912) - - * Returned data types of a `DataTypes' collection do not contain the - right correct CLR data type. (Bug #25907) - - * `GetSchema' and `DataTypes' would throw an exception due to an - incorrect table name. (Bug #25906) + * High CPU utilization would be experienced when there is no idle + connection waiting when using pooled connections through + `MySqlPool.GetConnection'. (Bug #24373) - * `MySqlConnection' throws an exception when connecting to MySQL - v4.1.7. (Bug #25726) + * Opening a connection would be slow due to host name lookup. (Bug + #26152) - * *Note `SELECT': select. did not work correctly when using a - `WHERE' clause containing a UTF-8 string. (Bug #25651) + * The `UpdateRowSource.FirstReturnedRecord' method does not work. + (Bug #25569) * When closing and then re-opening a connection to a database, the character set specification is lost. (Bug #25614) @@ -249421,19 +253202,27 @@ * Filling a table schema through a stored procedure triggers a runtime error. (Bug #25609) - * *Note `BINARY': binary-varbinary. and *Note `VARBINARY': - binary-varbinary. columns would be returned as a string, not - binary, data type. (Bug #25605) - - * A critical `ConnectionPool' error would result in repeated - `System.NullReferenceException'. (Bug #25603) - - * The `UpdateRowSource.FirstReturnedRecord' method does not work. - (Bug #25569) + * Returned data types of a `DataTypes' collection do not contain the + right correct CLR data type. (Bug #25907) * When connecting to a MySQL Server earlier than version 4.1, the connection would hang when reading data. (Bug #25458) + * Registry would be incorrectly populated with installation + locations. (Bug #25928) + + * `MySqlConnection.GetSchema' fails with `NullReferenceException' + for Foreign Keys. (Bug #26660) + + * Times with negative values would be returned incorrectly. (Bug + #25912) + + * MySQL Connector/Net would not compile properly when used with Mono + 1.2. (Bug #24263) + + * MySQL Connector/Net would fail to install under Windows Vista. + (Bug #26430) + * Using `ExecuteScalar()' with more than one query, where one query fails, will hang the connection. (Bug #25443) @@ -249441,16 +253230,18 @@ the client application would receive a `SerializationException' instead. (Bug #24957) + * A critical `ConnectionPool' error would result in repeated + `System.NullReferenceException'. (Bug #25603) + * When connecting to a server, the return code from the connection could be zero, even though the host name was incorrect. (Bug #24802) - * High CPU utilization would be experienced when there is no idle - connection waiting when using pooled connections through - `MySqlPool.GetConnection'. (Bug #24373) + * `GetSchema' and `DataTypes' would throw an exception due to an + incorrect table name. (Bug #25906) - * MySQL Connector/Net would not compile properly when used with Mono - 1.2. (Bug #24263) + * *Note `SELECT': select. did not work correctly when using a + `WHERE' clause containing a UTF-8 string. (Bug #25651) * Applications would crash when calling with `CommandType' set to `StoredProcedure'. @@ -249458,99 +253249,90 @@  File: manual.info, Node: connector-net-news-5-0-4, Next: connector-net-news-5-0-3, Prev: connector-net-news-5-0-5, Up: connector-net-news-5-0-x -D.3.9.7 Changes in MySQL Connector/Net 5.0.4 (Not released) -........................................................... +D.3.10.7 Changes in MySQL Connector/Net 5.0.4 (Not released) +............................................................ This is a new Beta development release, fixing recently discovered bugs. -This section has no changelog entries. +Version 5.0.4 has no changelog entries.  File: manual.info, Node: connector-net-news-5-0-3, Next: connector-net-news-5-0-2, Prev: connector-net-news-5-0-4, Up: connector-net-news-5-0-x -D.3.9.8 Changes in MySQL Connector/Net 5.0.3 (05 January 2007) -.............................................................. +D.3.10.8 Changes in MySQL Connector/Net 5.0.3 (05 January 2007) +............................................................... *Functionality Added or Changed* - * Usage Advisor has been implemented. The Usage Advisor checks your - queries and will report if you are using the connection - inefficiently. + * SSL support has been updated. - * PerfMon hooks have been added to monitor the stored procedure - cache hits and misses. + * The ShapZipLib library has been replaced with the deflate support + provided within .NET 2.0. - * The `MySqlCommand' object now supports asynchronous query methods. - This is implemented useg the `BeginExecuteNonQuery' and - `EndExecuteNonQuery' methods. + * Support for the embedded server and client library have been + removed from this release. Support will be added back to a later + release. - * Metadata from storaed procedures and stored function execution are - cached. + * Improved speed and performance by re-architecting certain sections + of the code. + + * The `ViewColumns' `GetSchema' collection has been updated. * The `CommandBuilder.DeriveParameters' function has been updated to the procedure cache. - * The `ViewColumns' `GetSchema' collection has been updated. - - * Improved speed and performance by re-architecting certain sections - of the code. + * Metadata from stored procedures and stored function execution are + cached. - * Support for the embedded server and client library have been - removed from this release. Support will be added back to a later - release. + * The `MySqlCommand' object now supports asynchronous query methods. + This is implemented useg the `BeginExecuteNonQuery' and + `EndExecuteNonQuery' methods. - * The ShapZipLib library has been replaced with the deflate support - provided within .NET 2.0. + * PerfMon hooks have been added to monitor the stored procedure + cache hits and misses. - * SSL support has been updated. + * Usage Advisor has been implemented. The Usage Advisor checks your + queries and will report if you are using the connection + inefficiently. *Bugs Fixed* - * Additional text added to error message (Bug #25178) + * When using a `DbNull.Value' as the value for a parameter value, + and then later setting a specific value type, the command would + fail with an exception because the wrong type was implied from the + `DbNull.Value'. (Bug #24565) - * An exception would be raised, or the process would hang, if - `SELECT' privileges on a database were not granted and a stored - procedure was used. (Bug #25033) + * Using `Driver.IsTooOld()' would return the wrong value. (Bug + #24661) + + * Nested transactions (which are unsupported)do not raise an error + or warning. (Bug #22400) * When adding parameter objects to a command object, if the parameter direction is set to `ReturnValue' before the parameter is added to the command object then when the command is executed it throws an error. (Bug #25013) - * Using `Driver.IsTooOld()' would return the wrong value. (Bug - #24661) - - * When using a `DbNull.Value' as the value for a parameter value, - and then later setting a specific value type, the command would - fail with an exception because the wrong type was implied from the - `DbNull.Value'. (Bug #24565) - - * Stored procedure executions are not thread safe. (Bug #23905) - * Deleting a connection to a disconnected server when using the Visual Studio Plugin would cause an assertion failure. (Bug #23687) - * Nested transactions (which are unsupported)do not raise an error - or warning. (Bug #22400) + * Additional text added to error message (Bug #25178) + + * An exception would be raised, or the process would hang, if + `SELECT' privileges on a database were not granted and a stored + procedure was used. (Bug #25033) + + * Stored procedure executions are not thread safe. (Bug #23905)  File: manual.info, Node: connector-net-news-5-0-2, Next: connector-net-news-5-0-1, Prev: connector-net-news-5-0-3, Up: connector-net-news-5-0-x -D.3.9.9 Changes in MySQL Connector/Net 5.0.2 (06 November 2006) -............................................................... +D.3.10.9 Changes in MySQL Connector/Net 5.0.2 (06 November 2006) +................................................................ *Functionality Added or Changed* - * An `Ignore Prepare' option has been added to the connection string - options. If enabled, prepared statements will be disabled - application-wide. The default for this option is true. - - * Implemented a stored procedure cache. By default, the connector - caches the metadata for the last 25 procedures that are seen. You - can change the numbver of procedures that are cacheds by using the - `procedure cache' connection string. - * *Important change:* Due to a number of issues with the use of server-side prepared statements, MySQL Connector/Net 5.0.2 has disabled their use by default. The disabling of server-side @@ -249565,32 +253347,41 @@ The default value of this property is true. -*Bugs Fixed* + * Implemented a stored procedure cache. By default, the connector + caches the metadata for the last 25 procedures that are seen. You + can change the number of procedures that are cached by using the + `procedure cache' connection string. - * One system where IPv6 was enabled, MySQL Connector/Net would - incorrectly resolve host names. (Bug #23758) + * An `Ignore Prepare' option has been added to the connection string + options. If enabled, prepared statements will be disabled + application-wide. The default for this option is true. - * Column names with accented characters were not parsed properly - causing malformed column names in result sets. (Bug #23657) +*Bugs Fixed* * An exception would be thrown when calling `GetSchemaTable' and `fields' was null. (Bug #23538) + * During installation, an antivirus error message would be raised + (indicating a malicious script problem). (Bug #23245) + + * One system where IPv6 was enabled, MySQL Connector/Net would + incorrectly resolve host names. (Bug #23758) + * A `System.FormatException' exception would be raised when invoking a stored procedure with an *Note `ENUM': enum. input parameter. (Bug #23268) - * During installation, an antivirus error message would be raised - (indicating a malicious script problem). (Bug #23245) + * Using Windows Vista (RC2) as a nonprivileged user would raise a + `Registry key 'Global' access denied'. (Bug #22882) + + * Column names with accented characters were not parsed properly + causing malformed column names in result sets. (Bug #23657) * Creating a connection through the Server Explorer when using the Visual Studio Plugin would fail. The installer for the Visual Studio Plugin has been updated to ensure that MySQL Connector/Net 5.0.2 must be installed. (Bug #23071) - * Using Windows Vista (RC2) as a nonprivileged user would raise a - `Registry key 'Global' access denied'. (Bug #22882) - * Within Mono, using the `PreparedStatement' interface could result in an error due to a `BitArray' copying error. (Bug #18186) @@ -249600,28 +253391,24 @@  File: manual.info, Node: connector-net-news-5-0-1, Next: connector-net-news-5-0-0, Prev: connector-net-news-5-0-2, Up: connector-net-news-5-0-x -D.3.9.10 Changes in MySQL Connector/Net 5.0.1 (01 October 2006) -............................................................... +D.3.10.10 Changes in MySQL Connector/Net 5.0.1 (01 October 2006) +................................................................ *Bugs Fixed* - * MySQL Connector/Net on a Turkish operating system, may fail to - execute certain SQL statements correctly. (Bug #22452) + * The `MySqlexception' class is now derived from the `DbException' + class. (Bug #21874) * Starting a transaction on a connection created by `MySql.Data.MySqlClient.MySqlClientFactory', using `BeginTransaction' without specifying an isolation level, causes the SQL statement to fail with a syntax error. (Bug #22042) - * The `MySqlexception' class is now derived from the `DbException' - class. (Bug #21874) - * The `#' would not be accepted within column/table names, even though it was valid. (Bug #21521) - * You can now install the MySQL Connector/Net MSI package from the - command line using the `/passive', `/quiet', `/q' options. (Bug - #19994) + * MySQL Connector/Net on a Turkish operating system, may fail to + execute certain SQL statements correctly. (Bug #22452) * Submitting an empty string to a command object through `prepare' raises an `System.IndexOutOfRangeException', rather than a MySQL @@ -249630,6 +253417,14 @@ * Incorrect field/data lengths could be returned for *Note `VARCHAR': char. UTF8 columns. (Bug #14592) + * You can now install the MySQL Connector/Net MSI package from the + command line using the `/passive', `/quiet', `/q' options. (Bug + #19994) + + * Executing multiple queries as part of a transaction returns `There + is already an openDataReader associated with this Connection which + must be closed first'. (Bug #7248) + * Using `ExecuteScalar' with a datetime field, where the value of the field is "0000-00-00 00:00:00", a `MySqlConversionException' exception would be raised. (Bug #11991) @@ -249639,49 +253434,45 @@ date field contained a zero value (0000-00-00 00:00:00). (Bug #9619) - * Executing multiple queries as part of a transaction returns `There - is already an openDataReader associated with this Connection which - must be closed first'. (Bug #7248) -  File: manual.info, Node: connector-net-news-5-0-0, Prev: connector-net-news-5-0-1, Up: connector-net-news-5-0-x -D.3.9.11 Changes in MySQL Connector/Net 5.0.0 (08 August 2006) -.............................................................. +D.3.10.11 Changes in MySQL Connector/Net 5.0.0 (08 August 2006) +............................................................... *Functionality Added or Changed* - * Replaced use of ICSharpCode with .NET 2.0 internal deflate support. + * Implemented MySqlConnectionBuilder class. - * Refactored test suite to test all protocols in a single pass. + * Completely refactored how column values are handled to avoid + boxing in some cases. - * Added usage advisor warnings for requesting column values by the - wrong type. + * Implemented Usage Advisor. - * Reimplemented PacketReader/PacketWriter support into MySqlStream - class. + * Added Async query methods. - * Reworked connection string classes to be simpler and faster. + * Implemented classes and interfaces for ADO.Net 2.0 support. - * Added procedure metadata caching. + * Added perfmon hooks for stored procedure cache hits and misses. + + * Implemented MySqlClientFactory class. * Added internal implemention of SHA1 so we don't have to distribute the OpenNetCF on mobile devices. - * Implemented MySqlClientFactory class. - - * Added perfmon hooks for stored procedure cache hits and misses. + * Added procedure metadata caching. - * Implemented classes and interfaces for ADO.Net 2.0 support. + * Reworked connection string classes to be simpler and faster. - * Added Async query methods. + * Reimplemented PacketReader/PacketWriter support into MySqlStream + class. - * Implemented Usage Advisor. + * Added usage advisor warnings for requesting column values by the + wrong type. - * Completely refactored how column values are handled to avoid - boxing in some cases. + * Refactored test suite to test all protocols in a single pass. - * Implemented MySqlConnectionBuilder class. + * Replaced use of ICSharpCode with .NET 2.0 internal deflate support. *Bugs Fixed* @@ -249691,7 +253482,7 @@  File: manual.info, Node: connector-net-news-1-0-x, Next: connector-net-news-0-9-0, Prev: connector-net-news-5-0-x, Up: connector-net-news -D.3.10 Changes in MySQL Connector/Net Version 1.0.x +D.3.11 Changes in MySQL Connector/Net Version 1.0.x --------------------------------------------------- * Menu: @@ -249704,15 +253495,15 @@ * connector-net-news-1-0-6:: Changes in MySQL Connector/Net 1.0.6 (03 October 2005) * connector-net-news-1-0-5:: Changes in MySQL Connector/Net 1.0.5 (29 August 2005) * connector-net-news-1-0-4:: Changes in MySQL Connector/Net 1.0.4 (20 January 2005) -* connector-net-news-1-0-3:: Changes in MySQL Connector/Net 1.0.3 (12 October 2004 gamma) -* connector-net-news-1-0-2:: Changes in MySQL Connector/Net 1.0.2 (15 November 2004 gamma) -* connector-net-news-1-0-1:: Changes in MySQL Connector/Net 1.0.1 (27 October 2004 beta) +* connector-net-news-1-0-3:: Changes in MySQL Connector/Net 1.0.3 (12 October 2004, gamma) +* connector-net-news-1-0-2:: Changes in MySQL Connector/Net 1.0.2 (15 November 2004, gamma) +* connector-net-news-1-0-1:: Changes in MySQL Connector/Net 1.0.1 (27 October 2004, beta) * connector-net-news-1-0-0:: Changes in MySQL Connector/Net 1.0.0 (01 September 2004)  File: manual.info, Node: connector-net-news-1-0-11, Next: connector-net-news-1-0-10, Prev: connector-net-news-1-0-x, Up: connector-net-news-1-0-x -D.3.10.1 Changes in MySQL Connector/Net 1.0.11 (Not released) +D.3.11.1 Changes in MySQL Connector/Net 1.0.11 (Not released) ............................................................. *Bugs Fixed* @@ -249720,18 +253511,18 @@ * Attempting to utilize MySQL Connector .Net version 1.0.10 throws a fatal exception under Mono when pooling is enabled. (Bug #33682) - * Setting the size of a string parameter after the value could cause - an exception. (Bug #32094) + * Commands executed from within the state change handler would fail + with a `NULL' exception. (Bug #30964) + + * Memory usage could increase and decrease significantly when + updating or inserting a large number of rows. (Bug #31090) * Creation of parameter objects with noninput direction using a constructor would fail. This was cause by some old legacy code preventing their use. (Bug #32093) - * Memory usage could increase and decrease significantly when - updating or inserting a large number of rows. (Bug #31090) - - * Commands executed from within the state change handeler would fail - with a `NULL' exception. (Bug #30964) + * Setting the size of a string parameter after the value could cause + an exception. (Bug #32094) * Extracting data through XML functions within a query returns the data as `System.Byte[]'. This was due to MySQL Connector/Net @@ -249750,7 +253541,7 @@  File: manual.info, Node: connector-net-news-1-0-10, Next: connector-net-news-1-0-9, Prev: connector-net-news-1-0-11, Up: connector-net-news-1-0-x -D.3.10.2 Changes in MySQL Connector/Net 1.0.10 (24 August 2007) +D.3.11.2 Changes in MySQL Connector/Net 1.0.10 (24 August 2007) ............................................................... *Bugs Fixed* @@ -249764,57 +253555,36 @@ being reported as unavailable, even if the server become available while the application was still running. (Bug #29409) - * Publisher listed in "Add/Remove Programs" is not consistent with - other MySQL products. (Bug #27253) + * *Note `BINARY': binary-varbinary. and *Note `VARBINARY': + binary-varbinary. columns would be returned as a string, not + binary, data type. (Bug #25605) * `MySqlParameterCollection' and parameters added with `Insert' method can not be retrieved later using `ParameterName'. (Bug #27135) - * *Note `BINARY': binary-varbinary. and *Note `VARBINARY': - binary-varbinary. columns would be returned as a string, not - binary, data type. (Bug #25605) + * High CPU utilization would be experienced when there is no idle + connection waiting when using pooled connections through + `MySqlPool.GetConnection'. (Bug #24373) - * A critical `ConnectionPool' error would result in repeated - `System.NullReferenceException'. (Bug #25603) + * Publisher listed in "Add/Remove Programs" is not consistent with + other MySQL products. (Bug #27253) * When a `MySqlConversionException' is raised on a remote object, the client application would receive a `SerializationException' instead. (Bug #24957) - * High CPU utilization would be experienced when there is no idle - connection waiting when using pooled connections through - `MySqlPool.GetConnection'. (Bug #24373) + * A critical `ConnectionPool' error would result in repeated + `System.NullReferenceException'. (Bug #25603)  File: manual.info, Node: connector-net-news-1-0-9, Next: connector-net-news-1-0-8, Prev: connector-net-news-1-0-10, Up: connector-net-news-1-0-x -D.3.10.3 Changes in MySQL Connector/Net 1.0.9 (02 February 2007) +D.3.11.3 Changes in MySQL Connector/Net 1.0.9 (02 February 2007) ................................................................ *Functionality Added or Changed* - * The ICSharpCode ZipLib is no longer used by the Connector, and is - no longer distributed with it. - - * *Important change:* Binaries for .NET 1.0 are no longer supplied - with this release. If you need support for .NET 1.0, you must - build from source. - - * Improved `CommandBuilder.DeriveParameters' to first try and use - the procedure cache before querying for the stored procedure - metadata. Return parameters created with `DeriveParameters' now - have the name `RETURN_VALUE'. - - * An `Ignore Prepare' option has been added to the connection string - options. If enabled, prepared statements will be disabled - application-wide. The default for this option is true. - - * Implemented a stored procedure cache. By default, the connector - caches the metadata for the last 25 procedures that are seen. You - can change the numbver of procedures that are cacheds by using the - `procedure cache' connection string. - * *Important change:* Due to a number of issues with the use of server-side prepared statements, MySQL Connector/Net 5.0.2 has disabled their use by default. The disabling of server-side @@ -249829,26 +253599,41 @@ The default value of this property is true. -*Bugs Fixed* + * Implemented a stored procedure cache. By default, the connector + caches the metadata for the last 25 procedures that are seen. You + can change the number of procedures that are cached by using the + `procedure cache' connection string. - * Times with negative values would be returned incorrectly. (Bug - #25912) + * An `Ignore Prepare' option has been added to the connection string + options. If enabled, prepared statements will be disabled + application-wide. The default for this option is true. - * `MySqlConnection' throws a `NullReferenceException' and - `ArgumentNullException' when connecting to MySQL v4.1.7. (Bug - #25726) + * Improved `CommandBuilder.DeriveParameters' to first try and use + the procedure cache before querying for the stored procedure + metadata. Return parameters created with `DeriveParameters' now + have the name `RETURN_VALUE'. - * *Note `SELECT': select. did not work correctly when using a - `WHERE' clause containing a UTF-8 string. (Bug #25651) + * *Important change:* Binaries for .NET 1.0 are no longer supplied + with this release. If you need support for .NET 1.0, you must + build from source. - * When closing and then re-opening a connection to a database, the - character set specification is lost. (Bug #25614) + * The ICSharpCode ZipLib is no longer used by the Connector, and is + no longer distributed with it. - * Trying to fill a table schema through a stored procedure triggers - a runtime error. (Bug #25609) +*Bugs Fixed* - * Using `ExecuteScalar()' with more than one query, where one query - fails, will hang the connection. (Bug #25443) + * When using a `DbNull.Value' as the value for a parameter value, + and then later setting a specific value type, the command would + fail with an exception because the wrong type was implied from the + `DbNull.Value'. (Bug #24565) + + * An `System.OverflowException' would be raised when accessing a + varchar field over 255 bytes. (Bug #23749) + + * Using `Driver.IsTooOld()' would return the wrong value. (Bug + #24661) + + * Nested transactions do not raise an error or warning. (Bug #22400) * Additional text added to error message. (Bug #25178) @@ -249857,30 +253642,36 @@ is added to the command object then when the command is executed it throws an error. (Bug #25013) - * When connecting to a server, the return code from the connection - could be zero, even though the host name was incorrect. (Bug - #24802) + * `MySqlConnection' throws a `NullReferenceException' and + `ArgumentNullException' when connecting to MySQL v4.1.7. (Bug + #25726) - * Using `Driver.IsTooOld()' would return the wrong value. (Bug - #24661) + * When closing and then re-opening a connection to a database, the + character set specification is lost. (Bug #25614) - * When using a `DbNull.Value' as the value for a parameter value, - and then later setting a specific value type, the command would - fail with an exception because the wrong type was implied from the - `DbNull.Value'. (Bug #24565) + * Trying to fill a table schema through a stored procedure triggers + a runtime error. (Bug #25609) - * Stored procedure executions are not thread safe. (Bug #23905) + * One system where IPv6 was enabled, MySQL Connector/Net would + incorrectly resolve host names. (Bug #23758) + + * Times with negative values would be returned incorrectly. (Bug + #25912) * The `CommandBuilder' would mistakenly add insert parameters for a table column with auto incrementation enabled. (Bug #23862) - * One system where IPv6 was enabled, MySQL Connector/Net would - incorrectly resolve host names. (Bug #23758) + * Using `ExecuteScalar()' with more than one query, where one query + fails, will hang the connection. (Bug #25443) - * An `System.OverflowException' would be raised when accessing a - varchar field over 255 bytes. (Bug #23749) + * When connecting to a server, the return code from the connection + could be zero, even though the host name was incorrect. (Bug + #24802) - * Nested transactions do not raise an error or warning. (Bug #22400) + * Stored procedure executions are not thread safe. (Bug #23905) + + * *Note `SELECT': select. did not work correctly when using a + `WHERE' clause containing a UTF-8 string. (Bug #25651) * Within Mono, using the `PreparedStatement' interface could result in an error due to a `BitArray' copying error. (Bug #18186) @@ -249888,86 +253679,94 @@  File: manual.info, Node: connector-net-news-1-0-8, Next: connector-net-news-1-0-7, Prev: connector-net-news-1-0-9, Up: connector-net-news-1-0-x -D.3.10.4 Changes in MySQL Connector/Net 1.0.8 (20 October 2006) +D.3.11.4 Changes in MySQL Connector/Net 1.0.8 (20 October 2006) ............................................................... *Functionality Added or Changed* - * Stored procedures are now cached. - * The method for retrieving stored procedure metadata has been changed so that users without `SELECT' privileges on the `mysql.proc' table can use a stored procedure. -*Bugs Fixed* + * Stored procedures are now cached. - * MySQL Connector/Net on a Turkish operating system, may fail to - execute certain SQL statements correctly. (Bug #22452) +*Bugs Fixed* * The `#' would not be accepted within column/table names, even though it was valid. (Bug #21521) + * MySQL Connector/Net on a Turkish operating system, may fail to + execute certain SQL statements correctly. (Bug #22452) + * Calling Close on a connection after calling a stored procedure would trigger a `NullReferenceException'. (Bug #20581) - * You can now install the MySQL Connector/Net MSI package from the - command line using the `/passive', `/quiet', `/q' options. (Bug - #19994) + * When working with multiple threads, character set initialization + would generate errors. (Bug #17106) - * The DiscoverParameters function would fail when a stored procedure - used a *Note `NUMERIC': numeric-types. parameter type. (Bug - #19515) + * Submitting an empty string to a command object through `prepare' + raises an `System.IndexOutOfRangeException', rather than a MySQL + Connector/Net exception. (Bug #18391) - * When running a query that included a date comparison, a DateReader - error would be raised. (Bug #19481) + * Called `MySqlCommandBuilder.DeriveParameters' for a stored + procedure that has no paramers would cause an application crash. + (Bug #15077) - * `IDataRecord.GetString' would raise `NullPointerException' for - null values in returned rows. Method now throws - `SqlNullValueException'. (Bug #19294) + * The connection string parser did not permit single or double + quotation marks in the password. (Bug #16659) + + * The CommandBuilder ignored Unsigned flag at Parameter creation. + (Bug #17375) + + * CHAR type added to MySqlDbType. (Bug #17749) * Parameter substitution in queries where the order of parameters and table fields did not match would substitute incorrect values. (Bug #19261) - * Submitting an empty string to a command object through `prepare' - raises an `System.IndexOutOfRangeException', rather than a MySQL - Connector/Net exception. (Bug #18391) + * The `MySqlDateTime' class did not contain constructors. (Bug + #15112) - * An exception would be raised when using an output parameter to a - `System.String' value. (Bug #17814) + * When running a query that included a date comparison, a DateReader + error would be raised. (Bug #19481) - * CHAR type added to MySqlDbType. (Bug #17749) + * When using an unsigned 64-bit integer in a stored procedure, the + unsigned bit would be lost stored. (Bug #16934) + + * Incorrect field/data lengths could be returned for *Note + `VARCHAR': char. UTF8 columns. (Bug #14592) * A *Note `SELECT': select. query on a table with a date with a value of `'0000-00-00'' would hang the application. (Bug #17736) - * The CommandBuilder ignored Unsigned flag at Parameter creation. - (Bug #17375) + * You can now install the MySQL Connector/Net MSI package from the + command line using the `/passive', `/quiet', `/q' options. (Bug + #19994) - * When working with multiple threads, character set initialization - would generate errors. (Bug #17106) + * The DiscoverParameters function would fail when a stored procedure + used a *Note `NUMERIC': numeric-types. parameter type. (Bug + #19515) - * When using an unsigned 64-bit integer in a stored procedure, the - unsigned bit would be lost stored. (Bug #16934) + * Unsigned data types were not properly supported. (Bug #16788) * `DataReader' would show the value of the previous row (or last row with nonnull data) if the current row contained a `datetime' field with a null value. (Bug #16884) - * Unsigned data types were not properly supported. (Bug #16788) - - * The connection string parser did not permit single or double - quotation marks in the password. (Bug #16659) + * `IDataRecord.GetString' would raise `NullPointerException' for + null values in returned rows. Method now throws + `SqlNullValueException'. (Bug #19294) - * The `MySqlDateTime' class did not contain constructors. (Bug - #15112) + * An exception would be raised when using an output parameter to a + `System.String' value. (Bug #17814) - * Called `MySqlCommandBuilder.DeriveParameters' for a stored - procedure that has no paramers would cause an application crash. - (Bug #15077) + * When using `MySqlDataAdapter', connections to a MySQL server may + remain open and active, even though the use of the connection has + been completed and the data received. (Bug #8131) - * Incorrect field/data lengths could be returned for *Note - `VARCHAR': char. UTF8 columns. (Bug #14592) + * Executing multiple queries as part of a transaction returns `There + is already an openDataReader associated with this Connection which + must be closed first'. (Bug #7248) * Using `ExecuteScalar' with a datetime field, where the value of the field is "0000-00-00 00:00:00", a `MySqlConversionException' @@ -249978,24 +253777,18 @@ date field contained a zero value (0000-00-00 00:00:00). (Bug #9619) - * When using `MySqlDataAdapter', connections to a MySQL server may - remain open and active, even though the use of the connection has - been completed and the data received. (Bug #8131) - - * Executing multiple queries as part of a transaction returns `There - is already an openDataReader associated with this Connection which - must be closed first'. (Bug #7248) -  File: manual.info, Node: connector-net-news-1-0-7, Next: connector-net-news-1-0-6, Prev: connector-net-news-1-0-8, Up: connector-net-news-1-0-x -D.3.10.5 Changes in MySQL Connector/Net 1.0.7 (21 November 2005) +D.3.11.5 Changes in MySQL Connector/Net 1.0.7 (21 November 2005) ................................................................ *Bugs Fixed* - * Unsigned `tinyint' (NET byte) would lead to and incorrectly - determined parameter type from the parameter value. (Bug #18570) + * Calling a stored procedure where a parameter contained special + characters (such as `'@'') would produce an exception. Note that + `ANSI_QUOTES' had to be enabled to make this possible. (Bug + #13753) * A `#42000Query was empty' exception occurred when executing a query built with `MySqlCommandBuilder', if the query string ended @@ -250008,11 +253801,6 @@ * Added support for the `cp932' character set. (Bug #13806) - * Calling a stored procedure where a parameter contained special - characters (such as `'@'') would produce an exception. Note that - `ANSI_QUOTES' had to be enabled to make this possible. (Bug - #13753) - * The `Ping()' method did not update the `State' property of the `Connection' object. (Bug #13658) @@ -250023,68 +253811,68 @@ * A statement that contained multiple references to the same parameter could not be prepared. (Bug #13541) + * Unsigned `tinyint' (NET byte) would lead to and incorrectly + determined parameter type from the parameter value. (Bug #18570) +  File: manual.info, Node: connector-net-news-1-0-6, Next: connector-net-news-1-0-5, Prev: connector-net-news-1-0-7, Up: connector-net-news-1-0-x -D.3.10.6 Changes in MySQL Connector/Net 1.0.6 (03 October 2005) +D.3.11.6 Changes in MySQL Connector/Net 1.0.6 (03 October 2005) ............................................................... *Bugs Fixed* - * MySQL Connector/Net 1.0.5 could not connect on Mono. (Bug #13345) - - * Serializing a parameter failed if the first value passed in was - `NULL'. (Bug #13276) - * Field names that contained the following characters caused errors: `()%<>/' (Bug #13036) - * The `nant' build sequence had problems. (Bug #12978) + * MySQL Connector/Net 1.0.5 could not connect on Mono. (Bug #13345) * The MySQL Connector/Net 1.0.5 installer would not install alongside MySQL Connector/Net 1.0.4. (Bug #12835) + * Serializing a parameter failed if the first value passed in was + `NULL'. (Bug #13276) + + * The `nant' build sequence had problems. (Bug #12978) +  File: manual.info, Node: connector-net-news-1-0-5, Next: connector-net-news-1-0-4, Prev: connector-net-news-1-0-6, Up: connector-net-news-1-0-x -D.3.10.7 Changes in MySQL Connector/Net 1.0.5 (29 August 2005) +D.3.11.7 Changes in MySQL Connector/Net 1.0.5 (29 August 2005) .............................................................. *Bugs Fixed* - * MySQL Connector/Net could not connect to MySQL 4.1.14. (Bug - #12771) - - * With multiple hosts in the connection string, MySQL Connector/Net - would not connect to the last host in the list. (Bug #12628) - * The `ConnectionString' property could not be set when a `MySqlConnection' object was added with the designer. (Bug #12551, Bug #8724) - * The `cp1250' character set was not supported. (Bug #11621) + * With multiple hosts in the connection string, MySQL Connector/Net + would not connect to the last host in the list. (Bug #12628) + + * MySQL Connector/Net could not connect to MySQL 4.1.14. (Bug + #12771) * A call to a stored procedure caused an exception if the stored procedure had no parameters. (Bug #11542) - * Certain malformed queries would trigger a `Connection must be - valid and open' error message. (Bug #11490) - - * Trying to use a stored procedure when `Connection.Database' was - not populated generated an exception. (Bug #11450) + * Added support to call a stored function from MySQL Connector/Net. + (Bug #10644) * MySQL Connector/Net interpreted the new decimal data type as a byte array. (Bug #11294) - * Added support to call a stored function from MySQL Connector/Net. - (Bug #10644) + * Trying to use a stored procedure when `Connection.Database' was + not populated generated an exception. (Bug #11450) * Connection could fail when .NET thread pool had no available worker threads. (Bug #10637) - * Calling `MySqlConnection.clone' when a connection string had not - yet been set on the original connection would generate an error. - (Bug #10281) + * Certain malformed queries would trigger a `Connection must be + valid and open' error message. (Bug #11490) + + * Trying to read a *Note `TIMESTAMP': datetime. column generated an + exception. (Bug #7951) * Decimal parameters caused syntax errors. (Bug #10152, Bug #11550, Bug #10486) @@ -250092,292 +253880,295 @@ * Parameters were not recognized when they were separated by linefeeds. (Bug #9722) + * The `cp1250' character set was not supported. (Bug #11621) + + * Calling `MySqlConnection.clone' when a connection string had not + yet been set on the original connection would generate an error. + (Bug #10281) + * The `MySqlCommandBuilder' class could not handle queries that referenced tables in a database other than the default database. (Bug #8382) - * Trying to read a *Note `TIMESTAMP': datetime. column generated an - exception. (Bug #7951) - * MySQL Connector/Net could not work properly with certain regional settings. (WL#8228)  File: manual.info, Node: connector-net-news-1-0-4, Next: connector-net-news-1-0-3, Prev: connector-net-news-1-0-5, Up: connector-net-news-1-0-x -D.3.10.8 Changes in MySQL Connector/Net 1.0.4 (20 January 2005) +D.3.11.8 Changes in MySQL Connector/Net 1.0.4 (20 January 2005) ............................................................... *Bugs Fixed* - * `MySqlReader.GetInt32' throws exception if column is unsigned. - (Bug #7755) + * `MySqlCommand.Connection' returns an IDbConnection. (Bug #7258) * Quote character \222 not quoted in `EscapeString'. (Bug #7724) - * GetBytes is working no more. (Bug #7704) + * Clone method bug in `MySqlCommand'. (Bug #7478) + + * Calling prepare causing exception. (Bug #7243) * `MySqlDataReader.GetString(index)' returns non-Null value when field is `Null'. (Bug #7612) - * Clone method bug in `MySqlCommand'. (Bug #7478) + * `MySqlAdapter.Fill' method throws error message `Non-negative + number required'. (Bug #7345) * Problem with Multiple resultsets. (Bug #7436) - * `MySqlAdapter.Fill' method throws error message `Non-negative - number required'. (Bug #7345) + * `MySqlReader.GetInt32' throws exception if column is unsigned. + (Bug #7755) - * `MySqlCommand.Connection' returns an IDbConnection. (Bug #7258) + * GetBytes is working no more. (Bug #7704) - * Calling prepare causing exception. (Bug #7243) + * Fixed problem that causes named pipes to not work with some blob + functionality. - * Fixed problem with shared memory connections. + * Fixed another small problem with prepared statements. * Added or filled out several more topics in the API reference documentation. - * Fixed another small problem with prepared statements. - - * Fixed problem that causes named pipes to not work with some blob - functionality. + * Fixed problem with shared memory connections.  File: manual.info, Node: connector-net-news-1-0-3, Next: connector-net-news-1-0-2, Prev: connector-net-news-1-0-4, Up: connector-net-news-1-0-x -D.3.10.9 Changes in MySQL Connector/Net 1.0.3 (12 October 2004 gamma) -..................................................................... +D.3.11.9 Changes in MySQL Connector/Net 1.0.3 (12 October 2004, gamma) +...................................................................... *Bugs Fixed* - * Invalid query string when using inout parameters (Bug #7133) - * Inserting `DateTime' causes `System.InvalidCastException' to be thrown. (Bug #7132) - * `MySqlDateTime' in Datatables sorting by Text, not Date. (Bug - #7032) + * Integer "out" parameter from stored procedure returned as string. + (Bug #6668) - * Exception stack trace lost when re-throwing exceptions. (Bug - #6983) + * Int64 Support in `MySqlCommand' Parameters. (Bug #6863) + + * Invalid query string when using inout parameters (Bug #7133) * Errors in parsing stored procedure parameters. (Bug #6902) * InvalidCast when using `DATE_ADD'-function. (Bug #6879) - * Int64 Support in `MySqlCommand' Parameters. (Bug #6863) - - * Test suite fails with MySQL 4.0 because of case sensitivity of - table names. (Bug #6831) + * `MySqlDateTime' in Datatables sorting by Text, not Date. (Bug + #7032) * `MySqlDataReader.GetChar(int i)' throws `IndexOutOfRange' exception. (Bug #6770) - * Integer "out" parameter from stored procedure returned as string. - (Bug #6668) - * An Open Connection has been Closed by the Host System. (Bug #6634) * Fixed Invalid character set index: 200. (Bug #6547) - * Connections now do not have to give a database on the connection - string. + * Exception stack trace lost when re-throwing exceptions. (Bug + #6983) - * Installer now includes options to install into GAC and create - `Start Menu' items. + * Test suite fails with MySQL 4.0 because of case sensitivity of + table names. (Bug #6831) - * Fixed major problem with detecting null values when using prepared - statements. + * Made MySQL the default named pipe name. - * Fixed problem where multiple resultsets having different numbers - of columns would cause a problem. + * Now *Note `SHOW COLLATION': show-collation. is used upon + connection to retrieve the full list of charset ids. + + * Changed the name of the test suite to `MySql.Data.Tests.dll'. + + * Added Ping method to `MySqlConnection'. * Added `ServerThread' property to `MySqlConnection' to expose server thread id. - * Added Ping method to `MySqlConnection'. + * Fixed problem where multiple resultsets having different numbers + of columns would cause a problem. - * Changed the name of the test suite to `MySql.Data.Tests.dll'. + * Fixed major problem with detecting null values when using prepared + statements. - * Now *Note `SHOW COLLATION': show-collation. is used upon - connection to retrieve the full list of charset ids. + * Installer now includes options to install into GAC and create + `Start Menu' items. - * Made MySQL the default named pipe name. + * Connections now do not have to give a database on the connection + string.  File: manual.info, Node: connector-net-news-1-0-2, Next: connector-net-news-1-0-1, Prev: connector-net-news-1-0-3, Up: connector-net-news-1-0-x -D.3.10.10 Changes in MySQL Connector/Net 1.0.2 (15 November 2004 gamma) -....................................................................... +D.3.11.10 Changes in MySQL Connector/Net 1.0.2 (15 November 2004, gamma) +........................................................................ *Bugs Fixed* * Fixed Objects not being disposed (Bug #6649) - * Fixed Charset-map for UCS-2 (Bug #6541) - - * Fixed Zero date "0000-00-00" is returned wrong when filling Dataset - (Bug #6429) - * Fixed double type handling in MySqlParameter(string parameterName, object value). (Bug #6428) - * Fixed Installation directory ignored using custom installation - (Bug #6329) - * Fixed #HY000 Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ (Bug #6322) - * Added the TableEditor CS and VB sample + * Fixed Installation directory ignored using custom installation + (Bug #6329) - * Added charset connection string option + * Fixed Charset-map for UCS-2 (Bug #6541) - * Fixed problem with MySqlBinary where string values could not be - used to update extended text columns + * Fixed Zero date "0000-00-00" is returned wrong when filling Dataset + (Bug #6429) - * Provider is now using character set specified by server as default + * Fixed problem where calling stored procedures might cause an + "Illegal mix of collations" problem. - * Updated the installer to include the new samples + * Fixed Long inserts take very long time (Bu #5453) * Fixed problem where setting command text leaves the command in a prepared state - * Fixed Long inserts take very long time (Bu #5453) + * Updated the installer to include the new samples - * Fixed problem where calling stored procedures might cause an - "Illegal mix of collations" problem. + * Provider is now using character set specified by server as default + + * Fixed problem with MySqlBinary where string values could not be + used to update extended text columns + + * Added charset connection string option + + * Added the TableEditor CS and VB sample  File: manual.info, Node: connector-net-news-1-0-1, Next: connector-net-news-1-0-0, Prev: connector-net-news-1-0-2, Up: connector-net-news-1-0-x -D.3.10.11 Changes in MySQL Connector/Net 1.0.1 (27 October 2004 beta) -..................................................................... +D.3.11.11 Changes in MySQL Connector/Net 1.0.1 (27 October 2004, beta) +...................................................................... *Bugs Fixed* - * Fixed IndexOutOfBounds when reading `BLOB' with `DataReader' with - `GetString(index)'. (Bug #6230) - - * Fixed GetBoolean returns wrong values (Bug #6227) - - * Fixed Method TokenizeSql() uses only a limited set of valid - characters for parameters (Bug #6217) + * Setting `DbType' threw a `NullReferenceException'. (Bug #5469) - * Fixed NET Connector source missing resx files (Bug #6216) + * Fixed constructor initialize problems in MySqlCommand() (Bug #5613) * Fixed System.OverflowException when using `YEAR' data type. (Bug #6036) - * Fixed MySqlDateTime sets IsZero property on all subseq.records - after first zero found (Bug #6006) - - * Fixed serializing of floating point parameters (double, numeric, - single, decimal) (Bug #5900) - - * Fixed missing Reference in DbType setter (Bug #5897) + * Fixed Yet Another "object reference not set to an instance of an + object" (Bug #5496) * Fixed Parsing the ';' char (Bug #5876) - * Fixed DBNull Values causing problems with retrieving/updating - queries. (Bug #5798) - - * IsNullable error (Bug #5796) + * Fixed MySqlDataReader and 'show tables from ...' behavior (Bug + #5256) * Fixed problem where MySqlParameterCollection.Add() would throw unclear exception when given a null value (Bug #5621) - * Fixed constructor initialize problems in MySqlCommand() (Bug #5613) - - * Possible bug in MySqlParameter(string, object) constructor (Bug - #5602) - - * Fixed Yet Another "object reference not set to an instance of an - object" (Bug #5496) - * Cannot run a stored procedure populating mysqlcommand.parameters (Bug #5474) - * Setting `DbType' threw a `NullReferenceException'. (Bug #5469) + * Fixed IndexOutOfBounds when reading `BLOB' with `DataReader' with + `GetString(index)'. (Bug #6230) - * Calling `GetChars' on a `LONGTEXT' column threw an exception. - (Bug #5458) + * Fixed MySqlDateTime sets IsZero property on all subseq.records + after first zero found (Bug #6006) * `MySqlCommand' saw instances of `"?"' as parameters in string literals. (Bug #5392) + * Possible bug in MySqlParameter(string, object) constructor (Bug + #5602) + + * Fixed NET Connector source missing resx files (Bug #6216) + + * Fixed serializing of floating point parameters (double, numeric, + single, decimal) (Bug #5900) + + * Fixed Method TokenizeSql() uses only a limited set of valid + characters for parameters (Bug #6217) + * `DataReader' reported all rows as `NULL' if one row was `NULL'. (Bug #5388) * Fixed Can't display Chinese correctly (Bug #5288) - * Fixed MySqlDataReader and 'show tables from ...' behavior (Bug - #5256) + * Fixed missing Reference in DbType setter (Bug #5897) - * Fixed problem in PacketReader where it could try to allocate the - wrong buffer size in EnsureCapacity + * Fixed GetBoolean returns wrong values (Bug #6227) - * Fixed problem where using old syntax while using the interfaces - caused problems + * IsNullable error (Bug #5796) - * Added test case for resetting the command text on a prepared - command + * Fixed DBNull Values causing problems with retrieving/updating + queries. (Bug #5798) - * Fixed problem where connection lifetime on the connect string was - not being respected + * Calling `GetChars' on a `LONGTEXT' column threw an exception. + (Bug #5458) - * Field buffers being reused to decrease memory allocations and - increase speed + * Virtualized driver subsystem so future releases could easily + support client or embedded server support - * Added Aggregate function test (wasn't really a bug) + * CP1252 is now used for Latin1 only when the server is 4.1.2 and + later - * Using PacketWriter instead of Packet for writing to streams + * Refactored compression code into CompressedStream to clean up + NativeDriver - * Implemented SequentialAccess + * Fixed problem where Min Pool Size was not being respected + + * Fixed problem where connector was not issuing a CMD_QUIT before + closing the socket + + * Fixed Russian character support as well * Fixed problem with ConnectionInternal where a key might be added more than once - * Fixed Russian character support as well + * Implemented SequentialAccess - * Fixed problem where connector was not issuing a CMD_QUIT before - closing the socket + * Using PacketWriter instead of Packet for writing to streams - * Fixed problem where Min Pool Size was not being respected + * Added Aggregate function test (wasn't really a bug) - * Refactored compression code into CompressedStream to clean up - NativeDriver + * Field buffers being reused to decrease memory allocations and + increase speed - * CP1252 is now used for Latin1 only when the server is 4.1.2 and - later + * Fixed problem where connection lifetime on the connect string was + not being respected - * Virtualized driver subsystem so future releases could easily - support client or embedded server support + * Added test case for resetting the command text on a prepared + command + + * Fixed problem where using old syntax while using the interfaces + caused problems + + * Fixed problem in PacketReader where it could try to allocate the + wrong buffer size in EnsureCapacity  File: manual.info, Node: connector-net-news-1-0-0, Prev: connector-net-news-1-0-1, Up: connector-net-news-1-0-x -D.3.10.12 Changes in MySQL Connector/Net 1.0.0 (01 September 2004) +D.3.11.12 Changes in MySQL Connector/Net 1.0.0 (01 September 2004) .................................................................. *Bugs Fixed* - * Thai encoding not correctly supported. (Bug #3889) + * Removed some last references to ByteFX. - * Bumped version number to 1.0.0 for beta 1 release. + * Fixed problem with using compression. - * Removed all of the XML comment warnings. + * Updated many of the test cases. - * Added `COPYING.rtf' file for use in installer. + * Thai encoding not correctly supported. (Bug #3889) - * Updated many of the test cases. + * Added `COPYING.rtf' file for use in installer. - * Fixed problem with using compression. + * Removed all of the XML comment warnings. - * Removed some last references to ByteFX. + * Bumped version number to 1.0.0 for beta 1 release.  File: manual.info, Node: connector-net-news-0-9-0, Next: connector-net-news-0-76, Prev: connector-net-news-1-0-x, Up: connector-net-news -D.3.11 Changes in MySQL Connector/Net Version 0.9.0 (30 August 2004) +D.3.12 Changes in MySQL Connector/Net Version 0.9.0 (30 August 2004) -------------------------------------------------------------------- * Added test fixture for prepared statements. @@ -250619,7 +254410,7 @@  File: manual.info, Node: connector-net-news-0-76, Next: connector-net-news-0-75, Prev: connector-net-news-0-9-0, Up: connector-net-news -D.3.12 Changes in MySQL Connector/Net Version 0.76 +D.3.13 Changes in MySQL Connector/Net Version 0.76 -------------------------------------------------- * Driver now using charset number given in handshake to create @@ -250682,7 +254473,7 @@  File: manual.info, Node: connector-net-news-0-75, Next: connector-net-news-0-74, Prev: connector-net-news-0-76, Up: connector-net-news -D.3.13 Changes in MySQL Connector/Net Version 0.75 +D.3.14 Changes in MySQL Connector/Net Version 0.75 -------------------------------------------------- * Enum values now supported as parameter values (thanks Philipp @@ -250742,7 +254533,7 @@  File: manual.info, Node: connector-net-news-0-74, Next: connector-net-news-0-71, Prev: connector-net-news-0-75, Up: connector-net-news -D.3.14 Changes in MySQL Connector/Net Version 0.74 +D.3.15 Changes in MySQL Connector/Net Version 0.74 -------------------------------------------------- * Added Unix socket support (thanks Mohammad DAMT). @@ -250883,7 +254674,7 @@  File: manual.info, Node: connector-net-news-0-71, Next: connector-net-news-0-70, Prev: connector-net-news-0-74, Up: connector-net-news -D.3.15 Changes in MySQL Connector/Net Version 0.71 +D.3.16 Changes in MySQL Connector/Net Version 0.71 -------------------------------------------------- * Fixed bug in `MySqlStream' where too much data could attempt to be @@ -250905,7 +254696,7 @@  File: manual.info, Node: connector-net-news-0-70, Next: connector-net-news-0-68, Prev: connector-net-news-0-71, Up: connector-net-news -D.3.16 Changes in MySQL Connector/Net Version 0.70 +D.3.17 Changes in MySQL Connector/Net Version 0.70 -------------------------------------------------- * Updated some of the character code pages to be more accurate. @@ -251054,7 +254845,7 @@  File: manual.info, Node: connector-net-news-0-68, Next: connector-net-news-0-65, Prev: connector-net-news-0-70, Up: connector-net-news -D.3.17 Changes in MySQL Connector/Net Version 0.68 +D.3.18 Changes in MySQL Connector/Net Version 0.68 -------------------------------------------------- * Fixed sequence issue in driver. @@ -251088,7 +254879,7 @@  File: manual.info, Node: connector-net-news-0-65, Next: connector-net-news-0-60, Prev: connector-net-news-0-68, Up: connector-net-news -D.3.18 Changes in MySQL Connector/Net Version 0.65 +D.3.19 Changes in MySQL Connector/Net Version 0.65 -------------------------------------------------- * `MySQLCommandBuilder' now implemented. @@ -251110,7 +254901,7 @@  File: manual.info, Node: connector-net-news-0-60, Next: connector-net-news-0-50, Prev: connector-net-news-0-65, Up: connector-net-news -D.3.19 Changes in MySQL Connector/Net Version 0.60 +D.3.20 Changes in MySQL Connector/Net Version 0.60 -------------------------------------------------- * Protocol compression using SharpZipLib (www.icsharpcode.net). @@ -251124,7 +254915,7 @@  File: manual.info, Node: connector-net-news-0-50, Prev: connector-net-news-0-60, Up: connector-net-news -D.3.20 Changes in MySQL Connector/Net Version 0.50 +D.3.21 Changes in MySQL Connector/Net Version 0.50 -------------------------------------------------- * Speed increased dramatically by removing bugging network sync code. @@ -251149,7 +254940,7 @@ *Note*: -As of Connector/Net 5.1.2 (14 June 2007), the Visual Studion Plugin is +As of Connector/Net 5.1.2 (14 June 2007), the Visual Studio Plugin is part of the main Connector/Net package. For the change history for the Visual Studio Plugin, see *Note connector-net-news::. @@ -251161,12 +254952,12 @@ *Bugs Fixed* - * Running queries based on a stored procedure would cause the data - set designer to terminate. (Bugs #26364) - * DataSet wizard would show all tables instead of only the tables available within the selected database. (Bugs #26348) + * Running queries based on a stored procedure would cause the data + set designer to terminate. (Bugs #26364) +  File: manual.info, Node: vstudio-plugin-news-1-0-2, Next: vstudio-plugin-news-1-0-1, Prev: vstudio-plugin-news-1-0-3, Up: vstudio-plugin-news @@ -251175,15 +254966,15 @@ *Bugs Fixed* - * The Add Connection dialog of the Server Explorer would freeze when - accessing databases with capitalized characters in their name. - (Bug #24875) - * Creating a connection through the Server Explorer when using the Visual Studio Plugin would fail. The installer for the Visual Studio Plugin has been updated to ensure that Connector/Net 5.0.2 must be installed. (Bug #23071) + * The Add Connection dialog of the Server Explorer would freeze when + accessing databases with capitalized characters in their name. + (Bug #24875) +  File: manual.info, Node: vstudio-plugin-news-1-0-1, Next: vstudio-plugin-news-1-0-0, Prev: vstudio-plugin-news-1-0-2, Up: vstudio-plugin-news @@ -251211,7 +255002,7 @@ type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=5.0.1.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/> -This section has no changelog entries. +Version 1.0.1 has no changelog entries.  File: manual.info, Node: vstudio-plugin-news-1-0-0, Prev: vstudio-plugin-news-1-0-1, Up: vstudio-plugin-news @@ -251221,11 +255012,11 @@ *Bugs Fixed* + * DDEX (Data Designer Extensibility) compatibility. + * Ability to work with MySQL objects (tables, views, stored procedures, etc) from within Server Explorer. - * DDEX (Data Designer Extensibility) compatibility. -  File: manual.info, Node: cj-news, Next: news-connector-mxj, Prev: vstudio-plugin-news, Up: news @@ -251302,7 +255093,7 @@ * Not putting a space between `VALUES()' and *Note `ON DUPLICATE KEY UPDATE': insert-on-duplicate. causes connector/J to both (A) - Rewrite the query, although it includes an `ON UPDATE' statment + Rewrite the query, although it includes an `ON UPDATE' statement and (B) To generate the wrong query with multiple *Note `ON DUPLICATE KEY': insert-on-duplicate. statements. (Bug #12565726) @@ -251310,14 +255101,14 @@ properly. Working connections were not being removed from the blacklist. (Bug #63135) - * The "old" warnings were returned when `Statement.getWarnings()' - was called after `Statement.clearWarnings()'. (Bug #61866, Bug - #12791594) - * Connector/J now guards against the condition where a call to *Note `KILL QUERY': kill. will kill the next query issued by the server, if no query is in process. (Bug #61501) + * The "old" warnings were returned when `Statement.getWarnings()' + was called after `Statement.clearWarnings()'. (Bug #61866, Bug + #12791594) + * Calling `Statement.cancel()' on a statement that isn't currently executing, will cause a later-executed query on the same connection to be unexpectedly canceled. The driver now guards @@ -251398,9 +255189,8 @@ * `ResultSetRow.getTimestampFast' and `getTime' had invalid offsets. (Bug #60313) - * Fixed a timestamp offset bug in - `com.mysql.jdbc.ResultSetRow.getTimestampFast()'. (Bug #60313, - Bug #11890729) + * Fixed a bug where Connector/J would kill the matching + `ConnectionID', but on the wrong server. (Bug #54135) * `wasNull' was not set for a `DATE' field with the value of `0000-00-00' in `getDate()', although `zeroDateTimeBehavior' is @@ -251410,8 +255200,9 @@ null-terminated whether it exists or not. This affects `COM_CHANGE_USER'. (Bug #54425) - * Fixed a bug where Connector/J would kill the matching - `ConnectionID', but on the wrong server. (Bug #54135) + * Fixed a timestamp offset bug in + `com.mysql.jdbc.ResultSetRow.getTimestampFast()'. (Bug #60313, + Bug #11890729)  File: manual.info, Node: cj-news-5-1-15, Next: cj-news-5-1-14, Prev: cj-news-5-1-16, Up: cj-news-5-1-x @@ -251496,6 +255287,10 @@ *Bugs Fixed* + * Added diagnostic information to `SQLException' messages that are + caused by usage of a closed load-balanced connection, to help + clarify the root cause of a connection closure. (Bug #56200) + * Connection failover left slave/secondary in read-only mode. Failover attempts between two read-write masters did not properly set `this.currentConn.setReadOnly(false)'. (Bug #58706) @@ -251517,10 +255312,34 @@ `I__S.PARAMETERS' table had no name, that is `COLUMN_NAME' had the value `NULL'. (Bug #58232) + * Attempting to use JDBC4 functions on `Connection' objects resulted + in errors being generated: + + Exception in thread "main" java.lang.AbstractMethodError: + com.mysql.jdbc.LoadBalancedMySQLConnection.createBlob()Ljava/sql/Blob; + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) + at + sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) + at java.lang.reflect.Method.invoke(Method.java:597) + at + com.mysql.jdbc.LoadBalancingConnectionProxy.invoke(LoadBalancingConnectionProxy.java:476) + at $Proxy0.createBlob(Unknown Source) + + (Bug #56099) + * `DatabaseMetaData.supportsMultipleResultSets()' was hard-coded to return `false', even though Connector/J supports multiple result sets. (Bug #57380) + * Invoking a stored procedure containing output parameters by its + full name, where the procedure was located in another database, + generated the following exception: + + Parameter index of 1 is out of range (1, 0) + + (Bug #57022) + * Using the `useOldUTF8Behavior' parameter failed to set the connection character set to `latin1' as required. @@ -251533,23 +255352,15 @@ handshake process to be retained for later use. As a result, `useOldUTF8Behavior' effectively failed. (Bug #57262) - * Invoking a stored procedure containing output parameters by its - full name, where the procedure was located in another database, - generated the following exception: - - Parameter index of 1 is out of range (1, 0) - - (Bug #57022) + * Leaving Trust/ClientCertStoreType properties unset caused an + exception to be thrown when connecting with `useSSL=true', as no + default was used. (Bug #56955) * When a JDBC client disconnected from a remote server using `Connection.close()', the TCP connection remained in the `TIME_WAIT' state on the server side, rather than on the client side. (Bug #56979) - * Leaving Trust/ClientCertStoreType properties unset caused an - exception to be thrown when connecting with `useSSL=true', as no - default was used. (Bug #56955) - * When load-balanced connections swap servers, certain session state was copied from the previously active connection to the newly-selected connection. State synchronized included: @@ -251577,26 +255388,6 @@ JDBC functions with `db_name.proc_name' notation was also added. (Bug #56305) - * Added diagnostic information to `SQLException' messages that are - caused by usage of a closed load-balanced connection, to help - clarify the root cause of a connection closure. (Bug #56200) - - * Attempting to use JDBC4 functions on `Connection' objects resulted - in errors being generated: - - Exception in thread "main" java.lang.AbstractMethodError: - com.mysql.jdbc.LoadBalancedMySQLConnection.createBlob()Ljava/sql/Blob; - at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) - at - sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) - at java.lang.reflect.Method.invoke(Method.java:597) - at - com.mysql.jdbc.LoadBalancingConnectionProxy.invoke(LoadBalancingConnectionProxy.java:476) - at $Proxy0.createBlob(Unknown Source) - - (Bug #56099) -  File: manual.info, Node: cj-news-5-1-13, Next: cj-news-5-1-12, Prev: cj-news-5-1-14, Up: cj-news-5-1-x @@ -251617,6 +255408,11 @@ *Bugs Fixed* + * When the `allowMultiQueries' connection string option was set to + `true', a call to `Statement.executeBatch()' scanned the query for + escape codes, even though `setEscapeProcessing(false)' had been + called previously. (Bug #51704) + * The method `unSafeStatementInterceptors()' contained an erroneous line of code, which resulted in the interceptor being called, but the result being thrown away. (Bug #53041) @@ -251625,6 +255421,25 @@ r907, which appeared to be caused by pushing the Proxy down to the I/O layer. (Bug #52534) + * In the file `DatabaseMetadata.java', the function `private void + getCallStmtParameterTypes' failed if the parameter was defined + over more than one line by using the '\n' character. (Bug #52167) + + * The catalog parameter, `PARAM_CAT', was not correctly processed + when calling for metadata with `getMetaData()' on stored + procedures. This was because `PARAM_CAT' was hardcoded in the code + to `NULL'. In the case where `nullcatalogmeanscurrent' was `true', + which is its default value, a crash did not occur, but the + metadata returned was for the stored procedures from the catalog + currently attached to. If, however, `nullcatalogmeanscurrent' was + set to `false' then a crash resulted. + + Connector/J has been changed so that when `NULL' is passed as + `PARAM_CAT' it will not crash when `nullcatalogmeanscurrent' is + `false', but rather iterate all catalogs in search of stored + procedures. This means that `PARAM_CAT' is no longer hardcoded to + `NULL' (see Bug #51904). (Bug #51912) + * Logic in implementations of `LoadBalancingConnectionProxy' and `LoadBalanceStrategy' behaved differently as to which `SQLException's trigger failover to a new host. The former looked @@ -251647,25 +255462,6 @@ implementations, so an `Exception' was thrown after having only attempted connecting to a single host. (Bug #52231) - * In the file `DatabaseMetadata.java', the function `private void - getCallStmtParameterTypes' failed if the parameter was defined - over more than one line by using the '\n' character. (Bug #52167) - - * The catalog parameter, `PARAM_CAT', was not correctly processed - when calling for metadata with `getMetaData()' on stored - procedures. This was because `PARAM_CAT' was hardcoded in the code - to `NULL'. In the case where `nullcatalogmeanscurrent' was `true', - which is its default value, a crash did not occur, but the - metadata returned was for the stored procedures from the catalog - currently attached to. If, however, `nullcatalogmeanscurrent' was - set to `false' then a crash resulted. - - Connector/J has been changed so that when `NULL' is passed as - `PARAM_CAT' it will not crash when `nullcatalogmeanscurrent' is - `false', but rather iterate all catalogs in search of stored - procedures. This means that `PARAM_CAT' is no longer hardcoded to - `NULL' (see Bug #51904). (Bug #51912) - * A load balanced `Connection' object with multiple open underlying physical connections rebalanced on `commit()', `rollback()', or on a communication exception, without validating the existing @@ -251684,15 +255480,6 @@ did not have the error code 1196, `SQLError.ER_WARNING_NOT_COMPLETE_ROLLBACK'. (Bug #51776) - * When the `allowMultiQueries' connection string option was set to - `true', a call to `Statement.executeBatch()' scanned the query for - escape codes, even though `setEscapeProcessing(false)' had been - called previously. (Bug #51704) - - * When a `StatementInterceptor' was used and an alternate - `ResultSet' was returned from `preProcess()', the original - statement was still executed. (Bug #51666) - * Objects created by `ConnectionImpl', such as prepared statements, hold a reference to the `ConnectionImpl' that created them. However, when the load balancer picked a new connection, it did not @@ -251702,6 +255489,10 @@ the new connection. This resulted in silent data loss. (Bug #51643) + * When a `StatementInterceptor' was used and an alternate + `ResultSet' was returned from `preProcess()', the original + statement was still executed. (Bug #51666) + * `jdbc:mysql:loadbalance://' would connect to the same host, even though `loadBalanceStrategy' was set to a value of `random', and multiple hosts were specified. (Bug #51266) @@ -251755,13 +255546,13 @@ `invalidateCurrentConnection()' for load-balanced connections. (Bug #50288) - * The `deleteRow' method caused a full table scan, when using an - updatable cursor and a multibyte character set. (Bug #49745) - * For pooled connections, Connector/J did not process the session variable `time_zone' when set using the URL, resulting in incorrect timestamp values being stored. (Bug #49700) + * The `deleteRow' method caused a full table scan, when using an + updatable cursor and a multibyte character set. (Bug #49745) + * The `ExceptionInterceptor' class did not provide a `Connection' context. (Bug #49607) @@ -251843,6 +255634,17 @@ *Bugs Fixed* + * When Connector/J encountered an error condition that caused it to + create a `CommunicationsException', it tried to build a friendly + error message that helped diagnose what was wrong. However, if + there had been no network packets received from the server, the + error message contained the following incorrect text: + + The last packet successfully received from the server was 1,249,932,468,916 milliseconds + ago. The last packet sent successfully to the server was 0 milliseconds ago. + + (Bug #46637) + * In the class `com.mysql.jdbc.jdbc2.optional.SuspendableXAConnection', which is used when `pinGlobalTxToPhysicalConnection=true', there is a @@ -251882,16 +255684,9 @@ (Bug #46788) - * When Connector/J encountered an error condition that caused it to - create a `CommunicationsException', it tried to build a friendly - error message that helped diagnose what was wrong. However, if - there had been no network packets received from the server, the - error message contained the following incorrect text: - - The last packet successfully received from the server was 1,249,932,468,916 milliseconds - ago. The last packet sent successfully to the server was 0 milliseconds ago. - - (Bug #46637) + * Accessing result set columns by name after the result set had been + closed resulted in a NullPointerException instead of a + SQLException. (Bug #41484) * The `getSuperTypes' method returned a result set with incorrect names for the first two columns. The name of the first column in @@ -251900,9 +255695,6 @@ as `TABLE_CAT' and `TABLE_SCHEM' for first and second column respectively. (Bug #44508) - * SQLException for data truncation error gave the error code as 0 - instead of 1265. (Bug #44324) - * Calling `ResultSet.deleteRow()' on a table with a primary key of type `BINARY(8)' silently failed to delete the row, but only in some repeatable cases. The generated `DELETE' statement generated @@ -251911,9 +255703,8 @@ appeared to be different depending on whether the application was run on Windows or Linux. (Bug #43759) - * Accessing result set columns by name after the result set had been - closed resulted in a NullPointerException instead of a - SQLException. (Bug #41484) + * SQLException for data truncation error gave the error code as 0 + instead of 1265. (Bug #44324) * `QueryTimeout' did not work for batch statements waiting on a locked table. @@ -251966,6 +255757,11 @@ *Bugs Fixed* + * Calling `Connection.serverPreparedStatement()' variants that do + not take result set type or concurrency arguments returned + statements that produced result sets with incorrect defaults, + namely `TYPE_SCROLL_SENSITIVE'. (Bug #45171) + * The reported milliseconds since the last server packets were received/sent was incorrect by a factor of 1000. For example, the following method call: @@ -251985,84 +255781,140 @@ (Bug #45419) - * Calling `Connection.serverPrepareStatement()' variants that do not - take result set type or concurrency arguments returned statements - that produced result sets with incorrect defaults, namely - `TYPE_SCROLL_SENSITIVE'. (Bug #45171) + * The method `Statement.getGeneratedKeys()' did not return values + for `UNSIGNED BIGINTS' with values greater than `Long.MAX_VALUE'. - * The result set returned by `getIndexInfo()' did not have the - format defined in the JDBC API specifications. The fourth column, - `DATA_TYPE', of the result set should be of type `BOOLEAN'. - Connector/J however returns `CHAR'. (Bug #44869) + Unfortunately, because the server does not tell clients what TYPE + the auto increment value is, the driver cannot consistently return + BigIntegers for the result set returned from `getGeneratedKeys()', + it will only return them if the value is greater than + `Long.MAX_VALUE'. If your application needs this consistency, it + will need to check the class of the return value from + `.getObject()' on the ResultSet returned by + `Statement.getGeneratedKeys()' and if it is not a BigInteger, + create one based on the `java.lang.Long' that is returned. (Bug + #43196) - * The result set returned by `getTypeInfo()' did not have the format - defined in the JDBC API specifications. The second column, - `DATA_TYPE', of the result set should be of type `INTEGER'. - Connector/J however returns `SMALLINT'. (Bug #44868) + * A statement interceptor received the incorrect parameters when + used with a batched statement. (Bug #39426) - * The `DEFERRABILITY' column in database metadata result sets was - expected to be of type `SHORT'. However, Connector/J returned it - as `INTEGER'. + * When using Connector/J 5.1.7 to connect to MySQL Server 4.1.18 the + following error message was generated: - This affected the following methods: `getImportedKeys()', - `getExportedKeys()', `getCrossReference()'. (Bug #44867) + Thu Dec 11 17:38:21 PST 2008 WARN: Invalid value {1} for server variable named {0}, + falling back to sane default of {2} - * The result set returned by `getColumns()' did not have the format - defined in the JDBC API specifications. The fifth column, - `DATA_TYPE', of the result set should be of type `INTEGER'. - Connector/J however returns `SMALLINT'. (Bug #44865) + This occurred with MySQL Server version that did not support + `auto_increment_increment'. The error message should not have been + generated. (Bug #41416) - * The result set returned by `getVersionColumns()' did not have the - format defined in the JDBC API specifications. The third column, - `DATA_TYPE', of the result set should be of type `INTEGER'. - Connector/J however returns `SMALLINT'. (Bug #44863) + * The `RETURN_GENERATED_KEYS' flag was being ignored. For example, + in the following code the `RETURN_GENERATED_KEYS' flag was ignored: - * The result set returned by `getBestRowIdentifier()' did not have - the format defined in the JDBC API specifications. The third - column, `DATA_TYPE', of the result set should be of type - `INTEGER'. Connector/J however returns `SMALLINT'. (Bug #44862) + PreparedStatement ps = connection.prepareStatement("INSERT INTO table + values(?,?)",PreparedStatement.RETURN_GENERATED_KEYS); - * Connector/J contains logic to generate a message text specifically - for streaming result sets when there are `CommunicationsException' - exceptions generated. However, this code was never reached. + (Bug #41448) - In the `CommunicationsException' code: + * Using Connector/J 5.1.6 the method `ResultSet.getObject' returned a + `BYTE[]' for following: - private boolean streamingResultSetInPlay = false; + SELECT TRIM(rowid) FROM tbl - public CommunicationsException(ConnectionImpl conn, long lastPacketSentTimeMs, - long lastPacketReceivedTimeMs, Exception underlyingException) { + Where `rowid' had a type of `INT(11) PRIMARY KEY AUTO_INCREMENT'. - this.exceptionMessage = SQLError.createLinkFailureMessageBasedOnHeuristics(conn, - lastPacketSentTimeMs, lastPacketReceivedTimeMs, underlyingException, - this.streamingResultSetInPlay); + The expected return type was one of `CHAR', `VARCHAR', `CLOB', + however, a `BYTE[]' was returned. - `streamingResultSetInPlay' was always false, which in the - following code in - `SQLError.createLinkFailureMessageBasedOnHeuristics()' never being - executed: + Further, adding `functionsNeverReturnBlobs=true' to the connection + string did not have any effect on the return type. (Bug #38387) - if (streamingResultSetInPlay) { - exceptionMessageBuf.append( - Messages.getString("CommunicationsException.ClientWasStreaming")); //$NON-NLS-1$ - } else { - ... + * Connector/J generated an unhandled + `StringIndexOutOfBoundsException': - (Bug #44588) + java.lang.StringIndexOutOfBoundsException: String index out of range: -1 + at java.lang.String.substring(String.java:1938) + at com.mysql.jdbc.EscapeProcessor.processTimeToken(EscapeProcessor.java:353) + at com.mysql.jdbc.EscapeProcessor.escapeSQL(EscapeProcessor.java:257) + at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1546) + at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1524) - * The `SQLError.createLinkFailureMessageBasedOnHeuristics()' method - created a message text for communication link failures. When - certain conditions were met, this message included both `last - packet sent' and `last packet received' information, but when - those conditions were not met, only `last packet sent' information - was provided. + (Bug #42253) - Information about when the last packet was successfully received - should be provided in all cases. (Bug #44587) + * When using `rewriteBatchedStatements=true' with: - * `Statement.getGeneratedKeys()' retained result set instances until - the statement was closed. This caused memory leaks for long-lived - statements, or statements used in tight loops. (Bug #44056) + INSERT INTO table_name_values (...) VALUES (...) + + Query rewriting failed because `values' at the end of the table + name was mistaken for the reserved keyword. The error generated + was as follows: + + testBug40439(testsuite.simple.TestBug40439)java.sql.BatchUpdateException: You have an + error in your SQL syntax; check the manual that corresponds to your MySQL server version + for the right syntax to use near 'values (2,'toto',2),(id,data, ordr) values + (3,'toto',3),(id,data, ordr) values (' at line 1 + at com.mysql.jdbc.PreparedStatement.executeBatchedInserts(PreparedStatement.java:1495) + at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1097) + at testsuite.simple.TestBug40439.testBug40439(TestBug40439.java:42) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) + at testsuite.simple.TestBug40439.main(TestBug40439.java:57) + + (Bug #40439) + + * Error message strings contained variable values that were not + expanded. For example: + + Mon Nov 17 11:43:18 JST 2008 WARN: Invalid value {1} for server variable named {0}, + falling back to sane default of {2} + + (Bug #40772) + + * When accessing a result set column by name using + `ResultSetImpl.findColumn()' an exception was generated: + + java.lang.NullPointerException + at com.mysql.jdbc.ResultSetImpl.findColumn(ResultSetImpl.java:1103) + at com.mysql.jdbc.ResultSetImpl.getShort(ResultSetImpl.java:5415) + at org.apache.commons.dbcp.DelegatingResultSet.getShort(DelegatingResultSet.java:219) + at com.zimbra.cs.db.DbVolume.constructVolume(DbVolume.java:297) + at com.zimbra.cs.db.DbVolume.get(DbVolume.java:197) + at com.zimbra.cs.db.DbVolume.create(DbVolume.java:95) + at com.zimbra.cs.store.Volume.create(Volume.java:227) + at com.zimbra.cs.store.Volume.create(Volume.java:189) + at com.zimbra.cs.service.admin.CreateVolume.handle(CreateVolume.java:48) + at com.zimbra.soap.SoapEngine.dispatchRequest(SoapEngine.java:428) + at com.zimbra.soap.SoapEngine.dispatch(SoapEngine.java:285) + + (Bug #41484) + + * If there was an apostrophe in a comment in a statement that was + being sent through Connector/J, the apostrophe was still + recognized as a quote and put the state machine in + `EscapeTokenizer' into the `inQuotes' state. This led to further + parse errors. + + For example, consider the following statement: + + String sql = "-- Customer's zip code will be fixed\n" + + "update address set zip_code = 99999\n" + + "where not regexp '^[0-9]{5}([[.-.]])?([0-9]{4})?$'"; + + When passed through Connector/J, the `EscapeTokenizer' did not + recognize that the first apostrophe was in a comment and thus set + `inQuotes' to true. When that happened, the quote count was + incorrect and thus the regular expression did not appear to be in + quotation marks. With the parser not detecting that the regular + expression was in quotation marks, the curly braces were + recognized as escape sequences and were removed from the regular + expression, breaking it. The server thus received SQL such as: + + -- Customer's zip code will be fixed + update address set zip_code = '99999' + where not regexp '^[0-9]([[.-.]])?([0-9])?$' + + (Bug #41566) * Using `useInformationSchema' with `DatabaseMetaData.getExportedKeys()' generated the following @@ -252082,97 +255934,90 @@ (Bug #43714) - * `LoadBalancingConnectionProxy.doPing()' did not have blacklist - awareness. + * The `SQLError.createLinkFailureMessageBasedOnHeuristics()' method + created a message text for communication link failures. When + certain conditions were met, this message included both `last + packet sent' and `last packet received' information, but when + those conditions were not met, only `last packet sent' information + was provided. - `LoadBalancingConnectionProxy' implemented `doPing()' to ping all - underlying connections, but it threw any exceptions it encountered - during this process. + Information about when the last packet was successfully received + should be provided in all cases. (Bug #44587) - With the global blacklist enabled, it catches these exceptions, - adds the host to the global blacklist, and only throws an - exception if all hosts are down. (Bug #43421) + * When `DatabaseMetaData.getProcedureColumns()' was called, the + value for `LENGTH' was always returned as 65535, regardless of the + column type (fixed or variable) or the actual length of the column. - * The method `Statement.getGeneratedKeys()' did not return values - for `UNSIGNED BIGINTS' with values greater than `Long.MAX_VALUE'. + However, if you obtained the `PRECISION' value, this was correct + for both fixed and variable length columns. (Bug #41269) - Unfortunately, because the server does not tell clients what TYPE - the auto increment value is, the driver cannot consistently return - BigIntegers for the result set returned from `getGeneratedKeys()', - it will only return them if the value is greater than - `Long.MAX_VALUE'. If your application needs this consistency, it - will need to check the class of the return value from - `.getObject()' on the ResultSet returned by - `Statement.getGeneratedKeys()' and if it is not a BigInteger, - create one based on the `java.lang.Long' that is returned. (Bug - #43196) + * The `DEFERRABILITY' column in database metadata result sets was + expected to be of type `SHORT'. However, Connector/J returned it + as `INTEGER'. + + This affected the following methods: `getImportedKeys()', + `getExportedKeys()', `getCrossReference()'. (Bug #44867) + + * The result set returned by `getIndexInfo()' did not have the + format defined in the JDBC API specifications. The fourth column, + `DATA_TYPE', of the result set should be of type `BOOLEAN'. + Connector/J however returns `CHAR'. (Bug #44869) + + * The result set returned by `getTypeInfo()' did not have the format + defined in the JDBC API specifications. The second column, + `DATA_TYPE', of the result set should be of type `INTEGER'. + Connector/J however returns `SMALLINT'. (Bug #44868) + + * The result set returned by `getColumns()' did not have the format + defined in the JDBC API specifications. The fifth column, + `DATA_TYPE', of the result set should be of type `INTEGER'. + Connector/J however returns `SMALLINT'. (Bug #44865) + + * The result set returned by `getVersionColumns()' did not have the + format defined in the JDBC API specifications. The third column, + `DATA_TYPE', of the result set should be of type `INTEGER'. + Connector/J however returns `SMALLINT'. (Bug #44863) - * When the MySQL Server was upgraded from 4.0 to 5.0, the - Connector/J application then failed to connect to the server. - This was because authentication failed when the application ran - from EBCDIC platforms such as z/OS. (Bug #43071) + * The result set returned by `getBestRowIdentifier()' did not have + the format defined in the JDBC API specifications. The third + column, `DATA_TYPE', of the result set should be of type + `INTEGER'. Connector/J however returns `SMALLINT'. (Bug #44862) - * When connecting with `traceProtocol=true', no trace data was - generated for the server greeting or login request. (Bug #43070) + * Connector/J contains logic to generate a message text specifically + for streaming result sets when there are `CommunicationsException' + exceptions generated. However, this code was never reached. - * Connector/J generated an unhandled - `StringIndexOutOfBoundsException': + In the `CommunicationsException' code: - java.lang.StringIndexOutOfBoundsException: String index out of range: -1 - at java.lang.String.substring(String.java:1938) - at com.mysql.jdbc.EscapeProcessor.processTimeToken(EscapeProcessor.java:353) - at com.mysql.jdbc.EscapeProcessor.escapeSQL(EscapeProcessor.java:257) - at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1546) - at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1524) + private boolean streamingResultSetInPlay = false; - (Bug #42253) + public CommunicationsException(ConnectionImpl conn, long lastPacketSentTimeMs, + long lastPacketReceivedTimeMs, Exception underlyingException) { - * A `ConcurrentModificationException' was generated in - `LoadBalancingConnectionProxy': + this.exceptionMessage = SQLError.createLinkFailureMessageBasedOnHeuristics(conn, + lastPacketSentTimeMs, lastPacketReceivedTimeMs, underlyingException, + this.streamingResultSetInPlay); - java.util.ConcurrentModificationException - at java.util.HashMap$HashIterator.nextEntry(Unknown Source) - at java.util.HashMap$KeyIterator.next(Unknown Source) - at - com.mysql.jdbc.LoadBalancingConnectionProxy.getGlobalBlacklist(LoadBalancingConnectionProxy.java:520) - at com.mysql.jdbc.RandomBalanceStrategy.pickConnection(RandomBalanceStrategy.java:55) - at - com.mysql.jdbc.LoadBalancingConnectionProxy.pickNewConnection(LoadBalancingConnectionProxy.java:414) - at - com.mysql.jdbc.LoadBalancingConnectionProxy.invoke(LoadBalancingConnectionProxy.java:390) + `streamingResultSetInPlay' was always false, which in the + following code in + `SQLError.createLinkFailureMessageBasedOnHeuristics()' never being + executed: - (Bug #42055) + if (streamingResultSetInPlay) { + exceptionMessageBuf.append( + Messages.getString("CommunicationsException.ClientWasStreaming")); //$NON-NLS-1$ + } else { + ... + + (Bug #44588) * SQL injection was possible when using a string containing U+00A5 in a client-side prepared statement, and the character set being used was SJIS/Windows-31J. (Bug #41730) - * If there was an apostrophe in a comment in a statement that was - being sent through Connector/J, the apostrophe was still - recognized as a quote and put the state machine in - `EscapeTokenizer' into the `inQuotes' state. This led to further - parse errors. - - For example, consider the following statement: - - String sql = "-- Customer's zip code will be fixed\n" + - "update address set zip_code = 99999\n" + - "where not regexp '^[0-9]{5}([[.-.]])?([0-9]{4})?$'"; - - When passed through Connector/J, the `EscapeTokenizer' did not - recognize that the first apostrophe was in a comment and thus set - `inQuotes' to true. When that happened, the quote count was - incorrect and thus the regular expression did not appear to be in - quotation marks. With the parser not detecting that the regular - expression was in quotation marks, the curly braces were - recognized as escape sequences and were removed from the regular - expression, breaking it. The server thus received SQL such as: - - -- Customer's zip code will be fixed - update address set zip_code = '99999' - where not regexp '^[0-9]([[.-.]])?([0-9])?$' - - (Bug #41566) + * `Statement.getGeneratedKeys()' retained result set instances until + the statement was closed. This caused memory leaks for long-lived + statements, or statements used in tight loops. (Bug #44056) * MySQL Connector/J 5.1.7 was slower than previous versions when the `rewriteBatchedStatements' option was set to `true'. @@ -252190,100 +256035,46 @@ (Bug #41532) - * When accessing a result set column by name using - `ResultSetImpl.findColumn()' an exception was generated: - - java.lang.NullPointerException - at com.mysql.jdbc.ResultSetImpl.findColumn(ResultSetImpl.java:1103) - at com.mysql.jdbc.ResultSetImpl.getShort(ResultSetImpl.java:5415) - at org.apache.commons.dbcp.DelegatingResultSet.getShort(DelegatingResultSet.java:219) - at com.zimbra.cs.db.DbVolume.constructVolume(DbVolume.java:297) - at com.zimbra.cs.db.DbVolume.get(DbVolume.java:197) - at com.zimbra.cs.db.DbVolume.create(DbVolume.java:95) - at com.zimbra.cs.store.Volume.create(Volume.java:227) - at com.zimbra.cs.store.Volume.create(Volume.java:189) - at com.zimbra.cs.service.admin.CreateVolume.handle(CreateVolume.java:48) - at com.zimbra.soap.SoapEngine.dispatchRequest(SoapEngine.java:428) - at com.zimbra.soap.SoapEngine.dispatch(SoapEngine.java:285) - - (Bug #41484) - - * The `RETURN_GENERATED_KEYS' flag was being ignored. For example, - in the following code the `RETURN_GENERATED_KEYS' flag was ignored: + * `LoadBalancingConnectionProxy.doPing()' did not have blacklist + awareness. - PreparedStatement ps = connection.prepareStatement("INSERT INTO table - values(?,?)",PreparedStatement.RETURN_GENERATED_KEYS); + `LoadBalancingConnectionProxy' implemented `doPing()' to ping all + underlying connections, but it threw any exceptions it encountered + during this process. - (Bug #41448) + With the global blacklist enabled, it catches these exceptions, + adds the host to the global blacklist, and only throws an + exception if all hosts are down. (Bug #43421) - * When using Connector/J 5.1.7 to connect to MySQL Server 4.1.18 the - following error message was generated: + * When connecting with `traceProtocol=true', no trace data was + generated for the server greeting or login request. (Bug #43070) - Thu Dec 11 17:38:21 PST 2008 WARN: Invalid value {1} for server variable named {0}, - falling back to sane default of {2} + * When the MySQL Server was upgraded from 4.0 to 5.0, the + Connector/J application then failed to connect to the server. + This was because authentication failed when the application ran + from EBCDIC platforms such as z/OS. (Bug #43071) - This occurred with MySQL Server version that did not support - `auto_increment_increment'. The error message should not have been - generated. (Bug #41416) + * A `ConcurrentModificationException' was generated in + `LoadBalancingConnectionProxy': - * When `DatabaseMetaData.getProcedureColumns()' was called, the - value for `LENGTH' was always returned as 65535, regardless of the - column type (fixed or variable) or the actual length of the column. + java.util.ConcurrentModificationException + at java.util.HashMap$HashIterator.nextEntry(Unknown Source) + at java.util.HashMap$KeyIterator.next(Unknown Source) + at + com.mysql.jdbc.LoadBalancingConnectionProxy.getGlobalBlacklist(LoadBalancingConnectionProxy.java:520) + at com.mysql.jdbc.RandomBalanceStrategy.pickConnection(RandomBalanceStrategy.java:55) + at + com.mysql.jdbc.LoadBalancingConnectionProxy.pickNewConnection(LoadBalancingConnectionProxy.java:414) + at + com.mysql.jdbc.LoadBalancingConnectionProxy.invoke(LoadBalancingConnectionProxy.java:390) - However, if you obtained the `PRECISION' value, this was correct - for both fixed and variable length columns. (Bug #41269) + (Bug #42055) * `PreparedStatement.addBatch()' did not check for all parameters being set, which led to inconsistent behavior in `executeBatch()', especially when rewriting batched statements into multi-value `INSERT's. (Bug #41161) - * Error message strings contained variable values that were not - expanded. For example: - - Mon Nov 17 11:43:18 JST 2008 WARN: Invalid value {1} for server variable named {0}, - falling back to sane default of {2} - - (Bug #40772) - - * When using `rewriteBatchedStatements=true' with: - - INSERT INTO table_name_values (...) VALUES (...) - - Query rewriting failed because `values' at the end of the table - name was mistaken for the reserved keyword. The error generated - was as follows: - - testBug40439(testsuite.simple.TestBug40439)java.sql.BatchUpdateException: You have an - error in your SQL syntax; check the manual that corresponds to your MySQL server version - for the right syntax to use near 'values (2,'toto',2),(id,data, ordr) values - (3,'toto',3),(id,data, ordr) values (' at line 1 - at com.mysql.jdbc.PreparedStatement.executeBatchedInserts(PreparedStatement.java:1495) - at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1097) - at testsuite.simple.TestBug40439.testBug40439(TestBug40439.java:42) - at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) - at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) - at testsuite.simple.TestBug40439.main(TestBug40439.java:57) - - (Bug #40439) - - * A statement interceptor received the incorrect parameters when - used with a batched statement. (Bug #39426) - - * Using Connector/J 5.1.6 the method `ResultSet.getObject' returned a - `BYTE[]' for following: - - SELECT TRIM(rowid) FROM tbl - - Where `rowid' had a type of `INT(11) PRIMARY KEY AUTO_INCREMENT'. - - The expected return type was one of `CHAR', `VARCHAR', `CLOB', - however, a `BYTE[]' was returned. - - Further, adding `functionsNeverReturnBlobs=true' to the connection - string did not have any effect on the return type. (Bug #38387) -  File: manual.info, Node: cj-news-5-1-7, Next: cj-news-5-1-6, Prev: cj-news-5-1-8, Up: cj-news-5-1-x @@ -252303,6 +256094,9 @@ DUPLICATE KEY UPDATE' and the row was updated, not inserted. (Bug #42309) + * When configuring the Java Replication Driver the last slave + specified was never used. (Bug #39611) + * When using the replication driver with `autoReconnect=true', Connector/J checks in `PreparedStatement.execute' (also called by `CallableStatement.execute') to determine if the first character @@ -252312,15 +256106,6 @@ call.s to stored procedures, even if the stored procedures were defined as `SQL READ DATA' or `NO SQL'. (Bug #40031) - * With large result sets `ResultSet.findColumn' became a performance - bottleneck. (Bug #39962) - - * Connector/J ignored the value of the MySQL Server variable - `auto_increment_increment'. (Bug #39956) - - * Connector/J failed to parse *Note `TIMESTAMP': datetime. strings - for nanos correctly. (Bug #39911) - * When the `LoadBalancingConnectionProxy' handles a `SQLException' with SQL state starting with `08', it calls `invalidateCurrentConnection', which in turn removes that @@ -252338,17 +256123,23 @@ catching a `SQLException' caused by a connection failure. (Bug #39784) - * When configuring the Java Replication Driver the last slave - specified was never used. (Bug #39611) + * When using the random load balancing strategy and starting with + two servers that were both unavailable, an + `IndexOutOfBoundsException' was generated when removing a server + from the `whiteList'. (Bug #38782) + + * With large result sets `ResultSet.findColumn' became a performance + bottleneck. (Bug #39962) + + * Connector/J ignored the value of the MySQL Server variable + `auto_increment_increment'. (Bug #39956) * When an `INSERT ON DUPLICATE KEY UPDATE' was performed, and the key already existed, the `affected-rows' value was returned as 1 instead of 0. (Bug #39352) - * When using the random load balancing strategy and starting with - two servers that were both unavailable, an - `IndexOutOfBoundsException' was generated when removing a server - from the `whiteList'. (Bug #38782) + * Connector/J failed to parse *Note `TIMESTAMP': datetime. strings + for nanos correctly. (Bug #39911) * Connector/J threw the following exception when using a read-only connection: @@ -252364,10 +256155,6 @@ * The `useOldAliasMetadataBehavior' connection property was ignored. (Bug #35753) - * Incorrect result is returned from `isAfterLast()' in streaming - `ResultSet' when using `setFetchSize(Integer.MIN_VALUE)'. (Bug - #35170) - * When `getGeneratedKeys()' was called on a statement that had not been created with `RETURN_GENERATED_KEYS', no exception was thrown, and batched executions then returned erroneous values. @@ -252376,6 +256163,10 @@ * The `loadBalance' `bestResponseTime' blacklists did not have a global state. (Bug #33861) + * Incorrect result is returned from `isAfterLast()' in streaming + `ResultSet' when using `setFetchSize(Integer.MIN_VALUE)'. (Bug + #35170) +  File: manual.info, Node: cj-news-5-1-6, Next: cj-news-5-1-5, Prev: cj-news-5-1-7, Up: cj-news-5-1-x @@ -252385,17 +256176,11 @@ *Functionality Added or Changed* * Multiple result sets were not supported when using streaming mode - to return data. Both normal statements and the resul sets from + to return data. Both normal statements and the result sets from stored procedures now return multiple results sets, with the exception of result sets using registered `OUTPUT' parameters. (Bug #33678) - * XAConnections and datasources have been updated to the JDBC-4.0 - standard. - - * The profiler event handling has been made extensible using the - `profilerEventHandler' connection property. - * Add the `verifyServerCertificate' property. If set to "false" the driver will not verify the server's certificate when `useSSL' is set to "true" @@ -252405,21 +256190,37 @@ than system properties, as the JSSE doesn't it straightforward to have a nonverifying trust store and the "default" key store. -*Bugs Fixed* + * The profiler event handling has been made extensible using the + `profilerEventHandler' connection property. - * DatabaseMetaData.getColumns() returns incorrect `COLUMN_SIZE' - value for `SET' column. (Bug #36830) + * XAConnections and datasources have been updated to the JDBC-4.0 + standard. - * When trying to read Time values like `00:00:00' with - ResultSet.getTime(int) an exception is thrown. (Bug #36051) +*Bugs Fixed* - * JDBC connection URL parameters is ignored when using - `MysqlConnectionPoolDataSource'. (Bug #35810) + * Prepared statements from pooled connections caused a + NullPointerException when closed() under JDBC-4.0. (Bug #35489) * When `useServerPrepStmts=true' and slow query logging is enabled, the connector throws a NullPointerException when it encounters a slow query. (Bug #35666) + * The JDBC driver uses a different method for evaluating column + names in resultsetmetadata.getColumnName() and when looking for a + column in resultset.getObject(columnName). This causes Hibernate + to fail in queries where the two methods yield different results, + for example in queries that use alias names: + + SELECT column AS aliasName from table + + (Bug #35150) + + * DatabaseMetaData.getColumns() returns incorrect `COLUMN_SIZE' + value for `SET' column. (Bug #36830) + + * When trying to read Time values like `00:00:00' with + ResultSet.getTime(int) an exception is thrown. (Bug #36051) + * When using the keyword `loadbalance' in the connection string and trying to perform load balancing between two databases, the driver appears to hang. (Bug #35660) @@ -252427,9 +256228,6 @@ * JDBC data type getter method was changed to accept only column name, whereas previously it accepted column label. (Bug #35610) - * Prepared statements from pooled connections caused a - NullPointerException when closed() under JDBC-4.0. (Bug #35489) - * In calling a stored function returning a `bigint', an exception is encountered beginning: @@ -252438,15 +256236,12 @@ followed by the text of the stored function starting after the argument list. (Bug #35199) - * The JDBC driver uses a different method for evaluating column - names in resultsetmetadata.getColumnName() and when looking for a - column in resultset.getObject(columnName). This causes Hibernate - to fail in queries where the two methods yield different results, - for example in queries that use alias names: - - SELECT column AS aliasName from table + * JDBC connection URL parameters is ignored when using + `MysqlConnectionPoolDataSource'. (Bug #35810) - (Bug #35150) + * Retrieving the server version information for an active connection + could return invalid information if the default character encoding + on the host was not ASCII compatible. (Bug #31192) * `MysqlConnectionPoolDataSource' does not support `ReplicationConnection'. Notice that we implemented @@ -252458,6 +256253,21 @@ the exception of `resetServerState()' and `changeUser()'. (Bug #34937) + * When calling `isValid()' on an active connection, if the timeout + is nonzero then the `Connection' is invalidated even if the + `Connection' is valid. (Bug #34703) + + * When retrieving the column type name of a geometry field, the + driver would return `UNKNOWN' instead of `GEOMETRY'. (Bug #34194) + + * The internal class ResultSetInternalMethods referenced the + nonpublic class com.mysql.jdbc.CachedResultSetMetaData. (Bug + #33823) + + * ResultSet.getTimestamp() would throw a `NullPointerException' + instead of a `SQLException' when called on an empty `ResultSet'. + (Bug #33162) + * `ResultSet.getTimestamp()' returns incorrect values for month/day of *Note `TIMESTAMP': datetime.s when using server-side prepared statements (not enabled by default). (Bug #34913) @@ -252468,41 +256278,30 @@ `TIMESTAMP': datetime. types when using absolute, relative, and previous result set navigation methods. (Bug #34762) - * When calling `isValid()' on an active connection, if the timeout - is nonzero then the `Connection' is invalidated even if the - `Connection' is valid. (Bug #34703) - * It was not possible to truncate a *Note `BLOB': blob. using `Blog.truncate()' when using 0 as an argument. (Bug #34677) - * When using a cursor fetch for a statement, the internal prepared - statement could cause a memory leak until the connection was - closed. The internal prepared statement is now deleted when the - corresponding result set is closed. (Bug #34518) - - * When retrieving the column type name of a geometry field, the - driver would return `UNKNOWN' instead of `GEOMETRY'. (Bug #34194) - * Statements with batched values do not return correct values for `getGeneratedKeys()' when `rewriteBatchedStatements' is set to `true', and the statement has an `ON DUPLICATE KEY UPDATE' clause. (Bug #34093) - * The internal class ResultSetInternalMethods referenced the - nonpublic class com.mysql.jdbc.CachedResultSetMetaData. (Bug - #33823) - * A `NullPointerException' could be raised when using client-side prepared statements and enabled the prepared statement cache using the `cachePrepStmts'. (Bug #33734) + * When using a cursor fetch for a statement, the internal prepared + statement could cause a memory leak until the connection was + closed. The internal prepared statement is now deleted when the + corresponding result set is closed. (Bug #34518) + * Using server side cursors and cursor fetch, the table metadata information would return the data type name instead of the column name. (Bug #33594) - * ResultSet.getTimestamp() would throw a `NullPointerException' - instead of a `SQLException' when called on an empty `ResultSet'. - (Bug #33162) + * `ResultSet' returned by `Statement.getGeneratedKeys()' is not + closed automatically when statement that created it is closed. + (Bug #30508) * Load balancing connection using best response time would incorrectly "stick" to hosts that were down when the connection @@ -252522,6 +256321,17 @@ in the class name using the `loadBalanceStrategy' configuration property. (Bug #32877) + * Using `CallableStatement.setNull()' on a stored function would + throw an `ArrayIndexOutOfBounds' exception when setting the last + parameter to null. (Bug #31823) + + * When using a connection from ConnectionPoolDataSource, some + `Connection.prepareStatement()' methods would return null instead + of the prepared statement. (Bug #32101) + + * MysqlValidConnectionChecker doesn't properly handle connections + created using ReplicationConnection. (Bug #31790) + * During a Daylight Savings Time (DST) switchover, there was no way to store two timestamp/datetime values , as the hours end up being the same when sent as the literal that MySQL requires. @@ -252548,30 +256358,11 @@ procedures, as normal SELECTs won't have an error in this spot in the protocol unless an I/O error occurs. (Bug #32246) - * When using a connection from ConnectionPoolDataSource, some - `Connection.prepareStatement()' methods would return null instead - of the prepared statement. (Bug #32101) - - * Using `CallableStatement.setNull()' on a stored function would - throw an `ArrayIndexOutOfBounds' exception when setting the last - parameter to null. (Bug #31823) - - * MysqlValidConnectionChecker doesn't properly handle connections - created using ReplicationConnection. (Bug #31790) - - * Retrieving the server version information for an active connection - could return invalid information if the default character encoding - on the host was not ASCII compatible. (Bug #31192) - * Further fixes have been made to this bug in the event that a node is nonresponsive. Connector/J will now try a different random node instead of waiting for the node to recover before continuing. (Bug #31053) - * `ResultSet' returned by `Statement.getGeneratedKeys()' is not - closed automatically when statement that created it is closed. - (Bug #30508) - * `DatabaseMetadata.getColumns()' doesn't return the correct column names if the connection character isn't UTF-8. A bug in MySQL server compounded the issue, but was fixed within the MySQL 5.0 @@ -252588,9 +256379,13 @@ D.5.1.14 Changes in MySQL Connector/J 5.1.5 (09 October 2007) ............................................................. -*New Features, Compared to the 5.0 Series of Connector/J* - * Support for JDBC-4.0 *Note `NCHAR': char, *Note `NVARCHAR': char. - and `NCLOB' types. +*New Features, Compared to the 5.0 Series of Connector/J* + + * JDBC-4.0 standardized unwrapping to interfaces that include vendor + extensions. + + * Support for JDBC-4.0 XML processing using JAXP interfaces to DOM, + SAX and StAX. * JDBC-4.0 support for setting per-connection client information (which can be viewed in the comments section of a query using @@ -252598,11 +256393,8 @@ can be extended to support custom persistence of the information using a public interface). - * Support for JDBC-4.0 XML processing using JAXP interfaces to DOM, - SAX and StAX. - - * JDBC-4.0 standardized unwrapping to interfaces that include vendor - extensions. + * Support for JDBC-4.0 *Note `NCHAR': char, *Note `NVARCHAR': char. + and `NCLOB' types. *Functionality Added or Changed* @@ -252635,7 +256427,7 @@ Only released internally. -This section has no changelog entries. +Version 5.1.4 has no changelog entries.  File: manual.info, Node: cj-news-5-1-3, Next: cj-news-5-1-2, Prev: cj-news-5-1-4, Up: cj-news-5-1-x @@ -252643,9 +256435,13 @@ D.5.1.16 Changes in MySQL Connector/J 5.1.3 (10 September 2007) ............................................................... -*New Features, Compared to the 5.0 Series of Connector/J* - * Support for JDBC-4.0 *Note `NCHAR': char, *Note `NVARCHAR': char. - and `NCLOB' types. +*New Features, Compared to the 5.0 Series of Connector/J* + + * JDBC-4.0 standardized unwrapping to interfaces that include vendor + extensions. + + * Support for JDBC-4.0 XML processing using JAXP interfaces to DOM, + SAX and StAX. * JDBC-4.0 support for setting per-connection client information (which can be viewed in the comments section of a query using @@ -252653,11 +256449,8 @@ can be extended to support custom persistence of the information using a public interface). - * Support for JDBC-4.0 XML processing using JAXP interfaces to DOM, - SAX and StAX. - - * JDBC-4.0 standardized unwrapping to interfaces that include vendor - extensions. + * Support for JDBC-4.0 *Note `NCHAR': char, *Note `NVARCHAR': char. + and `NCLOB' types. *Functionality Added or Changed* @@ -252666,60 +256459,46 @@ database names in any character set to be used in the JDBC connection URL. (Bug #29853) - * Added two configuration parameters: - - * `blobsAreStrings': Should the driver always treat BLOBs as - Strings. Added specifically to work around dubious metadata - returned by the server for `GROUP BY' clauses. Defaults to - false. + * Setting `useBlobToStoreUTF8OutsideBMP' to `true' tells the driver + to treat `[MEDIUM/LONG]BLOB' columns as `[LONG]VARCHAR' columns + holding text encoded in UTF-8 that has characters outside the BMP + (4-byte encodings), which MySQL server can't handle natively. - * `functionsNeverReturnBlobs': Should the driver always treat - data from functions returning `BLOBs' as Strings. Added - specifically to work around dubious metadata returned by the - server for `GROUP BY' clauses. Defaults to false. + Set `utf8OutsideBmpExcludedColumnNamePattern' to a regex so that + column names matching the given regex will still be treated as + `BLOBs' The regex must follow the patterns used for the + `java.util.regex'package. The default is to exclude no columns, + and include all columns. - * Setting `rewriteBatchedStatements' to `true' now causes - CallableStatements with batched arguments to be re-written in the - form "CALL (...); CALL (...); ..." to send the batch in as few - client/server round trips as possible. + Set `utf8OutsideBmpIncludedColumnNamePattern' to specify exclusion + rules to utf8OutsideBmpExcludedColumnNamePattern". The regex must + follow the patterns used for the `java.util.regex' package. - * The driver now picks appropriate internal row representation - (whole row in one buffer, or individual byte[]s for each column - value) depending on heuristics, including whether or not the row - has *Note `BLOB': blob. or *Note `TEXT': blob. types and the - overall row-size. The threshold for row size that will cause the - driver to use a buffer rather than individual byte[]s is - configured by the configuration property `largeRowSizeThreshold', - which has a default value of 2KB. + * New methods on com.mysql.jdbc.Statement: + `setLocalInfileInputStream()' and `getLocalInfileInputStream()': - * The data (and how it is stored) for `ResultSet' rows are now - behind an interface which enables us (in some cases) to allocate - less memory per row, in that for "streaming" result sets, we - re-use the packet used to read rows, since only one row at a time - is ever active. + * `setLocalInfileInputStream()' sets an `InputStream' instance + that will be used to send data to the MySQL server for a + *Note `LOAD DATA LOCAL INFILE': load-data. statement rather + than a `FileInputStream' or `URLInputStream' that represents + the path given as an argument to the statement. - * Added experimental support for statement "interceptors" through - the `com.mysql.jdbc.StatementInterceptor' interface, examples are - in `com/mysql/jdbc/interceptors'. Implement this interface to be - placed "in between" query execution, so that it can be influenced - (currently experimental). + This stream will be read to completion upon execution of a + *Note `LOAD DATA LOCAL INFILE': load-data. statement, and + will automatically be closed by the driver, so it needs to be + reset before each call to `execute*()' that would cause the + MySQL server to request data to fulfill the request for *Note + `LOAD DATA LOCAL INFILE': load-data. - * The driver will automatically adjust the server session variable - `net_write_timeout' when it determines its been asked for a - "streaming" result, and resets it to the previous value when the - result set has been consumed. (The configuration property is named - `netTimeoutForStreamingResults', with a unit of seconds, the value - '0' means the driver will not try and adjust this value). + If this value is set to `NULL', the driver will revert to + using a `FileInputStream' or `URLInputStream' as required. - * JDBC-4.0 ease-of-development features including auto-registration - with the `DriverManager' through the service provider mechanism, - standardized Connection validity checks and categorized - `SQLExceptions' based on recoverability/retry-ability and class of - the underlying error. + * `getLocalInfileInputStream()' returns the `InputStream' + instance that will be used to send data in response to a + *Note `LOAD DATA LOCAL INFILE': load-data. statement. - * `Statement.setQueryTimeout()'s now affect the entire batch for - batched statements, rather than the individual statements that - make up the batch. + This method returns `NULL' if no such stream has been set + using `setLocalInfileInputStream()'. * Errors encountered during `Statement'/`PreparedStatement'/`CallableStatement.executeBatch()' @@ -252745,93 +256524,104 @@ responsibility to handle determining which item(s) in the "chunk" actually failed. - * New methods on com.mysql.jdbc.Statement: - `setLocalInfileInputStream()' and `getLocalInfileInputStream()': + * `Statement.setQueryTimeout()'s now affect the entire batch for + batched statements, rather than the individual statements that + make up the batch. - * `setLocalInfileInputStream()' sets an `InputStream' instance - that will be used to send data to the MySQL server for a - *Note `LOAD DATA LOCAL INFILE': load-data. statement rather - than a `FileInputStream' or `URLInputStream' that represents - the path given as an argument to the statement. + * JDBC-4.0 ease-of-development features including auto-registration + with the `DriverManager' through the service provider mechanism, + standardized Connection validity checks and categorized + `SQLExceptions' based on recoverability/retry-ability and class of + the underlying error. - This stream will be read to completion upon execution of a - *Note `LOAD DATA LOCAL INFILE': load-data. statement, and - will automatically be closed by the driver, so it needs to be - reset before each call to `execute*()' that would cause the - MySQL server to request data to fulfill the request for *Note - `LOAD DATA LOCAL INFILE': load-data. + * The driver will automatically adjust the server session variable + `net_write_timeout' when it determines its been asked for a + "streaming" result, and resets it to the previous value when the + result set has been consumed. (The configuration property is named + `netTimeoutForStreamingResults', with a unit of seconds, the value + '0' means the driver will not try and adjust this value). - If this value is set to `NULL', the driver will revert to - using a `FileInputStream' or `URLInputStream' as required. + * Added experimental support for statement "interceptors" through + the `com.mysql.jdbc.StatementInterceptor' interface, examples are + in `com/mysql/jdbc/interceptors'. Implement this interface to be + placed "in between" query execution, so that it can be influenced + (currently experimental). - * `getLocalInfileInputStream()' returns the `InputStream' - instance that will be used to send data in response to a - *Note `LOAD DATA LOCAL INFILE': load-data. statement. + * The data (and how it is stored) for `ResultSet' rows are now + behind an interface which enables us (in some cases) to allocate + less memory per row, in that for "streaming" result sets, we + re-use the packet used to read rows, since only one row at a time + is ever active. - This method returns `NULL' if no such stream has been set - using `setLocalInfileInputStream()'. + * The driver now picks appropriate internal row representation + (whole row in one buffer, or individual byte[]s for each column + value) depending on heuristics, including whether or not the row + has *Note `BLOB': blob. or *Note `TEXT': blob. types and the + overall row-size. The threshold for row size that will cause the + driver to use a buffer rather than individual byte[]s is + configured by the configuration property `largeRowSizeThreshold', + which has a default value of 2KB. - * Setting `useBlobToStoreUTF8OutsideBMP' to `true' tells the driver - to treat `[MEDIUM/LONG]BLOB' columns as `[LONG]VARCHAR' columns - holding text encoded in UTF-8 that has characters outside the BMP - (4-byte encodings), which MySQL server can't handle natively. + * Setting `rewriteBatchedStatements' to `true' now causes + CallableStatements with batched arguments to be re-written in the + form "CALL (...); CALL (...); ..." to send the batch in as few + client/server round trips as possible. - Set `utf8OutsideBmpExcludedColumnNamePattern' to a regex so that - column names matching the given regex will still be treated as - `BLOBs' The regex must follow the patterns used for the - `java.util.regex'package. The default is to exclude no columns, - and include all columns. + * Added two configuration parameters: - Set `utf8OutsideBmpIncludedColumnNamePattern' to specify exclusion - rules to utf8OutsideBmpExcludedColumnNamePattern". The regex must - follow the patterns used for the `java.util.regex' package. + * `blobsAreStrings': Should the driver always treat BLOBs as + Strings. Added specifically to work around dubious metadata + returned by the server for `GROUP BY' clauses. Defaults to + false. + + * `functionsNeverReturnBlobs': Should the driver always treat + data from functions returning `BLOBs' as Strings. Added + specifically to work around dubious metadata returned by the + server for `GROUP BY' clauses. Defaults to false. *Bugs Fixed* - * `setObject(int, Object, int, int)' delegate in - PreparedStatementWrapper delegates to wrong method. (Bug #30892) + * `CallableStatement.executeBatch()' doesn't work when connection + property `noAccessToProcedureBodies' has been set to `true'. + + The fix involves changing the behavior of + `noAccessToProcedureBodies',in that the driver will now report all + parameters as `IN' parameters but permit callers to call + registerOutParameter() on them without throwing an exception. + (Bug #28689) * NPE with null column values when `padCharsWithSpace' is set to true. (Bug #30851) - * Collation on *Note `VARBINARY': binary-varbinary. column types - would be misidentified. A fix has been added, but this fix only - works for MySQL server versions 5.0.25 and newer, since earlier - versions didn't consistently return correct metadata for - functions, and thus results from subqueries and functions were - indistinguishable from each other, leading to type-related bugs. - (Bug #30664) - - * An `ArithmeticException' or `NullPointerException' would be raised - when the batch had zero members and - `rewriteBatchedStatements=true' when `addBatch()' was never - called, or `executeBatch()' was called immediately after - `clearBatch()'. (Bug #30550) + * `setObject(int, Object, int, int)' delegate in + PreparedStatementWrapper delegates to wrong method. (Bug #30892) * Closing a load-balanced connection would cause a `ClassCastException'. (Bug #29852) - * Connection checker for JBoss didn't use same method parameters - using reflection, causing connections to always seem "bad". (Bug - #29106) - * `DatabaseMetaData.getTypeInfo()' for the types *Note `DECIMAL': numeric-types. and *Note `NUMERIC': numeric-types. will return a precision of 254 for server versions older than 5.0.3, 64 for versions 5.0.3 to 5.0.5 and 65 for versions newer than 5.0.5. (Bug #28972) - * `CallableStatement.executeBatch()' doesn't work when connection - property `noAccessToProcedureBodies' has been set to `true'. + * An `ArithmeticException' or `NullPointerException' would be raised + when the batch had zero members and + `rewriteBatchedStatements=true' when `addBatch()' was never + called, or `executeBatch()' was called immediately after + `clearBatch()'. (Bug #30550) - The fix involves changing the behavior of - `noAccessToProcedureBodies',in that the driver will now report all - paramters as `IN' paramters but permit callers to call - registerOutParameter() on them without throwing an exception. - (Bug #28689) + * Collation on *Note `VARBINARY': binary-varbinary. column types + would be misidentified. A fix has been added, but this fix only + works for MySQL server versions 5.0.25 and newer, since earlier + versions didn't consistently return correct metadata for + functions, and thus results from subqueries and functions were + indistinguishable from each other, leading to type-related bugs. + (Bug #30664) - * `DatabaseMetaData.getColumns()' doesn't contain `SCOPE_*' or - `IS_AUTOINCREMENT' columns. (Bug #27915) + * Connection checker for JBoss didn't use same method parameters + using reflection, causing connections to always seem "bad". (Bug + #29106) * Schema objects with identifiers other than the connection character aren't retrieved correctly in `ResultSetMetadata'. (Bug @@ -252840,6 +256630,9 @@ * `Connection.getServerCharacterEncoding()' doesn't work for servers with version >= 4.1. (Bug #27182) + * `DatabaseMetaData.getColumns()' doesn't contain `SCOPE_*' or + `IS_AUTOINCREMENT' columns. (Bug #27915) + * The automated SVN revisions in `DBMD.getDriverVersion()'. The SVN revision of the directory is now inserted into the version information during the build. (Bug #21116) @@ -252898,29 +256691,27 @@ `Connection.serverPrepareStatement()' for consistency with `Connection.clientPrepareStatement()'. - * Row navigation now causes any streams/readers open on the result - set to be closed, as in some cases we're reading directly from a - shared network packet and it will be overwritten by the "next" row. + * Setting `rewriteBatchedStatements' to `true' now causes + `CallableStatements' with batched arguments to be re-written in + the form `CALL (...); CALL (...); ...' to send the batch in as few + client/server round trips as possible. - * Made it possible to retrieve prepared statement parameter bindings - (to be used in `StatementInterceptors', primarily). + * See the sources (fully javadoc'd) for + `com.mysql.jdbc.StatementInterceptor' for more details until we + iron out the API and get it documented in the manual. - * Externalized the descriptions of connection properties. + * Added experimental support for statement "interceptors" through + the `com.mysql.jdbc.StatementInterceptor' interface, examples are + in `com/mysql/jdbc/interceptors'. - * The data (and how it is stored) for `ResultSet' rows are now - behind an interface which enables us (in some cases) to allocate - less memory per row, in that for "streaming" result sets, we - re-use the packet used to read rows, since only one row at a time - is ever active. + Implement this interface to be placed "in between" query + execution, so that you can influence it. (currently experimental). - * Similar to `Connection', we pulled out vendor extensions to - `Statement' into an interface named `com.mysql.Statement', and - moved the `Statement' class into `com.mysql.StatementImpl'. The - two methods (javadoc'd in `com.mysql.Statement' are - `enableStreamingResults()', which already existed, and - `disableStreamingResults()' which sets the statement instance back - to the fetch size and result set type it had before - `enableStreamingResults()' was called. + `StatementInterceptors' are "chainable" when configured by the + user, the results returned by the "current" interceptor will be + passed on to the next on in the chain, from left-to-right order, + as specified by the user in the JDBC configuration property + `statementInterceptors'. * Driver now picks appropriate internal row representation (whole row in one buffer, or individual byte[]s for each column value) @@ -252931,27 +256722,29 @@ configuration property `largeRowSizeThreshold', which has a default value of 2KB. - * Added experimental support for statement "interceptors" through - the `com.mysql.jdbc.StatementInterceptor' interface, examples are - in `com/mysql/jdbc/interceptors'. + * Similar to `Connection', we pulled out vendor extensions to + `Statement' into an interface named `com.mysql.Statement', and + moved the `Statement' class into `com.mysql.StatementImpl'. The + two methods (javadoc'd in `com.mysql.Statement' are + `enableStreamingResults()', which already existed, and + `disableStreamingResults()' which sets the statement instance back + to the fetch size and result set type it had before + `enableStreamingResults()' was called. - Implement this interface to be placed "in between" query - execution, so that you can influence it. (currently experimental). + * The data (and how it is stored) for `ResultSet' rows are now + behind an interface which enables us (in some cases) to allocate + less memory per row, in that for "streaming" result sets, we + re-use the packet used to read rows, since only one row at a time + is ever active. - `StatementInterceptors' are "chainable" when configured by the - user, the results returned by the "current" interceptor will be - passed on to the next on in the chain, from left-to-right order, - as specified by the user in the JDBC configuration property - `statementInterceptors'. + * Externalized the descriptions of connection properties. - * See the sources (fully javadoc'd) for - `com.mysql.jdbc.StatementInterceptor' for more details until we - iron out the API and get it documented in the manual. + * Made it possible to retrieve prepared statement parameter bindings + (to be used in `StatementInterceptors', primarily). - * Setting `rewriteBatchedStatements' to `true' now causes - `CallableStatements' with batched arguments to be re-written in - the form `CALL (...); CALL (...); ...' to send the batch in as few - client/server round trips as possible. + * Row navigation now causes any streams/readers open on the result + set to be closed, as in some cases we're reading directly from a + shared network packet and it will be overwritten by the "next" row.  File: manual.info, Node: cj-news-5-1-0, Prev: cj-news-5-1-1, Up: cj-news-5-1-x @@ -252988,30 +256781,31 @@ *Functionality Added or Changed* - * Refactored `CommunicationsException' into a JDBC-3.0 version, and - a JDBC-4.0 version (which extends `SQLRecoverableException', now - that it exists). - - *Note*: + * Added support for JDBC-4.0's `Wrapper' interface. - This change means that if you were catching - `com.mysql.jdbc.CommunicationsException' in your applications - instead of looking at the SQLState class of `08', and are moving - to Java 6 (or newer), you need to change your imports to that - exception to be - `com.mysql.jdbc.exceptions.jdbc4.CommunicationsException', as the - old class will not be instantiated for communications link-related - errors under Java 6. + * `com.mysql.jdbc.java6.rtjar': Full path to your Java-6 `rt.jar' + file - * Added support for JDBC-4.0 categorized `SQLExceptions'. + * Added support for JDBC-4.0's client information. The backend + storage of information provided using `Connection.setClientInfo()' + and retrieved by `Connection.getClientInfo()' is pluggable by any + class that implements the `com.mysql.jdbc.JDBC4ClientInfoProvider' + interface and has a no-args constructor. - * Added support for JDBC-4.0's `NCLOB', and *Note `NCHAR': - char./*Note `NVARCHAR': char. types. + The implementation used by the driver is configured using the + `clientInfoProvider' configuration property (with a default of + value of `com.mysql.jdbc.JDBC4CommentClientInfoProvider', an + implementation which lists the client information as a comment + prepended to every query sent to the server). - * `com.mysql.jdbc.java6.javac': Full path to your Java-6 `javac' - executable + This functionality is only available when using Java-6 or newer. - * Added support for JDBC-4.0's SQLXML interfaces. + * New feature--driver will automatically adjust session variable + `net_write_timeout' when it determines it has been asked for a + "streaming" result, and resets it to the previous value when the + result set has been consumed. (configuration property is named + `netTimeoutForStreamingResults' value and has a unit of seconds, + the value `0' means the driver will not try and adjust this value). * Re-worked Ant buildfile to build JDBC-4.0 classes separately, as well as support building under Eclipse (since Eclipse can't @@ -253026,31 +256820,30 @@ * `com.mysql.jdbc.java6.rtjar': Full path to your Java-6 `rt.jar' file - * New feature--driver will automatically adjust session variable - `net_write_timeout' when it determines it has been asked for a - "streaming" result, and resets it to the previous value when the - result set has been consumed. (configuration property is named - `netTimeoutForStreamingResults' value and has a unit of seconds, - the value `0' means the driver will not try and adjust this value). + * Added support for JDBC-4.0's SQLXML interfaces. - * Added support for JDBC-4.0's client information. The backend - storage of information provided using `Connection.setClientInfo()' - and retrieved by `Connection.getClientInfo()' is pluggable by any - class that implements the `com.mysql.jdbc.JDBC4ClientInfoProvider' - interface and has a no-args constructor. + * `com.mysql.jdbc.java6.javac': Full path to your Java-6 `javac' + executable - The implementation used by the driver is configured using the - `clientInfoProvider' configuration property (with a default of - value of `com.mysql.jdbc.JDBC4CommentClientInfoProvider', an - implementation which lists the client information as a comment - prepended to every query sent to the server). + * Added support for JDBC-4.0's `NCLOB', and *Note `NCHAR': + char./*Note `NVARCHAR': char. types. - This functionality is only available when using Java-6 or newer. + * Added support for JDBC-4.0 categorized `SQLExceptions'. - * `com.mysql.jdbc.java6.rtjar': Full path to your Java-6 `rt.jar' - file + * Refactored `CommunicationsException' into a JDBC-3.0 version, and + a JDBC-4.0 version (which extends `SQLRecoverableException', now + that it exists). - * Added support for JDBC-4.0's `Wrapper' interface. + *Note*: + + This change means that if you were catching + `com.mysql.jdbc.CommunicationsException' in your applications + instead of looking at the SQLState class of `08', and are moving + to Java 6 (or newer), you need to change your imports to that + exception to be + `com.mysql.jdbc.exceptions.jdbc4.CommunicationsException', as the + old class will not be instantiated for communications link-related + errors under Java 6.  File: manual.info, Node: cj-news-5-0-x, Next: cj-news-3-1-x, Prev: cj-news-5-1-x, Up: cj-news @@ -253065,7 +256858,7 @@ * cj-news-5-0-6:: Changes in MySQL Connector/J 5.0.6 (15 May 2007) * cj-news-5-0-5:: Changes in MySQL Connector/J 5.0.5 (02 March 2007) * cj-news-5-0-4:: Changes in MySQL Connector/J 5.0.4 (20 October 2006) -* cj-news-5-0-3:: Changes in MySQL Connector/J 5.0.3 (26 July 2006 beta) +* cj-news-5-0-3:: Changes in MySQL Connector/J 5.0.3 (26 July 2006, beta) * cj-news-5-0-2:: Changes in MySQL Connector/J 5.0.2 (11 July 2006) * cj-news-5-0-1:: Changes in MySQL Connector/J 5.0.1 (Not Released) * cj-news-5-0-0:: Changes in MySQL Connector/J 5.0.0 (22 December 2005) @@ -253078,9 +256871,18 @@ *Functionality Added or Changed* - * `blobsAreStrings': Should the driver always treat BLOBs as - Strings. Added specifically to work around dubious metadata - returned by the server for `GROUP BY' clauses. Defaults to false. + * Driver will now fall back to sane defaults for + `max_allowed_packet' and `net_buffer_length' if the server reports + them incorrectly (and will log this situation at `WARN' level, + since it is actually an error condition). + + * XAConnections now start in auto-commit mode (as per JDBC-4.0 + specification clarification). + + * `functionsNeverReturnBlobs': Should the driver always treat data + from functions returning `BLOBs' as Strings. Added specifically to + work around dubious metadata returned by the server for `GROUP BY' + clauses. Defaults to false. * Added two configuration parameters: @@ -253094,18 +256896,9 @@ specifically to work around dubious metadata returned by the server for `GROUP BY' clauses. Defaults to false. - * `functionsNeverReturnBlobs': Should the driver always treat data - from functions returning `BLOBs' as Strings. Added specifically to - work around dubious metadata returned by the server for `GROUP BY' - clauses. Defaults to false. - - * XAConnections now start in auto-commit mode (as per JDBC-4.0 - specification clarification). - - * Driver will now fall back to sane defaults for - `max_allowed_packet' and `net_buffer_length' if the server reports - them incorrectly (and will log this situation at `WARN' level, - since it is actually an error condition). + * `blobsAreStrings': Should the driver always treat BLOBs as + Strings. Added specifically to work around dubious metadata + returned by the server for `GROUP BY' clauses. Defaults to false. *Bugs Fixed* @@ -253120,51 +256913,50 @@ If the driver gives up, it will throw the last-received `SQLException'. (Bug #31053) - * `setObject(int, Object, int, int)' delegate in - PreparedStatementWrapper delegates to wrong method. (Bug #30892) + * `CallableStatement.executeBatch()' doesn't work when connection + property `noAccessToProcedureBodies' has been set to `true'. + + The fix involves changing the behavior of + `noAccessToProcedureBodies',in that the driver will now report all + parameters as `IN' parameters but permit callers to call + registerOutParameter() on them without throwing an exception. + (Bug #28689) * NPE with null column values when `padCharsWithSpace' is set to true. (Bug #30851) - * Collation on *Note `VARBINARY': binary-varbinary. column types - would be misidentified. A fix has been added, but this fix only - works for MySQL server versions 5.0.25 and newer, since earlier - versions didn't consistently return correct metadata for - functions, and thus results from subqueries and functions were - indistinguishable from each other, leading to type-related bugs. - (Bug #30664) - - * An `ArithmeticException' or `NullPointerException' would be raised - when the batch had zero members and - `rewriteBatchedStatements=true' when `addBatch()' was never - called, or `executeBatch()' was called immediately after - `clearBatch()'. (Bug #30550) + * `setObject(int, Object, int, int)' delegate in + PreparedStatementWrapper delegates to wrong method. (Bug #30892) * Closing a load-balanced connection would cause a `ClassCastException'. (Bug #29852) - * Connection checker for JBoss didn't use same method parameters - using reflection, causing connections to always seem "bad". (Bug - #29106) - * `DatabaseMetaData.getTypeInfo()' for the types *Note `DECIMAL': numeric-types. and *Note `NUMERIC': numeric-types. will return a precision of 254 for server versions older than 5.0.3, 64 for versions 5.0.3 to 5.0.5 and 65 for versions newer than 5.0.5. (Bug #28972) - * `CallableStatement.executeBatch()' doesn't work when connection - property `noAccessToProcedureBodies' has been set to `true'. + * An `ArithmeticException' or `NullPointerException' would be raised + when the batch had zero members and + `rewriteBatchedStatements=true' when `addBatch()' was never + called, or `executeBatch()' was called immediately after + `clearBatch()'. (Bug #30550) - The fix involves changing the behavior of - `noAccessToProcedureBodies',in that the driver will now report all - paramters as `IN' paramters but permit callers to call - registerOutParameter() on them without throwing an exception. - (Bug #28689) + * Collation on *Note `VARBINARY': binary-varbinary. column types + would be misidentified. A fix has been added, but this fix only + works for MySQL server versions 5.0.25 and newer, since earlier + versions didn't consistently return correct metadata for + functions, and thus results from subqueries and functions were + indistinguishable from each other, leading to type-related bugs. + (Bug #30664) - * When a connection is in read-only mode, queries that are wrapped - in parentheses were incorrectly identified DML statements. (Bug - #28256) + * Connection checker for JBoss didn't use same method parameters + using reflection, causing connections to always seem "bad". (Bug + #29106) + + * Cached metadata with `PreparedStatement.execute()' throws + `NullPointerException'. (Bug #27412) * `UNSIGNED' types not reported using `DBMD.getTypeInfo()', and capitalization of type names is not consistent between @@ -253175,19 +256967,20 @@ and `UNSIGNED BIGINT' is reported correctly using `DBMD.getColumns()'. (Bug #27916) - * `DatabaseMetaData.getColumns()' doesn't contain `SCOPE_*' or - `IS_AUTOINCREMENT' columns. (Bug #27915) + * When a connection is in read-only mode, queries that are wrapped + in parentheses were incorrectly identified DML statements. (Bug + #28256) * Schema objects with identifiers other than the connection character aren't retrieved correctly in `ResultSetMetadata'. (Bug #27867) - * Cached metadata with `PreparedStatement.execute()' throws - `NullPointerException'. (Bug #27412) - * `Connection.getServerCharacterEncoding()' doesn't work for servers with version >= 4.1. (Bug #27182) + * `DatabaseMetaData.getColumns()' doesn't contain `SCOPE_*' or + `IS_AUTOINCREMENT' columns. (Bug #27915) + * The automated SVN revisions in `DBMD.getDriverVersion()'. The SVN revision of the directory is now inserted into the version information during the build. (Bug #21116) @@ -253207,41 +257000,39 @@ *Functionality Added or Changed* - * The driver will now automatically set `useServerPrepStmts' to - `true' when `useCursorFetch' has been set to `true', since the - feature requires server-side prepared statements to function. - - * `tcpKeepAlive' - Should the driver set SO_KEEPALIVE (default - `true')? + * Added configuration property `useNanosForElapsedTime' - for + profiling/debugging functionality that measures elapsed time, + should the driver try to use nanoseconds resolution if available + (requires JDK >= 1.5)? - * Give more information in EOFExceptions thrown out of MysqlIO (how - many bytes the driver expected to read, how many it actually read, - say that communications with the server were unexpectedly lost). + *Note*: - * Driver detects when it is running in a ColdFusion MX server - (tested with version 7), and uses the configuration bundle - `coldFusion', which sets `useDynamicCharsetInfo' to `false' (see - previous entry), and sets `useLocalSessionState' and autoReconnect - to `true'. + If `useNanosForElapsedTime' is set to `true', and this property is + set to "0" (or left default), then elapsed times will still be + measured in nanoseconds (if possible), but the slow query + threshold will be converted from milliseconds to nanoseconds, and + thus have an upper bound of approximately 2000 milliseconds (as + that threshold is represented as an integer, not a long). - * `tcpNoDelay' - Should the driver set SO_TCP_NODELAY (disabling the - Nagle Algorithm, default `true')? + * Added new debugging functionality - Setting configuration property + `includeInnodbStatusInDeadlockExceptions' to `true' will cause the + driver to append the output of *Note `SHOW ENGINE INNODB STATUS': + show-engine. to deadlock-related exceptions, which will enumerate + the current locks held inside InnoDB. - * Added configuration property `slowQueryThresholdNanos' - if - `useNanosForElapsedTime' is set to `true', and this property is - set to a nonzero value the driver will use this threshold (in - nanosecond units) to determine if a query was slow, instead of - using millisecond units. + * `tcpTrafficClass' - Should the driver set traffic class or + type-of-service fields? See the documentation for + java.net.Socket.setTrafficClass() for more information. - * `tcpRcvBuf' - Should the driver set SO_RCV_BUF to the given value? + * `tcpSndBuf' - Should the driver set SO_SND_BUF to the given value? The default value of '0', means use the platform default value for this property. - * Setting `useDynamicCharsetInfo' to `false' now causes driver to - use static lookups for collations as well (makes - ResultSetMetadata.isCaseSensitive() much more efficient, which - leads to performance increase for ColdFusion, which calls this - method for every column on every table it sees, it appears). + * Setting the configuration parameter `useCursorFetch' to `true' for + MySQL-5.0+ enables the use of cursors that enable Connector/J to + save memory by fetching result set rows in chunks (where the chunk + size is set by calling setFetchSize() on a Statement or ResultSet) + by using fully-materialized cursors on the server. * Added configuration properties to enable tuning of TCP/IP socket parameters: @@ -253264,42 +257055,51 @@ type-of-service fields? See the documentation for java.net.Socket.setTrafficClass() for more information. - * Setting the configuration parameter `useCursorFetch' to `true' for - MySQL-5.0+ enables the use of cursors that enable Connector/J to - save memory by fetching result set rows in chunks (where the chunk - size is set by calling setFetchSize() on a Statement or ResultSet) - by using fully-materialized cursors on the server. + * Setting `useDynamicCharsetInfo' to `false' now causes driver to + use static lookups for collations as well (makes + ResultSetMetadata.isCaseSensitive() much more efficient, which + leads to performance increase for ColdFusion, which calls this + method for every column on every table it sees, it appears). - * `tcpSndBuf' - Should the driver set SO_SND_BUF to the given value? + * `tcpRcvBuf' - Should the driver set SO_RCV_BUF to the given value? The default value of '0', means use the platform default value for this property. - * `tcpTrafficClass' - Should the driver set traffic class or - type-of-service fields? See the documentation for - java.net.Socket.setTrafficClass() for more information. + * Added configuration property `slowQueryThresholdNanos' - if + `useNanosForElapsedTime' is set to `true', and this property is + set to a nonzero value the driver will use this threshold (in + nanosecond units) to determine if a query was slow, instead of + using millisecond units. - * Added new debugging functionality - Setting configuration property - `includeInnodbStatusInDeadlockExceptions' to `true' will cause the - driver to append the output of *Note `SHOW ENGINE INNODB STATUS': - show-engine. to deadlock-related exceptions, which will enumerate - the current locks held inside InnoDB. + * `tcpNoDelay' - Should the driver set SO_TCP_NODELAY (disabling the + Nagle Algorithm, default `true')? - * Added configuration property `useNanosForElapsedTime' - for - profiling/debugging functionality that measures elapsed time, - should the driver try to use nanoseconds resolution if available - (requires JDK >= 1.5)? + * Driver detects when it is running in a ColdFusion MX server + (tested with version 7), and uses the configuration bundle + `coldFusion', which sets `useDynamicCharsetInfo' to `false' (see + previous entry), and sets `useLocalSessionState' and autoReconnect + to `true'. - *Note*: + * Give more information in EOFExceptions thrown out of MysqlIO (how + many bytes the driver expected to read, how many it actually read, + say that communications with the server were unexpectedly lost). - If `useNanosForElapsedTime' is set to `true', and this property is - set to "0" (or left default), then elapsed times will still be - measured in nanoseconds (if possible), but the slow query - threshold will be converted from milliseconds to nanoseconds, and - thus have an upper bound of approximately 2000 milliseconds (as - that threshold is represented as an integer, not a long). + * `tcpKeepAlive' - Should the driver set SO_KEEPALIVE (default + `true')? + + * The driver will now automatically set `useServerPrepStmts' to + `true' when `useCursorFetch' has been set to `true', since the + feature requires server-side prepared statements to function. *Bugs Fixed* + * Parser in client-side prepared statements eats character following + '/' if it is not a multi-line comment. (Bug #28851) + + * Parser in client-side prepared statements runs to end of + statement, rather than end-of-line for '#' comments. Also added + support for '-' single-line comments. (Bug #28956) + * Don't send any file data in response to LOAD DATA LOCAL INFILE if the feature is disabled at the client side. This is to prevent a malicious server or man-in-the-middle from asking the client for @@ -253308,28 +257108,114 @@ Osipov and Sergei Golubchik for discussions about implications and possible fixes. (Bug #29605) - * Parser in client-side prepared statements runs to end of - statement, rather than end-of-line for '#' comments. Also added - support for '-' single-line comments. (Bug #28956) + * PreparedStatement.getMetaData() for statements containing leading + one-line comments is not returned correctly. + + As part of this fix, we also overhauled detection of DML for + `executeQuery()' and *Note `SELECT': select.s for + `executeUpdate()' in plain and prepared statements to be aware of + the same types of comments. (Bug #28469) + + +File: manual.info, Node: cj-news-5-0-6, Next: cj-news-5-0-5, Prev: cj-news-5-0-7, Up: cj-news-5-0-x + +D.5.2.3 Changes in MySQL Connector/J 5.0.6 (15 May 2007) +........................................................ + +*Functionality Added or Changed* + + * More intelligent initial packet sizes for the "shared" packets are + used (512 bytes, rather than 16K), and initial packets used during + handshake are now sized appropriately as to not require + reallocation. + + * Driver will now use `INSERT INTO ... VALUES (DEFAULT)'form of + statement for updatable result sets for `ResultSet.insertRow()', + rather than pre-populating the insert row with values from + `DatabaseMetaData.getColumns()'(which results in a *Note `SHOW + FULL COLUMNS': show-columns. on the server for every result set). + If an application requires access to the default values before + `insertRow()' has been called, the JDBC URL should be configured + with `populateInsertRowWithDefaultValues' set to `true'. + + This fix specifically targets performance issues with ColdFusion + and the fact that it seems to ask for updatable result sets no + matter what the application does with them. + + * Fixed issue where a failed-over connection would let an + application call `setReadOnly(false)', when that call should be + ignored until the connection is reconnected to a writable master + unless `failoverReadOnly' had been set to `false'. + + * `com.mysql.jdbc.[NonRegistering]Driver' now understands URLs of + the format `jdbc:mysql:replication://' and + `jdbc:mysql:loadbalance://' which will create a + ReplicationConnection (exactly like when using + `[NonRegistering]ReplicationDriver') and an experimental + load-balanced connection designed for use with SQL nodes in a + MySQL Cluster/NDB environment, respectively. + + In an effort to simplify things, we're working on deprecating + multiple drivers, and instead specifying different core behavior + based upon JDBC URL prefixes, so watch for + `[NonRegistering]ReplicationDriver' to eventually disappear, to be + replaced with `com.mysql.jdbc[NonRegistering]Driver' with the new + URL prefix. + + * `random': The driver will pick a random host for each request. + This tends to work better than round-robin, as the randomness will + somewhat account for spreading loads where requests vary in + response time, while round-robin can sometimes lead to overloaded + nodes if there are variations in response times across the + workload. + + * Give better error message when "streaming" result sets, and the + connection gets clobbered because of exceeding `net_write_timeout' + on the server. + + * New configuration property, `enableQueryTimeouts' (default `true'). + + When enabled, query timeouts set with + `Statement.setQueryTimeout()' use a shared `java.util.Timer' + instance for scheduling. Even if the timeout doesn't expire before + the query is processed, there will be memory used by the + `TimerTask' for the given timeout which won't be reclaimed until + the time the timeout would have expired if it hadn't been + cancelled by the driver. High-load environments might want to + consider disabling this functionality. (this configuration + property is part of the `maxPerformance' configuration bundle). + + * Added configuration property `useDynamicCharsetInfo'. If set to + `false' (the default), the driver will use a per-connection cache + of character set information queried from the server when + necessary, or when set to `true', use a built-in static mapping + that is more efficient, but isn't aware of custom character sets or + character sets implemented after the release of the JDBC driver. - * Parser in client-side prepared statements eats character following - '/' if it is not a multi-line comment. (Bug #28851) + *Note*: - * PreparedStatement.getMetaData() for statements containing leading - one-line comments is not returned correctly. + This only affects the `padCharsWithSpace' configuration property + and the `ResultSetMetaData.getColumnDisplayWidth()' method. - As part of this fix, we also overhauled detection of DML for - `executeQuery()' and *Note `SELECT': select.s for - `executeUpdate()' in plain and prepared statements to be aware of - the same types of comments. (Bug #28469) + * When `useLocalSessionState' is set to `true' and connected to a + MySQL-5.0 or later server, the JDBC driver will now determine + whether an actual `commit' or `rollback' statement needs to be + sent to the database when `Connection.commit()' or + `Connection.rollback()' is called. - -File: manual.info, Node: cj-news-5-0-6, Next: cj-news-5-0-5, Prev: cj-news-5-0-7, Up: cj-news-5-0-x + This is especially helpful for high-load situations with + connection pools that always call `Connection.rollback()' on + connection check-in/check-out because it avoids a round-trip to + the server. -D.5.2.3 Changes in MySQL Connector/J 5.0.6 (15 May 2007) -........................................................ + * Added configuration property `padCharsWithSpace' (defaults to + `false'). If set to `true', and a result set column has the *Note + `CHAR': char. type and the value does not fill the amount of + characters specified in the DDL for the column, the driver will + pad the remaining characters with space (for ANSI compliance). -*Functionality Added or Changed* + * `bestResponseTime': The driver will route the request to the host + that had the best response time for the previous transaction. * Added an experimental load-balanced connection designed for use with SQL nodes in a MySQL Cluster/NDB environment (This is not for @@ -253369,114 +257255,50 @@ host that had the best response time for the previous transaction. - * `bestResponseTime': The driver will route the request to the host - that had the best response time for the previous transaction. - - * Added configuration property `padCharsWithSpace' (defaults to - `false'). If set to `true', and a result set column has the *Note - `CHAR': char. type and the value does not fill the amount of - characters specified in the DDL for the column, the driver will - pad the remaining characters with space (for ANSI compliance). - - * When `useLocalSessionState' is set to `true' and connected to a - MySQL-5.0 or later server, the JDBC driver will now determine - whether an actual `commit' or `rollback' statement needs to be - sent to the database when `Connection.commit()' or - `Connection.rollback()' is called. - - This is especially helpful for high-load situations with - connection pools that always call `Connection.rollback()' on - connection check-in/check-out because it avoids a round-trip to - the server. - - * Added configuration property `useDynamicCharsetInfo'. If set to - `false' (the default), the driver will use a per-connection cache - of character set information queried from the server when - necessary, or when set to `true', use a built-in static mapping - that is more efficient, but isn't aware of custom character sets or - character sets implemented after the release of the JDBC driver. - - *Note*: - - This only affects the `padCharsWithSpace' configuration property - and the `ResultSetMetaData.getColumnDisplayWidth()' method. - - * New configuration property, `enableQueryTimeouts' (default `true'). - - When enabled, query timeouts set with - `Statement.setQueryTimeout()' use a shared `java.util.Timer' - instance for scheduling. Even if the timeout doesn't expire before - the query is processed, there will be memory used by the - `TimerTask' for the given timeout which won't be reclaimed until - the time the timeout would have expired if it hadn't been - cancelled by the driver. High-load environments might want to - consider disabling this functionality. (this configuration - property is part of the `maxPerformance' configuration bundle). +*Bugs Fixed* - * Give better error message when "streaming" result sets, and the - connection gets clobbered because of exceeding `net_write_timeout' - on the server. + * When the configuration property `useCursorFetch' was set to + `true', sometimes server would return new, more exact metadata + during the execution of the server-side prepared statement that + enables this functionality, which the driver ignored (using the + original metadata returned during `prepare()'), causing corrupt + reading of data due to type mismatch when the actual rows were + returned. (Bug #26173) - * `random': The driver will pick a random host for each request. - This tends to work better than round-robin, as the randomness will - somewhat account for spreading loads where requests vary in - response time, while round-robin can sometimes lead to overloaded - nodes if there are variations in response times across the - workload. + * Whitespace surrounding storage/size specifiers in stored procedure + parameters declaration causes `NumberFormatException' to be thrown + when calling stored procedure on JDK-1.5 or newer, as the Number + classes in JDK-1.5+ are whitespace intolerant. (Bug #25624) - * `com.mysql.jdbc.[NonRegistering]Driver' now understands URLs of - the format `jdbc:mysql:replication://' and - `jdbc:mysql:loadbalance://' which will create a - ReplicationConnection (exactly like when using - `[NonRegistering]ReplicationDriver') and an experimental - load-balanced connection designed for use with SQL nodes in a - MySQL Cluster/NDB environment, respectively. + * `Connection.getTransactionIsolation()' uses "`SHOW VARIABLES + LIKE'" which is very inefficient on MySQL-5.0+ servers. (Bug + #27655) - In an effort to simplify things, we're working on deprecating - multiple drivers, and instead specifying different core behavior - based upon JDBC URL prefixes, so watch for - `[NonRegistering]ReplicationDriver' to eventually disappear, to be - replaced with `com.mysql.jdbc[NonRegistering]Driver' with the new - URL prefix. + * `ResultSet.get*()' with a column index < 1 returns misleading + error message. (Bug #27317) - * Fixed issue where a failed-over connection would let an - application call `setReadOnly(false)', when that call should be - ignored until the connection is reconnected to a writable master - unless `failoverReadOnly' had been set to `false'. + * Fixed issue where calling `getGeneratedKeys()' on a prepared + statement after calling `execute()' didn't always return the + generated keys (`executeUpdate()' worked fine however). (Bug + #27655) - * Driver will now use `INSERT INTO ... VALUES (DEFAULT)'form of - statement for updatable result sets for `ResultSet.insertRow()', - rather than pre-populating the insert row with values from - `DatabaseMetaData.getColumns()'(which results in a *Note `SHOW - FULL COLUMNS': show-columns. on the server for every result set). - If an application requires access to the default values before - `insertRow()' has been called, the JDBC URL should be configured - with `populateInsertRowWithDefaultValues' set to `true'. + * `BIT(> 1)' is returned as `java.lang.String' from + `ResultSet.getObject()' rather than `byte[]'. (Bug #25328) - This fix specifically targets performance issues with ColdFusion - and the fact that it seems to ask for updatable result sets no - matter what the application does with them. + * `PreparedStatement' is not closed in `BlobFromLocator.getBytes()'. + (Bug #26592) - * More intelligent initial packet sizes for the "shared" packets are - used (512 bytes, rather than 16K), and initial packets used during - handshake are now sized appropriately as to not require - reallocation. + * Fast date/time parsing doesn't take into account `00:00:00' as a + legal value. (Bug #26789) -*Bugs Fixed* + * Client options not sent correctly when using SSL, leading to + stored procedures not being able to return results. Thanks to Don + Cohen for the bug report, testcase and patch. (Bug #25545) * More useful error messages are generated when the driver thinks a result set is not updatable. (Thanks to Ashley Martens for the patch). (Bug #28085) - * `Connection.getTransactionIsolation()' uses "`SHOW VARIABLES - LIKE'" which is very inefficient on MySQL-5.0+ servers. (Bug - #27655) - - * Fixed issue where calling `getGeneratedKeys()' on a prepared - statement after calling `execute()' didn't always return the - generated keys (`executeUpdate()' worked fine however). (Bug - #27655) - * `CALL /* ... */ SOME_PROC()' doesn't work. As a side effect of this fix, you can now use `/* */' and `#' comments when preparing statements using client-side prepared statement emulation. @@ -253493,50 +257315,21 @@ (Bug #27400) - * `ResultSet.get*()' with a column index < 1 returns misleading - error message. (Bug #27317) - - * Using `ResultSet.get*()' with a column index less than 1 returns a - misleading error message. (Bug #27317) - * Comments in DDL of stored procedures/functions confuse procedure parser, and thus metadata about them can not be created, leading to inability to retrieve said metadata, or execute procedures that have certain comments in them. (Bug #26959) - * Fast date/time parsing doesn't take into account `00:00:00' as a - legal value. (Bug #26789) - - * `PreparedStatement' is not closed in `BlobFromLocator.getBytes()'. - (Bug #26592) - - * When the configuration property `useCursorFetch' was set to - `true', sometimes server would return new, more exact metadata - during the execution of the server-side prepared statement that - enables this functionality, which the driver ignored (using the - original metadata returned during `prepare()'), causing corrupt - reading of data due to type mismatch when the actual rows were - returned. (Bug #26173) + * Using `ResultSet.get*()' with a column index less than 1 returns a + misleading error message. (Bug #27317) * `CallableStatements' with `OUT/INOUT' parameters that are "binary" (*Note `BLOB': blob, *Note `BIT': numeric-types, `(VAR)BINARY', `JAVA_OBJECT') have extra 7 bytes. (Bug #25715) - * Whitespace surrounding storage/size specifiers in stored procedure - parameters declaration causes `NumberFormatException' to be thrown - when calling stored procedure on JDK-1.5 or newer, as the Number - classes in JDK-1.5+ are whitespace intolerant. (Bug #25624) - - * Client options not sent correctly when using SSL, leading to - stored procedures not being able to return results. Thanks to Don - Cohen for the bug report, testcase and patch. (Bug #25545) - * `Statement.setMaxRows()' is not effective on result sets materialized from cursors. (Bug #25517) - * `BIT(> 1)' is returned as `java.lang.String' from - `ResultSet.getObject()' rather than `byte[]'. (Bug #25328) -  File: manual.info, Node: cj-news-5-0-5, Next: cj-news-5-0-4, Prev: cj-news-5-0-6, Up: cj-news-5-0-x @@ -253545,13 +257338,27 @@ *Functionality Added or Changed* - * Usage Advisor will now issue warnings for result sets with large - numbers of rows. You can configure the trigger value by using the - `resultSetSizeThreshold' parameter, which has a default value of - 100. + * We've added a new configuration option `treatUtilDateAsTimestamp', + which is `false' by default, as (1) We already had specific + behavior to treat java.util.Date as a java.sql.Timestamp because + it is useful to many folks, and (2) that behavior will very likely + be required for drivers JDBC-post-4.0. - * The `rewriteBatchedStatements' feature can now be used with - server-side prepared statements. + * Added configuration property `localSocketAddress', which is the + host name or IP address given to explicitly configure the + interface that the driver will bind the client side of the TCP/IP + connection to when connecting. + + * Fixed logging of XA commands sent to server, it is now + configurable using `logXaCommands' property (defaults to `false'). + + * Usage Advisor now detects empty results sets and does not report + on columns not referenced in those empty sets. + + * Improved speed of `datetime' parsing for ResultSets that come from + plain or nonserver-side prepared statements. You can enable old + implementation with `useFastDateParsing=false' as a configuration + parameter. * *Important change:* Due to a number of issues with the use of server-side prepared statements, Connector/J 5.0.5 has disabled @@ -253567,67 +257374,54 @@ The default value of this property is `false' (that is, Connector/J does not use server-side prepared statements). - * Improved speed of `datetime' parsing for ResultSets that come from - plain or nonserver-side prepared statements. You can enable old - implementation with `useFastDateParsing=false' as a configuration - parameter. - - * Usage Advisor now detects empty results sets and does not report - on columns not referenced in those empty sets. - - * Fixed logging of XA commands sent to server, it is now - configurable using `logXaCommands' property (defaults to `false'). - - * Added configuration property `localSocketAddress', which is the - host name or IP address given to explicitly configure the - interface that the driver will bind the client side of the TCP/IP - connection to when connecting. + * The `rewriteBatchedStatements' feature can now be used with + server-side prepared statements. - * We've added a new configuration option `treatUtilDateAsTimestamp', - which is `false' by default, as (1) We already had specific - behavior to treat java.util.Date as a java.sql.Timestamp because - it is useful to many folks, and (2) that behavior will very likely - be required for drivers JDBC-post-4.0. + * Usage Advisor will now issue warnings for result sets with large + numbers of rows. You can configure the trigger value by using the + `resultSetSizeThreshold' parameter, which has a default value of + 100. *Bugs Fixed* + * When using a server-side prepared statement the driver would send + timestamps to the server using nanoseconds instead of milliseconds. + (Bug #21438) + * Connection property `socketFactory' wasn't exposed using correctly named mutator/accessor, causing data source implementations that use JavaBean naming conventions to set properties to fail to set the property (and in the case of SJAS, fail silently when trying to set this parameter). (Bug #26326) - * A query execution which timed out did not always throw a - `MySQLTimeoutException'. (Bug #25836) + * `ParameterMetaData' throws `NullPointerException' when prepared + SQL has a syntax error. Added `generateSimpleParameterMetadata' + configuration property, which when set to `true' will generate + metadata reflecting *Note `VARCHAR': char. for every parameter (the + default is `false', which will cause an exception to be thrown if + no parameter metadata for the statement is actually available). + (Bug #21267) - * Storing a `java.util.Date' object in a *Note `BLOB': blob. column - would not be serialized correctly during `setObject'. (Bug #25787) + * Connector/J now returns a better error message when server doesn't + return enough information to determine stored procedure/function + parameter types. (Bug #24065) - * Timer instance used for `Statement.setQueryTimeout()' created - per-connection, rather than per-VM, causing memory leak. (Bug - #25514) + * When using the `rewriteBatchedStatements' connection option with + `PreparedState.executeBatch()' an internal memory leak would occur. + (Bug #25073) * `EscapeProcessor' gets confused by multiple backslashes. We now push the responsibility of syntax errors back on to the server for most escape sequences. (Bug #25399) - * `INOUT' parameters in `CallableStatements' get doubly-escaped. - (Bug #25379) - - * When using the `rewriteBatchedStatements' connection option with - `PreparedState.executeBatch()' an internal memory leak would occur. - (Bug #25073) + * Specifying `US-ASCII' as the character set in a connection to a + MySQL 4.1 or newer server does not map correctly. (Bug #24840) - * Fixed issue where field-level for metadata from `DatabaseMetaData' - when using `INFORMATION_SCHEMA' didn't have references to current - connections, sometimes leading to Null Pointer Exceptions (NPEs) - when introspecting them using `ResultSetMetaData'. (Bug #25073) + * `DatabaseMetaData.getSchemas()' doesn't return a `TABLE_CATALOG' + column. (Bug #23303) - * `StringUtils.indexOfIgnoreCaseRespectQuotes()' isn't - case-insensitive on the first character of the target. This bug - also affected `rewriteBatchedStatements' functionality when - prepared statements did not use uppercase for the `VALUES' clause. - (Bug #25047) + * `INOUT' parameters in `CallableStatements' get doubly-escaped. + (Bug #25379) * Client-side prepared statement parser gets confused by in-line comments `/*...*/' and therefore cannot rewrite batch statements @@ -253638,22 +257432,41 @@ part of multi-statement queries would cause an `SQLException' error, "Result is from UPDATE". (Bug #25009) - * Specifying `US-ASCII' as the character set in a connection to a - MySQL 4.1 or newer server does not map correctly. (Bug #24840) + * When using server-side prepared statements and timestamp columns, + value would be incorrectly populated (with nanoseconds, not + microseconds). (Bug #21438) + + * Some exceptions thrown out of `StandardSocketFactory' were + needlessly wrapped, obscuring their true cause, especially when + using socket timeouts. (Bug #21480) + + * `StringUtils.indexOfIgnoreCaseRespectQuotes()' isn't + case-insensitive on the first character of the target. This bug + also affected `rewriteBatchedStatements' functionality when + prepared statements did not use uppercase for the `VALUES' clause. + (Bug #25047) * Using `DatabaseMetaData.getSQLKeywords()' does not return a all of the of the reserved keywords for the current MySQL version. Current implementation returns the list of reserved words for MySQL 5.1, and does not distinguish between versions. (Bug #24794) - * Calling `Statement.cancel()' could result in a Null Pointer - Exception (NPE). (Bug #24721) + * A query execution which timed out did not always throw a + `MySQLTimeoutException'. (Bug #25836) + + * A connection error would occur when connecting to a MySQL server + with certain character sets. Some collations/character sets + reported as "unknown" (specifically `cias' variants of existing + character sets), and inability to override the detected server + character set. (Bug #23645) * Using `setFetchSize()' breaks prepared *Note `SHOW': show. and other commands. (Bug #24360) - * Calendars and timezones are now lazily instantiated when required. - (Bug #24351) + * Fixed issue where field-level for metadata from `DatabaseMetaData' + when using `INFORMATION_SCHEMA' didn't have references to current + connections, sometimes leading to Null Pointer Exceptions (NPEs) + when introspecting them using `ResultSetMetaData'. (Bug #25073) * Using *Note `DATETIME': datetime. columns would result in time shifts when `useServerPrepStmts' was true. This occurred due to @@ -253667,45 +257480,25 @@ switching to client-side prepared statements from server-side prepared statements. (Bug #24344) - * Connector/J now returns a better error message when server doesn't - return enough information to determine stored procedure/function - parameter types. (Bug #24065) - - * A connection error would occur when connecting to a MySQL server - with certain character sets. Some collations/character sets - reported as "unknown" (specifically `cias' variants of existing - character sets), and inability to override the detected server - character set. (Bug #23645) - - * Inconsistency between `getSchemas' and `INFORMATION_SCHEMA'. (Bug - #23304) - - * `DatabaseMetaData.getSchemas()' doesn't return a `TABLE_CATALOG' - column. (Bug #23303) - * When using a JDBC connection URL that is malformed, the `NonRegisteringDriver.getPropertyInfo' method will throw a Null Pointer Exception (NPE). (Bug #22628) - * Some exceptions thrown out of `StandardSocketFactory' were - needlessly wrapped, obscuring their true cause, especially when - using socket timeouts. (Bug #21480) + * Storing a `java.util.Date' object in a *Note `BLOB': blob. column + would not be serialized correctly during `setObject'. (Bug #25787) - * When using a server-side prepared statement the driver would send - timestamps to the server using nanoseconds instead of milliseconds. - (Bug #21438) + * Inconsistency between `getSchemas' and `INFORMATION_SCHEMA'. (Bug + #23304) - * When using server-side prepared statements and timestamp columns, - value would be incorrectly populated (with nanoseconds, not - microseconds). (Bug #21438) + * Calendars and timezones are now lazily instantiated when required. + (Bug #24351) - * `ParameterMetaData' throws `NullPointerException' when prepared - SQL has a syntax error. Added `generateSimpleParameterMetadata' - configuration property, which when set to `true' will generate - metadata reflecting *Note `VARCHAR': char. for every parameter (the - default is `false', which will cause an exception to be thrown if - no parameter metadata for the statement is actually available). - (Bug #21267) + * Timer instance used for `Statement.setQueryTimeout()' created + per-connection, rather than per-VM, causing memory leak. (Bug + #25514) + + * Calling `Statement.cancel()' could result in a Null Pointer + Exception (NPE). (Bug #24721) * Fixed an issue where `XADataSources' couldn't be bound into JNDI, as the `DataSourceFactory' didn't know how to create instances of @@ -253713,30 +257506,32 @@ *Other Changes* - * Avoid static synchronized code in JVM class libraries for dealing - with default timezones. - - * Performance enhancement of initial character set configuration, - driver will only send commands required to configure connection - character set session variables if the current values on the - server do not match what is required. + * When using cached metadata, skip field-level metadata packets + coming from the server, rather than reading them and discarding + them without creating `com.mysql.jdbc.Field' instances. - * Re-worked stored procedure parameter parser to be more robust. - Driver no longer requires `BEGIN' in stored procedure definition, - but does have requirement that if a stored function begins with a - label directly after the "returns" clause, that the label is not a - quoted identifier. + * Use a `java.util.TreeMap' to map column names to ordinal indexes + for `ResultSet.findColumn()' instead of a HashMap. This enables us + to have case-insensitive lookups (required by the JDBC + specification) without resorting to the many transient object + instances needed to support this requirement with a normal + `HashMap' with either case-adjusted keys, or case-insensitive + keys. (In the worst case scenario for lookups of a 1000 column + result set, TreeMaps are about half as fast wall-clock time as a + HashMap, however in normal applications their use gives many + orders of magnitude reduction in transient object instance + creation which pays off later for CPU usage in garbage collection). - * Throw exceptions encountered during timeout to thread calling - `Statement.execute*()', rather than `RuntimeException'. + * Fixed cases where `ServerPreparedStatements' weren't using cached + metadata when `cacheResultSetMetadata=true' was used. - * Changed cached result set metadata (when using - `cacheResultSetMetadata=true') to be cached per-connection rather - than per-statement as previously implemented. + * Take `localSocketAddress' property into account when creating + instances of `CommunicationsException' when the underlying + exception is a `java.net.BindException', so that a friendlier + error message is given with a little internal diagnostics. - * Reverted back to internal character conversion routines for - single-byte character sets, as the ones internal to the JVM are - using much more CPU time than our internal implementation. + * Fixed some Null Pointer Exceptions (NPEs) when cached metadata was + used with `UpdatableResultSets'. * When extracting foreign key information from *Note `SHOW CREATE TABLE': show-create-table. in `DatabaseMetaData', ignore @@ -253744,32 +257539,30 @@ for cross-reference or imported-key requests, as the list of tables is generated first, then iterated). - * Fixed some Null Pointer Exceptions (NPEs) when cached metadata was - used with `UpdatableResultSets'. + * Reverted back to internal character conversion routines for + single-byte character sets, as the ones internal to the JVM are + using much more CPU time than our internal implementation. - * Take `localSocketAddress' property into account when creating - instances of `CommunicationsException' when the underlying - exception is a `java.net.BindException', so that a friendlier - error message is given with a little internal diagnostics. + * Changed cached result set metadata (when using + `cacheResultSetMetadata=true') to be cached per-connection rather + than per-statement as previously implemented. - * Fixed cases where `ServerPreparedStatements' weren't using cached - metadata when `cacheResultSetMetadata=true' was used. + * Throw exceptions encountered during timeout to thread calling + `Statement.execute*()', rather than `RuntimeException'. - * Use a `java.util.TreeMap' to map column names to ordinal indexes - for `ResultSet.findColumn()' instead of a HashMap. This enables us - to have case-insensitive lookups (required by the JDBC - specification) without resorting to the many transient object - instances needed to support this requirement with a normal - `HashMap' with either case-adjusted keys, or case-insensitive - keys. (In the worst case scenario for lookups of a 1000 column - result set, TreeMaps are about half as fast wall-clock time as a - HashMap, however in normal applications their use gives many - orders of magnitude reduction in transient object instance - creation which pays off later for CPU usage in garbage collection). + * Re-worked stored procedure parameter parser to be more robust. + Driver no longer requires `BEGIN' in stored procedure definition, + but does have requirement that if a stored function begins with a + label directly after the "returns" clause, that the label is not a + quoted identifier. - * When using cached metadata, skip field-level metadata packets - coming from the server, rather than reading them and discarding - them without creating `com.mysql.jdbc.Field' instances. + * Performance enhancement of initial character set configuration, + driver will only send commands required to configure connection + character set session variables if the current values on the + server do not match what is required. + + * Avoid static synchronized code in JVM class libraries for dealing + with default timezones.  File: manual.info, Node: cj-news-5-0-4, Next: cj-news-5-0-3, Prev: cj-news-5-0-5, Up: cj-news-5-0-x @@ -253779,35 +257572,35 @@ *Bugs Fixed* - * DBMD.getColumns() does not return expected COLUMN_SIZE for the SET - type, now returns length of largest possible set disregarding - whitespace or the "," delimitters to be consistent with the ODBC - driver. (Bug #22613) + * Driver issues truncation on write exception when it shouldn't (due + to sending big decimal incorrectly to server with server-side + prepared statement). (Bug #22290) - * Added new _ci collations to CharsetMapping - utf8_unicode_ci not - working. (Bug #22456) + * Newlines causing whitespace to span confuse procedure parser when + getting parameter metadata for stored procedures. (Bug #22024) * Driver was using milliseconds for Statement.setQueryTimeout() when specification says argument is to be in seconds. (Bug #22359) + * Added new _ci collations to CharsetMapping - utf8_unicode_ci not + working. (Bug #22456) + * Workaround for server crash when calling stored procedures using a server-side prepared statement (driver now detects prepare(stored procedure) and substitutes client-side prepared statement). (Bug #22297) - * Driver issues truncation on write exception when it shouldn't (due - to sending big decimal incorrectly to server with server-side - prepared statement). (Bug #22290) - - * Newlines causing whitespace to span confuse procedure parser when - getting parameter metadata for stored procedures. (Bug #22024) - * When using information_schema for metadata, COLUMN_SIZE for getColumns() is not clamped to range of java.lang.Integer as is the case when not using information_schema, thus leading to a truncation exception that isn't present when not using information_schema. (Bug #21544) + * DBMD.getColumns() does not return expected COLUMN_SIZE for the SET + type, now returns length of largest possible set disregarding + whitespace or the "," delimiters to be consistent with the ODBC + driver. (Bug #22613) + * Column names don't match metadata in cases where server doesn't return original column names (column functions) thus breaking compatibility with applications that expect 1-to-1 mappings @@ -253815,23 +257608,23 @@ manifests itself as "Can't find column (")" exceptions. (Bug #21379) - * Driver now sends numeric 1 or 0 for client-prepared statement - `setBoolean()' calls instead of '1' or '0'. - - * Fixed configuration property `jdbcCompliantTruncation' was not - being used for reads of result set values. + * Driver now supports `{call sp}' (without "()" if procedure has no + arguments). * DatabaseMetaData correctly reports `true' for `supportsCatalog*()' methods. - * Driver now supports `{call sp}' (without "()" if procedure has no - arguments). + * Fixed configuration property `jdbcCompliantTruncation' was not + being used for reads of result set values. + + * Driver now sends numeric 1 or 0 for client-prepared statement + `setBoolean()' calls instead of '1' or '0'.  File: manual.info, Node: cj-news-5-0-3, Next: cj-news-5-0-2, Prev: cj-news-5-0-4, Up: cj-news-5-0-x -D.5.2.6 Changes in MySQL Connector/J 5.0.3 (26 July 2006 beta) -.............................................................. +D.5.2.6 Changes in MySQL Connector/J 5.0.3 (26 July 2006, beta) +............................................................... *Functionality Added or Changed* @@ -253884,13 +257677,6 @@ always maintain thread affinity, or have it as a configuration option). (Bug #20242) - * Better caching of character set converters (per-connection) to - remove a bottleneck for multibyte character sets. (Bug #20242) - - * Fixed `ConnectionProperties' (and thus some subclasses) are not - serializable, even though some J2EE containers expect them to be. - (Bug #19169) - * Fixed driver fails on non-ASCII platforms. The driver was assuming that the platform character set would be a superset of MySQL's `latin1' when doing the handshake for authentication, and when @@ -253902,6 +257688,13 @@ * Fixed can't use `XAConnection' for local transactions when no global transaction is in progress. (Bug #17401) + * Better caching of character set converters (per-connection) to + remove a bottleneck for multibyte character sets. (Bug #20242) + + * Fixed `ConnectionProperties' (and thus some subclasses) are not + serializable, even though some J2EE containers expect them to be. + (Bug #19169) +  File: manual.info, Node: cj-news-5-0-1, Next: cj-news-5-0-0, Prev: cj-news-5-0-2, Up: cj-news-5-0-x @@ -253910,7 +257703,7 @@ Not released due to a packaging error -This section has no changelog entries. +Version 5.0.1 has no changelog entries.  File: manual.info, Node: cj-news-5-0-0, Prev: cj-news-5-0-1, Up: cj-news-5-0-x @@ -253965,21 +257758,30 @@ actually the type, and it can be distinguished (MySQL-4.1 and newer). (Bug #14729) - * Attempt detection of the MySQL type *Note `BINARY': - binary-varbinary. (it is an alias, so this isn't always reliable), - and use the `java.sql.Types.BINARY' type mapping for it. + * Add one level of indirection of internal representation of + `CallableStatement' parameter metadata to avoid class not found + issues on JDK-1.3 for `ParameterMetadata' interface (which doesn't + exist prior to JDBC-3.0). - * Added unit tests for `XADatasource', as well as friendlier - exceptions for XA failures compared to the "stock" `XAException' - (which has no messages). + * `PreparedStatement.setString()' didn't work correctly when + `sql_mode' on server contained `NO_BACKSLASH_ESCAPES' and no + characters that needed escaping were present in the string. - * If the connection `useTimezone' is set to `true', then also - respect time zone conversions in escape-processed string literals - (for example, `"{ts ...}"' and `"{t ...}"'). + * Setting `useJDBCCompliantTimezoneShift=true' (it is not the + default) causes the driver to use GMT for _all_ *Note `TIMESTAMP': + datetime./*Note `DATETIME': datetime. time zones, and the current + VM time zone for any other type that refers to time zones. This + feature can not be used when `useTimezone=true' to convert between + server and client time zones. - * Do not permit `.setAutoCommit(true)', or `.commit()' or - `.rollback()' on an XA-managed connection as per the JDBC - specification. + * Return original column name for `RSMD.getColumnName()' if the + column was aliased, alias name for `.getColumnLabel()' (if + aliased), and original table name for `.getTableName()'. Note this + only works for MySQL-4.1 and newer, as older servers don't make + this information available to clients. + + * Moved `-bin-g.jar' file into separate `debug' subdirectory to + avoid confusion. * `XADataSource' implemented (ported from 3.2 branch which won't be released as a product). Use @@ -253987,30 +257789,21 @@ datasource class name in your application server to utilize XA transactions in MySQL-5.0.10 and newer. - * Moved `-bin-g.jar' file into separate `debug' subdirectory to - avoid confusion. - - * Return original column name for `RSMD.getColumnName()' if the - column was aliased, alias name for `.getColumnLabel()' (if - aliased), and original table name for `.getTableName()'. Note this - only works for MySQL-4.1 and newer, as older servers don't make - this information available to clients. + * Do not permit `.setAutoCommit(true)', or `.commit()' or + `.rollback()' on an XA-managed connection as per the JDBC + specification. - * Setting `useJDBCCompliantTimezoneShift=true' (it is not the - default) causes the driver to use GMT for _all_ *Note `TIMESTAMP': - datetime./*Note `DATETIME': datetime. time zones, and the current - VM time zone for any other type that refers to time zones. This - feature can not be used when `useTimezone=true' to convert between - server and client time zones. + * If the connection `useTimezone' is set to `true', then also + respect time zone conversions in escape-processed string literals + (for example, `"{ts ...}"' and `"{t ...}"'). - * `PreparedStatement.setString()' didn't work correctly when - `sql_mode' on server contained `NO_BACKSLASH_ESCAPES' and no - characters that needed escaping were present in the string. + * Added unit tests for `XADatasource', as well as friendlier + exceptions for XA failures compared to the "stock" `XAException' + (which has no messages). - * Add one level of indirection of internal representation of - `CallableStatement' parameter metadata to avoid class not found - issues on JDK-1.3 for `ParameterMetadata' interface (which doesn't - exist prior to JDBC-3.0). + * Attempt detection of the MySQL type *Note `BINARY': + binary-varbinary. (it is an alias, so this isn't always reliable), + and use the `java.sql.Types.BINARY' type mapping for it.  File: manual.info, Node: cj-news-3-1-x, Next: cj-news-3-0-x, Prev: cj-news-5-0-x, Up: cj-news @@ -254034,8 +257827,8 @@ * cj-news-3-1-4:: Changes in MySQL Connector/J 3.1.4 (04 September 2004) * cj-news-3-1-3:: Changes in MySQL Connector/J 3.1.3 (07 July 2004) * cj-news-3-1-2:: Changes in MySQL Connector/J 3.1.2 (09 June 2004) -* cj-news-3-1-1:: Changes in MySQL Connector/J 3.1.1 (14 February 2004 alpha) -* cj-news-3-1-0:: Changes in MySQL Connector/J 3.1.0 (18 February 2003 alpha) +* cj-news-3-1-1:: Changes in MySQL Connector/J 3.1.1 (14 February 2004, alpha) +* cj-news-3-1-0:: Changes in MySQL Connector/J 3.1.0 (18 February 2003, alpha)  File: manual.info, Node: cj-news-3-1-15, Next: cj-news-3-1-14, Prev: cj-news-3-1-x, Up: cj-news-3-1-x @@ -254075,6 +257868,14 @@ NullPointerExceptions when it is required to check this property. (Bug #22290) + * Fixed Updatable result set that contains a BIT column fails when + server-side prepared statements are used. (Bug #20485) + + * Escape of quotation marks in client-side prepared statements + parsing not respected. Patch covers more than bug report, + including NO_BACKSLASH_ESCAPES being set, and stacked quote + characters forms of escaping (that is, " or ""). (Bug #20888) + * Driver now sends numeric 1 or 0 for client-prepared statement setBoolean() calls instead of '1' or '0'. (Bug #22290) @@ -254086,6 +257887,8 @@ to sending big decimal incorrectly to server with server-side prepared statement). (Bug #22290) + * ResultSet.getSomeInteger() doesn't work for BIT(>1). (Bug #21062) + * Fixed bug when calling stored functions, where parameters weren't numbered correctly (first parameter is now the return value, subsequent parameters if specified start at index "2"). (Bug @@ -254095,24 +257898,11 @@ explicitly if you want to use a logger other than one that logs to STDERR. (Bug #21207) - * DDriver throws NPE when tracing prepared statements that have been - closed (in asSQL()). (Bug #21207) - - * ResultSet.getSomeInteger() doesn't work for BIT(>1). (Bug #21062) - - * Escape of quotation marks in client-side prepared statements - parsing not respected. Patch covers more than bug report, - including NO_BACKSLASH_ESCAPES being set, and stacked quote - characters forms of escaping (that is, " or ""). (Bug #20888) - * Fixed can't pool server-side prepared statements, exception raised when re-using them. (Bug #20687) - * Fixed Updatable result set that contains a BIT column fails when - server-side prepared statements are used. (Bug #20485) - - * Fixed updatable result set throws ClassCastException when there is - row data and moveToInsertRow() is called. (Bug #20479) + * DDriver throws NPE when tracing prepared statements that have been + closed (in asSQL()). (Bug #21207) * Fixed ResultSet.getShort() for UNSIGNED TINYINT returns incorrect values when using server-side prepared statements. (Bug #20306) @@ -254120,26 +257910,29 @@ * ReplicationDriver does not always round-robin load balance depending on URL used for slaves list. (Bug #19993) - * Fixed calling toString() on ResultSetMetaData for driver-generated - (that is, from DatabaseMetaData method calls, or from - getGeneratedKeys()) result sets would raise a NullPointerException. - (Bug #19993) - - * Connection fails to localhost when using timeout and IPv6 is - configured. (Bug #19726) - - * ResultSet.getFloatFromString() can't retrieve values near - Float.MIN/MAX_VALUE. (Bug #18880) - * `DatabaseMetaData.getTables()' or `getColumns()' with a bad catalog parameter threw an exception rather than return an empty result set (as required by the specification). (Bug #18258) * Fixed memory leak with profileSQL=true. (Bug #16987) + * Connection fails to localhost when using timeout and IPv6 is + configured. (Bug #19726) + + * Fixed updatable result set throws ClassCastException when there is + row data and moveToInsertRow() is called. (Bug #20479) + + * Fixed calling toString() on ResultSetMetaData for driver-generated + (that is, from DatabaseMetaData method calls, or from + getGeneratedKeys()) result sets would raise a NullPointerException. + (Bug #19993) + * Fixed NullPointerException in MysqlDataSourceFactory due to Reference containing RefAddrs with null content. (Bug #16791) + * ResultSet.getFloatFromString() can't retrieve values near + Float.MIN/MAX_VALUE. (Bug #18880) +  File: manual.info, Node: cj-news-3-1-13, Next: cj-news-3-1-12, Prev: cj-news-3-1-14, Up: cj-news-3-1-x @@ -254148,65 +257941,60 @@ *Bugs Fixed* - * `Fixed PreparedStatement.setObject(int, Object, int)' doesn't - respect scale of BigDecimals. (Bug #19615) - - * Fixed `ResultSet.wasNull()' returns incorrect value when - extracting native string from server-side prepared statement - generated result set. (Bug #19282) - - * Fixed invalid classname returned for - `ResultSetMetaData.getColumnClassName()' for `BIGINT type'. (Bug - #19282) + * Added performance feature, re-writing of batched executes for + `Statement.executeBatch()' (for all DML statements) and + `PreparedStatement.executeBatch()' (for INSERTs with VALUE clauses + only). Enable by using "rewriteBatchedStatements=true" in your + JDBC URL. (Bug #18041) - * Fixed case where driver wasn't reading server status correctly - when fetching server-side prepared statement rows, which in some - cases could cause warning counts to be off, or multiple result - sets to not be read off the wire. (Bug #19282) + * `DBMD.getColumns()' returns wrong type for *Note `BIT': + numeric-types. (Bug #15854) - * Fixed data truncation and `getWarnings()' only returns last - warning in set. (Bug #18740) + * `PreparedStatement.setObject()' serializes `BigInteger' as object, + rather than sending as numeric value (and is thus not + complementary to `.getObject()' on an `UNSIGNED LONG' type). (Bug + #15383) * Fixed aliased column names where length of name > 251 are corrupted. (Bug #18554) + * Exception thrown for new decimal type when using updatable result + sets. (Bug #14609) + * Improved performance of retrieving `BigDecimal', `Time', `Timestamp' and `Date' values from server-side prepared statements by creating fewer short-lived instances of `Strings' when the native type is not an exact match for the requested type. (Bug #18496) - * Added performance feature, re-writing of batched executes for - `Statement.executeBatch()' (for all DML statements) and - `PreparedStatement.executeBatch()' (for INSERTs with VALUE clauses - only). Enable by using "rewriteBatchedStatements=true" in your - JDBC URL. (Bug #18041) - - * Fixed issue where server-side prepared statements don't cause - truncation exceptions to be thrown when truncation happens. (Bug - #18041) - - * Fixed `CallableStatement.registerOutParameter()' not working when - some parameters pre-populated. Still waiting for feedback from - JDBC experts group to determine what correct parameter count from - `getMetaData()' should be, however. (Bug #17898) - * Fixed calling `clearParameters()' on a closed prepared statement causes NPE. (Bug #17587) + * Driver now aware of fix for *Note `BIT': numeric-types. type + metadata that went into MySQL-5.0.21 for server not reporting + length consistently . (Bug #13601) + + * No "dos" character set in MySQL > 4.1.0. (Bug #15544) + * Map "latin1" on MySQL server to CP1252 for MySQL > 4.1.0. (Bug #17587) - * Added additional accessor and mutator methods on - ConnectionProperties so that DataSource users can use same naming - as regular URL properties. (Bug #17587) + * Fixed `CallableStatement.registerOutParameter()' not working when + some parameters pre-populated. Still waiting for feedback from + JDBC experts group to determine what correct parameter count from + `getMetaData()' should be, however. (Bug #17898) * Fixed `ResultSet.wasNull()' not always reset correctly for booleans when done using conversion for server-side prepared statements. (Bug #17450) - * Fixed `Statement.getGeneratedKeys()' throws `NullPointerException' - when no query has been processed. (Bug #17099) + * Added support for Apache Commons logging, use + "com.mysql.jdbc.log.CommonsLogger" as the value for the "logger" + configuration property. (Bug #13469) + + * Fixed `ResultSet.wasNull()' returns incorrect value when + extracting native string from server-side prepared statement + generated result set. (Bug #19282) * Fixed updatable result set doesn't return `AUTO_INCREMENT' values for `insertRow()' when multiple column primary keys are used. (the @@ -254214,42 +258002,23 @@ keys and an autoincrement value > 0 instead of a straightforward `isAutoIncrement()' check). (Bug #16841) - * `DBMD.getColumns()' returns wrong type for *Note `BIT': - numeric-types. (Bug #15854) + * Fixed invalid classname returned for + `ResultSetMetaData.getColumnClassName()' for `BIGINT type'. (Bug + #19282) - * `lib-nodist' directory missing from package breaks out-of-box - build. (Bug #15676) + * `INOUT' parameter does not store `IN' value. (Bug #15464) * Fixed issue with `ReplicationConnection' incorrectly copying state, doesn't transfer connection context correctly when transitioning between the same read-only states. (Bug #15570) - * No "dos" character set in MySQL > 4.1.0. (Bug #15544) - - * `INOUT' parameter does not store `IN' value. (Bug #15464) - - * `PreparedStatement.setObject()' serializes `BigInteger' as object, - rather than sending as numeric value (and is thus not - complementary to `.getObject()' on an `UNSIGNED LONG' type). (Bug - #15383) - - * Fixed issue where driver was unable to initialize character set - mapping tables. Removed reliance on `.properties' files to hold - this information, as it turns out to be too problematic to code - around class loader hierarchies that change depending on how an - application is deployed. Moved information back into the - `CharsetMapping' class. (Bug #14938) - - * Exception thrown for new decimal type when using updatable result - sets. (Bug #14609) - - * Driver now aware of fix for *Note `BIT': numeric-types. type - metadata that went into MySQL-5.0.21 for server not reporting - length consistently . (Bug #13601) + * Fixed case where driver wasn't reading server status correctly + when fetching server-side prepared statement rows, which in some + cases could cause warning counts to be off, or multiple result + sets to not be read off the wire. (Bug #19282) - * Added support for Apache Commons logging, use - "com.mysql.jdbc.log.CommonsLogger" as the value for the "logger" - configuration property. (Bug #13469) + * `Fixed PreparedStatement.setObject(int, Object, int)' doesn't + respect scale of BigDecimals. (Bug #19615) * Fixed driver trying to call methods that don't exist on older and newer versions of Log4j. The fix is not trying to auto-detect @@ -254261,12 +258030,36 @@ Log4J usage, or alternatively use the new "CommonsLogger" class to take care of this. (Bug #13469) + * Fixed `Statement.getGeneratedKeys()' throws `NullPointerException' + when no query has been processed. (Bug #17099) + + * `lib-nodist' directory missing from package breaks out-of-box + build. (Bug #15676) + + * Added additional accessor and mutator methods on + ConnectionProperties so that DataSource users can use same naming + as regular URL properties. (Bug #17587) + * LogFactory now prepends `com.mysql.jdbc.log' to the log class name if it cannot be found as specified. This enables you to use `short names' for the built-in log factories, for example, `logger=CommonsLogger' instead of `logger=com.mysql.jdbc.log.CommonsLogger'. (Bug #13469) + * Fixed data truncation and `getWarnings()' only returns last + warning in set. (Bug #18740) + + * Fixed issue where server-side prepared statements don't cause + truncation exceptions to be thrown when truncation happens. (Bug + #18041) + + * Fixed issue where driver was unable to initialize character set + mapping tables. Removed reliance on `.properties' files to hold + this information, as it turns out to be too problematic to code + around class loader hierarchies that change depending on how an + application is deployed. Moved information back into the + `CharsetMapping' class. (Bug #14938) + * `ResultSet.getShort()' for `UNSIGNED TINYINT' returned wrong values. (Bug #11874) @@ -254278,38 +258071,40 @@ *Bugs Fixed* - * Process escape tokens in `Connection.prepareStatement(...)'. You - can disable this behavior by setting the JDBC URL configuration - property `processEscapeCodesForPrepStmts' to `false'. (Bug #15141) - - * Usage advisor complains about unreferenced columns, even though - they've been referenced. (Bug #15065) - * Driver incorrectly closes streams passed as arguments to `PreparedStatements'. Reverts to legacy behavior by setting the JDBC configuration property `autoClosePStmtStreams' to `true' (also included in the 3-0-Compat configuration `bundle'). (Bug #15024) + * `storesMixedCaseIdentifiers()' returns `false' (Bug #14562) + + * `storesLowerCaseIdentifiers()' returns `true' (Bug #14562) + * Deadlock while closing server-side prepared statements from multiple threads sharing one connection. (Bug #14972) - * Unable to initialize character set mapping tables (due to J2EE - classloader differences). (Bug #14938) - - * Escape processor replaces quote character in quoted string with - string delimiter. (Bug #14909) + * OpenOffice expects `DBMD.supportsIntegrityEnhancementFacility()' + to return `true' if foreign keys are supported by the datasource, + even though this method also covers support for check constraints, + which MySQL _doesn't_ have. Setting the configuration property + `overrideSupportsIntegrityEnhancementFacility' to `true' causes + the driver to return `true' for this method. (Bug #12975) - * `DatabaseMetaData.getColumns()' doesn't return `TABLE_NAME' - correctly. (Bug #14815) + * `storesMixedCaseQuotedIdentifiers()' returns `false' (Bug #14562) - * `storesMixedCaseIdentifiers()' returns `false' (Bug #14562) + * `storesMixedCaseQuotedIdentifiers()' returns `true' (Bug #14562) - * `storesLowerCaseIdentifiers()' returns `true' (Bug #14562) + * `maxQuerySizeToLog' is not respected. Added logging of bound + values for `execute()' phase of server-side prepared statements + when `profileSQL=true' as well. (Bug #13048) - * `storesMixedCaseQuotedIdentifiers()' returns `false' (Bug #14562) + * Process escape tokens in `Connection.prepareStatement(...)'. You + can disable this behavior by setting the JDBC URL configuration + property `processEscapeCodesForPrepStmts' to `false'. (Bug #15141) - * `storesMixedCaseQuotedIdentifiers()' returns `true' (Bug #14562) + * `DatabaseMetaData.getColumns()' doesn't return `TABLE_NAME' + correctly. (Bug #14815) * If `lower_case_table_names=0' (on server): @@ -254347,6 +258142,8 @@ (Bug #14562) + * Extraneous sleep on `autoReconnect'. (Bug #13775) + * `storesLowerCaseQuotedIdentifiers()' returns `true' (Bug #14562) * Fixed `DatabaseMetaData.stores*Identifiers()': @@ -254381,55 +258178,51 @@ (Bug #14562) + * Reconnect during middle of `executeBatch()' should not occur if + `autoReconnect' is enabled. (Bug #13255) + * `storesMixedCaseIdentifiers()' returns `true' (Bug #14562) + * Usage advisor complains about unreferenced columns, even though + they've been referenced. (Bug #15065) + * `storesLowerCaseQuotedIdentifiers()' returns `false' (Bug #14562) * Java type conversion may be incorrect for *Note `MEDIUMINT': numeric-types. (Bug #14562) + * Added `com.mysql.jdbc.testsuite.url.default' system property to + set default JDBC url for testsuite (to speed up bug resolution + when I'm working in Eclipse). (Bug #12975) + + * Unable to initialize character set mapping tables (due to J2EE + classloader differences). (Bug #14938) + * `storesLowerCaseIdentifiers()' returns `false' (Bug #14562) + * Escape processor replaces quote character in quoted string with + string delimiter. (Bug #14909) + * Added configuration property `useGmtMillisForDatetimes' which when set to `true' causes `ResultSet.getDate()', `.getTimestamp()' to return correct millis-since GMT when `.getTime()' is called on the return value (currently default is `false' for legacy behavior). (Bug #14562) - * Extraneous sleep on `autoReconnect'. (Bug #13775) - - * Reconnect during middle of `executeBatch()' should not occur if - `autoReconnect' is enabled. (Bug #13255) - - * `maxQuerySizeToLog' is not respected. Added logging of bound - values for `execute()' phase of server-side prepared statements - when `profileSQL=true' as well. (Bug #13048) - - * OpenOffice expects `DBMD.supportsIntegrityEnhancementFacility()' - to return `true' if foreign keys are supported by the datasource, - even though this method also covers support for check constraints, - which MySQL _doesn't_ have. Setting the configuration property - `overrideSupportsIntegrityEnhancementFacility' to `true' causes - the driver to return `true' for this method. (Bug #12975) - - * Added `com.mysql.jdbc.testsuite.url.default' system property to - set default JDBC url for testsuite (to speed up bug resolution - when I'm working in Eclipse). (Bug #12975) - * `logSlowQueries' should give better info. (Bug #12230) * Don't increase timeout for failover/reconnect. (Bug #6577) - * Fixed client-side prepared statement bug with embedded `?' - characters inside quoted identifiers (it was recognized as a - placeholder, when it was not). + * Fall back to platform-encoding for `URLDecoder.decode()' when + parsing driver URL properties if the platform doesn't have a + two-argument version of this method. * Do not permit `executeBatch()' for `CallableStatements' with registered `OUT'/`INOUT' parameters (JDBC compliance). - * Fall back to platform-encoding for `URLDecoder.decode()' when - parsing driver URL properties if the platform doesn't have a - two-argument version of this method. + * Fixed client-side prepared statement bug with embedded `?' + characters inside quoted identifiers (it was recognized as a + placeholder, when it was not).  File: manual.info, Node: cj-news-3-1-11, Next: cj-news-3-1-10, Prev: cj-news-3-1-12, Up: cj-news-3-1-x @@ -254439,72 +258232,6 @@ *Bugs Fixed* - * The configuration property `sessionVariables' now permits you to - specify variables that start with the ``@'' sign. (Bug #13453) - - * URL configuration parameters do not permit ``&'' or ``='' in their - values. The JDBC driver now parses configuration parameters as if - they are encoded using the application/x-www-form-urlencoded - format as specified by `java.net.URLDecoder' - (`http://java.sun.com/j2se/1.5.0/docs/api/java/net/URLDecoder.html'). - - If the ``%'' character is present in a configuration property, it - must now be represented as `%25', which is the encoded form of - ``%'' when using application/x-www-form-urlencoded encoding. (Bug - #13453) - - * Workaround for Bug #13374: `ResultSet.getStatement()' on closed - result set returns `NULL' (as per JDBC 4.0 spec, but not - backward-compatible). Set the connection property - `retainStatementAfterResultSetClose' to `true' to be able to - retrieve a `ResultSet''s statement after the `ResultSet' has been - closed using `.getStatement()' (the default is `false', to be - JDBC-compliant and to reduce the chance that code using JDBC leaks - `Statement' instances). (Bug #13277) - - * `ResultSetMetaData' from `Statement.getGeneratedKeys()' caused a - `NullPointerException' to be thrown whenever a method that - required a connection reference was called. (Bug #13277) - - * Backport of `VAR[BINARY|CHAR] [BINARY]' types detection from 5.0 - branch. (Bug #13277) - - * Fixed `NullPointerException' when converting `catalog' parameter - in many `DatabaseMetaDataMethods' to `byte[]'s (for the result - set) when the parameter is `null'. (`null' is not technically - permitted by the JDBC specification, but we have historically - permitted it). (Bug #13277) - - * Backport of `Field' class, - `ResultSetMetaData.getColumnClassName()', and - `ResultSet.getObject(int)' changes from 5.0 branch to fix behavior - surrounding `VARCHAR BINARY'/*Note `VARBINARY': binary-varbinary. - and related types. (Bug #13277) - - * Read response in `MysqlIO.sendFileToServer()', even if the local - file can't be opened, otherwise next query issued will fail, - because it is reading the response to the empty *Note `LOAD DATA - INFILE': load-data. packet sent to the server. (Bug #13277) - - * When `gatherPerfMetrics' is enabled for servers older than 4.1.0, - a `NullPointerException' is thrown from the constructor of - `ResultSet' if the query doesn't use any tables. (Bug #13043) - - * `java.sql.Types.OTHER' returned for *Note `BINARY': - binary-varbinary. and *Note `VARBINARY': binary-varbinary. columns - when using `DatabaseMetaData.getColumns()'. (Bug #12970) - - * `ServerPreparedStatement.getBinding()' now checks if the statement - is closed before attempting to reference the list of parameter - bindings, to avoid throwing a `NullPointerException'. (Bug #12970) - - * Tokenizer for `=' in URL properties was causing - `sessionVariables=....' to be parameterized incorrectly. (Bug - #12753) - - * `cp1251' incorrectly mapped to `win1251' for servers newer than - 4.0.x. (Bug #12752) - * `getExportedKeys()' (Bug #12541) * Specifying a catalog works as stated in the API docs. (Bug #12541) @@ -254514,6 +258241,10 @@ set `nullCatalogMeansCurrent=true' in your JDBC URL properties. (Bug #12541) + * Tokenizer for `=' in URL properties was causing + `sessionVariables=....' to be parameterized incorrectly. (Bug + #12753) + * `getIndexInfo()' (Bug #12541) * `getProcedures()' (and thus indirectly `getProcedureColumns()') @@ -254527,10 +258258,37 @@ * `getCrossReference()' (Bug #12541) + * The configuration property `sessionVariables' now permits you to + specify variables that start with the ``@'' sign. (Bug #13453) + * Added `Connection.isMasterConnection()' for clients to be able to determine if a multi-host master/slave connection is connected to the first host in the list. (Bug #12541) + * Workaround for Bug #13374: `ResultSet.getStatement()' on closed + result set returns `NULL' (as per JDBC 4.0 spec, but not + backward-compatible). Set the connection property + `retainStatementAfterResultSetClose' to `true' to be able to + retrieve a `ResultSet''s statement after the `ResultSet' has been + closed using `.getStatement()' (the default is `false', to be + JDBC-compliant and to reduce the chance that code using JDBC leaks + `Statement' instances). (Bug #13277) + + * `java.sql.Types.OTHER' returned for *Note `BINARY': + binary-varbinary. and *Note `VARBINARY': binary-varbinary. columns + when using `DatabaseMetaData.getColumns()'. (Bug #12970) + + * URL configuration parameters do not permit ``&'' or ``='' in their + values. The JDBC driver now parses configuration parameters as if + they are encoded using the application/x-www-form-urlencoded + format as specified by `java.net.URLDecoder' + (`http://java.sun.com/j2se/1.5.0/docs/api/java/net/URLDecoder.html'). + + If the ``%'' character is present in a configuration property, it + must now be represented as `%25', which is the encoded form of + ``%'' when using application/x-www-form-urlencoded encoding. (Bug + #13453) + * `getColumns()' (Bug #12541) * Handling of catalog argument in `DatabaseMetaData.getIndexInfo()', @@ -254581,39 +258339,78 @@ connections in the `jdbc2.optional' package (connections built by `ConnectionPoolDataSource' instances). (Bug #12541) + * `ServerPreparedStatement.getBinding()' now checks if the statement + is closed before attempting to reference the list of parameter + bindings, to avoid throwing a `NullPointerException'. (Bug #12970) + + * `ResultSetMetaData' from `Statement.getGeneratedKeys()' caused a + `NullPointerException' to be thrown whenever a method that + required a connection reference was called. (Bug #13277) + + * `cp1251' incorrectly mapped to `win1251' for servers newer than + 4.0.x. (Bug #12752) + + * When `gatherPerfMetrics' is enabled for servers older than 4.1.0, + a `NullPointerException' is thrown from the constructor of + `ResultSet' if the query doesn't use any tables. (Bug #13043) + + * Backport of `VAR[BINARY|CHAR] [BINARY]' types detection from 5.0 + branch. (Bug #13277) + * `getTables()' (Bug #12541) - * `getPrimaryKeys()' (Bug #12541) + * Fixed `NullPointerException' when converting `catalog' parameter + in many `DatabaseMetaDataMethods' to `byte[]'s (for the result + set) when the parameter is `null'. (`null' is not technically + permitted by the JDBC specification, but we have historically + permitted it). (Bug #13277) + + * Backport of `Field' class, + `ResultSetMetaData.getColumnClassName()', and + `ResultSet.getObject(int)' changes from 5.0 branch to fix behavior + surrounding `VARCHAR BINARY'/*Note `VARBINARY': binary-varbinary. + and related types. (Bug #13277) + + * Read response in `MysqlIO.sendFileToServer()', even if the local + file can't be opened, otherwise next query issued will fail, + because it is reading the response to the empty *Note `LOAD DATA + INFILE': load-data. packet sent to the server. (Bug #13277) * `Connection.prepareCall()' is database name case-sensitive (on Windows systems). (Bug #12417) - * `explainSlowQueries' hangs with server-side prepared statements. - (Bug #12229) - - * Properties shared between master and slave with replication - connection. (Bug #12218) + * `getPrimaryKeys()' (Bug #12541) * Geometry types not handled with server-side prepared statements. (Bug #12104) - * `maxPerformance.properties' mis-spells `elideSetAutoCommits'. - (Bug #11976) - - * `ReplicationConnection' won't switch to slave, throws `Catalog - can't be null' exception. (Bug #11879) + * `explainSlowQueries' hangs with server-side prepared statements. + (Bug #12229) * `Pstmt.setObject(...., Types.BOOLEAN)' throws exception. (Bug #11798) + * Reworked `Field' class, `*Buffer', and `MysqlIO' to be aware of + field lengths > `Integer.MAX_VALUE'. (Bug #11498) + + * Foreign key information that is quoted is parsed incorrectly when + `DatabaseMetaData' methods use that information. (Bug #11781) + + * Fixed regression caused by fix for Bug #11552 that caused driver + to return incorrect values for unsigned integers when those + integers where within the range of the positive signed type. (Bug + #11663) + * Escape tokenizer doesn't respect stacked single quotation marks for escapes. (Bug #11797) - * `GEOMETRY' type not recognized when using server-side prepared - statements. (Bug #11797) + * Escape processor didn't honor strings demarcated with double + quotation marks. (Bug #11498) - * Foreign key information that is quoted is parsed incorrectly when - `DatabaseMetaData' methods use that information. (Bug #11781) + * `maxPerformance.properties' mis-spells `elideSetAutoCommits'. + (Bug #11976) + + * Moved source code to Subversion repository. (Bug #11663) * The `sendBlobChunkSize' property is now clamped to `max_allowed_packet' with consideration of stream buffer size and @@ -254621,38 +258418,46 @@ `max_allowed_packet' is similar in size to the default `sendBlobChunkSize' which is 1M. (Bug #11781) - * `CallableStatement.clearParameters()' now clears resources - associated with `INOUT'/`OUTPUT' parameters as well as `INPUT' - parameters. (Bug #11781) + * `Statement.getWarnings()' fails with NPE if statement has been + closed. (Bug #10630) - * Fixed regression caused by fix for Bug #11552 that caused driver - to return incorrect values for unsigned integers when those - integers where within the range of the positive signed type. (Bug - #11663) + * `DBMD.storesLower/Mixed/UpperIdentifiers()' reports incorrect + values for servers deployed on Windows. (Bug #11575) + + * `ResultSet.moveToCurrentRow()' fails to work when preceded by a + call to `ResultSet.moveToInsertRow()'. (Bug #11190) - * Moved source code to Subversion repository. (Bug #11663) + * *Note `VARBINARY': binary-varbinary. data corrupted when using + server-side prepared statements and `.setBytes()'. (Bug #11115) + + * Only get `char[]' from SQL in `PreparedStatement.ParseInfo()' when + needed. (Bug #10630) * Incorrect generation of testcase scripts for server-side prepared statements. (Bug #11663) - * Fixed statements generated for testcases missing `;' for `plain' - statements. (Bug #11629) + * `GEOMETRY' type not recognized when using server-side prepared + statements. (Bug #11797) - * Spurious `!' on console when character encoding is `utf8'. (Bug - #11629) + * `CallableStatement.clearParameters()' now clears resources + associated with `INOUT'/`OUTPUT' parameters as well as `INPUT' + parameters. (Bug #11781) * `StringUtils.getBytes()' doesn't work when using multi-byte character encodings and a length in _characters_ is specified. (Bug #11614) - * `DBMD.storesLower/Mixed/UpperIdentifiers()' reports incorrect - values for servers deployed on Windows. (Bug #11575) + * Fixed statements generated for testcases missing `;' for `plain' + statements. (Bug #11629) - * Reworked `Field' class, `*Buffer', and `MysqlIO' to be aware of - field lengths > `Integer.MAX_VALUE'. (Bug #11498) + * `ReplicationConnection' won't switch to slave, throws `Catalog + can't be null' exception. (Bug #11879) - * Escape processor didn't honor strings demarcated with double - quotation marks. (Bug #11498) + * Spurious `!' on console when character encoding is `utf8'. (Bug + #11629) + + * Properties shared between master and slave with replication + connection. (Bug #12218) * Updated `DBMD.supportsCorrelatedQueries()' to return `true' for versions > 4.1, `supportsGroupByUnrelated()' to return `true' and @@ -254666,18 +258471,6 @@ protocol, prepared statements can not reset _individual_ stream data on the server side). (Bug #11498) - * `ResultSet.moveToCurrentRow()' fails to work when preceded by a - call to `ResultSet.moveToInsertRow()'. (Bug #11190) - - * *Note `VARBINARY': binary-varbinary. data corrupted when using - server-side prepared statements and `.setBytes()'. (Bug #11115) - - * `Statement.getWarnings()' fails with NPE if statement has been - closed. (Bug #10630) - - * Only get `char[]' from SQL in `PreparedStatement.ParseInfo()' when - needed. (Bug #10630) -  File: manual.info, Node: cj-news-3-1-10, Next: cj-news-3-1-9, Prev: cj-news-3-1-11, Up: cj-news-3-1-x @@ -254686,14 +258479,14 @@ *Bugs Fixed* + * Fixed connecting without a database specified raised an exception + in `MysqlIO.changeDatabaseTo()'. + * Initial implemention of `ParameterMetadata' for `PreparedStatement.getParameterMetadata()'. Only works fully for `CallableStatements', as current server-side prepared statements return every parameter as a *Note `VARCHAR': char. type. - * Fixed connecting without a database specified raised an exception - in `MysqlIO.changeDatabaseTo()'. -  File: manual.info, Node: cj-news-3-1-9, Next: cj-news-3-1-8, Prev: cj-news-3-1-10, Up: cj-news-3-1-x @@ -254702,32 +258495,57 @@ *Bugs Fixed* - * Production package doesn't include JBoss integration classes. - (Bug #11411) - - * Removed nonsensical `costly type conversion' warnings when using - usage advisor. (Bug #11411) - * Fixed `PreparedStatement.setClob()' not accepting `null' as a parameter. (Bug #11360) - * Connector/J dumping query into `SQLException' twice. (Bug #11360) + * Actually write manifest file to correct place so it ends up in the + binary jar file. (Bug #10144) + + * Try to handle `OutOfMemoryErrors' more gracefully. Although not + much can be done, they will in most cases close the connection + they happened on so that further operations don't run into a + connection in some unknown state. When an OOM has happened, any + further operations on the connection will fail with a `Connection + closed' exception that will also list the OOM exception as the + reason for the implicit connection close event. (Bug #10850) * `autoReconnect' ping causes exception on connection startup. (Bug #11259) + * Reorganized directory layout. Sources now are in `src' folder. + Don't pollute parent directory when building, now output goes to + `./build', distribution goes to `./dist'. (Bug #10496) + * `Connection.setCatalog()' is now aware of the `useLocalSessionState' configuration property, which when set to `true' will prevent the driver from sending `USE ...' to the server if the requested catalog is the same as the current catalog. (Bug #11115) + * Setting `cachePrepStmts=true' now causes the `Connection' to also + cache the check the driver performs to determine if a prepared + statement can be server-side or not, as well as caches server-side + prepared statements for the lifetime of a connection. As before, + the `prepStmtCacheSize' parameter controls the size of these + caches. (Bug #10850) + + * Don't send `COM_RESET_STMT' for each execution of a server-side + prepared statement if it isn't required. (Bug #10850) + * `3-0-Compat': Compatibility with Connector/J 3.0.x functionality (Bug #11115) + * Production package doesn't include JBoss integration classes. + (Bug #11411) + * `maxPerformance': Maximum performance without being reckless (Bug #11115) + * Unsigned *Note `SMALLINT': numeric-types. treated as signed for + `ResultSet.getInt()', fixed all cases for `UNSIGNED' integer + values and server-side prepared statements, as well as + `ResultSet.getObject()' for `UNSIGNED TINYINT'. (Bug #10156) + * `solarisMaxPerformance': Maximum performance for Solaris, avoids syscalls where it can (Bug #11115) @@ -254737,59 +258555,9 @@ server's time. If set to `false', removes two syscalls per query. (Bug #11115) - * *Note `VARBINARY': binary-varbinary. data corrupted when using - server-side prepared statements and `ResultSet.getBytes()'. (Bug - #11115) - - * Added the following configuration bundles, use one or many using - the `useConfigs' configuration property: - - * `maxPerformance': Maximum performance without being reckless - - * `solarisMaxPerformance': Maximum performance for Solaris, - avoids syscalls where it can - - * `3-0-Compat': Compatibility with Connector/J 3.0.x - functionality - - (Bug #11115) - - * Try to handle `OutOfMemoryErrors' more gracefully. Although not - much can be done, they will in most cases close the connection - they happened on so that further operations don't run into a - connection in some unknown state. When an OOM has happened, any - further operations on the connection will fail with a `Connection - closed' exception that will also list the OOM exception as the - reason for the implicit connection close event. (Bug #10850) - - * Setting `cachePrepStmts=true' now causes the `Connection' to also - cache the check the driver performs to determine if a prepared - statement can be server-side or not, as well as caches server-side - prepared statements for the lifetime of a connection. As before, - the `prepStmtCacheSize' parameter controls the size of these - caches. (Bug #10850) - - * Don't send `COM_RESET_STMT' for each execution of a server-side - prepared statement if it isn't required. (Bug #10850) - * 0-length streams not sent to server when using server-side prepared statements. (Bug #10850) - * Driver detects if you're running MySQL-5.0.7 or later, and does - not scan for `LIMIT ?[,?]' in statements being prepared, as the - server supports those types of queries now. (Bug #10850) - - * Reorganized directory layout. Sources now are in `src' folder. - Don't pollute parent directory when building, now output goes to - `./build', distribution goes to `./dist'. (Bug #10496) - - * Added support/bug hunting feature that generates `.sql' test - scripts to `STDERR' when `autoGenerateTestcaseScript' is set to - `true'. (Bug #10496) - - * `SQLException' is thrown when using property `characterSetResults' - with `cp932' or `eucjpms'. (Bug #10496) - * The data type returned for `TINYINT(1)' columns when `tinyInt1isBit=true' (the default) can be switched between `Types.BOOLEAN' and `Types.BIT' using the new configuration @@ -254804,6 +258572,16 @@ `ResultSetMetaData.getColumnClassName()' will return `java.lang.Boolean'. (Bug #10485) + * *Note `VARBINARY': binary-varbinary. data corrupted when using + server-side prepared statements and `ResultSet.getBytes()'. (Bug + #11115) + + * Added `createDatabaseIfNotExist' property (default is `false'), + which will cause the driver to ask the server to create the + database specified in the URL if it doesn't exist. You must have + the appropriate privileges for database creation for this to work. + (Bug #10144) + * `SQLException' thrown when retrieving `YEAR(2)' with `ResultSet.getString()'. The driver will now always treat *Note `YEAR': year. types as `java.sql.Dates' and return the correct @@ -254811,15 +258589,7 @@ connection property can be set to `false' and the values will be treated as `SHORT's. (Bug #10485) - * Driver doesn't support `{?=CALL(...)}' for calling stored - functions. This involved adding support for function retrieval to - `DatabaseMetaData.getProcedures()' and `getProcedureColumns()' as - well. (Bug #10310) - - * Unsigned *Note `SMALLINT': numeric-types. treated as signed for - `ResultSet.getInt()', fixed all cases for `UNSIGNED' integer - values and server-side prepared statements, as well as - `ResultSet.getObject()' for `UNSIGNED TINYINT'. (Bug #10156) + * Connector/J dumping query into `SQLException' twice. (Bug #11360) * Made `ServerPreparedStatement.asSql()' work correctly so auto-explain functionality would work with server-side prepared @@ -254828,9 +258598,47 @@ * Double quotation marks not recognized when parsing client-side prepared statements. (Bug #10155) + * Removed nonsensical `costly type conversion' warnings when using + usage advisor. (Bug #11411) + + * `com.mysql.jdbc.PreparedStatement.ParseInfo' does unnecessary call + to `toCharArray()'. (Bug #9064) + + * Driver doesn't support `{?=CALL(...)}' for calling stored + functions. This involved adding support for function retrieval to + `DatabaseMetaData.getProcedures()' and `getProcedureColumns()' as + well. (Bug #10310) + + * Memory leak in `ServerPreparedStatement' if `serverPrepare()' + fails. (Bug #10144) + + * Added support/bug hunting feature that generates `.sql' test + scripts to `STDERR' when `autoGenerateTestcaseScript' is set to + `true'. (Bug #10496) + + * Driver detects if you're running MySQL-5.0.7 or later, and does + not scan for `LIMIT ?[,?]' in statements being prepared, as the + server supports those types of queries now. (Bug #10850) + + * `SQLException' is thrown when using property `characterSetResults' + with `cp932' or `eucjpms'. (Bug #10496) + * Made JDBC2-compliant wrappers public to enable access to vendor extensions. (Bug #10155) + * Added the following configuration bundles, use one or many using + the `useConfigs' configuration property: + + * `maxPerformance': Maximum performance without being reckless + + * `solarisMaxPerformance': Maximum performance for Solaris, + avoids syscalls where it can + + * `3-0-Compat': Compatibility with Connector/J 3.0.x + functionality + + (Bug #11115) + * `DatabaseMetaData.supportsMultipleOpenResults()' now returns `true'. The driver has supported this for some time, DBMD just missed that fact. (Bug #10155) @@ -254842,20 +258650,8 @@ * Made `enableStreamingResults()' visible on `com.mysql.jdbc.jdbc2.optional.StatementWrapper'. (Bug #10155) - * Actually write manifest file to correct place so it ends up in the - binary jar file. (Bug #10144) - - * Added `createDatabaseIfNotExist' property (default is `false'), - which will cause the driver to ask the server to create the - database specified in the URL if it doesn't exist. You must have - the appropriate privileges for database creation for this to work. - (Bug #10144) - - * Memory leak in `ServerPreparedStatement' if `serverPrepare()' - fails. (Bug #10144) - - * `com.mysql.jdbc.PreparedStatement.ParseInfo' does unnecessary call - to `toCharArray()'. (Bug #9064) + * Overhaul of character set configuration, everything now lives in a + properties file. * Driver now correctly uses CP932 if available on the server for Windows-31J, CP932 and MS932 java encoding names, otherwise it @@ -254864,9 +258660,6 @@ when the character set gets backported) can reliably support any variant of CP932. - * Overhaul of character set configuration, everything now lives in a - properties file. -  File: manual.info, Node: cj-news-3-1-8, Next: cj-news-3-1-7, Prev: cj-news-3-1-9, Up: cj-news-3-1-x @@ -254875,35 +258668,35 @@ *Bugs Fixed* - * Should accept `null' for catalog (meaning use current) in DBMD - methods, even though it is not JDBC-compliant for legacy's sake. - Disable by setting connection property `nullCatalogMeansCurrent' to - `false' (which will be the default value in C/J 3.2.x). (Bug - #9917) - - * Fixed driver not returning `true' for `-1' when - `ResultSet.getBoolean()' was called on result sets returned from - server-side prepared statements. (Bug #9778) - - * Added a `Manifest.MF' file with implementation information to the - `.jar' file. (Bug #9778) - - * More tests in `Field.isOpaqueBinary()' to distinguish opaque - binary (that is, fields with type `CHAR(n)' and `CHARACTER SET - BINARY') from output of various scalar and aggregate functions - that return strings. (Bug #9778) - - * `DBMD.getTables()' shouldn't return tables if views are asked for, - even if the database version doesn't support views. (Bug #9778) + * Added finalizers to `ResultSet' and `Statement' implementations to + be JDBC spec-compliant, which requires that if not explicitly + closed, these resources should be closed upon garbage collection. + (Bug #9319) * Should accept `null' for name patterns in DBMD (meaning ``%''), even though it isn't JDBC compliant, for legacy's sake. Disable by setting connection property `nullNamePatternMatchesAll' to `false' (which will be the default value in C/J 3.2.x). (Bug #9769) + * Check for empty strings (`''') when converting *Note `CHAR': + char./*Note `VARCHAR': char. column data to numbers, throw + exception if `emptyStringsConvertToZero' configuration property is + set to `false' (for backward-compatibility with 3.0, it is now set + to `true' by default, but will most likely default to `false' in + 3.2). (Bug #8803) + * The performance metrics feature now gathers information about number of tables referenced in a SELECT. (Bug #9704) + * Fixed driver not returning `true' for `-1' when + `ResultSet.getBoolean()' was called on result sets returned from + server-side prepared statements. (Bug #9778) + + * `ServerPreparedStatements' now correctly `stream' *Note `BLOB': + blob./`CLOB' data to the server. You can configure the threshold + chunk size using the JDBC URL property `blobSendChunkSize' (the + default is 1MB). (Bug #8868) + * The logging system is now automatically configured. If the value has been set by the user, using the URL property `logger' or the system property `com.mysql.jdbc.logger', then use that, otherwise, @@ -254917,15 +258710,22 @@ (Bug #9704) - * `Statement.getMoreResults()' could throw NPE when existing result - set was `.close()'d. (Bug #9704) + * Added a `Manifest.MF' file with implementation information to the + `.jar' file. (Bug #9778) - * Stored procedures with *Note `DECIMAL': numeric-types. parameters - with storage specifications that contained ``,'' in them would - fail. (Bug #9682) + * Should accept `null' for catalog (meaning use current) in DBMD + methods, even though it is not JDBC-compliant for legacy's sake. + Disable by setting connection property `nullCatalogMeansCurrent' to + `false' (which will be the default value in C/J 3.2.x). (Bug + #9917) - * `PreparedStatement.setObject(int, Object, int type, int scale)' - now uses scale value for `BigDecimal' instances. (Bug #9682) + * More tests in `Field.isOpaqueBinary()' to distinguish opaque + binary (that is, fields with type `CHAR(n)' and `CHARACTER SET + BINARY') from output of various scalar and aggregate functions + that return strings. (Bug #9778) + + * `DBMD.getTables()' shouldn't return tables if views are asked for, + even if the database version doesn't support views. (Bug #9778) * Added support for the c3p0 connection pool's (`http://c3p0.sf.net/') validation/connection checker interface @@ -254935,6 +258735,21 @@ `com.mysql.jdbc.integration.c3p0.MysqlConnectionTester'. (Bug #9320) + * `DATA_TYPE' column from `DBMD.getBestRowIdentifier()' causes + `ArrayIndexOutOfBoundsException' when accessed (and in fact, + didn't return any value). (Bug #8803) + + * `DATE_FORMAT()' queries returned as *Note `BLOB': blob.s from + `getObject()'. (Bug #8868) + + * A continuation of Bug #8868, where functions used in queries that + should return nonstring types when resolved by temporary tables + suddenly become opaque binary strings (work-around for server + limitation). Also fixed fields with type of `CHAR(n) CHARACTER SET + BINARY' to return correct/matching classes for + `RSMD.getColumnClassName()' and `ResultSet.getObject()'. (Bug + #9236) + * `PreparedStatement.getMetaData()' inserts blank row in database under certain conditions when not using server-side prepared statements. (Bug #9320) @@ -254943,85 +258758,63 @@ that the driver can more correctly determine whether a prepared statement can be prepared on the server or not. (Bug #9320) + * Stored procedures with *Note `DECIMAL': numeric-types. parameters + with storage specifications that contained ``,'' in them would + fail. (Bug #9682) + + * Server-side session variables can be preset at connection time by + passing them as a comma-delimited list for the connection property + `sessionVariables'. (Bug #8868) + * `Connection.canHandleAsPreparedStatement()' now makes `best effort' to distinguish `LIMIT' clauses with placeholders in them from ones without to have fewer false positives when generating work-arounds for statements the server cannot currently handle as server-side prepared statements. (Bug #9320) - * Fixed `build.xml' to not compile `log4j' logging if `log4j' not - available. (Bug #9320) - - * Added finalizers to `ResultSet' and `Statement' implementations to - be JDBC spec-compliant, which requires that if not explicitly - closed, these resources should be closed upon garbage collection. - (Bug #9319) - - * Stored procedures with same name in different databases confuse - the driver when it tries to determine parameter counts/types. - (Bug #9319) - - * A continuation of Bug #8868, where functions used in queries that - should return nonstring types when resolved by temporary tables - suddenly become opaque binary strings (work-around for server - limitation). Also fixed fields with type of `CHAR(n) CHARACTER SET - BINARY' to return correct/matching classes for - `RSMD.getColumnClassName()' and `ResultSet.getObject()'. (Bug - #9236) + * `BlobFromLocator' now uses correct identifier quoting when + generating prepared statements. (Bug #8868) - * Cannot use `UTF-8' for characterSetResults configuration property. - (Bug #9206) + * `Statement.getMoreResults()' could throw NPE when existing result + set was `.close()'d. (Bug #9704) * `PreparedStatement.addBatch()' doesn't work with server-side prepared statements and streaming *Note `BINARY': binary-varbinary. data. (Bug #9040) - * `ServerPreparedStatements' now correctly `stream' *Note `BLOB': - blob./`CLOB' data to the server. You can configure the threshold - chunk size using the JDBC URL property `blobSendChunkSize' (the - default is 1MB). (Bug #8868) + * Fixed `build.xml' to not compile `log4j' logging if `log4j' not + available. (Bug #9320) - * `DATE_FORMAT()' queries returned as *Note `BLOB': blob.s from - `getObject()'. (Bug #8868) + * Cannot use `UTF-8' for characterSetResults configuration property. + (Bug #9206) - * Server-side session variables can be preset at connection time by - passing them as a comma-delimited list for the connection property - `sessionVariables'. (Bug #8868) + * `PreparedStatement.setObject(int, Object, int type, int scale)' + now uses scale value for `BigDecimal' instances. (Bug #9682) - * `BlobFromLocator' now uses correct identifier quoting when - generating prepared statements. (Bug #8868) + * `DBMD.supportsResultSetConcurrency()' not returning `true' for + forward-only/read-only result sets (we obviously support this). + (Bug #8792) * Fixed regression in `ping()' for users using `autoReconnect=true'. (Bug #8868) - * Check for empty strings (`''') when converting *Note `CHAR': - char./*Note `VARCHAR': char. column data to numbers, throw - exception if `emptyStringsConvertToZero' configuration property is - set to `false' (for backward-compatibility with 3.0, it is now set - to `true' by default, but will most likely default to `false' in - 3.2). (Bug #8803) - - * `DATA_TYPE' column from `DBMD.getBestRowIdentifier()' causes - `ArrayIndexOutOfBoundsException' when accessed (and in fact, - didn't return any value). (Bug #8803) + * Stored procedures with same name in different databases confuse + the driver when it tries to determine parameter counts/types. + (Bug #9319) * `DBMD.supportsMixedCase*Identifiers()' returns wrong value on servers running on case-sensitive file systems. (Bug #8800) - * `DBMD.supportsResultSetConcurrency()' not returning `true' for - forward-only/read-only result sets (we obviously support this). - (Bug #8792) - - * Fixed `ResultSet.getTime()' on a `NULL' value for server-side - prepared statements throws NPE. - - * Made `Connection.ping()' a public method. + * Fixed `DatabaseMetaData.getTables()' returning views when they + were not asked for as one of the requested table types. * Added support for new precision-math *Note `DECIMAL': numeric-types. type in MySQL 5.0.3 and up. - * Fixed `DatabaseMetaData.getTables()' returning views when they - were not asked for as one of the requested table types. + * Made `Connection.ping()' a public method. + + * Fixed `ResultSet.getTime()' on a `NULL' value for server-side + prepared statements throws NPE.  File: manual.info, Node: cj-news-3-1-7, Next: cj-news-3-1-6, Prev: cj-news-3-1-8, Up: cj-news-3-1-x @@ -255031,20 +258824,12 @@ *Bugs Fixed* - * `PreparedStatements' not creating streaming result sets. (Bug - #8487) - - * Don't pass `NULL' to `String.valueOf()' in - `ResultSet.getNativeConvertToString()', as it stringifies it (that - is, returns `null'), which is not correct for the method in - question. (Bug #8487) - - * Fixed NPE in `ResultSet.realClose()' when using usage advisor and - result set was already closed. (Bug #8428) + * Infinite recursion when `falling back' to master in failover + configuration. (Bug #7952) - * `ResultSet.getString()' doesn't maintain format stored on server, - bug fix only enabled when `noDatetimeStringSync' property is set to - `true' (the default is `false'). (Bug #8428) + * Disable multi-statements (if enabled) for MySQL-4.1 versions prior + to version 4.1.10 if the query cache is enabled, as the server + returns wrong results in this configuration. (Bug #7952) * Added support for *Note `BIT': numeric-types. type in MySQL-5.0.3. The driver will treat `BIT(1-8)' as the JDBC standard *Note `BIT': @@ -255061,64 +258846,41 @@ manipulate these values in many cases without incurring round-trips to the database server. (Bug #8424) - * Added `enableStreamingResults()' to `Statement' for connection - pool implementations that check `Statement.setFetchSize()' for - specification-compliant values. Call `Statement.setFetchSize(>=0)' - to disable the streaming results for that statement. (Bug #8424) - - * `ResultSet.getBigDecimal()' throws exception when rounding would - need to occur to set scale. The driver now chooses a rounding mode - of `half up' if nonrounding `BigDecimal.setScale()' fails. (Bug - #8424) - * Fixed synchronization issue with `ServerPreparedStatement.serverPrepare()' that could cause deadlocks/crashes if connection was shared between threads. (Bug #8096) - * Emulated locators corrupt binary data when using server-side - prepared statements. (Bug #8096) - - * Infinite recursion when `falling back' to master in failover - configuration. (Bug #7952) - - * Disable multi-statements (if enabled) for MySQL-4.1 versions prior - to version 4.1.10 if the query cache is enabled, as the server - returns wrong results in this configuration. (Bug #7952) - - * Removed `dontUnpackBinaryResults' functionality, the driver now - always stores results from server-side prepared statements as is - from the server and unpacks them on demand. (Bug #7952) - - * Fixed duplicated code in `configureClientCharset()' that prevented - `useOldUTF8Behavior=true' from working properly. (Bug #7952) - * Added `holdResultsOpenOverStatementClose' property (default is `false'), that keeps result sets open over statement.close() or new execution on same statement (suggested by Kevin Burton). (Bug #7715) + * Removed `dontUnpackBinaryResults' functionality, the driver now + always stores results from server-side prepared statements as is + from the server and unpacks them on demand. (Bug #7952) + * Detect new `sql_mode' variable in string form (it used to be integer) and adjust quoting method for strings appropriately. (Bug #7715) - * Timestamps converted incorrectly to strings with server-side - prepared statements and updatable result sets. (Bug #7715) - - * Timestamp key column data needed `_binary' stripped for - `UpdatableResultSet.refreshRow()'. (Bug #7686) - * Choose correct `direction' to apply time adjustments when both client and server are in GMT time zone when using `ResultSet.get(..., cal)' and `PreparedStatement.set(...., cal)'. (Bug #4718) + * Fixed duplicated code in `configureClientCharset()' that prevented + `useOldUTF8Behavior=true' from working properly. (Bug #7952) + * Remove `_binary' introducer from parameters used as in/out parameters in `CallableStatement'. (Bug #4718) * Always return `byte[]'s for output parameters registered as `*BINARY'. (Bug #4718) + * Timestamps converted incorrectly to strings with server-side + prepared statements and updatable result sets. (Bug #7715) + * By default, the driver now scans SQL you are preparing using all variants of `Connection.prepareStatement()' to determine if it is a supported type of statement to prepare on the server side, and @@ -255127,18 +258889,49 @@ passing `emulateUnsupportedPstmts=false' in your JDBC URL. (Bug #4718) + * Emulated locators corrupt binary data when using server-side + prepared statements. (Bug #8096) + + * Added `enableStreamingResults()' to `Statement' for connection + pool implementations that check `Statement.setFetchSize()' for + specification-compliant values. Call `Statement.setFetchSize(>=0)' + to disable the streaming results for that statement. (Bug #8424) + * Added `dontTrackOpenResources' option (default is `false', to be JDBC compliant), which helps with memory use for nonwell-behaved apps (that is, applications that don't close `Statement' objects when they should). (Bug #4718) + * Fixed NPE in `ResultSet.realClose()' when using usage advisor and + result set was already closed. (Bug #8428) + + * `ResultSet.getBigDecimal()' throws exception when rounding would + need to occur to set scale. The driver now chooses a rounding mode + of `half up' if nonrounding `BigDecimal.setScale()' fails. (Bug + #8424) + * Send correct value for `boolean' `true' to server for `PreparedStatement.setObject(n, "true", Types.BIT)'. (Bug #4718) + * Timestamp key column data needed `_binary' stripped for + `UpdatableResultSet.refreshRow()'. (Bug #7686) + + * `PreparedStatements' not creating streaming result sets. (Bug + #8487) + + * `ResultSet.getString()' doesn't maintain format stored on server, + bug fix only enabled when `noDatetimeStringSync' property is set to + `true' (the default is `false'). (Bug #8428) + * Fixed bug with Connection not caching statements from `prepareStatement()' when the statement wasn't a server-side prepared statement. (Bug #4718) + * Don't pass `NULL' to `String.valueOf()' in + `ResultSet.getNativeConvertToString()', as it stringifies it (that + is, returns `null'), which is not correct for the method in + question. (Bug #8487) +  File: manual.info, Node: cj-news-3-1-6, Next: cj-news-3-1-5, Prev: cj-news-3-1-7, Up: cj-news-3-1-x @@ -255163,90 +258956,90 @@ *Bugs Fixed* + * Removed unwanted new `Throwable()' in `ResultSet' constructor due + to bad merge (caused a new object instance that was never used for + every result set created). Found while profiling for Bug #6359. + (Bug #6225) + * Use 1MB packet for sending file for *Note `LOAD DATA LOCAL INFILE': load-data. if that is < `max_allowed_packet' on server. (Bug #6537) - * `SUM()' on *Note `DECIMAL': numeric-types. with server-side - prepared statement ignores scale if zero-padding is needed (this - ends up being due to conversion to *Note `DOUBLE': numeric-types. - by server, which when converted to a string to parse into - `BigDecimal', loses all `padding' zeros). (Bug #6537) - - * Use `DatabaseMetaData.getIdentifierQuoteString()' when building - DBMD queries. (Bug #6537) - * Use our own implementation of buffered input streams to get around blocking behavior of `java.io.BufferedInputStream'. Disable this with `useReadAheadInput=false'. (Bug #6399) + * Added experimental configuration property + `dontUnpackBinaryResults', which delays unpacking binary result + set values until they're asked for, and only creates object + instances for nonnumeric values (it is set to `false' by default). + For some usecase/jvm combinations, this is friendlier on the + garbage collector. (Bug #5706) + + * Fixed batched updates with server prepared statements weren't + looking if the types had changed for a given batched set of + parameters compared to the previous set, causing the server to + return the error `Wrong arguments to mysql_stmt_execute()'. (Bug + #5235) + * Make auto-deserialization of `java.lang.Objects' stored in *Note `BLOB': blob. columns configurable using `autoDeserialize' property (defaults to `false'). (Bug #6399) - * `ResultSetMetaData.getColumnDisplaySize()' returns incorrect - values for multi-byte charsets. (Bug #6399) - - * Re-work `Field.isOpaqueBinary()' to detect `CHAR(N) CHARACTER SET - BINARY' to support fixed-length binary fields for - `ResultSet.getObject()'. (Bug #6399) - - * Failing to connect to the server when one of the addresses for the - given host name is IPV6 (which the server does not yet bind on). - The driver now loops through _all_ IP addresses for a given host, - and stops on the first one that `accepts()' a `socket.connect()'. - (Bug #6348) - - * Removed unwanted new `Throwable()' in `ResultSet' constructor due - to bad merge (caused a new object instance that was never used for - every result set created). Found while profiling for Bug #6359. - (Bug #6225) + * Don't throw exceptions for `Connection.releaseSavepoint()'. (Bug + #5706) * `ServerSidePreparedStatement' allocating short-lived objects unnecessarily. (Bug #6225) - * Use null-safe-equals for key comparisons in updatable result sets. - (Bug #6225) - - * Fixed too-early creation of `StringBuffer' in - `EscapeProcessor.escapeSQL()', also return `String' when escaping - not needed (to avoid unnecessary object allocations). Found while - profiling for Bug #6359. (Bug #6225) + * Inefficient detection of pre-existing string instances in + `ResultSet.getNativeString()'. (Bug #5706) * `UNSIGNED BIGINT' unpacked incorrectly from server-side prepared statement result sets. (Bug #5729) - * Added experimental configuration property - `dontUnpackBinaryResults', which delays unpacking binary result - set values until they're asked for, and only creates object - instances for nonnumeric values (it is set to `false' by default). - For some usecase/jvm combinations, this is friendlier on the - garbage collector. (Bug #5706) + * Use null-safe-equals for key comparisons in updatable result sets. + (Bug #6225) - * Don't throw exceptions for `Connection.releaseSavepoint()'. (Bug - #5706) + * Failing to connect to the server when one of the addresses for the + given host name is IPV6 (which the server does not yet bind on). + The driver now loops through _all_ IP addresses for a given host, + and stops on the first one that `accepts()' a `socket.connect()'. + (Bug #6348) - * Inefficient detection of pre-existing string instances in - `ResultSet.getNativeString()'. (Bug #5706) + * `ResultSetMetaData.getColumnDisplaySize()' returns incorrect + values for multi-byte charsets. (Bug #6399) + + * `SUM()' on *Note `DECIMAL': numeric-types. with server-side + prepared statement ignores scale if zero-padding is needed (this + ends up being due to conversion to *Note `DOUBLE': numeric-types. + by server, which when converted to a string to parse into + `BigDecimal', loses all `padding' zeros). (Bug #6537) * Use a per-session `Calendar' instance by default when decoding dates from `ServerPreparedStatements' (set to old, less performant behavior by setting property `dynamicCalendars=true'). (Bug #5706) - * Fixed batched updates with server prepared statements weren't - looking if the types had changed for a given batched set of - parameters compared to the previous set, causing the server to - return the error `Wrong arguments to mysql_stmt_execute()'. (Bug - #5235) - * Handle case when string representation of timestamp contains trailing ``.'' with no numbers following it. (Bug #5235) + * Use `DatabaseMetaData.getIdentifierQuoteString()' when building + DBMD queries. (Bug #6537) + + * Re-work `Field.isOpaqueBinary()' to detect `CHAR(N) CHARACTER SET + BINARY' to support fixed-length binary fields for + `ResultSet.getObject()'. (Bug #6399) + * Server-side prepared statements did not honor `zeroDateTimeBehavior' property, and would cause class-cast exceptions when using `ResultSet.getObject()', as the all-zero string was always returned. (Bug #5235) + * Fixed too-early creation of `StringBuffer' in + `EscapeProcessor.escapeSQL()', also return `String' when escaping + not needed (to avoid unnecessary object allocations). Found while + profiling for Bug #6359. (Bug #6225) + * Fix comparisons made between string constants and dynamic strings that are converted with either `toUpperCase()' or `toLowerCase()' to use `Locale.ENGLISH', as some locales `override' case rules for @@ -255270,6 +259063,16 @@ `ServerPreparedStatements' throwing `ArrayIndexOutOfBoundExceptions'. (Bug #5032) + * Optimized integer number parsing, enable `old' slower integer + parsing using JDK classes using `useFastIntParsing=false' property. + (Bug #4642) + + * Track packet sequence numbers if `enablePacketDebug=true', and + throw an exception if packets received out-of-order. (Bug #4689) + + * `ResultSet.wasNull()' does not work for primitives if a previous + `null' was returned. (Bug #4689) + * Added three ways to deal with all-zero datetimes when reading them from a `ResultSet': `exception' (the default), which throws an `SQLException' with an SQLState of `S1009'; `convertToNull', which @@ -255277,18 +259080,45 @@ date to the nearest closest value which is `'0001-01-01''. (Bug #5032) + * Added `useOnlyServerErrorMessages' property, which causes message + text in exceptions generated by the server to only contain the + text sent by the server (as opposed to the SQLState's `standard' + description, followed by the server's error message). This + property is set to `true' by default. (Bug #4642) + * The driver is more strict about truncation of numerics on `ResultSet.get*()', and will throw an `SQLException' when truncation is detected. You can disable this by setting `jdbcCompliantTruncation' to `false' (it is enabled by default, as this functionality is required for JDBC compliance). (Bug #5032) + * `ResultSet.getObject()' returns wrong type for strings when using + prepared statements. (Bug #4482) + + * `ServerPreparedStatements' dealing with return of *Note `DECIMAL': + numeric-types. type don't work. (Bug #5012) + + * Calling `MysqlPooledConnection.close()' twice (even though an + application error), caused NPE. Fixed. (Bug #4482) + + * Connector/J 3.1.3 beta does not handle integers correctly (caused + by changes to support unsigned reads in `Buffer.readInt()' -> + `Buffer.readShort()'). (Bug #4510) + * You can now use URLs in *Note `LOAD DATA LOCAL INFILE': load-data. statements, and the driver will use Java's built-in handlers for retrieving the data and sending it to the server. This feature is not enabled by default, you must set the `allowUrlInLocalInfile' connection property to `true'. (Bug #5032) + * Added support in `DatabaseMetaData.getTables()' and + `getTableTypes()' for views, which are now available in MySQL + server 5.0.x. (Bug #4510) + + * `ServerPreparedStatement.execute*()' sometimes threw + `ArrayIndexOutOfBoundsException' when unpacking field metadata. + (Bug #4642) + * `ResultSet.getObject()' doesn't return type `Boolean' for pseudo-bit types from prepared statements on 4.1.x (shortcut for avoiding extra type conversion when using binary-encoded result @@ -255299,43 +259129,6 @@ bundle, should fix sporadic issues when the caller's classloader can't locate the resource bundle. (Bug #5032) - * `ServerPreparedStatements' dealing with return of *Note `DECIMAL': - numeric-types. type don't work. (Bug #5012) - - * Track packet sequence numbers if `enablePacketDebug=true', and - throw an exception if packets received out-of-order. (Bug #4689) - - * `ResultSet.wasNull()' does not work for primitives if a previous - `null' was returned. (Bug #4689) - - * Optimized integer number parsing, enable `old' slower integer - parsing using JDK classes using `useFastIntParsing=false' property. - (Bug #4642) - - * Added `useOnlyServerErrorMessages' property, which causes message - text in exceptions generated by the server to only contain the - text sent by the server (as opposed to the SQLState's `standard' - description, followed by the server's error message). This - property is set to `true' by default. (Bug #4642) - - * `ServerPreparedStatement.execute*()' sometimes threw - `ArrayIndexOutOfBoundsException' when unpacking field metadata. - (Bug #4642) - - * Connector/J 3.1.3 beta does not handle integers correctly (caused - by changes to support unsigned reads in `Buffer.readInt()' -> - `Buffer.readShort()'). (Bug #4510) - - * Added support in `DatabaseMetaData.getTables()' and - `getTableTypes()' for views, which are now available in MySQL - server 5.0.x. (Bug #4510) - - * `ResultSet.getObject()' returns wrong type for strings when using - prepared statements. (Bug #4482) - - * Calling `MysqlPooledConnection.close()' twice (even though an - application error), caused NPE. Fixed. (Bug #4482) -  File: manual.info, Node: cj-news-3-1-3, Next: cj-news-3-1-2, Prev: cj-news-3-1-4, Up: cj-news-3-1-x @@ -255344,20 +259137,11 @@ *Bugs Fixed* + * Externalized more messages (on-going effort). (Bug #4119) + * Support new time zone variables in MySQL-4.1.3 when `useTimezone=true'. (Bug #4311) - * Error in retrieval of `mediumint' column with prepared statements - and binary protocol. (Bug #4311) - - * Support for unsigned numerics as return types from prepared - statements. This also causes a change in `ResultSet.getObject()' - for the `bigint unsigned' type, which used to return `BigDecimal' - instances, it now returns instances of `java.lang.BigInteger'. - (Bug #4311) - - * Externalized more messages (on-going effort). (Bug #4119) - * Null bitmask sent for server-side prepared statements was incorrect. (Bug #4119) @@ -255369,14 +259153,23 @@ * Added packet debugging code (see the `enablePacketDebug' property documentation). (Bug #4119) + * Error in retrieval of `mediumint' column with prepared statements + and binary protocol. (Bug #4311) + * Use SQL Standard SQL states by default, unless `useSqlStateCodes' property is set to `false'. (Bug #4119) - * Mangle output parameter names for `CallableStatements' so they - will not clash with user variable names. + * Support for unsigned numerics as return types from prepared + statements. This also causes a change in `ResultSet.getObject()' + for the `bigint unsigned' type, which used to return `BigDecimal' + instances, it now returns instances of `java.lang.BigInteger'. + (Bug #4311) * Added support for `INOUT' parameters in `CallableStatements'. + * Mangle output parameter names for `CallableStatements' so they + will not clash with user variable names. +  File: manual.info, Node: cj-news-3-1-2, Next: cj-news-3-1-1, Prev: cj-news-3-1-3, Up: cj-news-3-1-x @@ -255385,33 +259178,40 @@ *Bugs Fixed* + * Fixed `DatabaseMetaData.getProcedures()' when run on MySQL-5.0.0 + (output of *Note `SHOW PROCEDURE STATUS': show-procedure-status. + changed between 5.0.0 and 5.0.1. (Bug #3520) + + * Fixed case when no output parameters specified for a stored + procedure caused a bogus query to be issued to retrieve out + parameters, leading to a syntax error from the server. + + * Correctly map output parameters to position given in + `prepareCall()' versus. order implied during + `registerOutParameter()'. (Bug #3146) + + * Added `connectionCollation' property to cause driver to issue `set + collation_connection=...' query on connection init if default + collation for given charset is not appropriate. (Bug #3520) + + * `ServerPreparedStatements' weren't actually de-allocating + server-side resources when `.close()' was called. + * Don't enable server-side prepared statements for server version 5.0.0 or 5.0.1, as they aren't compatible with the '4.1.2+' style that the driver uses (the driver expects information to come back that isn't there, so it hangs). (Bug #3804) - * `getWarnings()' returns `SQLWarning' instead of `DataTruncation'. - (Bug #3804) - - * `getProcedureColumns()' doesn't work with wildcards for procedure - name. (Bug #3540) - * `getProcedures()' does not return any procedures in result set. (Bug #3539) - * Fixed `DatabaseMetaData.getProcedures()' when run on MySQL-5.0.0 - (output of *Note `SHOW PROCEDURE STATUS': show-procedure-status. - changed between 5.0.0 and 5.0.1. (Bug #3520) - - * Added `connectionCollation' property to cause driver to issue `set - collation_connection=...' query on connection init if default - collation for given charset is not appropriate. (Bug #3520) + * Fixed stored procedure parameter parsing info when size was + specified for a parameter (for example, `char()', `varchar()'). - * `DBMD.getSQLStateType()' returns incorrect value. (Bug #3520) + * Removed wrapping of exceptions in `MysqlIO.changeUser()'. - * Correctly map output parameters to position given in - `prepareCall()' versus. order implied during - `registerOutParameter()'. (Bug #3146) + * `getWarnings()' returns `SQLWarning' instead of `DataTruncation'. + (Bug #3804) * Cleaned up detection of server properties. (Bug #3146) @@ -255421,91 +259221,75 @@ * Support placeholder for parameter metadata for server >= 4.1.2. (Bug #3146) - * Added `gatherPerformanceMetrics' property, along with properties - to control when/where this info gets logged (see docs for more - info). - - * Fixed case when no parameters could cause a `NullPointerException' - in `CallableStatement.setOutputParameters()'. - - * Enabled callable statement caching using `cacheCallableStmts' - property. - - * Fixed sending of split packets for large queries, enabled nio - ability to send large packets as well. + * Added `logSlowQueries' property, along with + `slowQueriesThresholdMillis' property to control when a query + should be considered `slow.' * Added `.toString()' functionality to `ServerPreparedStatement', which should help if you're trying to debug a query that is a prepared statement (it shows SQL as the server would process). - * Added `logSlowQueries' property, along with - `slowQueriesThresholdMillis' property to control when a query - should be considered `slow.' + * Fixed sending of split packets for large queries, enabled nio + ability to send large packets as well. - * Removed wrapping of exceptions in `MysqlIO.changeUser()'. + * Enabled callable statement caching using `cacheCallableStmts' + property. - * Fixed stored procedure parameter parsing info when size was - specified for a parameter (for example, `char()', `varchar()'). + * Fixed case when no parameters could cause a `NullPointerException' + in `CallableStatement.setOutputParameters()'. - * `ServerPreparedStatements' weren't actually de-allocating - server-side resources when `.close()' was called. + * Added `gatherPerformanceMetrics' property, along with properties + to control when/where this info gets logged (see docs for more + info). - * Fixed case when no output parameters specified for a stored - procedure caused a bogus query to be issued to retrieve out - parameters, leading to a syntax error from the server. + * `DBMD.getSQLStateType()' returns incorrect value. (Bug #3520) + + * `getProcedureColumns()' doesn't work with wildcards for procedure + name. (Bug #3540)  File: manual.info, Node: cj-news-3-1-1, Next: cj-news-3-1-0, Prev: cj-news-3-1-2, Up: cj-news-3-1-x -D.5.3.15 Changes in MySQL Connector/J 3.1.1 (14 February 2004 alpha) -.................................................................... +D.5.3.15 Changes in MySQL Connector/J 3.1.1 (14 February 2004, alpha) +..................................................................... *Bugs Fixed* - * Use DocBook version of docs for shipped versions of drivers. (Bug - #2671) - - * `NULL' fields were not being encoded correctly in all cases in - server-side prepared statements. (Bug #2671) - - * Fixed rare buffer underflow when writing numbers into buffers for - sending prepared statement execution requests. (Bug #2671) + * Fixed charset conversion issue in `getTables()'. (Bug #2502) * Fixed `ConnectionProperties' that weren't properly exposed through accessors, cleaned up `ConnectionProperties' code. (Bug #2623) - * Class-cast exception when using scrolling result sets and - server-side prepared statements. (Bug #2623) - - * Merged unbuffered input code from 3.0. (Bug #2623) + * Prepared `Statements' will be re-prepared on auto-reconnect. Any + errors encountered are postponed until first attempt to re-execute + the re-prepared statement. - * Enabled streaming of result sets from server-side prepared - statements. (Bug #2606) + * Reduced number of methods called in average query to be more + efficient. - * Server-side prepared statements were not returning data type *Note - `YEAR': year. correctly. (Bug #2606) + * Refactored how connection properties are set and exposed as + `DriverPropertyInfo' as well as `Connection' and `DataSource' + properties. - * Fixed charset conversion issue in `getTables()'. (Bug #2502) + * Fixed stack overflow in `Connection.prepareCall()' (bad merge). - * Implemented multiple result sets returned from a statement or - stored procedure. (Bug #2502) + * Enabled streaming of result sets from server-side prepared + statements. (Bug #2606) - * Implemented `Connection.prepareCall()', and `DatabaseMetaData'. - `getProcedures()' and `getProcedureColumns()'. (Bug #2359) + * Allow contents of `PreparedStatement.setBlob()' to be retained + between calls to `.execute*()'. - * Merged prepared statement caching, and `.getMetaData()' support - from 3.0 branch. (Bug #2359) + * Fixed `IllegalAccessError' to `Calendar.getTimeInMillis()' in + `DateTimeValue' (for JDK < 1.4). - * Fixed off-by-1900 error in some cases for years in - `TimeUtil.fastDate'/`TimeCreate()' when unpacking results from - server-side prepared statements. (Bug #2359) + * Default result set type changed to `TYPE_FORWARD_ONLY' (JDBC + compliance). - * Reset `long binary' parameters in `ServerPreparedStatement' when - `clearParameters()' is called, by sending `COM_RESET_STMT' to the - server. (Bug #2359) + * Fixed bug with `UpdatableResultSets' not using client-side + prepared statements. - * `NULL' values for numeric types in binary encoded result sets - causing `NullPointerExceptions'. (Bug #2359) + * Class-cast exception when using scrolling result sets and + server-side prepared statements. (Bug #2623) * Display where/why a connection was implicitly closed (to aid debugging). (Bug #1673) @@ -255513,118 +259297,132 @@ * `DatabaseMetaData.getColumns()' is not returning correct column ordinal info for non-`'%'' column name patterns. (Bug #1673) + * Centralized setting of result set type and concurrency. + + * Implemented `Connection.prepareCall()', and `DatabaseMetaData'. + `getProcedures()' and `getProcedureColumns()'. (Bug #2359) + + * Implemented multiple result sets returned from a statement or + stored procedure. (Bug #2502) + * Fixed `NullPointerException' in `ServerPreparedStatement.setTimestamp()', as well as year and month discrepencies in `ServerPreparedStatement.setTimestamp()', `setDate()'. (Bug #1673) + * Fixed character encoding issues when converting bytes to ASCII + when MySQL doesn't provide the character set, and the JVM is set + to a multi-byte encoding (usually affecting retrieval of numeric + values). + + * Support `old' `profileSql' capitalization in + `ConnectionProperties'. This property is deprecated, you should use + `profileSQL' if possible. + * Added ability to have multiple database/JVM targets for compliance and regression/unit tests in `build.xml'. (Bug #1673) + * Support for transaction savepoints (MySQL >= 4.0.14 or 4.1.1). + + * Check for closed connection on delete/update/insert row operations + in `UpdatableResultSet'. + + * Support for NIO. Use `useNIO=true' on platforms that support NIO. + * Fixed sending of queries larger than 16M. (Bug #1673) + * Use DocBook version of docs for shipped versions of drivers. (Bug + #2671) + * Merged fix of data type mapping from MySQL type *Note `FLOAT': numeric-types. to `java.sql.Types.REAL' from 3.0 branch. (Bug #1673) + * Merged prepared statement caching, and `.getMetaData()' support + from 3.0 branch. (Bug #2359) + * Fixed NPE and year/month bad conversions when accessing some datetime functionality in `ServerPreparedStatements' and their resultant result sets. (Bug #1673) + * Removed `useFastDates' connection property. + * Added named and indexed input/output parameter support to `CallableStatement'. MySQL-5.0.x or newer. (Bug #1673) - * `CommunicationsException' implemented, that tries to determine why - communications was lost with a server, and displays possible - reasons when `.getMessage()' is called. (Bug #1673) - - * Detect collation of column for `RSMD.isCaseSensitive()'. (Bug - #1673) - - * Optimized `Buffer.readLenByteArray()' to return shared empty byte - array when length is 0. - - * Fix support for table aliases when checking for all primary keys - in `UpdatableResultSet'. - - * Unpack `unknown' data types from server prepared statements as - `Strings'. - - * Implemented `Statement.getWarnings()' for MySQL-4.1 and newer - (using *Note `SHOW WARNINGS': show-warnings.). - - * Ensure that warnings are cleared before executing queries on - prepared statements, as-per JDBC spec (now that we support - warnings). - - * Correctly initialize datasource properties from JNDI Refs, - including explicitly specified URLs. - - * Implemented long data (Blobs, Clobs, InputStreams, Readers) for - server prepared statements. + * Fixed off-by-1900 error in some cases for years in + `TimeUtil.fastDate'/`TimeCreate()' when unpacking results from + server-side prepared statements. (Bug #2359) - * Deal with 0-length tokens in `EscapeProcessor' (caused by callable - statement escape syntax). + * Support for *Note `mysql_change_user()': mysql-change-user. See + the `changeUser()' method in `com.mysql.jdbc.Connection'. * `DatabaseMetaData' now reports `supportsStoredProcedures()' for MySQL versions >= 5.0.0 - * Support for *Note `mysql_change_user()': mysql-change-user. See - the `changeUser()' method in `com.mysql.jdbc.Connection'. + * Deal with 0-length tokens in `EscapeProcessor' (caused by callable + statement escape syntax). - * Removed `useFastDates' connection property. + * Reset `long binary' parameters in `ServerPreparedStatement' when + `clearParameters()' is called, by sending `COM_RESET_STMT' to the + server. (Bug #2359) - * Support for NIO. Use `useNIO=true' on platforms that support NIO. + * Server-side prepared statements were not returning data type *Note + `YEAR': year. correctly. (Bug #2606) - * Check for closed connection on delete/update/insert row operations - in `UpdatableResultSet'. + * `NULL' fields were not being encoded correctly in all cases in + server-side prepared statements. (Bug #2671) - * Support for transaction savepoints (MySQL >= 4.0.14 or 4.1.1). + * Implemented long data (Blobs, Clobs, InputStreams, Readers) for + server prepared statements. - * Support `old' `profileSql' capitalization in - `ConnectionProperties'. This property is deprecated, you should use - `profileSQL' if possible. + * Correctly initialize datasource properties from JNDI Refs, + including explicitly specified URLs. - * Fixed character encoding issues when converting bytes to ASCII - when MySQL doesn't provide the character set, and the JVM is set - to a multi-byte encoding (usually affecting retrieval of numeric - values). + * Ensure that warnings are cleared before executing queries on + prepared statements, as-per JDBC spec (now that we support + warnings). - * Centralized setting of result set type and concurrency. + * Implemented `Statement.getWarnings()' for MySQL-4.1 and newer + (using *Note `SHOW WARNINGS': show-warnings.). - * Fixed bug with `UpdatableResultSets' not using client-side - prepared statements. + * Unpack `unknown' data types from server prepared statements as + `Strings'. - * Default result set type changed to `TYPE_FORWARD_ONLY' (JDBC - compliance). + * `NULL' values for numeric types in binary encoded result sets + causing `NullPointerExceptions'. (Bug #2359) - * Fixed `IllegalAccessError' to `Calendar.getTimeInMillis()' in - `DateTimeValue' (for JDK < 1.4). + * `CommunicationsException' implemented, that tries to determine why + communications was lost with a server, and displays possible + reasons when `.getMessage()' is called. (Bug #1673) - * Allow contents of `PreparedStatement.setBlob()' to be retained - between calls to `.execute*()'. + * Fixed rare buffer underflow when writing numbers into buffers for + sending prepared statement execution requests. (Bug #2671) - * Fixed stack overflow in `Connection.prepareCall()' (bad merge). + * Fix support for table aliases when checking for all primary keys + in `UpdatableResultSet'. - * Refactored how connection properties are set and exposed as - `DriverPropertyInfo' as well as `Connection' and `DataSource' - properties. + * Optimized `Buffer.readLenByteArray()' to return shared empty byte + array when length is 0. - * Reduced number of methods called in average query to be more - efficient. + * Detect collation of column for `RSMD.isCaseSensitive()'. (Bug + #1673) - * Prepared `Statements' will be re-prepared on auto-reconnect. Any - errors encountered are postponed until first attempt to re-execute - the re-prepared statement. + * Merged unbuffered input code from 3.0. (Bug #2623)  File: manual.info, Node: cj-news-3-1-0, Prev: cj-news-3-1-1, Up: cj-news-3-1-x -D.5.3.16 Changes in MySQL Connector/J 3.1.0 (18 February 2003 alpha) -.................................................................... +D.5.3.16 Changes in MySQL Connector/J 3.1.0 (18 February 2003, alpha) +..................................................................... *Bugs Fixed* + * Track open `Statements', close all when `Connection.close()' is + called (JDBC compliance). + + * Added `requireSSL' property. + * Added `useServerPrepStmts' property (default `false'). The driver will use server-side prepared statements when the server version supports them (4.1 and newer) when this property is set to `true'. @@ -255632,11 +259430,6 @@ functionality has been implemented. Currently only DML prepared statements are implemented for 4.1 server-side prepared statements. - * Added `requireSSL' property. - - * Track open `Statements', close all when `Connection.close()' is - called (JDBC compliance). -  File: manual.info, Node: cj-news-3-0-x, Next: cj-news-2-0-x, Prev: cj-news-3-1-x, Up: cj-news @@ -255672,6 +259465,9 @@ *Bugs Fixed* + * `PreparedStatement.fixDecimalExponent()' adding extra `+', making + number unparseable by MySQL server. (Bug #7061) + * Workaround for server Bug #9098: Default values of `CURRENT_*' for *Note `DATE': datetime, *Note `TIME': time, *Note `DATETIME': datetime, and *Note `TIMESTAMP': datetime. columns can't be @@ -255679,29 +259475,32 @@ `UpdatableResultSet.moveToInsertRow()' generates bad SQL for inserting default values. (Bug #8812) - * `NON_UNIQUE' column from `DBMD.getIndexInfo()' returned inverted - value. (Bug #8812) + * Handle streaming result sets with more than 2 billion rows + properly by fixing wraparound of row number counter. (Bug #7601) + + * Fixed duplicated code in `configureClientCharset()' that prevented + `useOldUTF8Behavior=true' from working properly. (Bug #7952) + + * Statements created from a pooled connection were returning + physical connection instead of logical connection when + `getConnection()' was called. (Bug #7316) + + * `MS932', `SHIFT_JIS', and `Windows_31J' not recognized as aliases + for `sjis'. (Bug #7607) * `EUCKR' charset is sent as `SET NAMES euc_kr' which MySQL-4.1 and newer doesn't understand. (Bug #8629) - * Added support for the `EUC_JP_Solaris' character encoding, which - maps to a MySQL encoding of `eucjpms' (backported from 3.1 - branch). This only works on servers that support `eucjpms', namely - 5.0.3 or later. (Bug #8629) - - * Use hex escapes for `PreparedStatement.setBytes()' for double-byte - charsets including `aliases' `Windows-31J', `CP934', `MS932'. - (Bug #8629) + * Support new protocol type `MYSQL_TYPE_VARCHAR'. (Bug #7081) - * `DatabaseMetaData.supportsSelectForUpdate()' returns correct value - based on server version. (Bug #8629) + * Connections starting up failed-over (due to down master) never + retry master. (Bug #6966) - * Which requires hex escaping of binary data when using multi-byte - charsets with prepared statements. (Bug #8064) + * `PreparedStatements' don't encode Big5 (and other multi-byte) + character sets correctly in static SQL strings. (Bug #7033) - * Fixed duplicated code in `configureClientCharset()' that prevented - `useOldUTF8Behavior=true' from working properly. (Bug #7952) + * `PreparedStatement.fixDecimalExponent()' adding extra `+', making + number unparseable by MySQL server. (Bug #7601) * Backported SQLState codes mapping from Connector/J 3.1, enable with `useSqlStateCodes=true' as a connection property, it defaults @@ -255709,50 +259508,44 @@ applications (it defaults to `true' starting with Connector/J 3.1). (Bug #7686) - * Timestamp key column data needed `_binary' stripped for - `UpdatableResultSet.refreshRow()'. (Bug #7686) - - * `MS932', `SHIFT_JIS', and `Windows_31J' not recognized as aliases - for `sjis'. (Bug #7607) - - * Handle streaming result sets with more than 2 billion rows - properly by fixing wraparound of row number counter. (Bug #7601) - - * `PreparedStatement.fixDecimalExponent()' adding extra `+', making - number unparseable by MySQL server. (Bug #7601) - - * Escape sequence {fn convert(..., type)} now supports ODBC-style - types that are prepended by `SQL_'. (Bug #7601) - - * Statements created from a pooled connection were returning - physical connection instead of logical connection when - `getConnection()' was called. (Bug #7316) - - * Support new protocol type `MYSQL_TYPE_VARCHAR'. (Bug #7081) - * Added `useOldUTF8Behavior'' configuration property, which causes JDBC driver to act like it did with MySQL-4.0.x and earlier when the character encoding is `utf-8' when connected to MySQL-4.1 or newer. (Bug #7081) - * `DatabaseMetaData.getIndexInfo()' ignored `unique' parameter. - (Bug #7081) + * Escape sequence {fn convert(..., type)} now supports ODBC-style + types that are prepended by `SQL_'. (Bug #7601) - * `PreparedStatement.fixDecimalExponent()' adding extra `+', making - number unparseable by MySQL server. (Bug #7061) + * Added support for the `EUC_JP_Solaris' character encoding, which + maps to a MySQL encoding of `eucjpms' (backported from 3.1 + branch). This only works on servers that support `eucjpms', namely + 5.0.3 or later. (Bug #8629) - * `PreparedStatements' don't encode Big5 (and other multi-byte) - character sets correctly in static SQL strings. (Bug #7033) + * `NON_UNIQUE' column from `DBMD.getIndexInfo()' returned inverted + value. (Bug #8812) + + * Use hex escapes for `PreparedStatement.setBytes()' for double-byte + charsets including `aliases' `Windows-31J', `CP934', `MS932'. + (Bug #8629) + + * Timestamp key column data needed `_binary' stripped for + `UpdatableResultSet.refreshRow()'. (Bug #7686) - * Connections starting up failed-over (due to down master) never - retry master. (Bug #6966) + * `DatabaseMetaData.getIndexInfo()' ignored `unique' parameter. + (Bug #7081) - * Adding `CP943' to aliases for `sjis'. (Bug #6549, Bug #7607) + * `DatabaseMetaData.supportsSelectForUpdate()' returns correct value + based on server version. (Bug #8629) + + * Which requires hex escaping of binary data when using multi-byte + charsets with prepared statements. (Bug #8064) * `Timestamp'/`Time' conversion goes in the wrong `direction' when `useTimeZone=true' and server time zone differs from client time zone. (Bug #5874) + * Adding `CP943' to aliases for `sjis'. (Bug #6549, Bug #7607) +  File: manual.info, Node: cj-news-3-0-16, Next: cj-news-3-0-15, Prev: cj-news-3-0-17, Up: cj-news-3-0-x @@ -255783,14 +259576,14 @@ * Only set `character_set_results' during connection establishment if server version >= 4.1.1. (Bug #5664) - * Fixed `ResultSetMetaData.isReadOnly()' to detect nonwritable - columns when connected to MySQL-4.1 or newer, based on existence - of `original' table and column names. - * Re-issue character set configuration commands when re-using pooled connections or `Connection.changeUser()' when connected to MySQL-4.1 or newer. + * Fixed `ResultSetMetaData.isReadOnly()' to detect nonwritable + columns when connected to MySQL-4.1 or newer, based on existence + of `original' table and column names. +  File: manual.info, Node: cj-news-3-0-15, Next: cj-news-3-0-14, Prev: cj-news-3-0-16, Up: cj-news-3-0-x @@ -255799,6 +259592,25 @@ *Bugs Fixed* + * Calling `.close()' twice on a `PooledConnection' causes NPE. (Bug + #4808) + + * `Production' is now `GA' (General Availability) in naming scheme + of distributions. (Bug #4860, Bug #4138) + + * *Note `DOUBLE': numeric-types. mapped twice in + `DBMD.getTypeInfo()'. (Bug #4742) + + * Removed redundant calls to `checkRowPos()' in `ResultSet'. (Bug + #4334) + + * `DBMD.getColumns()' returns incorrect JDBC type for unsigned + columns. This affects type mappings for all numeric types in the + `RSMD.getColumnType()' and `RSMD.getColumnTypeNames()' methods as + well, to ensure that `like' types from `DBMD.getColumns()' match + up with what `RSMD.getColumnType()' and `getColumnTypeNames()' + return. (Bug #4860, Bug #4138) + * `ResultSet.getMetaData()' should not return incorrectly initialized metadata if the result set has been closed, but should instead throw an `SQLException'. Also fixed for `getRow()' and @@ -255806,15 +259618,6 @@ before operating on instance-level fields that are nullified during `.close()'. (Bug #5069) - * Use `_binary' introducer for `PreparedStatement.setBytes()' and - `set*Stream()' when connected to MySQL-4.1.x or newer to avoid - misinterpretation during character conversion. (Bug #5069) - - * Parse new time zone variables from 4.1.x servers. (Bug #5069) - - * `ResultSet' should release `Field[]' instance in `.close()'. (Bug - #5022) - * `RSMD.getPrecision()' returning 0 for nonnumeric types (should return max length in chars for nonbinary types, max length in bytes for binary types). This fix also fixes mapping of @@ -255824,26 +259627,10 @@ *Note `BLOB': blob, *Note `MEDIUMBLOB': blob. or *Note `LONGBLOB': blob. at the network protocol level). (Bug #4880) - * `Production' is now `GA' (General Availability) in naming scheme - of distributions. (Bug #4860, Bug #4138) - - * `DBMD.getColumns()' returns incorrect JDBC type for unsigned - columns. This affects type mappings for all numeric types in the - `RSMD.getColumnType()' and `RSMD.getColumnTypeNames()' methods as - well, to ensure that `like' types from `DBMD.getColumns()' match - up with what `RSMD.getColumnType()' and `getColumnTypeNames()' - return. (Bug #4860, Bug #4138) - - * Calling `.close()' twice on a `PooledConnection' causes NPE. (Bug - #4808) - - * *Note `DOUBLE': numeric-types. mapped twice in - `DBMD.getTypeInfo()'. (Bug #4742) - * Added FLOSS license exemption. (Bug #4742) - * Removed redundant calls to `checkRowPos()' in `ResultSet'. (Bug - #4334) + * `ResultSet' should release `Field[]' instance in `.close()'. (Bug + #5022) * Failover for `autoReconnect' not using port numbers for any hosts, and not retrying all hosts. @@ -255857,6 +259644,10 @@ (Bug #4334) + * Use `_binary' introducer for `PreparedStatement.setBytes()' and + `set*Stream()' when connected to MySQL-4.1.x or newer to avoid + misinterpretation during character conversion. (Bug #5069) + * Logical connections created by `MysqlConnectionPoolDataSource' will now issue a `rollback()' when they are closed and sent back to the pool. If your application server/connection pool already @@ -255864,6 +259655,8 @@ property to `false' to avoid the overhead of an extra `rollback()'. (Bug #4334) + * Parse new time zone variables from 4.1.x servers. (Bug #5069) + * `StringUtils.escapeEasternUnicodeByteStream' was still broken for GBK. (Bug #4010) @@ -255885,13 +259678,13 @@ *Bugs Fixed* - * `No Database Selected' when using `MysqlConnectionPoolDataSource'. - (Bug #3920) + * Using a `MySQLDatasource' without server name fails. (Bug #3848) * `PreparedStatement.getGeneratedKeys()' method returns only 1 result for batched insertions. (Bug #3873) - * Using a `MySQLDatasource' without server name fails. (Bug #3848) + * `No Database Selected' when using `MysqlConnectionPoolDataSource'. + (Bug #3920)  File: manual.info, Node: cj-news-3-0-12, Next: cj-news-3-0-11, Prev: cj-news-3-0-13, Up: cj-news-3-0-x @@ -255901,49 +259694,37 @@ *Bugs Fixed* - * Inconsistent reporting of data type. The server still doesn't - return all types for *BLOBs *TEXT correctly, so the driver won't - return those correctly. (Bug #3570) - - * `UpdatableResultSet' not picking up default values for - `moveToInsertRow()'. (Bug #3557) - - * Not specifying database in URL caused `MalformedURL' exception. - (Bug #3554) - - * Auto-convert MySQL encoding names to Java encoding names if used - for `characterEncoding' property. (Bug #3554) - - * Use `junit.textui.TestRunner' for all unit tests (to enable them - to be run from the command line outside of Ant or Eclipse). (Bug - #3554) - - * Added encoding names that are recognized on some JVMs to fix case - where they were reverse-mapped to MySQL encoding names incorrectly. - (Bug #3554) + * Backported `change user' and `reset server state' functionality + from 3.1 branch, to enable clients of + `MysqlConnectionPoolDataSource' to reset server state on + `getConnection()' on a pooled connection. * Made `StringRegressionTest' 4.1-unicode aware. (Bug #3520) + * Use `SET character_set_results' during initialization to enable + any charset to be returned to the driver for result sets. (Bug + #2670) + * Fixed regression in `PreparedStatement.setString()' and eastern character encodings. (Bug #3520) - * `DBMD.getSQLStateType()' returns incorrect value. (Bug #3520) + * Don't truncate `BLOB' or `CLOB' values when using `setBytes()' and + `setBinary/CharacterStream()'. (Bug #2670) - * Renamed `StringUtils.escapeSJISByteStream()' to more appropriate - `escapeEasternUnicodeByteStream()'. (Bug #3511) + * Map duplicate key and foreign key errors to SQLState of `23000'. - * `StringUtils.escapeSJISByteStream()' not covering all eastern - double-byte charsets correctly. (Bug #3511) + * Allow `java.util.Date' to be sent in as parameter to + `PreparedStatement.setObject()', converting it to a `Timestamp' to + maintain full precision. . (Bug #103) - * Return creating statement for `ResultSets' created by - `getGeneratedKeys()'. (Bug #2957) + * Add unsigned attribute to `DatabaseMetaData.getColumns()' output + in the `TYPE_NAME' column. - * Use `SET character_set_results' during initialization to enable - any charset to be returned to the driver for result sets. (Bug - #2670) + * Not specifying database in URL caused `MalformedURL' exception. + (Bug #3554) - * Don't truncate `BLOB' or `CLOB' values when using `setBytes()' and - `setBinary/CharacterStream()'. (Bug #2670) + * Added `failOverReadOnly' property, to enable the user to configure + the state of the connection (read-only/writable) when failed over. * Dynamically configure character set mappings for field-level character sets on MySQL-4.1.0 and newer using *Note `SHOW @@ -255953,40 +259734,52 @@ `DATETIME': datetime. charset recognition for servers >= 4.1.2. (Bug #2670) + * Inconsistent reporting of data type. The server still doesn't + return all types for *BLOBs *TEXT correctly, so the driver won't + return those correctly. (Bug #3570) + + * Auto-convert MySQL encoding names to Java encoding names if used + for `characterEncoding' property. (Bug #3554) + + * Backport documentation tooling from 3.1 branch. + + * Use `junit.textui.TestRunner' for all unit tests (to enable them + to be run from the command line outside of Ant or Eclipse). (Bug + #3554) + + * Renamed `StringUtils.escapeSJISByteStream()' to more appropriate + `escapeEasternUnicodeByteStream()'. (Bug #3511) + * Use `charsetnr' returned during connect to encode queries before issuing `SET NAMES' on MySQL >= 4.1.0. (Bug #2670) + * `StringUtils.escapeSJISByteStream()' not covering all eastern + double-byte charsets correctly. (Bug #3511) + + * `DBMD.getSQLStateType()' returns incorrect value. (Bug #3520) + * Add helper methods to `ResultSetMetaData' (`getColumnCharacterEncoding()' and `getColumnCharacterSet()') to permit end users to see what charset the driver thinks it should be using for the column. (Bug #2670) - * Only set `character_set_results' for MySQL >= 4.1.0. (Bug #2670) - - * Allow `url' parameter for `MysqlDataSource' and - `MysqlConnectionPool' `DataSource' so that passing of other - properties is possible from inside appservers. - * Don't escape SJIS/GBK/BIG5 when using MySQL-4.1 or newer. - * Backport documentation tooling from 3.1 branch. - - * Added `failOverReadOnly' property, to enable the user to configure - the state of the connection (read-only/writable) when failed over. + * Added encoding names that are recognized on some JVMs to fix case + where they were reverse-mapped to MySQL encoding names incorrectly. + (Bug #3554) - * Add unsigned attribute to `DatabaseMetaData.getColumns()' output - in the `TYPE_NAME' column. + * Only set `character_set_results' for MySQL >= 4.1.0. (Bug #2670) - * Allow `java.util.Date' to be sent in as parameter to - `PreparedStatement.setObject()', converting it to a `Timestamp' to - maintain full precision. . (Bug #103) + * Return creating statement for `ResultSets' created by + `getGeneratedKeys()'. (Bug #2957) - * Map duplicate key and foreign key errors to SQLState of `23000'. + * `UpdatableResultSet' not picking up default values for + `moveToInsertRow()'. (Bug #3557) - * Backported `change user' and `reset server state' functionality - from 3.1 branch, to enable clients of - `MysqlConnectionPoolDataSource' to reset server state on - `getConnection()' on a pooled connection. + * Allow `url' parameter for `MysqlDataSource' and + `MysqlConnectionPool' `DataSource' so that passing of other + properties is possible from inside appservers.  File: manual.info, Node: cj-news-3-0-11, Next: cj-news-3-0-10, Prev: cj-news-3-0-12, Up: cj-news-3-0-x @@ -255996,34 +259789,34 @@ *Bugs Fixed* - * Return `java.lang.Double' for *Note `FLOAT': numeric-types. type - from `ResultSetMetaData.getColumnClassName()'. (Bug #2855) - - * Return `[B' instead of `java.lang.Object' for *Note `BINARY': - binary-varbinary, *Note `VARBINARY': binary-varbinary. and - `LONGVARBINARY' types from - `ResultSetMetaData.getColumnClassName()' (JDBC compliance). (Bug - #2855) - - * Issue connection events on all instances created from a - `ConnectionPoolDataSource'. (Bug #2855) - * Return `java.lang.Integer' for *Note `TINYINT': numeric-types. and *Note `SMALLINT': numeric-types. types from `ResultSetMetaData.getColumnClassName()'. (Bug #2852) + * Return `java.lang.Double' for *Note `FLOAT': numeric-types. type + from `ResultSetMetaData.getColumnClassName()'. (Bug #2855) + * Added `useUnbufferedInput' parameter, and now use it by default (due to JVM issue `http://developer.java.sun.com/developer/bugParade/bugs/4401235.html') (Bug #2578) + * `AutoReconnect' time was growing faster than exponentially. (Bug + #2447) + * Fixed failover always going to last host in list. (Bug #2578) * Detect `on'/`off' or `1', `2', `3' form of `lower_case_table_names' value on server. (Bug #2578) - * `AutoReconnect' time was growing faster than exponentially. (Bug - #2447) + * Return `[B' instead of `java.lang.Object' for *Note `BINARY': + binary-varbinary, *Note `VARBINARY': binary-varbinary. and + `LONGVARBINARY' types from + `ResultSetMetaData.getColumnClassName()' (JDBC compliance). (Bug + #2855) + + * Issue connection events on all instances created from a + `ConnectionPoolDataSource'. (Bug #2855) * Trigger a `SET NAMES utf8' when encoding is forced to `utf8' _or_ `utf-8' using the `characterEncoding' property. Previously, only @@ -256037,11 +259830,26 @@ *Bugs Fixed* + * Fixed regression of `Statement.getGeneratedKeys()' and *Note + `REPLACE': replace. statements. (Bug #1576) + + * Implement `ResultSet.updateClob()'. (Bug #1913) + * Enable caching of the parsing stage of prepared statements using the `cachePrepStmts', `prepStmtCacheSize', and `prepStmtCacheSqlLimit' properties (disabled by default). (Bug #2006) + * Foreign Keys column sequence is not consistent in + `DatabaseMetaData.getImported/Exported/CrossReference()'. (Bug + #1731) + + * Subsequent call to `ResultSet.updateFoo()' causes NPE if result + set is not updatable. (Bug #1630) + + * Backported fix for aliased tables and `UpdatableResultSets' in + `checkUpdatability()' method from 3.1 branch. (Bug #1534) + * Fixed security exception when used in Applets (applets can't read the system property `file.encoding' which is needed for *Note `LOAD DATA LOCAL INFILE': load-data.). (Bug #2006) @@ -256049,12 +259857,34 @@ * Speed up parsing of `PreparedStatements', try to use one-pass whenever possible. (Bug #2006) + * Support escape sequence {fn convert ... }. (Bug #1914) + + * Autoreconnect code didn't set catalog upon reconnect if it had + been changed. (Bug #1913) + * Fixed exception `Unknown character set 'danish'' on connect with JDK-1.4.0 (Bug #2006) * Fixed mappings in SQLError to report deadlocks with SQLStates of `41000'. (Bug #2006) + * `ResultSet.getObject()' on *Note `TINYINT': numeric-types. and + *Note `SMALLINT': numeric-types. columns should return Java type + `Integer'. (Bug #1913) + + * `ArrayIndexOutOfBounds' when parameter number == number of + parameters + 1. (Bug #1958) + + * Added more descriptive error message `Server Configuration Denies + Access to DataSource', as well as retrieval of message from server. + (Bug #1913) + + * `Friendlier' exception message for `PacketTooLargeException'. + (Bug #1534) + + * Don't count quoted IDs when inside a 'string' in + `PreparedStatement' parsing. (Bug #1511) + * Removed static synchronization bottleneck from instance factory method of `SingleByteCharsetConverter'. (Bug #2006) @@ -256069,89 +259899,81 @@ for all statement creation internal to the driver, and set to 0 when it is not. (Bug #2006) - * Use constants for SQLStates. (Bug #2006) + * Barge blobs and split packets not being read correctly. (Bug + #1576) - * Map charset `ko18_ru' to `ko18r' when connected to MySQL-4.1.0 or - newer. (Bug #2006) + * `ResultSetMetaData.isCaseSensitive()' returned wrong value for + *Note `CHAR': char./*Note `VARCHAR': char. columns. (Bug #1913) - * Ensure that `Buffer.writeString()' saves room for the `\0'. (Bug - #2006) + * `DatabaseMetaData.getSystemFunction()' returning bad function + `VResultsSion'. (Bug #1775) - * `ArrayIndexOutOfBounds' when parameter number == number of - parameters + 1. (Bug #1958) + * Use constants for SQLStates. (Bug #2006) - * Connection property `maxRows' not honored. (Bug #1933) + * Fix for 4.1.1-style authentication with no password. (Bug #1630) + + * Cross-database updatable result sets are not checked for + updatability correctly. (Bug #1592) * Statements being created too many times in `DBMD.extractForeignKeyFromCreateTable()'. (Bug #1925) - * Support escape sequence {fn convert ... }. (Bug #1914) - - * Implement `ResultSet.updateClob()'. (Bug #1913) - - * Autoreconnect code didn't set catalog upon reconnect if it had - been changed. (Bug #1913) - - * `ResultSet.getObject()' on *Note `TINYINT': numeric-types. and - *Note `SMALLINT': numeric-types. columns should return Java type - `Integer'. (Bug #1913) + * Map charset `ko18_ru' to `ko18r' when connected to MySQL-4.1.0 or + newer. (Bug #2006) - * Added more descriptive error message `Server Configuration Denies - Access to DataSource', as well as retrieval of message from server. - (Bug #1913) + * Fix for `ArrayIndexOutOfBounds' exception when using + `Statement.setMaxRows()'. (Bug #1695) - * `ResultSetMetaData.isCaseSensitive()' returned wrong value for - *Note `CHAR': char./*Note `VARCHAR': char. columns. (Bug #1913) + * Connection property `maxRows' not honored. (Bug #1933) * Added `alwaysClearStream' connection property, which causes the driver to always empty any remaining data on the input stream before each query. (Bug #1913) - * `DatabaseMetaData.getSystemFunction()' returning bad function - `VResultsSion'. (Bug #1775) - - * Foreign Keys column sequence is not consistent in - `DatabaseMetaData.getImported/Exported/CrossReference()'. (Bug - #1731) + * `DatabaseMetaData.getColumns()' should return `Types.LONGVARCHAR' + for MySQL *Note `LONGTEXT': blob. type. (Bug #1592) - * Fix for `ArrayIndexOutOfBounds' exception when using - `Statement.setMaxRows()'. (Bug #1695) + * Ensure that `Buffer.writeString()' saves room for the `\0'. (Bug + #2006) - * Subsequent call to `ResultSet.updateFoo()' causes NPE if result - set is not updatable. (Bug #1630) + +File: manual.info, Node: cj-news-3-0-9, Next: cj-news-3-0-8, Prev: cj-news-3-0-10, Up: cj-news-3-0-x - * Fix for 4.1.1-style authentication with no password. (Bug #1630) +D.5.4.9 Changes in MySQL Connector/J 3.0.9 (07 October 2003) +............................................................ - * Cross-database updatable result sets are not checked for - updatability correctly. (Bug #1592) +*Bugs Fixed* - * `DatabaseMetaData.getColumns()' should return `Types.LONGVARCHAR' - for MySQL *Note `LONGTEXT': blob. type. (Bug #1592) + * Issue exception on `ResultSet.getXXX()' on empty result set + (wasn't caught in some cases). (Bug #848) - * Fixed regression of `Statement.getGeneratedKeys()' and *Note - `REPLACE': replace. statements. (Bug #1576) + * Made `databaseName', `portNumber', and `serverName' optional + parameters for `MysqlDataSourceFactory'. (Bug #1246) - * Barge blobs and split packets not being read correctly. (Bug - #1576) + * `ResultSet.get/setString' mashing char 127. (Bug #1247) - * Backported fix for aliased tables and `UpdatableResultSets' in - `checkUpdatability()' method from 3.1 branch. (Bug #1534) + * Double-escaping of `'\'' when charset is SJIS or GBK and `'\'' + appears in nonescaped input. (Bug #879) - * `Friendlier' exception message for `PacketTooLargeException'. - (Bug #1534) + * Don't hide messages from exceptions thrown in I/O layers. (Bug + #848) - * Don't count quoted IDs when inside a 'string' in - `PreparedStatement' parsing. (Bug #1511) + * Support `InnoDB' constraint names when extracting foreign key + information in `DatabaseMetaData' (implementing ideas from + Parwinder Sekhon). (Bug #664, Bug #517) - -File: manual.info, Node: cj-news-3-0-9, Next: cj-news-3-0-8, Prev: cj-news-3-0-10, Up: cj-news-3-0-x + * Fixed `CLOB.truncate()'. (Bug #1130) -D.5.4.9 Changes in MySQL Connector/J 3.0.9 (07 October 2003) -............................................................ + * Fixed `ResultSet.previous()' behavior to move current position to + before result set when on first row of result set. (Bug #496) -*Bugs Fixed* + * Backported 4.1 protocol changes from 3.1 branch (server-side SQL + states, new field information, larger client capability flags, + connect-with-database, and so forth). (Bug #664, Bug #517) - * `ResultSet.get/setString' mashing char 127. (Bug #1247) + * Fixed `Statement' and `PreparedStatement' issuing bogus queries + when `setMaxRows()' had been used and a `LIMIT' clause was present + in the query. (Bug #496) * Added property to `clobber' streaming results, by setting the `clobberStreamingResults' property to `true' (the default is @@ -256160,95 +259982,66 @@ from the server to be discarded if another query is executed before all the data has been read from the server. (Bug #1247) - * Added `com.mysql.jdbc.util.BaseBugReport' to help creation of - testcases for bug reports. (Bug #1247) - - * Backported authentication changes for 4.1.1 and newer from 3.1 - branch. (Bug #1247) - - * Made `databaseName', `portNumber', and `serverName' optional - parameters for `MysqlDataSourceFactory'. (Bug #1246) - - * Optimized `CLOB.setChracterStream()'. (Bug #1131) - - * Fixed `CLOB.truncate()'. (Bug #1130) + * When emptying input stream of unused rows for `streaming' result + sets, have the current thread `yield()' every 100 rows to not + monopolize CPU time. (Bug #879) * Fixed deadlock issue with `Statement.setMaxRows()'. (Bug #1099) - * `DatabaseMetaData.getColumns()' getting confused about the keyword - `set' in character columns. (Bug #1099) + * Don't wrap `SQLExceptions' in `RowDataDynamic'. (Bug #688) + + * Added `com.mysql.jdbc.util.BaseBugReport' to help creation of + testcases for bug reports. (Bug #1247) * Clip +/- INF (to smallest and largest representative values for the type in MySQL) and NaN (to 0) for `setDouble'/`setFloat()', and issue a warning on the statement when the server does not support +/- INF or NaN. (Bug #884) - * Don't fire connection closed events when closing pooled - connections, or on `PooledConnection.getConnection()' with already - open connections. (Bug #884) - - * Double-escaping of `'\'' when charset is SJIS or GBK and `'\'' - appears in nonescaped input. (Bug #879) - - * When emptying input stream of unused rows for `streaming' result - sets, have the current thread `yield()' every 100 rows to not - monopolize CPU time. (Bug #879) - - * Issue exception on `ResultSet.getXXX()' on empty result set - (wasn't caught in some cases). (Bug #848) + * Don't try and reset isolation level on reconnect if MySQL doesn't + support them. (Bug #688) - * Don't hide messages from exceptions thrown in I/O layers. (Bug - #848) + * `DatabaseMetaData.getColumns()' getting confused about the keyword + `set' in character columns. (Bug #1099) * Fixed regression in large split-packet handling. (Bug #848) - * Better diagnostic error messages in exceptions for `streaming' - result sets. (Bug #848) - - * Don't change timestamp TZ twice if `useTimezone==true'. (Bug #774) - - * Don't wrap `SQLExceptions' in `RowDataDynamic'. (Bug #688) - - * Don't try and reset isolation level on reconnect if MySQL doesn't - support them. (Bug #688) + * Fixed test for end of buffer in `Buffer.readString()'. * The `insertRow' in an `UpdatableResultSet' is now loaded with the default column values when `moveToInsertRow()' is called. (Bug #688) - * `DatabaseMetaData.getColumns()' wasn't returning `NULL' for - default values that are specified as `NULL'. (Bug #688) - - * Change default statement type/concurrency to `TYPE_FORWARD_ONLY' - and `CONCUR_READ_ONLY' (spec compliance). (Bug #688) + * Better diagnostic error messages in exceptions for `streaming' + result sets. (Bug #848) - * Fix `UpdatableResultSet' to return values for `getXXX()' when on - insert row. (Bug #675) + * Backported authentication changes for 4.1.1 and newer from 3.1 + branch. (Bug #1247) - * Support `InnoDB' constraint names when extracting foreign key - information in `DatabaseMetaData' (implementing ideas from - Parwinder Sekhon). (Bug #664, Bug #517) + * `DatabaseMetaData.getColumns()' wasn't returning `NULL' for + default values that are specified as `NULL'. (Bug #688) - * Backported 4.1 protocol changes from 3.1 branch (server-side SQL - states, new field information, larger client capability flags, - connect-with-database, and so forth). (Bug #664, Bug #517) + * Don't change timestamp TZ twice if `useTimezone==true'. (Bug #774) * `refreshRow' didn't work when primary key values contained values that needed to be escaped (they ended up being doubly escaped). (Bug #661) - * Fixed `ResultSet.previous()' behavior to move current position to - before result set when on first row of result set. (Bug #496) + * Fix `UpdatableResultSet' to return values for `getXXX()' when on + insert row. (Bug #675) - * Fixed `Statement' and `PreparedStatement' issuing bogus queries - when `setMaxRows()' had been used and a `LIMIT' clause was present - in the query. (Bug #496) + * Don't fire connection closed events when closing pooled + connections, or on `PooledConnection.getConnection()' with already + open connections. (Bug #884) + + * Change default statement type/concurrency to `TYPE_FORWARD_ONLY' + and `CONCUR_READ_ONLY' (spec compliance). (Bug #688) * Faster date handling code in `ResultSet' and `PreparedStatement' (no longer uses `Date' methods that synchronize on static calendars). - * Fixed test for end of buffer in `Buffer.readString()'. + * Optimized `CLOB.setChracterStream()'. (Bug #1131)  File: manual.info, Node: cj-news-3-0-8, Next: cj-news-3-0-7, Prev: cj-news-3-0-9, Up: cj-news-3-0-x @@ -256260,6 +260053,8 @@ * Fixed SJIS encoding bug, thanks to Naoto Sato. (Bug #378) + * Allow bogus URLs in `Driver.getPropertyInfo()'. + * Fix problem detecting server character set in some cases. (Bug #378) @@ -256271,32 +260066,30 @@ * Unicode character 0xFFFF in a string would cause the driver to throw an `ArrayOutOfBoundsException'. . (Bug #378) + * Return list of generated keys when using multi-value `INSERTS' with + `Statement.getGeneratedKeys()'. + + * Fixed result set not getting set for `Statement.executeUpdate()', + which affected `getGeneratedKeys()' and `getUpdateCount()' in some + cases. + + * Changed Ant target `compile-core' to `compile-driver', and made + testsuite compilation a separate target. + + * Fix infinite loop with `Connection.cleanup()'. + * Fix row data decoding error when using _very_ large packets. (Bug #378) * Optimized row data decoding. (Bug #378) + * Use JVM charset with file names and `LOAD DATA [LOCAL] INFILE'. + * Issue exception when operating on an already closed prepared statement. (Bug #378) * Optimized usage of `EscapeProcessor'. (Bug #378) - * Use JVM charset with file names and `LOAD DATA [LOCAL] INFILE'. - - * Fix infinite loop with `Connection.cleanup()'. - - * Changed Ant target `compile-core' to `compile-driver', and made - testsuite compilation a separate target. - - * Fixed result set not getting set for `Statement.executeUpdate()', - which affected `getGeneratedKeys()' and `getUpdateCount()' in some - cases. - - * Return list of generated keys when using multi-value `INSERTS' with - `Statement.getGeneratedKeys()'. - - * Allow bogus URLs in `Driver.getPropertyInfo()'. -  File: manual.info, Node: cj-news-3-0-7, Next: cj-news-3-0-6, Prev: cj-news-3-0-8, Up: cj-news-3-0-x @@ -256305,50 +260098,50 @@ *Bugs Fixed* - * Fixed charset issues with database metadata (charset was not - getting set correctly). - - * You can now toggle profiling on/off using - `Connection.setProfileSql(boolean)'. + * Throw `SQLExceptions' when trying to do operations on a forcefully + closed `Connection' (that is, when a communication link failure + occurs). - * 4.1 Column Metadata fixes. + * Fixed `ResultSet.getTimestamp()' when underlying field is of type + *Note `DATE': datetime. - * Fixed `MysqlPooledConnection.close()' calling wrong event type. + * Fixed escaping of 0x5c (`'\'') character for GBK and Big5 charsets. - * Fixed `StringIndexOutOfBoundsException' in - `PreparedStatement.setClob()'. + * Don't reset `Connection.isReadOnly()' when autoReconnecting. - * `IOExceptions' during a transaction now cause the `Connection' to - be closed. + * Ensure that packet size from `alignPacketSize()' does not exceed + `max_allowed_packet' (JVM bug) - * Remove synchronization from `Driver.connect()' and - `Driver.acceptsUrl()'. + * Don't pick up indexes that start with `pri' as primary keys for + `DBMD.getPrimaryKeys()'. - * Fixed missing conversion for *Note `YEAR': year. type in - `ResultSetMetaData.getColumnTypeName()'. + * Fixed *Note `LOAD DATA LOCAL INFILE': load-data. bug when file > + `max_allowed_packet'. * Updatable `ResultSets' can now be created for aliased tables/columns when connected to MySQL-4.1 or newer. - * Fixed *Note `LOAD DATA LOCAL INFILE': load-data. bug when file > - `max_allowed_packet'. + * Fixed missing conversion for *Note `YEAR': year. type in + `ResultSetMetaData.getColumnTypeName()'. - * Don't pick up indexes that start with `pri' as primary keys for - `DBMD.getPrimaryKeys()'. + * Remove synchronization from `Driver.connect()' and + `Driver.acceptsUrl()'. - * Ensure that packet size from `alignPacketSize()' does not exceed - `max_allowed_packet' (JVM bug) + * `IOExceptions' during a transaction now cause the `Connection' to + be closed. - * Don't reset `Connection.isReadOnly()' when autoReconnecting. + * Fixed `StringIndexOutOfBoundsException' in + `PreparedStatement.setClob()'. - * Fixed escaping of 0x5c (`'\'') character for GBK and Big5 charsets. + * Fixed `MysqlPooledConnection.close()' calling wrong event type. - * Fixed `ResultSet.getTimestamp()' when underlying field is of type - *Note `DATE': datetime. + * 4.1 Column Metadata fixes. - * Throw `SQLExceptions' when trying to do operations on a forcefully - closed `Connection' (that is, when a communication link failure - occurs). + * You can now toggle profiling on/off using + `Connection.setProfileSql(boolean)'. + + * Fixed charset issues with database metadata (charset was not + getting set correctly).  File: manual.info, Node: cj-news-3-0-6, Next: cj-news-3-0-5, Prev: cj-news-3-0-7, Up: cj-news-3-0-x @@ -256358,40 +260151,40 @@ *Bugs Fixed* - * Backported 4.1 charset field info changes from Connector/J 3.1. + * Add `window' of different `NULL' sorting behavior to + `DBMD.nullsAreSortedAtStart' (4.0.2 to 4.0.10, true; otherwise, + no). - * Fixed `Statement.setMaxRows()' to stop sending `LIMIT' type - queries when not needed (performance). + * Implemented `Blob.setBytes()'. You still need to pass the + resultant `Blob' back into an updatable `ResultSet' or + `PreparedStatement' to persist the changes, because MySQL does not + support `locators'. - * Fixed `DBMD.getTypeInfo()' and `DBMD.getColumns()' returning - different value for precision in *Note `TEXT': blob. and *Note - `BLOB': blob. types. + * More checks added in `ResultSet' traversal method to catch when in + closed state. - * Fixed `SQLExceptions' getting swallowed on initial connect. + * Fixed `ResultSetMetaData.isWritable()' to return correct value. - * Fixed `ResultSetMetaData' to return `""' when catalog not known. - Fixes `NullPointerExceptions' with Sun's `CachedRowSet'. + * Clean up `Statement' query/method mismatch tests (that is, *Note + `INSERT': insert. not permitted with `.executeQuery()'). * Allow ignoring of warning for `non transactional tables' during rollback (compliance/usability) by setting `ignoreNonTxTables' property to `true'. - * Clean up `Statement' query/method mismatch tests (that is, *Note - `INSERT': insert. not permitted with `.executeQuery()'). + * Fixed `ResultSetMetaData' to return `""' when catalog not known. + Fixes `NullPointerExceptions' with Sun's `CachedRowSet'. - * Fixed `ResultSetMetaData.isWritable()' to return correct value. + * Fixed `SQLExceptions' getting swallowed on initial connect. - * More checks added in `ResultSet' traversal method to catch when in - closed state. + * Fixed `DBMD.getTypeInfo()' and `DBMD.getColumns()' returning + different value for precision in *Note `TEXT': blob. and *Note + `BLOB': blob. types. - * Implemented `Blob.setBytes()'. You still need to pass the - resultant `Blob' back into an updatable `ResultSet' or - `PreparedStatement' to persist the changes, because MySQL does not - support `locators'. + * Fixed `Statement.setMaxRows()' to stop sending `LIMIT' type + queries when not needed (performance). - * Add `window' of different `NULL' sorting behavior to - `DBMD.nullsAreSortedAtStart' (4.0.2 to 4.0.10, true; otherwise, - no). + * Backported 4.1 charset field info changes from Connector/J 3.1.  File: manual.info, Node: cj-news-3-0-5, Next: cj-news-3-0-4, Prev: cj-news-3-0-6, Up: cj-news-3-0-x @@ -256401,28 +260194,28 @@ *Bugs Fixed* - * Fixed `ResultSet.isBeforeFirst()' for empty result sets. - - * Added missing *Note `LONGTEXT': blob. type to `DBMD.getColumns()'. + * Greatly reduce memory required for `setBinaryStream()' in + `PreparedStatements'. - * Implemented an empty `TypeMap' for `Connection.getTypeMap()' so - that some third-party apps work with MySQL (IBM WebSphere 5.0 - Connection pool). + * Retrieve `TX_ISOLATION' from database for + `Connection.getTransactionIsolation()' when the MySQL version + supports it, instead of an instance variable. - * Added update options for foreign key metadata. + * Quote table names in `DatabaseMetaData.getColumns()', + `getPrimaryKeys()', `getIndexInfo()', `getBestRowIdentifier()'. * Fixed `Buffer.fastSkipLenString()' causing `ArrayIndexOutOfBounds' exceptions with some queries when unpacking fields. - * Quote table names in `DatabaseMetaData.getColumns()', - `getPrimaryKeys()', `getIndexInfo()', `getBestRowIdentifier()'. + * Added update options for foreign key metadata. - * Retrieve `TX_ISOLATION' from database for - `Connection.getTransactionIsolation()' when the MySQL version - supports it, instead of an instance variable. + * Implemented an empty `TypeMap' for `Connection.getTypeMap()' so + that some third-party apps work with MySQL (IBM WebSphere 5.0 + Connection pool). - * Greatly reduce memory required for `setBinaryStream()' in - `PreparedStatements'. + * Added missing *Note `LONGTEXT': blob. type to `DBMD.getColumns()'. + + * Fixed `ResultSet.isBeforeFirst()' for empty result sets.  File: manual.info, Node: cj-news-3-0-4, Next: cj-news-3-0-3, Prev: cj-news-3-0-5, Up: cj-news-3-0-x @@ -256432,18 +260225,7 @@ *Bugs Fixed* - * Streamlined character conversion and `byte[]' handling in - `PreparedStatements' for `setByte()'. - - * Fixed `PreparedStatement.executeBatch()' parameter overwriting. - - * Added quoted identifiers to database names for - `Connection.setCatalog'. - - * Added support for 4.0.8-style large packets. - - * Reduce memory footprint of `PreparedStatements' by sharing - outbound packet with `MysqlIO'. + * Added support for quoted identifiers in `PreparedStatement' parser. * Added `strictUpdates' property to enable control of amount of checking for `correctness' of updatable result sets. Set this to @@ -256452,7 +260234,18 @@ with primary keys and that you have selected all primary keys in your query. - * Added support for quoted identifiers in `PreparedStatement' parser. + * Reduce memory footprint of `PreparedStatements' by sharing + outbound packet with `MysqlIO'. + + * Added support for 4.0.8-style large packets. + + * Added quoted identifiers to database names for + `Connection.setCatalog'. + + * Fixed `PreparedStatement.executeBatch()' parameter overwriting. + + * Streamlined character conversion and `byte[]' handling in + `PreparedStatements' for `setByte()'.  File: manual.info, Node: cj-news-3-0-3, Next: cj-news-3-0-2, Prev: cj-news-3-0-4, Up: cj-news-3-0-x @@ -256462,66 +260255,66 @@ *Bugs Fixed* - * Allow user to alter behavior of `Statement'/ - `PreparedStatement.executeBatch()' using `continueBatchOnError' - property (defaults to `true'). - - * More robust escape tokenizer: Recognize `--' comments, and permit - nested escape sequences (see `testsuite.EscapeProcessingTest'). + * Changed `SingleByteCharConverter' to use lazy initialization of + each converter. - * Fixed `Buffer.isLastDataPacket()' for 4.1 and newer servers. + * Fixed `ResultSetMetaData.getPrecision()' returning incorrect + values for some floating-point types. - * `NamedPipeSocketFactory' now works (only intended for Windows), - see `README' for instructions. + * Check for connection closed in more `Connection' methods + (`createStatement', `prepareStatement', `setTransactionIsolation', + `setAutoCommit'). - * Changed `charsToByte' in `SingleByteCharConverter' to be nonstatic. + * Some MySQL-4.1 protocol support (extended field info from selects). - * Use nonaliased table/column names and database names to fully - qualify tables and columns in `UpdatableResultSet' (requires - MySQL-4.1 or newer). + * More robust implementation of updatable result sets. Checks that + _all_ primary keys of the table have been selected. - * `LOAD DATA LOCAL INFILE ...' now works, if your server is - configured to permit it. Can be turned off with the - `allowLoadLocalInfile' property (see the `README'). + * `DBMD.getImported/ExportedKeys()' now handles multiple foreign + keys per table. - * Implemented `Connection.nativeSQL()'. + * Honor `lower_case_table_names' when enabled in the server when + doing table name comparisons in `DatabaseMetaData' methods. - * Fixed `ResultSetMetaData.getColumnTypeName()' returning *Note - `BLOB': blob. for *Note `TEXT': blob. and *Note `TEXT': blob. for - *Note `BLOB': blob. types. + * Added `CLIENT_LONG_FLAG' to be able to get more column flags + (`isAutoIncrement()' being the most important). - * Fixed charset handling in `Fields.java'. + * Substitute `'?'' for unknown character conversions in single-byte + character sets instead of `'\0''. * Because of above, implemented `ResultSetMetaData.isAutoIncrement()' to use `Field.isAutoIncrement()'. - * Substitute `'?'' for unknown character conversions in single-byte - character sets instead of `'\0''. + * Fixed charset handling in `Fields.java'. - * Added `CLIENT_LONG_FLAG' to be able to get more column flags - (`isAutoIncrement()' being the most important). + * Fixed `ResultSetMetaData.getColumnTypeName()' returning *Note + `BLOB': blob. for *Note `TEXT': blob. and *Note `TEXT': blob. for + *Note `BLOB': blob. types. - * Honor `lower_case_table_names' when enabled in the server when - doing table name comparisons in `DatabaseMetaData' methods. + * Implemented `Connection.nativeSQL()'. - * `DBMD.getImported/ExportedKeys()' now handles multiple foreign - keys per table. + * `LOAD DATA LOCAL INFILE ...' now works, if your server is + configured to permit it. Can be turned off with the + `allowLoadLocalInfile' property (see the `README'). - * More robust implementation of updatable result sets. Checks that - _all_ primary keys of the table have been selected. + * Use nonaliased table/column names and database names to fully + qualify tables and columns in `UpdatableResultSet' (requires + MySQL-4.1 or newer). - * Some MySQL-4.1 protocol support (extended field info from selects). + * Changed `charsToByte' in `SingleByteCharConverter' to be nonstatic. - * Check for connection closed in more `Connection' methods - (`createStatement', `prepareStatement', `setTransactionIsolation', - `setAutoCommit'). + * `NamedPipeSocketFactory' now works (only intended for Windows), + see `README' for instructions. - * Fixed `ResultSetMetaData.getPrecision()' returning incorrect - values for some floating-point types. + * Fixed `Buffer.isLastDataPacket()' for 4.1 and newer servers. - * Changed `SingleByteCharConverter' to use lazy initialization of - each converter. + * More robust escape tokenizer: Recognize `--' comments, and permit + nested escape sequences (see `testsuite.EscapeProcessingTest'). + + * Allow user to alter behavior of `Statement'/ + `PreparedStatement.executeBatch()' using `continueBatchOnError' + property (defaults to `true').  File: manual.info, Node: cj-news-3-0-2, Next: cj-news-3-0-1, Prev: cj-news-3-0-3, Up: cj-news-3-0-x @@ -256531,87 +260324,87 @@ *Bugs Fixed* - * Implemented `Clob.setString()'. + * Implemented `Clob.truncate()'. - * Added `com.mysql.jdbc.MiniAdmin' class, which enables you to send - `shutdown' command to MySQL server. This is intended to be used - when `embedding' Java and MySQL server together in an end-user - application. + * Properly restore connection properties when autoReconnecting or + failing-over, including `autoCommit' state, and isolation level. - * Added SSL support. See `README' for information on how to use it. + * Fixed issue when calling `Statement.setFetchSize()' when using + arbitrary values. - * All `DBMD' result set columns describing schemas now return `NULL' - to be more compliant with the behavior of other JDBC drivers for - other database systems (MySQL does not support schemas). + * Added `queriesBeforeRetryMaster' property that specifies how many + queries to issue when failed over before attempting to reconnect + to the master (defaults to 50). - * Use *Note `SHOW CREATE TABLE': show-create-table. when possible - for determining foreign key information for `DatabaseMetaData'. - Also enables cascade options for *Note `DELETE': delete. - information to be returned. + * Fixed `ResultSet.setFetchDirection(FETCH_UNKNOWN)'. - * Implemented `Clob.setCharacterStream()'. + * Added driver property `useHostsInPrivileges'. Defaults to `true'. + Affects whether or not `@hostname' will be used in + `DBMD.getColumn/TablePrivileges'. - * Failover and `autoReconnect' work only when the connection is in - an `autoCommit(false)' state, to stay transaction-safe. + * Fixed `ResultSet.isLast()' for empty result sets (should return + `false'). - * Fixed `DBMD.supportsResultSetConcurrency()' so that it returns - `true' for `ResultSet.TYPE_SCROLL_INSENSITIVE' and - `ResultSet.CONCUR_READ_ONLY' or `ResultSet.CONCUR_UPDATABLE'. + * Fixed various non-ASCII character encoding issues. - * Implemented `Clob.setAsciiStream()'. + * Added `connectTimeout' parameter that enables users of JDK-1.4 and + newer to specify a maximum time to wait to establish a connection. - * Removed duplicate code from `UpdatableResultSet' (it can be - inherited from `ResultSet', the extra code for each method to - handle updatability I thought might someday be necessary has not - been needed). + * Fixed start position off-by-1 error in `Clob.getSubString()'. - * Fixed `UnsupportedEncodingException' thrown when `forcing' a - character encoding using properties. + * Fixed issue with updatable result sets and `PreparedStatements' + not working. - * Fixed incorrect conversion in `ResultSet.getLong()'. + * `PreparedStatement' now honors stream lengths in + setBinary/Ascii/Character Stream() unless you set the connection + property `useStreamLengthsInPrepStmts' to `false'. - * Implemented `ResultSet.updateBlob()'. + * Escape `0x5c' character in strings for the SJIS charset. * Removed some not-needed temporary object creation by smarter use of `Strings' in `EscapeProcessor', `Connection' and `DatabaseMetaData' classes. - * Escape `0x5c' character in strings for the SJIS charset. + * Implemented `ResultSet.updateBlob()'. - * `PreparedStatement' now honors stream lengths in - setBinary/Ascii/Character Stream() unless you set the connection - property `useStreamLengthsInPrepStmts' to `false'. + * Fixed incorrect conversion in `ResultSet.getLong()'. - * Fixed issue with updatable result sets and `PreparedStatements' - not working. + * Fixed `UnsupportedEncodingException' thrown when `forcing' a + character encoding using properties. - * Fixed start position off-by-1 error in `Clob.getSubString()'. + * Removed duplicate code from `UpdatableResultSet' (it can be + inherited from `ResultSet', the extra code for each method to + handle updatability I thought might someday be necessary has not + been needed). - * Added `connectTimeout' parameter that enables users of JDK-1.4 and - newer to specify a maximum time to wait to establish a connection. + * Implemented `Clob.setAsciiStream()'. - * Fixed various non-ASCII character encoding issues. + * Fixed `DBMD.supportsResultSetConcurrency()' so that it returns + `true' for `ResultSet.TYPE_SCROLL_INSENSITIVE' and + `ResultSet.CONCUR_READ_ONLY' or `ResultSet.CONCUR_UPDATABLE'. - * Fixed `ResultSet.isLast()' for empty result sets (should return - `false'). + * Failover and `autoReconnect' work only when the connection is in + an `autoCommit(false)' state, to stay transaction-safe. - * Added driver property `useHostsInPrivileges'. Defaults to `true'. - Affects whether or not `@hostname' will be used in - `DBMD.getColumn/TablePrivileges'. + * Implemented `Clob.setCharacterStream()'. - * Fixed `ResultSet.setFetchDirection(FETCH_UNKNOWN)'. + * Use *Note `SHOW CREATE TABLE': show-create-table. when possible + for determining foreign key information for `DatabaseMetaData'. + Also enables cascade options for *Note `DELETE': delete. + information to be returned. - * Added `queriesBeforeRetryMaster' property that specifies how many - queries to issue when failed over before attempting to reconnect - to the master (defaults to 50). + * All `DBMD' result set columns describing schemas now return `NULL' + to be more compliant with the behavior of other JDBC drivers for + other database systems (MySQL does not support schemas). - * Fixed issue when calling `Statement.setFetchSize()' when using - arbitrary values. + * Added SSL support. See `README' for information on how to use it. - * Properly restore connection properties when autoReconnecting or - failing-over, including `autoCommit' state, and isolation level. + * Added `com.mysql.jdbc.MiniAdmin' class, which enables you to send + `shutdown' command to MySQL server. This is intended to be used + when `embedding' Java and MySQL server together in an end-user + application. - * Implemented `Clob.truncate()'. + * Implemented `Clob.setString()'.  File: manual.info, Node: cj-news-3-0-1, Next: cj-news-3-0-0, Prev: cj-news-3-0-2, Up: cj-news-3-0-x @@ -256621,38 +260414,38 @@ *Bugs Fixed* - * Charsets now automatically detected. Optimized code for - single-byte character set conversion. - - * Fixed `ResultSetMetaData.isSigned()' for *Note `TINYINT': - numeric-types. and *Note `BIGINT': numeric-types. + * Added `paranoid' parameter, which sanitizes error messages by + removing `sensitive' information from them (such as host names, + ports, or user names), as well as clearing `sensitive' data + structures when possible. - * Fixed `RowDataStatic.getAt()' off-by-one bug. + * Added `LOCAL TEMPORARY' to table types in + `DatabaseMetaData.getTableTypes()'. - * Fixed `ResultSet.getRow()' off-by-one bug. + * Added `socketTimeout' parameter to URL. - * Massive code clean-up to follow Java coding conventions (the time - had come). + * `Connection.close()' issues `rollback()' when `getAutoCommit()' is + `false'. - * Implemented `ResultSet.getCharacterStream()'. + * `Connection.isClosed()' no longer `pings' the server. * Added limited `Clob' functionality (`ResultSet.getClob()', `PreparedStatement.setClob()', `PreparedStatement.setObject(Clob)'. - * `Connection.isClosed()' no longer `pings' the server. + * Implemented `ResultSet.getCharacterStream()'. - * `Connection.close()' issues `rollback()' when `getAutoCommit()' is - `false'. + * Massive code clean-up to follow Java coding conventions (the time + had come). - * Added `socketTimeout' parameter to URL. + * Fixed `ResultSet.getRow()' off-by-one bug. - * Added `LOCAL TEMPORARY' to table types in - `DatabaseMetaData.getTableTypes()'. + * Fixed `RowDataStatic.getAt()' off-by-one bug. - * Added `paranoid' parameter, which sanitizes error messages by - removing `sensitive' information from them (such as host names, - ports, or user names), as well as clearing `sensitive' data - structures when possible. + * Fixed `ResultSetMetaData.isSigned()' for *Note `TINYINT': + numeric-types. and *Note `BIGINT': numeric-types. + + * Charsets now automatically detected. Optimized code for + single-byte character set conversion.  File: manual.info, Node: cj-news-3-0-0, Prev: cj-news-3-0-1, Up: cj-news-3-0-x @@ -256662,57 +260455,57 @@ *Bugs Fixed* - * General source-code cleanup. + * Performance enhancements: Driver is now 50-100% faster in most + situations, and creates fewer temporary objects. - * The driver now only works with JDK-1.2 or newer. + * *!!! LICENSE CHANGE !!!* The driver is now GPL. If you need + non-GPL licenses, please contact me `'. - * Fix and sort primary key names in `DBMetaData' (SF bugs 582086 and - 582086). + * Overall speed improvements using controlling transient object + creation in `MysqlIO' class when reading packets. - * `ResultSet.getTimestamp()' now works for *Note `DATE': datetime. - types (SF bug 559134). + * JDBC-3.0 functionality including + `Statement/PreparedStatement.getGeneratedKeys()' and + `ResultSet.getURL()'. - * Float types now reported as `java.sql.Types.FLOAT' (SF bug 579573). + * Performance improvements in string handling and field metadata + creation (lazily instantiated) contributed by Alex + Twisleton-Wykeham-Fiennes. - * Support for streaming (row-by-row) result sets (see `README') - Thanks to Doron. + * Better checking for closed connections in `Statement' and + `PreparedStatement'. - * Testsuite now uses Junit (which you can get from - `http://www.junit.org'. + * Support for large packets (new addition to MySQL-4.0 protocol), + see `README' for more information. - * JDBC Compliance: Passes all tests besides stored procedure tests. + * Repackaging: New driver name is `com.mysql.jdbc.Driver', old name + still works, though (the driver is now provided by MySQL-AB). + + * Added multi-host failover support (see `README'). * `ResultSet.getDate/Time/Timestamp' now recognizes all forms of invalid values that have been set to all zeros by MySQL (SF bug 586058). - * Added multi-host failover support (see `README'). - - * Repackaging: New driver name is `com.mysql.jdbc.Driver', old name - still works, though (the driver is now provided by MySQL-AB). + * JDBC Compliance: Passes all tests besides stored procedure tests. - * Support for large packets (new addition to MySQL-4.0 protocol), - see `README' for more information. + * Testsuite now uses Junit (which you can get from + `http://www.junit.org'. - * Better checking for closed connections in `Statement' and - `PreparedStatement'. + * Support for streaming (row-by-row) result sets (see `README') + Thanks to Doron. - * Performance improvements in string handling and field metadata - creation (lazily instantiated) contributed by Alex - Twisleton-Wykeham-Fiennes. + * Float types now reported as `java.sql.Types.FLOAT' (SF bug 579573). - * JDBC-3.0 functionality including - `Statement/PreparedStatement.getGeneratedKeys()' and - `ResultSet.getURL()'. + * `ResultSet.getTimestamp()' now works for *Note `DATE': datetime. + types (SF bug 559134). - * Overall speed improvements using controlling transient object - creation in `MysqlIO' class when reading packets. + * Fix and sort primary key names in `DBMetaData' (SF bugs 582086 and + 582086). - * *!!! LICENSE CHANGE !!!* The driver is now GPL. If you need - non-GPL licenses, please contact me `'. + * The driver now only works with JDK-1.2 or newer. - * Performance enhancements: Driver is now 50-100% faster in most - situations, and creates fewer temporary objects. + * General source-code cleanup.  File: manual.info, Node: cj-news-2-0-x, Next: cj-news-1-2-x, Prev: cj-news-3-0-x, Up: cj-news @@ -256746,25 +260539,25 @@ *Bugs Fixed* - * `ResultSet.getDouble()' now uses code built into JDK to be more - precise (but slower). + * Quoted identifiers not used if server version does not support + them. Also, if server started with `--ansi' or + `--sql-mode=ANSI_QUOTES', ``"'' will be used as an identifier + quote character, otherwise ``''' will be used. - * Fixed typo for `relaxAutoCommit' parameter. + * More code cleanup. - * `LogicalHandle.isClosed()' calls through to physical connection. + * `PreparedStatement' now releases resources on `.close()'. (SF bug + 553268) * Added SQL profiling (to `STDERR'). Set `profileSql=true' in your JDBC URL. See `README' for more information. - * `PreparedStatement' now releases resources on `.close()'. (SF bug - 553268) + * `LogicalHandle.isClosed()' calls through to physical connection. - * More code cleanup. + * Fixed typo for `relaxAutoCommit' parameter. - * Quoted identifiers not used if server version does not support - them. Also, if server started with `--ansi' or - `--sql-mode=ANSI_QUOTES', ``"'' will be used as an identifier - quote character, otherwise ``''' will be used. + * `ResultSet.getDouble()' now uses code built into JDK to be more + precise (but slower).  File: manual.info, Node: cj-news-2-0-13, Next: cj-news-2-0-12, Prev: cj-news-2-0-14, Up: cj-news-2-0-x @@ -256774,25 +260567,25 @@ *Bugs Fixed* - * Fixed unicode chars being read incorrectly. (SF bug 541088) + * `ResultSetMetaData.getColumnClassName()' now implemented. - * Faster blob escaping for `PrepStmt'. + * `DBMetaData.getIndexInfo()' - bad PAGES fixed. (SF BUG 542201) - * Added `setURL()' to `MySQLXADataSource'. (SF bug 546019) + * Rudimentary version of `Statement.getGeneratedKeys()' from JDBC-3.0 + now implemented (you need to be using JDK-1.4 for this to work, I + believe). - * Added `set'/`getPortNumber()' to `DataSource(s)'. (SF bug 548167) + * More code cleanup. * `PreparedStatement.toString()' fixed. (SF bug 534026) - * More code cleanup. + * Added `set'/`getPortNumber()' to `DataSource(s)'. (SF bug 548167) - * Rudimentary version of `Statement.getGeneratedKeys()' from JDBC-3.0 - now implemented (you need to be using JDK-1.4 for this to work, I - believe). + * Added `setURL()' to `MySQLXADataSource'. (SF bug 546019) - * `DBMetaData.getIndexInfo()' - bad PAGES fixed. (SF BUG 542201) + * Faster blob escaping for `PrepStmt'. - * `ResultSetMetaData.getColumnClassName()' now implemented. + * Fixed unicode chars being read incorrectly. (SF bug 541088)  File: manual.info, Node: cj-news-2-0-12, Next: cj-news-2-0-11, Prev: cj-news-2-0-13, Up: cj-news-2-0-x @@ -256802,49 +260595,49 @@ *Bugs Fixed* - * Fixed `testsuite.Traversal' `afterLast()' bug, thanks to Igor - Lastric. + * General code cleanup. - * Added new types to `getTypeInfo()', fixed existing types thanks to - Al Davis and Kid Kalanon. + * Fixed `getRow()' bug (527165) in `ResultSet'. - * Fixed time zone off-by-1-hour bug in `PreparedStatement' (538286, - 528785). + * `ResultSet.refreshRow()' implemented. - * Added identifier quoting to all `DatabaseMetaData' methods that - need them (should fix 518108). + * Added `getIdleFor()' method to `Connection' and + `MysqlLogicalHandle'. - * Added support for *Note `BIT': numeric-types. types (51870) to - `PreparedStatement'. + * Added `getTable/ColumnPrivileges()' to DBMD (fixes 484502). - * `ResultSet.insertRow()' should now detect auto_increment fields in - most cases and use that value in the new row. This detection will - not work in multi-valued keys, however, due to the fact that the - MySQL protocol does not return this information. + * `ResultSet': Fixed updatability (values being set to `null' if not + updated). - * Relaxed synchronization in all classes, should fix 520615 and - 520393. + * Fixes for `ResultSet' updatability in `PreparedStatement'. + + * Added support for *Note `YEAR': year. type (533556). * `DataSources' - fixed `setUrl' bug (511614, 525565), wrong datasource class name (532816, 528767). - * Added support for *Note `YEAR': year. type (533556). - - * Fixes for `ResultSet' updatability in `PreparedStatement'. + * Relaxed synchronization in all classes, should fix 520615 and + 520393. - * `ResultSet': Fixed updatability (values being set to `null' if not - updated). + * `ResultSet.insertRow()' should now detect auto_increment fields in + most cases and use that value in the new row. This detection will + not work in multi-valued keys, however, due to the fact that the + MySQL protocol does not return this information. - * Added `getTable/ColumnPrivileges()' to DBMD (fixes 484502). + * Added support for *Note `BIT': numeric-types. types (51870) to + `PreparedStatement'. - * Added `getIdleFor()' method to `Connection' and - `MysqlLogicalHandle'. + * Added identifier quoting to all `DatabaseMetaData' methods that + need them (should fix 518108). - * `ResultSet.refreshRow()' implemented. + * Fixed time zone off-by-1-hour bug in `PreparedStatement' (538286, + 528785). - * Fixed `getRow()' bug (527165) in `ResultSet'. + * Added new types to `getTypeInfo()', fixed existing types thanks to + Al Davis and Kid Kalanon. - * General code cleanup. + * Fixed `testsuite.Traversal' `afterLast()' bug, thanks to Igor + Lastric.  File: manual.info, Node: cj-news-2-0-11, Next: cj-news-2-0-10, Prev: cj-news-2-0-12, Up: cj-news-2-0-x @@ -256854,13 +260647,13 @@ *Bugs Fixed* - * Full synchronization of `Statement.java'. + * More changes to fix `Unexpected end of input stream' errors when + reading *Note `BLOB': blob. values. This should be the last fix. * Fixed missing `DELETE_RULE' value in `DBMD.getImported/ExportedKeys()' and `getCrossReference()'. - * More changes to fix `Unexpected end of input stream' errors when - reading *Note `BLOB': blob. values. This should be the last fix. + * Full synchronization of `Statement.java'.  File: manual.info, Node: cj-news-2-0-10, Next: cj-news-2-0-9, Prev: cj-news-2-0-11, Up: cj-news-2-0-x @@ -256870,12 +260663,12 @@ *Bugs Fixed* - * Fixed null-pointer-exceptions when using - `MysqlConnectionPoolDataSource' with Websphere 4 (bug 505839). - * Fixed spurious `Unexpected end of input stream' errors in `MysqlIO' (bug 507456). + * Fixed null-pointer-exceptions when using + `MysqlConnectionPoolDataSource' with Websphere 4 (bug 505839). +  File: manual.info, Node: cj-news-2-0-9, Next: cj-news-2-0-8, Prev: cj-news-2-0-10, Up: cj-news-2-0-x @@ -256884,21 +260677,21 @@ *Bugs Fixed* - * Fixed extra memory allocation in `MysqlIO.readPacket()' (bug - 488663). + * Full synchronization on methods modifying instance and + class-shared references, driver should be entirely thread-safe now + (please let me know if you have problems). - * Added detection of network connection being closed when reading - packets (thanks to Todd Lizambri). + * Fixed off-by-one-hour error in `PreparedStatement.setTimestamp()' + (bug 491577). - * Fixed casting bug in `PreparedStatement' (bug 488663). + * Implementation of `DatabaseMetaData.getExported/ImportedKeys()' + and `getCrossReference()'. - * `DataSource' implementations moved to - `org.gjt.mm.mysql.jdbc2.optional' package, and (initial) - implementations of `PooledConnectionDataSource' and `XADataSource' - are in place (thanks to Todd Wolff for the implementation and - testing of `PooledConnectionDataSource' with IBM WebSphere 4). + * Report batch update support through `DatabaseMetaData' (bug + 495101). - * Fixed quoting error with escape processor (bug 486265). + * `Ant' build was corrupting included `jar' files, fixed (bug + 487669). * Removed concatenation support from driver (the `||' operator), as older versions of VisualAge seem to be the only thing that use it, @@ -256906,21 +260699,21 @@ start *Note `mysqld': mysqld. with the `--ansi' flag to use the `||' operator as concatenation (bug 491680). - * `Ant' build was corrupting included `jar' files, fixed (bug - 487669). + * Fixed quoting error with escape processor (bug 486265). - * Report batch update support through `DatabaseMetaData' (bug - 495101). + * `DataSource' implementations moved to + `org.gjt.mm.mysql.jdbc2.optional' package, and (initial) + implementations of `PooledConnectionDataSource' and `XADataSource' + are in place (thanks to Todd Wolff for the implementation and + testing of `PooledConnectionDataSource' with IBM WebSphere 4). - * Implementation of `DatabaseMetaData.getExported/ImportedKeys()' - and `getCrossReference()'. + * Fixed casting bug in `PreparedStatement' (bug 488663). - * Fixed off-by-one-hour error in `PreparedStatement.setTimestamp()' - (bug 491577). + * Added detection of network connection being closed when reading + packets (thanks to Todd Lizambri). - * Full synchronization on methods modifying instance and - class-shared references, driver should be entirely thread-safe now - (please let me know if you have problems). + * Fixed extra memory allocation in `MysqlIO.readPacket()' (bug + 488663).  File: manual.info, Node: cj-news-2-0-8, Next: cj-news-2-0-7, Prev: cj-news-2-0-9, Up: cj-news-2-0-x @@ -256930,18 +260723,18 @@ *Bugs Fixed* - * `XADataSource'/`ConnectionPoolDataSource' code (experimental) + * `PreparedStatement.setAnyNumericType()' now handles positive + exponents correctly (adds `+' so MySQL can understand it). + + * Batch updates now supported (thanks to some inspiration from + Daniel Rall). * `DatabaseMetaData.getPrimaryKeys()' and `getBestRowIdentifier()' are now more robust in identifying primary keys (matches regardless of case or abbreviation/full spelling of `Primary Key' in `Key_type' column). - * Batch updates now supported (thanks to some inspiration from - Daniel Rall). - - * `PreparedStatement.setAnyNumericType()' now handles positive - exponents correctly (adds `+' so MySQL can understand it). + * `XADataSource'/`ConnectionPoolDataSource' code (experimental)  File: manual.info, Node: cj-news-2-0-7, Next: cj-news-2-0-6, Prev: cj-news-2-0-8, Up: cj-news-2-0-x @@ -256951,46 +260744,46 @@ *Bugs Fixed* - * Character sets read from database if `useUnicode=true' and - `characterEncoding' is not set. (thanks to Dmitry Vereshchagin) - - * Initial transaction isolation level read from database (if - available). (thanks to Dmitry Vereshchagin) + * Fixed `ResultSet.isAfterLast()' always returning `false'. - * Fixed `PreparedStatement' generating SQL that would end up with - syntax errors for some queries. + * PreparedStatement.setBoolean() will use 1/0 for values if your + MySQL version is 3.21.23 or higher. - * `PreparedStatement.setCharacterStream()' now implemented + * Updatable result sets now correctly handle `NULL' values in fields. - * Capitalize type names when `capitalizeTypeNames=true' is passed in - URL or properties (for WebObjects. (thanks to Anjo Krank) + * Fixed `DatabaseMetaData.supportsTransactions()', and + `supportsTransactionIsolationLevel()' and `getTypeInfo()' + `SQL_DATETIME_SUB' and `SQL_DATA_TYPE' fields not being readable. - * `ResultSet.getBlob()' now returns `null' if column value was - `null'. + * PreparedStatement.setDouble() now uses full-precision doubles + (reverting a fix made earlier to truncate them). - * Fixed `ResultSetMetaData.getPrecision()' returning one less than - actual on newer versions of MySQL. + * Fixed time zone issue in `PreparedStatement.setTimestamp()'. + (thanks to Erik Olofsson) * Fixed dangling socket problem when in high availability (`autoReconnect=true') mode, and finalizer for `Connection' will close any dangling sockets on GC. - * Fixed time zone issue in `PreparedStatement.setTimestamp()'. - (thanks to Erik Olofsson) + * Fixed `ResultSetMetaData.getPrecision()' returning one less than + actual on newer versions of MySQL. - * PreparedStatement.setDouble() now uses full-precision doubles - (reverting a fix made earlier to truncate them). + * `ResultSet.getBlob()' now returns `null' if column value was + `null'. - * Fixed `DatabaseMetaData.supportsTransactions()', and - `supportsTransactionIsolationLevel()' and `getTypeInfo()' - `SQL_DATETIME_SUB' and `SQL_DATA_TYPE' fields not being readable. + * Capitalize type names when `capitalizeTypeNames=true' is passed in + URL or properties (for WebObjects. (thanks to Anjo Krank) - * Updatable result sets now correctly handle `NULL' values in fields. + * `PreparedStatement.setCharacterStream()' now implemented - * PreparedStatement.setBoolean() will use 1/0 for values if your - MySQL version is 3.21.23 or higher. + * Fixed `PreparedStatement' generating SQL that would end up with + syntax errors for some queries. - * Fixed `ResultSet.isAfterLast()' always returning `false'. + * Initial transaction isolation level read from database (if + available). (thanks to Dmitry Vereshchagin) + + * Character sets read from database if `useUnicode=true' and + `characterEncoding' is not set. (thanks to Dmitry Vereshchagin)  File: manual.info, Node: cj-news-2-0-6, Next: cj-news-2-0-5, Prev: cj-news-2-0-7, Up: cj-news-2-0-x @@ -257000,10 +260793,10 @@ *Bugs Fixed* - * Fixed `PreparedStatement' parameter checking. - * Fixed case-sensitive column names in `ResultSet.java'. + * Fixed `PreparedStatement' parameter checking. +  File: manual.info, Node: cj-news-2-0-5, Next: cj-news-2-0-3, Prev: cj-news-2-0-6, Up: cj-news-2-0-x @@ -257012,36 +260805,36 @@ *Bugs Fixed* - * `ResultSet.insertRow()' works now, even if not all columns are set - (they will be set to `NULL'). - - * Added `Byte' to `PreparedStatement.setObject()'. - - * Fixed data parsing of *Note `TIMESTAMP': datetime. values with - 2-digit years. - - * Added `ISOLATION' level support to `Connection.setIsolationLevel()' + * Fixed `ResultSet.getBlob()' `ArrayIndex' out-of-bounds. - * `DataBaseMetaData.getCrossReference()' no longer `ArrayIndexOOB'. + * Fixed NPE on `PreparedStatement.executeUpdate()' when all columns + have not been set. - * `ResultSet.getBoolean()' now recognizes `-1' as `true'. + * Fixed `ArrayIndexOutOfBounds' when sending large *Note `BLOB': + blob. queries. (Max size packet was not being set) - * `ResultSet' has +/-Inf/inf support. + * Fixed `ResultSetMetaData.getColumnTypeName' for *Note `TEXT': + blob./*Note `BLOB': blob. * `getObject()' on `ResultSet' correctly does *Note `TINYINT': numeric-types.->`Byte' and *Note `SMALLINT': numeric-types.->`Short'. - * Fixed `ResultSetMetaData.getColumnTypeName' for *Note `TEXT': - blob./*Note `BLOB': blob. + * `ResultSet' has +/-Inf/inf support. - * Fixed `ArrayIndexOutOfBounds' when sending large *Note `BLOB': - blob. queries. (Max size packet was not being set) + * `ResultSet.getBoolean()' now recognizes `-1' as `true'. - * Fixed NPE on `PreparedStatement.executeUpdate()' when all columns - have not been set. + * `DataBaseMetaData.getCrossReference()' no longer `ArrayIndexOOB'. - * Fixed `ResultSet.getBlob()' `ArrayIndex' out-of-bounds. + * Added `ISOLATION' level support to `Connection.setIsolationLevel()' + + * Fixed data parsing of *Note `TIMESTAMP': datetime. values with + 2-digit years. + + * Added `Byte' to `PreparedStatement.setObject()'. + + * `ResultSet.insertRow()' works now, even if not all columns are set + (they will be set to `NULL').  File: manual.info, Node: cj-news-2-0-3, Next: cj-news-2-0-1, Prev: cj-news-2-0-5, Up: cj-news-2-0-x @@ -257051,21 +260844,21 @@ *Bugs Fixed* - * Fixed composite key problem with updatable result sets. + * Implemented `getBigDecimal()' without scale component for JDBC2. - * Faster ASCII string operations. + * Added `ultraDevHack' URL parameter, set to `true' to enable + (broken) Macromedia UltraDev to use the driver. - * Fixed off-by-one error in `java.sql.Blob' implementation code. + * Added detection of -/+INF for doubles. * Fixed incorrect detection of `MAX_ALLOWED_PACKET', so sending large blobs should work now. - * Added detection of -/+INF for doubles. + * Fixed off-by-one error in `java.sql.Blob' implementation code. - * Added `ultraDevHack' URL parameter, set to `true' to enable - (broken) Macromedia UltraDev to use the driver. + * Faster ASCII string operations. - * Implemented `getBigDecimal()' without scale component for JDBC2. + * Fixed composite key problem with updatable result sets.  File: manual.info, Node: cj-news-2-0-1, Next: cj-news-2-0pre5, Prev: cj-news-2-0-3, Up: cj-news-2-0-x @@ -257075,26 +260868,26 @@ *Bugs Fixed* - * Columns that are of type *Note `TEXT': blob. now return as - `Strings' when you use `getObject()'. + * Fixed some issues with updatability support in `ResultSet' when + using multiple primary keys. - * Cleaned up exception handling when driver connects. + * No escape processing is done on `PreparedStatements' anymore per + JDBC spec. - * Fixed `RSMD.isWritable()' returning wrong value. Thanks to Moritz - Maass. + * Fixed many JDBC-2.0 traversal, positioning bugs, especially with + respect to empty result sets. Thanks to Ron Smits, Nick Brook, + Cessar Garcia and Carlos Martinez. * `DatabaseMetaData.getPrimaryKeys()' now works correctly with respect to `key_seq'. Thanks to Brian Slesinsky. - * Fixed many JDBC-2.0 traversal, positioning bugs, especially with - respect to empty result sets. Thanks to Ron Smits, Nick Brook, - Cessar Garcia and Carlos Martinez. + * Fixed `RSMD.isWritable()' returning wrong value. Thanks to Moritz + Maass. - * No escape processing is done on `PreparedStatements' anymore per - JDBC spec. + * Cleaned up exception handling when driver connects. - * Fixed some issues with updatability support in `ResultSet' when - using multiple primary keys. + * Columns that are of type *Note `TEXT': blob. now return as + `Strings' when you use `getObject()'.  File: manual.info, Node: cj-news-2-0pre5, Next: cj-news-2-0pre4, Prev: cj-news-2-0-1, Up: cj-news-2-0-x @@ -257578,18 +261371,18 @@ *Functionality Added or Changed* - * The embedded MySQL binaries have been updated to MySQL 5.1.40 for - GPL releases and MySQL 5.1.40 for Commercial releases. + * The default timeout for the kill delay within the embedded test + suite has been increased from 10 to 30 seconds. + + * The embedded Aspect/J class has been removed. * The contents of the directory used for bootstrapping the MySQL databases is now configurable by using the `windows-share-dir-jar' property. You should supply the name of a jar containing the files you want to use. - * The embedded Aspect/J class has been removed. - - * The default timeout for the kill delay within the embedded test - suite has been increased from 10 to 30 seconds. + * The embedded MySQL binaries have been updated to MySQL 5.1.40 for + GPL releases and MySQL 5.1.40 for Commercial releases. *Bugs Fixed* @@ -257623,16 +261416,16 @@ *Functionality Added or Changed* - * The embedded MySQL has been updated to the MySQL 5.1 series. The - embedded MySQL binaries have been updated to MySQL 5.1.33 for GPL - releases and MySQL 5.1.34 for Commercial releases. - * The MySQL binary for Windows targets has been updated to be configurable through the `windows-mysqld-command' property. This is to handle the move in MySQL 5.1.33 from *Note `mysqld-nt.exe': mysqld. to *Note `mysqld.exe': mysqld. The default value is *Note `mysqld.exe': mysqld. + * The embedded MySQL has been updated to the MySQL 5.1 series. The + embedded MySQL binaries have been updated to MySQL 5.1.33 for GPL + releases and MySQL 5.1.34 for Commercial releases. +  File: manual.info, Node: news-connector-mxj-5-0-9, Next: news-connector-mxj-5-0-8, Prev: news-connector-mxj-5-0-10, Up: news-connector-mxj @@ -257641,21 +261434,21 @@ *Functionality Added or Changed* - * The port used in the `ConnectorMXJUrlTestExample' and - `ConnectorMXJObjectTestExample' port is no longer hard coded. - Instead, the code uses the `x-mxj_test_port' property a default - value of `3336' + * The timeout for kill operations in the embedded test suite has + been set to a default of 10 seconds. + + * The embedded MySQL binaries have been updated to MySQL 5.0.51a for + GPL releases and MySQL 5.0.54 for Commercial releases. * The utility used to kill MySQL on Windows (`kill.exe') has been configured to be loaded from the `kill.exe' property, instead of being hard-coded. The corresponding timeout, `KILL_DELAY' has also been moved to the properties file and defaults to 5 minutes. - * The embedded MySQL binaries have been updated to MySQL 5.0.51a for - GPL releases and MySQL 5.0.54 for Commercial releases. - - * The timeout for kill operations in the embedded test suite has - been set to a default of 10 seconds. + * The port used in the `ConnectorMXJUrlTestExample' and + `ConnectorMXJObjectTestExample' port is no longer hard coded. + Instead, the code uses the `x-mxj_test_port' property a default + value of `3336'  File: manual.info, Node: news-connector-mxj-5-0-8, Next: news-connector-mxj-5-0-7, Prev: news-connector-mxj-5-0-9, Up: news-connector-mxj @@ -257665,13 +261458,13 @@ *Functionality Added or Changed* + * The embedded MySQL binaries have been updated to MySQL 5.0.45 for + GPL releases and MySQL 5.0.46 for Commercial releases. + * The embedded documentation has been updated so that it now points to the main MySQL documentation pages in the MySQL reference manual. - * The embedded MySQL binaries have been updated to MySQL 5.0.45 for - GPL releases and MySQL 5.0.46 for Commercial releases. -  File: manual.info, Node: news-connector-mxj-5-0-7, Next: news-connector-mxj-5-0-6, Prev: news-connector-mxj-5-0-8, Up: news-connector-mxj @@ -257680,9 +261473,12 @@ *Functionality Added or Changed* - * Updated the jar file name to be consistent with the Connector/J - jar file name. Files are now formatted as - `mysql-connector-mxj-MXJ-VERSION'. + * The embedded MySQL binaries have been updated to MySQL 5.0.41 for + GPL releases and MySQL 5.0.42 for Commercial releases. + + * The `PatchedStandardSocketFactory' class has been removed, because + it fixed an issue in Connector/J that was corrected in Connector/J + 5.0.6. * The `ConnectorMXJUrlTestExample' and `ConnectorMXJObjectTestExammple' have been updated to include an @@ -257690,12 +261486,9 @@ database. The `InitializePasswordExample' example class has now been removed. - * The `PatchedStandardSocketFactory' class has been removed, because - it fixed an issue in Connector/J that was corrected in Connector/J - 5.0.6. - - * The embedded MySQL binaries have been updated to MySQL 5.0.41 for - GPL releases and MySQL 5.0.42 for Commercial releases. + * Updated the jar file name to be consistent with the Connector/J + jar file name. Files are now formatted as + `mysql-connector-mxj-MXJ-VERSION'. *Bugs Fixed* @@ -257710,78 +261503,78 @@ *Functionality Added or Changed* - * Updated internal jar file names to include version information and - be more consistent with Connector/J jar naming. For example, - `connector-mxj.jar' is now - `mysql-connector-mxj-${mxj-version}.jar'. + * Removed references to File.deleteOnExit, a warning is printed + instead. - * Updated commercial license files. + * Fixed where versionString.trim() was ignored. - * Added copyright notices to some classes which were missing them. + * `portFile' now contains a new-line to be consistent with `pidFile'. - * Added InitializeUser and QueryUtil classes to support new feature. + * Errors reading `portFile' are now reported using + `stacktrace(err)', previously `System.err' was used. - * Added new tests for initial-user & expanded some existing tests. + * Added `main(String[])' to + `com/mysql/management/AllTestsSuite.java'. - * ConnectorMXJUrlTestExample and ConnectorMXJObjectTestExample now - demonstrate the initialization of user/password and creating the - initial database (rather than using "test"). + * Removed obsolete `PatchedStandardSocketFactory' java file. - * Added new connection property `initialize-user' which, if set to - `true' will remove the default, un-passworded anonymous and root - users, and create the user/password from the connection url. + * Clarified code in `DefaultsMap.entrySet()'. * Removed obsolete field `SimpleMysqldDynamicMBean.lastInvocation'. - * Clarified code in `DefaultsMap.entrySet()'. + * Added new connection property `initialize-user' which, if set to + `true' will remove the default, un-passworded anonymous and root + users, and create the user/password from the connection url. - * Removed obsolete `PatchedStandardSocketFactory' java file. + * ConnectorMXJUrlTestExample and ConnectorMXJObjectTestExample now + demonstrate the initialization of user/password and creating the + initial database (rather than using "test"). - * Added `main(String[])' to - `com/mysql/management/AllTestsSuite.java'. + * Added new tests for initial-user & expanded some existing tests. - * Errors reading `portFile' are now reported using - `stacktrace(err)', previously `System.err' was used. + * Added InitializeUser and QueryUtil classes to support new feature. - * `portFile' now contains a new-line to be consistent with `pidFile'. + * Added copyright notices to some classes which were missing them. - * Fixed where versionString.trim() was ignored. + * Updated commercial license files. - * Removed references to File.deleteOnExit, a warning is printed - instead. + * Updated internal jar file names to include version information and + be more consistent with Connector/J jar naming. For example, + `connector-mxj.jar' is now + `mysql-connector-mxj-${mxj-version}.jar'. *Bugs Fixed* - * Changed tests to shutdown mysqld prior to deleting files. + * Removed obsolete InitializePasswordExample - * Fixed port file to always be written to datadir. + * Refactored duplication from tests and examples to QueryUtil. - * Added os.name-os.arch to resource directory mapping properties - file. + * Removed `PatchedStandardSocketFactory' (fixed in Connector/J + 5.0.6). - * Swapped out commercial binaries for v5.0.40. + * Added robustness around reading portfile. - * Delete `portFile' on shutdown. + * Added null-check to deal with C/MXJ being loaded by the bootstrap + classloaders with JVMs for which `getClassLoader()' returns null. - * Moved `platform-map.properties' into `db-files.jar'. + * Removed `use-default-architecture' property replaced. - * Clarified the startup max wait numbers. + * Updated `build.xml' in preparation for next beta build. - * Updated `build.xml' in preperation for next beta build. + * Clarified the startup max wait numbers. - * Removed `use-default-architecture' property replaced. + * Moved `platform-map.properties' into `db-files.jar'. - * Added null-check to deal with C/MXJ being loaded by the bootstrap - classloaders with JVMs for which `getClassLoader()' returns null. + * Delete `portFile' on shutdown. - * Added robustness around reading portfile. + * Swapped out commercial binaries for v5.0.40. - * Removed `PatchedStandardSocketFactory' (fixed in Connector/J - 5.0.6). + * Added os.name-os.arch to resource directory mapping properties + file. - * Refactored duplication from tests and examples to QueryUtil. + * Fixed port file to always be written to datadir. - * Removed obsolete InitializePasswordExample + * Changed tests to shutdown mysqld prior to deleting files.  File: manual.info, Node: news-connector-mxj-5-0-5, Next: news-connector-mxj-5-0-4, Prev: news-connector-mxj-5-0-6, Up: news-connector-mxj @@ -257791,68 +261584,68 @@ *Bugs Fixed* - * Moved `MysqldFactory' to main package. - - * Reformatting: Added newlines some files which did not end in them. + * Removed 5.0.22 binaries from the repository. - * Swapped out commercial binaries for v5.0.36. + * Swapped out gpl binaries for v5.0.37. - * Found and removed dynamic linking in mysql_kill; updated solution. + * Ensured 5.1.14 compatibility. - * Changed protected constructor of `SimpleMysqldDynamicMBean' from - taking a `MysqldResource' to taking a `MysqldFactory', to lay - groundwork for addressing BUG discovered by Andrew Rubinger. See: - 143046#msg-143046MySQL Forums (Actual testing with JBoss, and - filing a bug, is still required.) + * Added Patched `StandardSocketFactory' from Connector/J 5-0 HEAD. - * `build.xml': `usage' now slightly more verbose; some reformatting. + * Replaced windows *Note `kill.exe': kill. resource with re-written + version specific to mysqld. - * Now incorporates Reggie Bernett's `SafeTerminateProcess' and only - calls the unsafe TerminateProcess as a final last resort. + * Added 5.1.14 binaries to repository. - * New windows `kill.exe' fixes a bug where mysqld was being force - terminated. Issue reported by bruno haleblian and others, see: - 140623#msg-140623MySQL Forums. + * Added `getDataDir()' to interface `MysqldResourceI'. - * Replaced `Boolean.parseBoolean' with JDK 1.4 compliant `valueOf'. + * Removed 5.1.14 binaries from the repository. - * Changed `connector-mxj.properties' default mysql version to 5.0.37. + * Added 5.1.15 binaries to the repository. - * In testing so far mysqld reliably shuts down cleanly much faster. + * Clarified the immutability of `baseDir', `dataDir', `pidFile', + `portFile'. - * Added testcase to `com.mysql.management.jmx.AcceptanceTest' which - demonstrates that `dataDir' is a mutable MBean property. + * `SIGHUP' is replaced with `MySQLShutdown' event. - * Updated `build.xml' in prep for next release. + * Clarified the synchronization of `MysqldResource' methods. * Changed `SimpleMysqldDynamicMBean' to create `MysqldResource' on demand to enable setting of `datadir'. (Rubinger bug groundwork). - * Clarified the synchronization of `MysqldResource' methods. + * Updated `build.xml' in prep for next release. - * `SIGHUP' is replaced with `MySQLShutdown' event. + * Added testcase to `com.mysql.management.jmx.AcceptanceTest' which + demonstrates that `dataDir' is a mutable MBean property. - * Clarified the immutability of `baseDir', `dataDir', `pidFile', - `portFile'. + * In testing so far mysqld reliably shuts down cleanly much faster. - * Added 5.1.15 binaries to the repository. + * Changed `connector-mxj.properties' default mysql version to 5.0.37. - * Removed 5.1.14 binaries from the repository. + * Replaced `Boolean.parseBoolean' with JDK 1.4 compliant `valueOf'. - * Added `getDataDir()' to interface `MysqldResourceI'. + * New windows `kill.exe' fixes a bug where mysqld was being force + terminated. Issue reported by bruno haleblian and others, see: + 140623#msg-140623MySQL Forums. - * Added 5.1.14 binaries to repository. + * Now incorporates Reggie Bernett's `SafeTerminateProcess' and only + calls the unsafe TerminateProcess as a final last resort. - * Replaced windows *Note `kill.exe': kill. resource with re-written - version specific to mysqld. + * `build.xml': `usage' now slightly more verbose; some reformatting. - * Added Patched `StandardSocketFactory' from Connector/J 5-0 HEAD. + * Changed protected constructor of `SimpleMysqldDynamicMBean' from + taking a `MysqldResource' to taking a `MysqldFactory', to lay + groundwork for addressing BUG discovered by Andrew Rubinger. See: + 143046#msg-143046MySQL Forums (Actual testing with JBoss, and + filing a bug, is still required.) - * Ensured 5.1.14 compatibility. + * Found and removed dynamic linking in mysql_kill; updated solution. - * Swapped out gpl binaries for v5.0.37. + * Swapped out commercial binaries for v5.0.36. - * Removed 5.0.22 binaries from the repository. + * Reformatting: Added newlines some files which did not end in them. + + * Moved `MysqldFactory' to main package.  File: manual.info, Node: news-connector-mxj-5-0-4, Next: news-connector-mxj-5-0-3, Prev: news-connector-mxj-5-0-5, Up: news-connector-mxj @@ -257865,28 +261658,28 @@ * Allow multiple calls to start server from URL connection on non-3306 port. (Bug #24004) - * Updated `build.xml' to build to handle with different gpl and - commercial mysqld version numbers. + * Fixed test to be tolerant of `/tmp' being a symlink to `/foo/tmp'. - * Only populate the options map from the help text if specifically - requested or in the MBean case. + * Moved default version string out of java class into a text + editable properties file (`connector-mxj.properties') in the + resources directory. - * Introduced property for Linux & WinXX to default to 32bit versions. + * Minor test robustness improvements. - * Swapped out gpl binaries for v5.0.27. + * Moved mysqld binary resourced into separate jar file NOTICE: + `CLASSPATH' will now need to `connector-mxj-db-files.jar'. * Swapped out commercial binaries for v5.0.32. - * Moved mysqld binary resourced into separate jar file NOTICE: - `CLASSPATH' will now need to `connector-mxj-db-files.jar'. + * Swapped out gpl binaries for v5.0.27. - * Minor test robustness improvements. + * Introduced property for Linux & WinXX to default to 32bit versions. - * Moved default version string out of java class into a text - editable properties file (`connector-mxj.properties') in the - resources directory. + * Only populate the options map from the help text if specifically + requested or in the MBean case. - * Fixed test to be tolerant of `/tmp' being a symlink to `/foo/tmp'. + * Updated `build.xml' to build to handle with different gpl and + commercial mysqld version numbers.  File: manual.info, Node: news-connector-mxj-5-0-3, Next: news-connector-mxj-5-0-2, Prev: news-connector-mxj-5-0-4, Up: news-connector-mxj @@ -257896,11 +261689,11 @@ *Bugs Fixed* - * Removed unused imports, formatted code, made minor edits to tests. + * Swapped out the mysqld binaries for MySQL v5.0.22. * Removed "TeeOutputStream" - no longer needed. - * Swapped out the mysqld binaries for MySQL v5.0.22. + * Removed unused imports, formatted code, made minor edits to tests.  File: manual.info, Node: news-connector-mxj-5-0-2, Next: news-connector-mxj-5-0-1, Prev: news-connector-mxj-5-0-3, Up: news-connector-mxj @@ -257910,60 +261703,60 @@ *Bugs Fixed* - * Replaced string parsing with JDBC connection attempt for - determining if a mysqld is "ready for connections" `CLASSPATH' - will now need to include Connector/J jar. + * ServerLauncherSocketFactory.shutdown API change: now takes 2 File + parameters (basedir, datadir) - * "platform" directories replace spaces with underscores + * ServerLauncherSocketFactory now treats URL parameters in the form + of `&server.foo=null' as `serverOptionMap.put("foo", null)' - * extracted array and list printing to ListToString utility class + * ServerLauncherSocketFactory.shutdown(port) no longer throws, only + reports to System.err - * Swapped out the mysqld binaries for MySQL v5.0.21 + * extracted splitLines(String) to Str utility class - * Added trace level logging with Aspect/J. `CLASSPATH' will now - need to include `lib/aspectjrt.jar' + * ServerLauncherSocketFactory.shutdown now works across JVMs. - * reformatted code + * moved PID file into datadir - * altered to be "basedir" rather than "port" oriented. + * MysqldResource now tied to dataDir as well as basedir (API CHANGE) - * help parsing test reflects current help options + * swapped out the mysqld binaries for MySQL v5.0.19 - * insulated users from problems with "." in basedir + * Extended timeout for help string parsing, to avoid cases where the + help text was getting prematurely flushed, and thus truncated. - * swapped out the mysqld binaries for MySQL v5.0.18 + * added ability to specify "mysql-version" as an url parameter - * Made tests more robust be deleting the /tmp/test-c.mxj directory - before running tests. + * socket is now "mysql.sock" in datadir * ServerLauncherSocketFactory.shutdown API change: now takes File parameter (basedir) instead of port. - * socket is now "mysql.sock" in datadir + * Made tests more robust be deleting the /tmp/test-c.mxj directory + before running tests. - * added ability to specify "mysql-version" as an url parameter + * swapped out the mysqld binaries for MySQL v5.0.18 - * Extended timeout for help string parsing, to avoid cases where the - help text was getting prematurely flushed, and thus truncated. + * insulated users from problems with "." in basedir - * swapped out the mysqld binaries for MySQL v5.0.19 + * help parsing test reflects current help options - * MysqldResource now tied to dataDir as well as basedir (API CHANGE) + * altered to be "basedir" rather than "port" oriented. - * moved PID file into datadir + * reformatted code - * ServerLauncherSocketFactory.shutdown now works across JVMs. + * Added trace level logging with Aspect/J. `CLASSPATH' will now + need to include `lib/aspectjrt.jar' - * extracted splitLines(String) to Str utility class + * Swapped out the mysqld binaries for MySQL v5.0.21 - * ServerLauncherSocketFactory.shutdown(port) no longer throws, only - reports to System.err + * extracted array and list printing to ListToString utility class - * ServerLauncherSocketFactory now treats URL parameters in the form - of `&server.foo=null' as `serverOptionMap.put("foo", null)' + * "platform" directories replace spaces with underscores - * ServerLauncherSocketFactory.shutdown API change: now takes 2 File - parameters (basedir, datadir) + * Replaced string parsing with JDBC connection attempt for + determining if a mysqld is "ready for connections" `CLASSPATH' + will now need to include Connector/J jar.  File: manual.info, Node: news-connector-mxj-5-0-1, Next: news-connector-mxj-5-0-0, Prev: news-connector-mxj-5-0-2, Up: news-connector-mxj @@ -257973,7 +261766,7 @@ This was an internal only release. -This section has no changelog entries. +Version 5.0.1 has no changelog entries.  File: manual.info, Node: news-connector-mxj-5-0-0, Prev: news-connector-mxj-5-0-1, Up: news-connector-mxj @@ -257983,20 +261776,20 @@ *Bugs Fixed* - * Removed HelpOptionsParser's need to reference a MysqldResource. + * Minor refactorings for type casting and exception handling. - * Reorganized utils into a single "Utils" collaborator. + * Ditched "ClassUtil" (merged with Str). - * Minor test tweaks + * Swapped out the mysqld binaries for MySQL v5.0.16. * Altered examples and tests to use new Connector/J 5.0 URL syntax for launching Connector/MXJ ("jdbc:mysql:mxj://") - * Swapped out the mysqld binaries for MySQL v5.0.16. + * Minor test tweaks - * Ditched "ClassUtil" (merged with Str). + * Reorganized utils into a single "Utils" collaborator. - * Minor refactorings for type casting and exception handling. + * Removed HelpOptionsParser's need to reference a MysqldResource.  File: manual.info, Node: ccpp-news, Next: mysql-proxy-news, Prev: news-connector-mxj, Up: news @@ -258017,13 +261810,13 @@ * Menu: -* ccpp-news-1-1-0:: Changes in MySQL Connector/CPP 1.1.0 (13th September 2010 GA) +* ccpp-news-1-1-0:: Changes in MySQL Connector/CPP 1.1.0 (13 September 2010, Generally Available)  File: manual.info, Node: ccpp-news-1-1-0, Prev: ccpp-news-1-1-x, Up: ccpp-news-1-1-x -D.7.1.1 Changes in MySQL Connector/CPP 1.1.0 (13th September 2010 GA) -..................................................................... +D.7.1.1 Changes in MySQL Connector/CPP 1.1.0 (13 September 2010, Generally Available) +..................................................................................... This fixes bugs since the first GA release 1.0.5 and introduces new features. @@ -258043,17 +261836,13 @@ connection_properties["password"] = sql::ConnectPropertyVal(passwd); - * Instances of `std::auto_ptr' have been changed to - `boost::scoped_ptr'. Scoped array instances now use - boost::scoped_array. Further, `boost::shared_ptr' and - `boost::weak_ptr' are now used for guarding access around result - sets. - - * `LDFLAGS', `CXXFLAGS' and `CPPFLAGS' are now checked from the - environment for every binary generated. - - * Connection map property `OPT_RECONNECT' was changed to be of type - `boolean' from `long' `long'. + * `Connection::getClientOption(const sql::SQLString & optionName, + void * optionValue)' now accepts the `optionName' values + `metadataUseInfoSchema', `defaultStatementResultType', + `defaultPreparedStatementResultType', and `characterSetResults'. + In the previous version only `metadataUseInfoSchema' was + permitted. The same options are available for + `Connection::setClientOption()'. * `get_driver_instance()' is now only available in dynamic library builds - static builds do not have this symbol. This was done to @@ -258062,13 +261851,17 @@ define `mysqlcppconn_EXPORTS' if you are loading dynamically and want to use the `get_driver_instance()' entry point. - * `Connection::getClientOption(const sql::SQLString & optionName, - void * optionValue)' now accepts the `optionName' values - `metadataUseInfoSchema', `defaultStatementResultType', - `defaultPreparedStatementResultType', and `characterSetResults'. - In the previous version only `metadataUseInfoSchema' was - permitted. The same options are available for - `Connection::setClientOption()'. + * Connection map property `OPT_RECONNECT' was changed to be of type + `boolean' from `long' `long'. + + * `LDFLAGS', `CXXFLAGS' and `CPPFLAGS' are now checked from the + environment for every binary generated. + + * Instances of `std::auto_ptr' have been changed to + `boost::scoped_ptr'. Scoped array instances now use + boost::scoped_array. Further, `boost::shared_ptr' and + `boost::weak_ptr' are now used for guarding access around result + sets. *Bugs Fixed* @@ -258091,13 +261884,13 @@ stored procedure was prepared without any parameters. This led to an exception. (Bug #44931) - * Fixed a Prepared Statements performance issue. Reading large - result sets was slow. - * Fixed bug in `ResultSetMetaData' for statements and prepared statements, `getScale' and `getPrecision' returned incorrect results. + * Fixed a Prepared Statements performance issue. Reading large + result sets was slow. +  File: manual.info, Node: ccpp-news-1-0-x, Prev: ccpp-news-1-1-x, Up: ccpp-news @@ -258107,10 +261900,10 @@ * Menu: * ccpp-news-1-0-5:: Changes in MySQL Connector/CPP 1.0.5 (21 April 2009) -* ccpp-news-1-0-4:: Changes in MySQL Connector/CPP 1.0.4 (31 March 2009 beta) -* ccpp-news-1-0-3:: Changes in MySQL Connector/CPP 1.0.3 (02 March 2009 alpha) -* ccpp-news-1-0-2:: Changes in MySQL Connector/CPP 1.0.2 (19 December 2008 alpha) -* ccpp-news-1-0-1:: Changes in MySQL Connector/CPP 1.0.1 (01 December 2008 alpha) +* ccpp-news-1-0-4:: Changes in MySQL Connector/CPP 1.0.4 (31 March 2009, beta) +* ccpp-news-1-0-3:: Changes in MySQL Connector/CPP 1.0.3 (02 March 2009, alpha) +* ccpp-news-1-0-2:: Changes in MySQL Connector/CPP 1.0.2 (19 December 2008, alpha) +* ccpp-news-1-0-1:: Changes in MySQL Connector/CPP 1.0.1 (01 December 2008, alpha)  File: manual.info, Node: ccpp-news-1-0-5, Next: ccpp-news-1-0-4, Prev: ccpp-news-1-0-x, Up: ccpp-news-1-0-x @@ -258122,52 +261915,52 @@ *Functionality Added or Changed* - * The interface of `sql::ConnectionMetaData', - `sql::ResultSetMetaData' and `sql::ParameterMetaData' was modified - to have a protected destructor. As a result the client code has no - need to destruct the metadata objects returned by the connector. - MySQL Connector/C++ handles the required destruction. This enables - statements such as: - - connection->getMetaData->getSchema(); + * Added better support for named pipes, on Windows. Use `pipe://' + and add the path to the pipe. Shared memory connections are + currently not supported. - This avoids potential memory leaks that could occur as a result of - losing the pointer returned by `getMetaData()'. + * Enabled tracing functionality when building with Microsoft Visual + C++ 8 and later, which corresponds to Microsoft Visual Studio 2005 + and later. - * Improved memory management. Potential memory leak situations are - handled more robustly. + * Added `Result::getType()'. Implemented for the three result set + classes. - * Changed the interface of `sql::Driver' and `sql::Connection' so - they accept the options map by alias instead of by value. + * Added the option `defaultStatementResultType' to + `MySQL_Connection::setClientOption()'. Also, the method now + returns `sql::Connection *'. - * Changed the return type of `sql::SQLException::getSQLState()' from - `std::string' to `const char *' to be consistent with - `std::exception::what()'. + * Implemented `getResultSetType()' for `PreparedStatement'. The + setter is not implemented because currently `PreparedStatement' + cannot do refetching. Storing the result means the bind buffers + will be correct. * Implemented `getResultSetType()' and `setResultSetType()' for `Statement'. Uses `TYPE_FORWARD_ONLY', which means unbuffered result set and `TYPE_SCROLL_INSENSITIVE', which means buffered result set. - * Implemented `getResultSetType()' for `PreparedStatement'. The - setter is not implemented because currently `PreparedStatement' - cannot do refetching. Storing the result means the bind buffers - will be correct. + * Changed the return type of `sql::SQLException::getSQLState()' from + `std::string' to `const char *' to be consistent with + `std::exception::what()'. - * Added the option `defaultStatementResultType' to - `MySQL_Connection::setClientOption()'. Also, the method now - returns `sql::Connection *'. + * Changed the interface of `sql::Driver' and `sql::Connection' so + they accept the options map by alias instead of by value. - * Added `Result::getType()'. Implemented for the three result set - classes. + * Improved memory management. Potential memory leak situations are + handled more robustly. - * Enabled tracing functionality when building with Microsoft Visual - C++ 8 and later, which corresponds to Microsoft Visual Studio 2005 - and later. + * The interface of `sql::ConnectionMetaData', + `sql::ResultSetMetaData' and `sql::ParameterMetaData' was modified + to have a protected destructor. As a result the client code has no + need to destruct the metadata objects returned by the connector. + MySQL Connector/C++ handles the required destruction. This enables + statements such as: - * Added better support for named pipes, on Windows. Use `pipe://' - and add the path to the pipe. Shared memory connections are - currently not supported. + connection->getMetaData->getSchema(); + + This avoids potential memory leaks that could occur as a result of + losing the pointer returned by `getMetaData()'. *Bugs Fixed* @@ -258177,207 +261970,196 @@  File: manual.info, Node: ccpp-news-1-0-4, Next: ccpp-news-1-0-3, Prev: ccpp-news-1-0-5, Up: ccpp-news-1-0-x -D.7.2.2 Changes in MySQL Connector/CPP 1.0.4 (31 March 2009 beta) -................................................................. +D.7.2.2 Changes in MySQL Connector/CPP 1.0.4 (31 March 2009, beta) +.................................................................. *Functionality Added or Changed* - * An installer was added for the Windows operating system. + * Introduced `ResultSetMetaData::isZerofill()', which is not in the + JDBC specification. - * Minimum `CMake' version required was changed from 2.4.2 to 2.6.2. - The latest version is required for building on Windows. + * Added support for MySQL Connector/C. + + * Implemented `MySQL_ConnectionMetaData::supportsConvert(from, to)'. * `metadataUseInfoSchema' was added to the connection property map, which enables control of the `INFORMATION_SCHEMA' for metadata. - * Implemented `MySQL_ConnectionMetaData::supportsConvert(from, to)'. - - * Added support for MySQL Connector/C. + * Minimum `CMake' version required was changed from 2.4.2 to 2.6.2. + The latest version is required for building on Windows. - * Introduced `ResultSetMetaData::isZerofill()', which is not in the - JDBC specification. + * An installer was added for the Windows operating system. *Bugs Fixed* + * A leak was fixed in `MySQL_PreparedResultSet', which occurred when + the result contained a `BLOB' column. + * A bug was fixed in all implementations of `ResultSet::relative()' which was giving a wrong return value although positioning was working correctly. - * A leak was fixed in `MySQL_PreparedResultSet', which occurred when - the result contained a `BLOB' column. -  File: manual.info, Node: ccpp-news-1-0-3, Next: ccpp-news-1-0-2, Prev: ccpp-news-1-0-4, Up: ccpp-news-1-0-x -D.7.2.3 Changes in MySQL Connector/CPP 1.0.3 (02 March 2009 alpha) -.................................................................. +D.7.2.3 Changes in MySQL Connector/CPP 1.0.3 (02 March 2009, alpha) +................................................................... *Functionality Added or Changed* - * Added new tests in `test/unit/classes'. Those tests are mostly - about code coverage. Most of the actual functionality of the - driver is tested by the tests found in `test/CJUnitPort'. - - * New data types added to the list returned by - `DatabaseMetaData::getTypeInfo()' are `FLOAT UNSIGNED', `DECIMAL - UNSIGNED', `DOUBLE UNSIGNED'. Those tests may not be in the JDBC - specification. However, due to the change you should be able to - look up every type and type name returned by, for example, - `ResultSetMetaData::getColumnTypeName()'. + * Implemented `MySQL_DatabaseMetaData::getCrossReference()'. - * `MySQL_Driver::getPatchVersion' introduced. + * Implemented `MySQL_DatabaseMetaData::getExportedKeys()'. - * Major performance improvements due to new buffered `ResultSet' - implementation. + * Improved the implementation for `ResultSetMetaData::isReadOnly()'. + Values generated from views are read only. These generated values + don't have `db' in `MYSQL_FIELD' set, while all normal columns do + have. - * Addition of `test/unit/README' with instructions for writing bug - and regression tests. + * Introduced `ResultSet::getUInt()' and `ResultSet::getUInt64()'. - * Experimental support for STLPort. This feature may be removed - again at any time later without prior warning! Type `cmake `-L'' - for configuration instructions. + * Renamed `ResultSet::getLong()' to `ResultSet::getInt64()'. + `resultset.h' includes typdefs for Windows to be able to use + `int64_t'. - * Added properties enabled methods for connecting, which add many - connect options. This uses a dictionary (map) of key value pairs. - Methods added are `Driver::connect(map)', and - `Connection::Connection(map)'. + * Introduced, internally, `sql::mysql::MyVal' which has implicit + constructors. Used in `mysql_metadata.cpp' to create result sets + with native data instead of always string (varchar). - * New `BLOB' implementation. `sql::Blob' was removed in favor of - `std::istream'. C++'s `IOStream' library is very powerful, similar - to PHP's streams. It makes no sense to reinvent the wheel. For - example, you can pass a `std::istringstream' object to `setBlob()' - if the data is in memory, or just open a file `std::fstream' and - let it stream to the DB, or write its own stream. This is also - true for `getBlob()' where you can just copy data (if a buffered - result set), or stream data (if implemented). + * Changed the implementation of `MySQL_ConstructedResultSet' to use + the more efficient O(1) access method. This should improve the + speed with which the metadata result sets are used. Also, there is + less copying during the construction of the result set, which means + that all result sets returned from the metadata functions will be + faster. - * Implemented `ResultSet::getBlob()' which returns `std::stream'. + * Re-added `getTypeInfo()' with information about all types + supported by MySQL and the `sql::DataType'. - * Fixed `MySQL_DatabaseMetaData::getTablePrivileges()'. Test cases - were added in the first unit testing framework. + * `make package_source' now packs with bzip2. - * Implemented `MySQL_Connection::setSessionVariable()' for setting - variables like `sql_mode'. + * Implemented `MySQL_ConnectionMetaData::getProcedureColumns()'. - * Implemented `MySQL_DatabaseMetaData::getColumnPrivileges()'. + * Implementation for `MySQL_DatabaseMetaData::getImportedKeys()' for + MySQL versions before 5.1.16 using `SHOW', and above using + `INFORMATION_SCHEMA'. * `cppconn/datatype.h' has changed and is now used again. Reimplemented the type subsystem to be more usable - more types for binary and nonbinary strings. - * Implementation for `MySQL_DatabaseMetaData::getImportedKeys()' for - MySQL versions before 5.1.16 using `SHOW', and above using - `INFORMATION_SCHEMA'. + * Implemented `MySQL_DatabaseMetaData::getColumnPrivileges()'. - * Implemented `MySQL_ConnectionMetaData::getProcedureColumns()'. + * Implemented `MySQL_Connection::setSessionVariable()' for setting + variables like `sql_mode'. - * `make package_source' now packs with bzip2. + * Fixed `MySQL_DatabaseMetaData::getTablePrivileges()'. Test cases + were added in the first unit testing framework. - * Re-added `getTypeInfo()' with information about all types - supported by MySQL and the `sql::DataType'. + * Implemented `ResultSet::getBlob()' which returns `std::stream'. - * Changed the implementation of `MySQL_ConstructedResultSet' to use - the more efficient O(1) access method. This should improve the - speed with which the metadata result sets are used. Also, there is - less copying during the construction of the result set, which means - that all result sets returned from the metadata functions will be - faster. + * New `BLOB' implementation. `sql::Blob' was removed in favor of + `std::istream'. C++'s `IOStream' library is very powerful, similar + to PHP's streams. It makes no sense to reinvent the wheel. For + example, you can pass a `std::istringstream' object to `setBlob()' + if the data is in memory, or just open a file `std::fstream' and + let it stream to the DB, or write its own stream. This is also + true for `getBlob()' where you can just copy data (if a buffered + result set), or stream data (if implemented). - * Introduced, internally, `sql::mysql::MyVal' which has implicit - constructors. Used in `mysql_metadata.cpp' to create result sets - with native data instead of always string (varchar). + * Added properties enabled methods for connecting, which add many + connect options. This uses a dictionary (map) of key value pairs. + Methods added are `Driver::connect(map)', and + `Connection::Connection(map)'. - * Renamed `ResultSet::getLong()' to `ResultSet::getInt64()'. - `resultset.h' includes typdefs for Windows to be able to use - `int64_t'. + * Experimental support for STLPort. This feature may be removed + again at any time later without prior warning! Type `cmake `-L'' + for configuration instructions. - * Introduced `ResultSet::getUInt()' and `ResultSet::getUInt64()'. + * Addition of `test/unit/README' with instructions for writing bug + and regression tests. - * Improved the implementation for `ResultSetMetaData::isReadOnly()'. - Values generated from views are read only. These generated values - don't have `db' in `MYSQL_FIELD' set, while all normal columns do - have. + * Major performance improvements due to new buffered `ResultSet' + implementation. - * Implemented `MySQL_DatabaseMetaData::getExportedKeys()'. + * `MySQL_Driver::getPatchVersion' introduced. - * Implemented `MySQL_DatabaseMetaData::getCrossReference()'. + * New data types added to the list returned by + `DatabaseMetaData::getTypeInfo()' are `FLOAT UNSIGNED', `DECIMAL + UNSIGNED', `DOUBLE UNSIGNED'. Those tests may not be in the JDBC + specification. However, due to the change you should be able to + look up every type and type name returned by, for example, + `ResultSetMetaData::getColumnTypeName()'. + + * Added new tests in `test/unit/classes'. Those tests are mostly + about code coverage. Most of the actual functionality of the + driver is tested by the tests found in `test/CJUnitPort'. *Bugs Fixed* - * Bug fixed in `MySQL_PreparedResultSet::getString()'. Returned - string that had real data but the length was random. Now, the - string is initialized with the correct length and thus is binary - safe. + * Fixed handling of numeric columns in + `ResultSetMetaData::isCaseSensitive' to return `false'. * Corrected handling of unsigned server types. Now returning correct values. - * Fixed handling of numeric columns in - `ResultSetMetaData::isCaseSensitive' to return `false'. + * Bug fixed in `MySQL_PreparedResultSet::getString()'. Returned + string that had real data but the length was random. Now, the + string is initialized with the correct length and thus is binary + safe.  File: manual.info, Node: ccpp-news-1-0-2, Next: ccpp-news-1-0-1, Prev: ccpp-news-1-0-3, Up: ccpp-news-1-0-x -D.7.2.4 Changes in MySQL Connector/CPP 1.0.2 (19 December 2008 alpha) -..................................................................... +D.7.2.4 Changes in MySQL Connector/CPP 1.0.2 (19 December 2008, alpha) +...................................................................... *Functionality Added or Changed* - * Implemented `getScale()', `getPrecision()' and - `getColumnDisplaySize()' for `MySQL_ResultSetMetaData' and - `MySQL_Prepared_ResultSetMetaData'. + * Added `test/unit' as a basis for general unit tests using the new + test framework, see `test/unit/example' for basic usage examples. - * Changed `ResultSetMetaData' methods `getColumnDisplaySize()', - `getPrecision()', `getScale()' to return `unsigned int' instead of - `signed int'. + * Added new unit test framework for JDBC compliance and regression + testing. - * `DATE', `DATETIME' and `TIME' are now being handled when calling - the `MySQL_PreparedResultSet' methods `getString()', `getDouble()', - `getInt()', `getLong()', `getBoolean()'. + * Implemented `MySQL_ResultSetMetaData::getPrecision()' and + `MySQL_Prepared_ResultSetMetaData::getPrecision()', updating + example. + + * Added PHP script `examples/cpp_trace_analyzer.php' to filter the + output of the debug trace. Please see the inline comments for + documentation. This script is unsupported. + + * Implemented `MySQL_PreparedStatement::clearParameters()'. + + * Implemented `MySQL_PreparedStatement::setNull()'. * Reverted implementation of `MySQL_DatabaseMetaData::getTypeInfo()'. Now unimplemented. In addition, removed `cppconn/datatype.h' for now, until a more robust implementation of the types can be developed. - * Implemented `MySQL_PreparedStatement::setNull()'. - - * Implemented `MySQL_PreparedStatement::clearParameters()'. - - * Added PHP script `examples/cpp_trace_analyzer.php' to filter the - output of the debug trace. Please see the inline comments for - documentation. This script is unsupported. - - * Implemented `MySQL_ResultSetMetaData::getPrecision()' and - `MySQL_Prepared_ResultSetMetaData::getPrecision()', updating - example. + * `DATE', `DATETIME' and `TIME' are now being handled when calling + the `MySQL_PreparedResultSet' methods `getString()', `getDouble()', + `getInt()', `getLong()', `getBoolean()'. - * Added new unit test framework for JDBC compliance and regression - testing. + * Changed `ResultSetMetaData' methods `getColumnDisplaySize()', + `getPrecision()', `getScale()' to return `unsigned int' instead of + `signed int'. - * Added `test/unit' as a basis for general unit tests using the new - test framework, see `test/unit/example' for basic usage examples. + * Implemented `getScale()', `getPrecision()' and + `getColumnDisplaySize()' for `MySQL_ResultSetMetaData' and + `MySQL_Prepared_ResultSetMetaData'. *Bugs Fixed* - * Fixed `MySQL_PreparedStatementResultSet::getDouble()' to return - the correct value when the underlying type is `MYSQL_TYPE_FLOAT'. - - * Fixed bug in `MySQL_ConnectionMetaData::getIndexInfo()'. The - method did not work because the schema name wasn't included in the - query sent to the server. + * Fixed `MySQL_PreparedStatement::setBlob()'. In the tests there is + a simple example of a class implementing `sql::Blob'. - * Fixed a bug in `MySQL_ConnectionMetaData::getColumns()' which was - performing a cartesian product of the columns in the table times - the columns matching `columnNamePattern'. The example - `example/connection_meta_schemaobj.cpp' was extended to cover the - function. + * Fixed bug in `FLOAT' handling. - * Fixed bugs in `MySQL_DatabaseMetaData'. All `supportsCatalogXXXXX' - methods were incorrectly returning `true' and all - `supportsSchemaXXXX' methods were incorrectly returning `false'. - Now `supportsCatalogXXXXX' returns `false' and - `supportsSchemaXXXXX' returns `true'. + * Fixed a bug in `getString()'. `getString()' is now binary safe. A + new example was also added. * Fixed bugs in the `MySQL_PreparedStatements' methods `setBigInt()' and `setDatetime()'. They decremented the internal column index @@ -258387,60 +262169,70 @@ setString() ... invalid "parameterIndex" - * Fixed a bug in `getString()'. `getString()' is now binary safe. A - new example was also added. + * Fixed bugs in `MySQL_DatabaseMetaData'. All `supportsCatalogXXXXX' + methods were incorrectly returning `true' and all + `supportsSchemaXXXX' methods were incorrectly returning `false'. + Now `supportsCatalogXXXXX' returns `false' and + `supportsSchemaXXXXX' returns `true'. - * Fixed bug in `FLOAT' handling. + * Fixed a bug in `MySQL_ConnectionMetaData::getColumns()' which was + performing a cartesian product of the columns in the table times + the columns matching `columnNamePattern'. The example + `example/connection_meta_schemaobj.cpp' was extended to cover the + function. - * Fixed `MySQL_PreparedStatement::setBlob()'. In the tests there is - a simple example of a class implementing `sql::Blob'. + * Fixed bug in `MySQL_ConnectionMetaData::getIndexInfo()'. The + method did not work because the schema name wasn't included in the + query sent to the server. + + * Fixed `MySQL_PreparedStatementResultSet::getDouble()' to return + the correct value when the underlying type is `MYSQL_TYPE_FLOAT'.  File: manual.info, Node: ccpp-news-1-0-1, Prev: ccpp-news-1-0-2, Up: ccpp-news-1-0-x -D.7.2.5 Changes in MySQL Connector/CPP 1.0.1 (01 December 2008 alpha) -..................................................................... +D.7.2.5 Changes in MySQL Connector/CPP 1.0.1 (01 December 2008, alpha) +...................................................................... *Functionality Added or Changed* - * `sql::mysql::MySQL_SQLException' was removed. The distinction - between server and client (connector) errors, based on the type of - the exception, has been removed. However, the error code can still - be checked to evaluate the error type. + * New directory layout. - * Support for (n)make install was added. You can change the default - installation path. Carefully read the messages displayed after - executing cmake. The following are installed: + * MySQL Workbench 5.1 changed to use MySQL Connector/C++ for its + database connectivity. - * Static and the dynamic version of the library, - `libmysqlcppconn'. + * Converted Connector/J tests added. - * Generic interface, `cppconn'. + * Changed `sql::DbcException' to implement the interface of JDBC's + `SQLException'. Renamed to `sql::SQLException'. - * Two MySQL specific headers: + * Renamed `sql::DbcInvalidArgument' to + `sql::InvalidArgumentException' - `mysql_driver.h', use this if you want to get your - connections from the driver instead of instantiating a - `MySQL_Connection' object. This makes your code portable - when using the common interface. + * Renamed `sql::DbcMethodNotImplemented' to + `sql::MethodNotImplementedException' - `mysql_connection.h', use this if you intend to link directly - to the `MySQL_Connection' class and use its specifics not - found in `sql::Connection'. + * All tests changed to create TAP compliant output. - However, you can make your application fully abstract by - using the generic interface rather than these two headers. + * Introduced experimental CPack support, see make help. - * Driver Manager was removed. + * Changed metadata column name `TABLE_CATALOG' to `TABLE_CAT' and + `TABLE_SCHEMA' to `TABLE_SCHEM' to ensure JDBC compliance. - * Added `ConnectionMetaData::getSchemas()' and - `Connection::setSchema()'. + * Renamed `ConnectionMetaData::getImportedKeys(): PKTABLE_CATALOG' + to `PKTABLE_CAT', `PKTABLE_SCHEMA' to `PKTABLE_SCHEM', + `FKTABLE_CATALOG' to `FKTABLE_CAT', `FKTABLE_SCHEMA' to + `FKTABLE_SCHEM'. - * `ConnectionMetaData::getCatalogTerm()' returns not applicable, - there is no counterpart to catalog in MySQL Connector/C++. + * Renamed `ConnectionMetaData::getPrimaryKeys(): COLUMN' to + `COLUMN_NAME', `SEQUENCE' to `KEY_SEQ', and `INDEX_NAME' to + `PK_NAME'. - * Added experimental GCov support, `cmake - `-DMYSQLCPPCONN_GCOV_ENABLE:BOOL=1'' + * Renamed `ConnectionMetaData::getProcedures: PROCEDURE_SCHEMA' to + `PROCEDURE_SCHEM'. + + * Renamed `ConnectionMetaData::getTables: TABLE_COMMENT' to + `REMARKS'. * All examples can be given optional connection parameters on the command line, for example: @@ -258451,43 +262243,44 @@ examples/connect unix:///path/to/mysql.sock user pass database - * Renamed `ConnectionMetaData::getTables: TABLE_COMMENT' to - `REMARKS'. - - * Renamed `ConnectionMetaData::getProcedures: PROCEDURE_SCHEMA' to - `PROCEDURE_SCHEM'. + * Added experimental GCov support, `cmake + `-DMYSQLCPPCONN_GCOV_ENABLE:BOOL=1'' - * Renamed `ConnectionMetaData::getPrimaryKeys(): COLUMN' to - `COLUMN_NAME', `SEQUENCE' to `KEY_SEQ', and `INDEX_NAME' to - `PK_NAME'. + * `ConnectionMetaData::getCatalogTerm()' returns not applicable, + there is no counterpart to catalog in MySQL Connector/C++. - * Renamed `ConnectionMetaData::getImportedKeys(): PKTABLE_CATALOG' - to `PKTABLE_CAT', `PKTABLE_SCHEMA' to `PKTABLE_SCHEM', - `FKTABLE_CATALOG' to `FKTABLE_CAT', `FKTABLE_SCHEMA' to - `FKTABLE_SCHEM'. + * Added `ConnectionMetaData::getSchemas()' and + `Connection::setSchema()'. - * Changed metadata column name `TABLE_CATALOG' to `TABLE_CAT' and - `TABLE_SCHEMA' to `TABLE_SCHEM' to ensure JDBC compliance. + * Driver Manager was removed. - * Introduced experimental CPack support, see make help. + * Support for (n)make install was added. You can change the default + installation path. Carefully read the messages displayed after + executing cmake. The following are installed: - * All tests changed to create TAP compliant output. + * Static and the dynamic version of the library, + `libmysqlcppconn'. - * Renamed `sql::DbcMethodNotImplemented' to - `sql::MethodNotImplementedException' + * Generic interface, `cppconn'. - * Renamed `sql::DbcInvalidArgument' to - `sql::InvalidArgumentException' + * Two MySQL specific headers: - * Changed `sql::DbcException' to implement the interface of JDBC's - `SQLException'. Renamed to `sql::SQLException'. + `mysql_driver.h', use this if you want to get your + connections from the driver instead of instantiating a + `MySQL_Connection' object. This makes your code portable + when using the common interface. - * Converted Connector/J tests added. + `mysql_connection.h', use this if you intend to link directly + to the `MySQL_Connection' class and use its specifics not + found in `sql::Connection'. - * MySQL Workbench 5.1 changed to use MySQL Connector/C++ for its - database connectivity. + However, you can make your application fully abstract by + using the generic interface rather than these two headers. - * New directory layout. + * `sql::mysql::MySQL_SQLException' was removed. The distinction + between server and client (connector) errors, based on the type of + the exception, has been removed. However, the error code can still + be checked to evaluate the error type.  File: manual.info, Node: mysql-proxy-news, Prev: ccpp-news, Up: news @@ -258522,6 +262315,7 @@ it requires configuration since 0.8.1 *Note_to Windows Users* + * The Microsoft Visual C++ runtime libraries are now a requirement for running MySQL Proxy. Users that do not have these libraries must download and install the Microsoft Visual C++ 2008 Service @@ -258535,16 +262329,16 @@ *Functionality Added or Changed* - * Removed the `admin' plugin from the list of default plugins, as it - requires configuration since 0.8.1. - - * Added support for `OUT' parameters in prepared statements in - stored procedures with MySQL 5.5. + * Added support for binary log checksums. * Added support for decoding _all_ data types of the row-based replication protocol. - * Added support for binary log checksums. + * Added support for `OUT' parameters in prepared statements in + stored procedures with MySQL 5.5. + + * Removed the `admin' plugin from the list of default plugins, as it + requires configuration since 0.8.1. *Bugs Fixed* @@ -258559,12 +262353,12 @@ * A memory leak occurred if connection pooling was used. (Bug #56620) - * A bogus timestamp log was produced if state tracking was not - compiled in. + * Fixed handling of `used columns' with row-based replication. * A crash could occur if run under Valgrind. - * Fixed handling of `used columns' with row-based replication. + * A bogus timestamp log was produced if state tracking was not + compiled in.  File: manual.info, Node: mysql-proxy-news-0-8-1, Next: mysql-proxy-news-0-8-0, Prev: mysql-proxy-news-0-8-2, Up: mysql-proxy-news @@ -258574,34 +262368,25 @@ *Functionality Added or Changed* - * Allow interception of *Note `LOAD DATA INFILE': load-data. and - *Note `SHOW ERRORS': show-errors. statements. + * `con->in_load_data_local' has been removed. - * The unused `network_mysqld_com_query_result_track_state()' - function has been deprecated. + * Shutdown hooks were added to free the global memory of third-party + libraries such as `openssl'. * `chassis_set_fdlimit()' has been deprecated in favor of `chassis_fdlimit_set()'. - * Shutdown hooks were added to free the global memory of third-party - libraries such as `openssl'. + * The unused `network_mysqld_com_query_result_track_state()' + function has been deprecated. - * `con->in_load_data_local' has been removed. + * Allow interception of *Note `LOAD DATA INFILE': load-data. and + *Note `SHOW ERRORS': show-errors. statements. *Bugs Fixed* * The admin plugin had an undocumented default value for `--admin-password'. (Bug #53429) - * Use of *Note `LOAD DATA LOCAL INFILE': load-data. caused the - connection between the client and MySQL Proxy to abort. (Bug - #51864) - - * If the backend MySQL server went down, and then the clock on the - MySQL Proxy host went backward (for example, during daylight - saving time adjustments), Proxy stopped forwarding queries to the - backend. (Bug #50806) - * `network_address_set_address()->network_address_set_address_ip()' called `gethostbyname()' which was not reentrant. This meant that a MySQL Proxy plugin needed to guard all calls to @@ -258609,6 +262394,11 @@ `network_address_set_address()' has been modified to be thread safe. (Bug #49099) + * If the backend MySQL server went down, and then the clock on the + MySQL Proxy host went backward (for example, during daylight + saving time adjustments), Proxy stopped forwarding queries to the + backend. (Bug #50806) + * The hard limit was fixed for the case where the fdlimit was set. (Bug #48120) @@ -258620,12 +262410,16 @@ This caused issues for clients with `retry' logic, as they could not handle these `custom' SQL States. (Bug #45417) - * If MySQL Proxy used a UNIX socket, it did not remove the socket - file at termination time. (Bug #38415) + * Use of *Note `LOAD DATA LOCAL INFILE': load-data. caused the + connection between the client and MySQL Proxy to abort. (Bug + #51864) * The `--proxy-read-only-backend-addresses' option did not work. (Bug #38341, Bug #11749171) + * If MySQL Proxy used a UNIX socket, it did not remove the socket + file at termination time. (Bug #38415) + * When running `configure' to build, the error message relating to the `lua' libraries could be misleading. The wording and build advice have been updated. @@ -258644,17 +262438,17 @@ *Bugs Fixed* + * MySQL Proxy would load a configuration file with unsafe + permissions, which could permit password information to be exposed + through the file. MySQL Proxy now refuses to load a configuration + file with unsafe permissions. (Bug #47589) + * A memory leak occurred in MySQL Proxy if clients older than MySQL 4.1 connected to it. (Bug #50993) * A segmentation fault occurred in MySQL Proxy if clients older than MySQL 4.1 connected to it. (Bug #48641) - * MySQL Proxy would load a configuration file with unsafe - permissions, which could permit password information to be exposed - through the file. MySQL Proxy now refuses to load a configuration - file with unsafe permissions. (Bug #47589) - * Several supplied scripts were updated to account for flag and structure changes: @@ -258671,9 +262465,6 @@ (Bug #47349, Bug #45408, Bug #47345, Bug #43424, Bug #42841, Bug #46141) - * The line numbers provided in stack traces were off by one. (Bug - #47348) - * MySQL Proxy accepted more than one address in the value of the `--proxy-backend-addresses' option. You should specify one `--proxy-backend-addresses' option for each backend address. (Bug @@ -258682,30 +262473,33 @@ * MySQL Proxy returned the wrong version string internally from the `proxy.PROXY_VERSION' constant. (Bug #45996) - * MySQL Proxy could stop accepting network packets if it received a - large number of packets. The listen queue has been extended to - permit a larger backlog. (Bug #45878, Bug #43278) - - * Due to a memory leak, memory usage for each new connection to the - proxy increased, leading to very high consumption. (Bug #45272) - * MySQL Proxy failed to work with certain versions of MySQL, including MySQL 5.1.15, where a change in the MySQL protocol existed. Now Proxy denies `COM_CHANGE_USER' commands when it is connected to MySQL 5.1.14 to 5.1.17 servers by sending back an error: `COM_CHANGE_USER is broken on 5.1.14-.17, please upgrade - the MySQL Server'. (Bug #45167) See also Bug #25371. + the MySQL Server'. (Bug #45167) References: See also Bug #25371. + + * The line numbers provided in stack traces were off by one. (Bug + #47348) + + * Due to a memory leak, memory usage for each new connection to the + proxy increased, leading to very high consumption. (Bug #45272) + + * MySQL Proxy could stop accepting network packets if it received a + large number of packets. The listen queue has been extended to + permit a larger backlog. (Bug #45878, Bug #43278) * Logging to `syslog' with the `--log-use-syslog' option did not work. (Bug #36431) + * MySQL Proxy raised an error when processing query packets larger + than 16MB. (Bug #35202) + * MySQL Proxy could incorrectly insert `NULL' values into the returned result set, even though non-`NULL' values were returned in the original query. (Bug #35729) - * MySQL Proxy raised an error when processing query packets larger - than 16MB. (Bug #35202) -  File: manual.info, Node: mysql-proxy-news-0-7-2, Next: mysql-proxy-news-0-7-1, Prev: mysql-proxy-news-0-8-0, Up: mysql-proxy-news @@ -258730,11 +262524,15 @@ * Due to a memory leak, memory usage for each new connection to the proxy increased, leading to very high consumption. (Bug #45272) - * The port number was reported incorrectly in - `proxy.connection.client.address'. (Bug #43313) + * When using the `rw-splitting.lua' script, you could get an error + when talking to the backend server: - * Result sets with more than 250 fields could cause MySQL Proxy to - crash. (Bug #43078) + 2008-07-28 18:00:30: (critical) (read_query) [string + "/usr/local/share/mysql-proxy/rw-splitting.l..."]:218: bad argument #1 to 'ipairs' (table + expected, got userdata) + + This led to Proxy closing the connection to the configured MySQL + backend. (Bug #38419) * MySQL Proxy was unable to increase its own maximum number of open files according to the limit specified by the `--max-open-files' @@ -258745,15 +262543,11 @@ * MySQL Proxy crashed when connecting to a MySQL 4.0 server. Now it generates an error message instead. (Bug #38601) - * When using the `rw-splitting.lua' script, you could get an error - when talking to the backend server: - - 2008-07-28 18:00:30: (critical) (read_query) [string - "/usr/local/share/mysql-proxy/rw-splitting.l..."]:218: bad argument #1 to 'ipairs' (table - expected, got userdata) + * Result sets with more than 250 fields could cause MySQL Proxy to + crash. (Bug #43078) - This led to Proxy closing the connection to the configured MySQL - backend. (Bug #38419) + * The port number was reported incorrectly in + `proxy.connection.client.address'. (Bug #43313) * When using MySQL Proxy with multiple backends, failure of one backend caused Proxy to disconnect all backends and stop routing @@ -258869,13 +262663,13 @@ *Functionality Added or Changed* - * Fixed assertions on write errors. - - * Fixed sending fake server-greetings in `connect_server()'. + * Added new features to `run-tests.lua'. * Fixed error handling for socket functions on Windows. - * Added new features to `run-tests.lua'. + * Fixed sending fake server-greetings in `connect_server()'. + + * Fixed assertions on write errors.  File: manual.info, Node: mysql-proxy-news-0-6-0, Next: mysql-proxy-news-0-5-1, Prev: mysql-proxy-news-0-6-1, Up: mysql-proxy-news @@ -258889,67 +262683,67 @@ script, connecting a second user to the proxy returns an error message. (Bug #30867) - * Added support in `read_query_result()' to overwrite the result set. - - * By default, MySQL Proxy now starts in daemon mode. Use the new - `--no-daemon' option to override this. Added the `--pid-file' - option for writing the process ID to a file after becoming a - daemon. + * Added connection pooling. - * Added hooks for `read_auth()', `read_handshake()' and - `read_auth_result()'. + * Added a global Lua-scope `proxy.global.*'. - * Added handling of `proxy.connection.backend_ndx' in - `connect_server()' and `read_query()' to support read/write - splitting. + * Added support for listening UNIX sockets. - * Added support for `proxy.response.packets'. + * Added `--no-proxy' to disable the proxy. * Added test cases. - * Added `--no-proxy' to disable the proxy. + * Added support for `proxy.response.packets'. - * Added support for listening UNIX sockets. + * Added handling of `proxy.connection.backend_ndx' in + `connect_server()' and `read_query()' to support read/write + splitting. - * Added a global Lua-scope `proxy.global.*'. + * Added hooks for `read_auth()', `read_handshake()' and + `read_auth_result()'. - * Added connection pooling. + * By default, MySQL Proxy now starts in daemon mode. Use the new + `--no-daemon' option to override this. Added the `--pid-file' + option for writing the process ID to a file after becoming a + daemon. + + * Added support in `read_query_result()' to overwrite the result set. *Bugs Fixed* - * Fixed an assertion on `COM_BINLOG_DUMP'. (Bug #29764) + * Fixed an assertion that MySQL Proxy raised at login time if a + client specified no password and no default database. (Bug #29719) * Fixed an assertion on result-packets like `[field-len | fields | EOF | ERR]'. (Bug #29732) - * Fixed an assertion that MySQL Proxy raised at login time if a - client specified no password and no default database. (Bug #29719) + * Fixed an assertion on `COM_BINLOG_DUMP'. (Bug #29764) * Fixed an assertion at `COM_SHUTDOWN'. (Bug #29719) - * Fixed a crash if `proxy.connection' is used in `connect_server()'. + * Fixed a memory leak when `proxy.response.*' is used. - * Fixed the `glib2' check to require at least `glib2' 2.6.0. + * Fixed handling of (SQL) `NULL' in result sets. - * Fixed an assertion at connect time when all backends are down. + * Fixed `inj.resultset.affected_rows' on *Note `SELECT': select. + queries. - * Fixed connection stalling if `read_query_result()' raised an - assertion. + * Fixed decoding of length-encoded ints for 3-byte notation. - * Fixed length encoding on `proxy.resultsets'. + * Fixed an assertion when connecting to MySQL 6.0.1. * Fixed compilation on win32. - * Fixed an assertion when connecting to MySQL 6.0.1. + * Fixed length encoding on `proxy.resultsets'. - * Fixed decoding of length-encoded ints for 3-byte notation. + * Fixed connection stalling if `read_query_result()' raised an + assertion. - * Fixed `inj.resultset.affected_rows' on *Note `SELECT': select. - queries. + * Fixed an assertion at connect time when all backends are down. - * Fixed handling of (SQL) `NULL' in result sets. + * Fixed the `glib2' check to require at least `glib2' 2.6.0. - * Fixed a memory leak when `proxy.response.*' is used. + * Fixed a crash if `proxy.connection' is used in `connect_server()'.  File: manual.info, Node: mysql-proxy-news-0-5-1, Next: mysql-proxy-news-0-5-0, Prev: mysql-proxy-news-0-6-0, Up: mysql-proxy-news @@ -258959,46 +262753,46 @@ *Functionality Added or Changed* - * Added `resultset.affected_rows' and `resultset.insert_id'. + * Added protection against duplicate result sets from a script. - * Changed `--proxy.profiling' to `--proxy-skip-profiling'. + * Added support for UNIX sockets. - * Added missing dependency to `libmysqlclient-dev' to the `INSTALL' - file. + * Added `proxy.VERSION'. - * Added `inj.query_time' and `inj.response_time' into the Lua - scripts. + * Added script examples for rewriting and injection. * Added support for pre-4.1 passwords in a 4.1 connection. - * Added script examples for rewriting and injection. + * Added `inj.query_time' and `inj.response_time' into the Lua + scripts. - * Added `proxy.VERSION'. + * Added missing dependency to `libmysqlclient-dev' to the `INSTALL' + file. - * Added support for UNIX sockets. + * Changed `--proxy.profiling' to `--proxy-skip-profiling'. - * Added protection against duplicate result sets from a script. + * Added `resultset.affected_rows' and `resultset.insert_id'. *Bugs Fixed* - * Fixed mysql check in `configure' to die when `mysql.h' isn't - detected. + * Fixed an assertion when `read_query_result()' is not provided when + `PROXY_SEND_QUERY' is used. - * Fixed handling of duplicate ERR on `COM_CHANGE_USER' in MySQL - 5.1.18+. + * Fixed an assertion when an error occurs at initial script exec + time. - * Fixed a compile error with MySQL 4.1.x on missing `COM_STMT_*'. + * Fixed a warning if `connect_server()' is not provided. * Fixed a crash on fields longer than 250 bytes when the result set is inspected. - * Fixed a warning if `connect_server()' is not provided. + * Fixed a compile error with MySQL 4.1.x on missing `COM_STMT_*'. - * Fixed an assertion when an error occurs at initial script exec - time. + * Fixed handling of duplicate ERR on `COM_CHANGE_USER' in MySQL + 5.1.18+. - * Fixed an assertion when `read_query_result()' is not provided when - `PROXY_SEND_QUERY' is used. + * Fixed mysql check in `configure' to die when `mysql.h' isn't + detected.  File: manual.info, Node: mysql-proxy-news-0-5-0, Prev: mysql-proxy-news-0-5-1, Up: mysql-proxy-news @@ -259010,12 +262804,12 @@ *Bugs Fixed* - * Added `automake'/`autoconf' support. - * Added `CMake' support. + * Added `automake'/`autoconf' support. +  -File: manual.info, Node: restrictions, Prev: news, Up: Top +File: manual.info, Node: restrictions, Next: glossary, Prev: news, Up: Top Appendix E Restrictions and Limits ********************************** @@ -259383,7 +263177,7 @@ * A subquery's outer statement can be any one of: *Note `SELECT': select, *Note `INSERT': insert, *Note `UPDATE': update, *Note - `DELETE': delete, *Note `SET': set-option, or *Note `DO': do. + `DELETE': delete, *Note `SET': set-statement, or *Note `DO': do. * Subquery optimization for `IN' is not as effective as for the `=' operator or for the `IN(VALUE_LIST)' operator. @@ -259956,440 +263750,5161 @@ named by the default value of the local server's `plugin_dir' system variable). - If a connector links to `libmysql' dynamically, it must be ensured - that the newer version of `libmysql' is installed on the client - host and that the connector loads it at runtime. + If a connector links to `libmysql' dynamically, it must be ensured + that the newer version of `libmysql' is installed on the client + host and that the connector loads it at runtime. + + * Another way for a connector to support a given authentication + method is to implement it directly in the client/server protocol. + Connector/Net uses this approach to provide support for Windows + native authentication. + + * If a connector should be able to load client-side plugins from a + directory different from the default plugin directory, it must + implement some means for client users to specify the directory. + Possibilities for this include a command-line option or + environment variable from which the connector can obtain the + directory name. Standard MySQL client programs such as *Note + `mysql': mysql. and *Note `mysqladmin': mysqladmin. implement a + `--plugin-dir' option. See also *Note c-api-plugin-functions::. + + * Proxy user support by a connector depends, as described earlier in + this section, on whether the authentication methods that it + supports permit proxy users. + + +File: manual.info, Node: limits, Prev: pluggable-authentication-restrictions, Up: restrictions + +E.10 Limits in MySQL +==================== + +* Menu: + +* joins-limits:: Limits of Joins +* database-count-limit:: Limits on Number of Databases and Tables +* table-size-limit:: Limits on Table Size +* column-count-limit:: Table Column-Count and Row-Size Limits +* limits-windows:: Windows Platform Limitations + +This section lists current limits in MySQL 5.5. + + +File: manual.info, Node: joins-limits, Next: database-count-limit, Prev: limits, Up: limits + +E.10.1 Limits of Joins +---------------------- + +The maximum number of tables that can be referenced in a single join is +61. This also applies to the number of tables that can be referenced in +the definition of a view. + + +File: manual.info, Node: database-count-limit, Next: table-size-limit, Prev: joins-limits, Up: limits + +E.10.2 Limits on Number of Databases and Tables +----------------------------------------------- + +MySQL has no limit on the number of databases. The underlying file +system may have a limit on the number of directories. + +MySQL has no limit on the number of tables. The underlying file system +may have a limit on the number of files that represent tables. +Individual storage engines may impose engine-specific constraints. +`InnoDB' permits up to 4 billion tables. + + +File: manual.info, Node: table-size-limit, Next: column-count-limit, Prev: database-count-limit, Up: limits + +E.10.3 Limits on Table Size +--------------------------- + +The effective maximum table size for MySQL databases is usually +determined by operating system constraints on file sizes, not by MySQL +internal limits. The following table lists some examples of operating +system file-size limits. This is only a rough guide and is not intended +to be definitive. For the most up-to-date information, be sure to check +the documentation specific to your operating system. + +Operating System File-size Limit +Win32 w/ FAT/FAT32 2GB/4GB +Win32 w/ NTFS 2TB (possibly larger) +Linux 2.2-Intel 32-bit 2GB (LFS: 4GB) +Linux 2.4+ (using ext3 file system) 4TB +Solaris 9/10 16TB +MacOS X w/ HFS+ 2TB + +Windows users, please note that FAT and VFAT (FAT32) are _not_ +considered suitable for production use with MySQL. Use NTFS instead. + +On Linux 2.2, you can get `MyISAM' tables larger than 2GB in size by +using the Large File Support (LFS) patch for the ext2 file system. Most +current Linux distributions are based on kernel 2.4 or higher and +include all the required LFS patches. On Linux 2.4, patches also exist +for ReiserFS to get support for big files (up to 2TB). With JFS and XFS, +petabyte and larger files are possible on Linux. + +For a detailed overview about LFS in Linux, have a look at Andreas +Jaeger's `Large File Support in Linux' page at +`http://www.suse.de/~aj/linux_lfs.html'. + +If you do encounter a full-table error, there are several reasons why +it might have occurred: + + * The disk might be full. + + * The `InnoDB' storage engine maintains `InnoDB' tables within a + tablespace that can be created from several files. This enables a + table to exceed the maximum individual file size. The tablespace + can include raw disk partitions, which permits extremely large + tables. The maximum tablespace size is 64TB. + + If you are using `InnoDB' tables and run out of room in the + `InnoDB' tablespace. In this case, the solution is to extend the + `InnoDB' tablespace. See *Note innodb-data-log-reconfiguration::. + + * You are using `MyISAM' tables on an operating system that supports + files only up to 2GB in size and you have hit this limit for the + data file or index file. + + * You are using a `MyISAM' table and the space required for the + table exceeds what is permitted by the internal pointer size. + `MyISAM' permits data and index files to grow up to 256TB by + default, but this limit can be changed up to the maximum + permissible size of 65,536TB (256^7 - 1 bytes). + + If you need a `MyISAM' table that is larger than the default limit + and your operating system supports large files, the *Note `CREATE + TABLE': create-table. statement supports `AVG_ROW_LENGTH' and + `MAX_ROWS' options. See *Note create-table::. The server uses these + options to determine how large a table to permit. + + If the pointer size is too small for an existing table, you can + change the options with *Note `ALTER TABLE': alter-table. to + increase a table's maximum permissible size. See *Note + alter-table::. + + ALTER TABLE TBL_NAME MAX_ROWS=1000000000 AVG_ROW_LENGTH=NNN; + + You have to specify `AVG_ROW_LENGTH' only for tables with *Note + `BLOB': blob. or *Note `TEXT': blob. columns; in this case, MySQL + can't optimize the space required based only on the number of rows. + + To change the default size limit for `MyISAM' tables, set the + `myisam_data_pointer_size', which sets the number of bytes used + for internal row pointers. The value is used to set the pointer + size for new tables if you do not specify the `MAX_ROWS' option. + The value of `myisam_data_pointer_size' can be from 2 to 7. A + value of 4 permits tables up to 4GB; a value of 6 permits tables + up to 256TB. + + You can check the maximum data and index sizes by using this + statement: + + SHOW TABLE STATUS FROM DB_NAME LIKE 'TBL_NAME'; + + You also can use *Note `myisamchk -dv /path/to/table-index-file': + myisamchk. See *Note show::, or *Note myisamchk::. + + Other ways to work around file-size limits for `MyISAM' tables are + as follows: + + * If your large table is read only, you can use *Note + `myisampack': myisampack. to compress it. *Note + `myisampack': myisampack. usually compresses a table by at + least 50%, so you can have, in effect, much bigger tables. + *Note `myisampack': myisampack. also can merge multiple + tables into a single table. See *Note myisampack::. + + * MySQL includes a `MERGE' library that enables you to handle a + collection of `MyISAM' tables that have identical structure + as a single `MERGE' table. See *Note merge-storage-engine::. + + * You are using the *Note `NDB': mysql-cluster. storage engine, in + which case you need to increase the values for the `DataMemory' and + `IndexMemory' configuration parameters in your `config.ini' file. + See *Note mysql-cluster-params-ndbd::. + + * You are using the `MEMORY' (`HEAP') storage engine; in this case + you need to increase the value of the `max_heap_table_size' system + variable. See *Note server-system-variables::. + + +File: manual.info, Node: column-count-limit, Next: limits-windows, Prev: table-size-limit, Up: limits + +E.10.4 Table Column-Count and Row-Size Limits +--------------------------------------------- + +There is a hard limit of 4096 columns per table, but the effective +maximum may be less for a given table. The exact limit depends on +several interacting factors. + + * Every table (regardless of storage engine) has a maximum row size + of 65,535 bytes. Storage engines may place additional constraints + on this limit, reducing the effective maximum row size. + + The maximum row size constrains the number (and possibly size) of + columns because the total length of all columns cannot exceed this + size. For example, `utf8' characters require up to three bytes per + character, so for a *Note `CHAR(255) CHARACTER SET utf8': char. + column, the server must allocate 255 x 3 = 765 bytes per value. + Consequently, a table cannot contain more than 65,535 / 765 = 85 + such columns. + + Storage for variable-length columns includes length bytes, which + are assessed against the row size. For example, a *Note + `VARCHAR(255) CHARACTER SET utf8': char. column takes two bytes to + store the length of the value, so each value can take up to 767 + bytes. + + *Note `BLOB': blob. and *Note `TEXT': blob. columns count from one + to four plus eight bytes each toward the row-size limit because + their contents are stored separately from the rest of the row. + + Declaring columns `NULL' can reduce the maximum number of columns + permitted. For *Note `MyISAM': myisam-storage-engine. tables, + `NULL' columns require additional space in the row to record + whether their values are `NULL'. Each `NULL' column takes one bit + extra, rounded up to the nearest byte. The maximum row length in + bytes can be calculated as follows: + + row length = 1 + + (SUM OF COLUMN LENGTHS) + + (NUMBER OF NULL COLUMNS + DELETE_FLAG + 7)/8 + + (NUMBER OF VARIABLE-LENGTH COLUMNS) + + DELETE_FLAG is 1 for tables with static row format. Static tables + use a bit in the row record for a flag that indicates whether the + row has been deleted. DELETE_FLAG is 0 for dynamic tables because + the flag is stored in the dynamic row header. For information + about *Note `MyISAM': myisam-storage-engine. table formats, see + *Note myisam-table-formats::. + + These calculations do not apply for *Note `InnoDB': + innodb-storage-engine. tables. Storage size is the same for `NULL' + and `NOT NULL' columns. + + The following statement to create table `t1' succeeds because the + columns require 32,765 + 2 bytes and 32,766 + 2 bytes, which falls + within the maximum row size of 65,535 bytes: + + mysql> CREATE TABLE t1 + -> (c1 VARCHAR(32765) NOT NULL, c2 VARCHAR(32766) NOT NULL) + -> ENGINE = MyISAM CHARACTER SET latin1; + Query OK, 0 rows affected (0.02 sec) + + The following statement to create table `t2' fails because the + columns are `NULL' and *Note `MyISAM': myisam-storage-engine. + requires additional space that causes the row size to exceed + 65,535 bytes: + + mysql> CREATE TABLE t2 + -> (c1 VARCHAR(32765) NULL, c2 VARCHAR(32766) NULL) + -> ENGINE = MyISAM CHARACTER SET latin1; + ERROR 1118 (42000): Row size too large. The maximum row size for the + used table type, not counting BLOBs, is 65535. You have to change some + columns to TEXT or BLOBs + + The following statement to create table `t3' fails because + although the column length is within the maximum length of 65,535 + bytes, two additional bytes are required to record the length, + which causes the row size to exceed 65,535 bytes: + + mysql> CREATE TABLE t3 + -> (c1 VARCHAR(65535) NOT NULL) + -> ENGINE = MyISAM CHARACTER SET latin1; + ERROR 1118 (42000): Row size too large. The maximum row size for the + used table type, not counting BLOBs, is 65535. You have to change some + columns to TEXT or BLOBs + + Reducing the column length to 65,533 or less permits the statement + to succeed. + + * Each table has an `.frm' file that contains the table definition. + The server uses the following expression to check some of the + table information stored in the file against an upper limit of + 64KB: + + if (info_length+(ulong) create_fields.elements*FCOMP+288+ + n_length+int_length+com_length > 65535L || int_count > 255) + + The portion of the information stored in the `.frm' file that is + checked against the expression cannot grow beyond the 64KB limit, + so if the table definition reaches this size, no more columns can + be added. + + The relevant factors in the expression are: + + * `info_length' is space needed for `screens.' This is related + to MySQL's Unireg heritage. + + * `create_fields.elements' is the number of columns. + + * `FCOMP' is 17. + + * `n_length' is the total length of all column names, including + one byte per name as a separator. + + * `int_length' is related to the list of values for *Note + `ENUM': enum. and *Note `SET': set. columns. + + * `com_length' is the total length of column and table comments. + + Thus, using long column names can reduce the maximum number of + columns, as can the inclusion of *Note `ENUM': enum. or *Note + `SET': set. columns, or use of column, index, or table comments. + + * Individual storage engines might impose additional restrictions + that limit table column count. Examples: + + * *Note `InnoDB': innodb-storage-engine. permits up to 1000 + columns. + + * *Note `InnoDB': innodb-storage-engine. restricts row size to + something less than half a database page (approximately 8000 + bytes), not including *Note `VARBINARY': binary-varbinary, + *Note `VARCHAR': char, *Note `BLOB': blob, or *Note `TEXT': + blob. columns. + + * Different *Note `InnoDB': innodb-storage-engine. storage + formats (`COMPRESSED', `REDUNDANT') use different amounts of + page header and trailer data, which affects the amount of + storage available for rows. + + +File: manual.info, Node: limits-windows, Prev: column-count-limit, Up: limits + +E.10.5 Windows Platform Limitations +----------------------------------- + +The following limitations apply to use of MySQL on the Windows platform: + + * *Process memory* + + On Windows 32-bit platforms, it is not possible by default to use + more than 2GB of RAM within a single process, including MySQL. + This is because the physical address limit on Windows 32-bit is + 4GB and the default setting within Windows is to split the virtual + address space between kernel (2GB) and user/applications (2GB). + + Some versions of Windows have a boot time setting to enable larger + applications by reducing the kernel application. Alternatively, + to use more than 2GB, use a 64-bit version of Windows. + + * *File system aliases* + + When using `MyISAM' tables, you cannot use aliases within Windows + link to the data files on another volume and then link back to the + main MySQL `datadir' location. + + This facility is often used to move the data and index files to a + RAID or other fast solution, while retaining the main `.frm' files + in the default data directory configured with the `datadir' option. + + * *Limited number of ports* + + Windows systems have about 4,000 ports available for client + connections, and after a connection on a port closes, it takes two + to four minutes before the port can be reused. In situations where + clients connect to and disconnect from the server at a high rate, + it is possible for all available ports to be used up before closed + ports become available again. If this happens, the MySQL server + appears to be unresponsive even though it is running. Note that + ports may be used by other applications running on the machine as + well, in which case the number of ports available to MySQL is + lower. + + For more information about this problem, see + `http://support.microsoft.com/default.aspx?scid=kb;en-us;196271'. + + * *`DATA DIRECTORY' and `INDEX DIRECTORY'* + + The `DATA DIRECTORY' and `INDEX DIRECTORY' options for *Note + `CREATE TABLE': create-table. are ignored on Windows, because + MySQL does not support Windows symbolic links. These options also + are ignored on systems that have a nonfunctional `realpath()' call. + + * **Note `DROP DATABASE': drop-database.* + + You cannot drop a database that is in use by another session. + + * *Case-insensitive names* + + File names are not case sensitive on Windows, so MySQL database + and table names are also not case sensitive on Windows. The only + restriction is that database and table names must be specified + using the same case throughout a given statement. See *Note + identifier-case-sensitivity::. + + * *Directory and file names* + + On Windows, MySQL Server supports only directory and file names + that are compatible with the current ANSI code pages. For + example, the following Japanese directory name will not work in + the Western locale (code page 1252): + + datadir="C:/ç§ãŸã¡ã®ãƒ—ロジェクトã®ãƒ‡ãƒ¼ã‚¿" + + The same limitation applies to directory and file names referred + to in SQL statements, such as the data file path name in *Note + `LOAD DATA INFILE': load-data. + + * *The ``\'' path name separator character* + + Path name components in Windows are separated by the ``\'' + character, which is also the escape character in MySQL. If you are + using *Note `LOAD DATA INFILE': load-data. or *Note `SELECT ... + INTO OUTFILE': select-into, use Unix-style file names with ``/'' + characters: + + mysql> LOAD DATA INFILE 'C:/tmp/skr.txt' INTO TABLE skr; + mysql> SELECT * INTO OUTFILE 'C:/tmp/skr.txt' FROM skr; + + Alternatively, you must double the ``\'' character: + + mysql> LOAD DATA INFILE 'C:\\tmp\\skr.txt' INTO TABLE skr; + mysql> SELECT * INTO OUTFILE 'C:\\tmp\\skr.txt' FROM skr; + + * *Problems with pipes* + + Pipes do not work reliably from the Windows command-line prompt. + If the pipe includes the character `^Z' / `CHAR(24)', Windows + thinks that it has encountered end-of-file and aborts the program. + + This is mainly a problem when you try to apply a binary log as + follows: + + C:\> mysqlbinlog BINARY_LOG_FILE | mysql --user=root + + If you have a problem applying the log and suspect that it is + because of a `^Z' / `CHAR(24)' character, you can use the + following workaround: + + C:\> mysqlbinlog BINARY_LOG_FILE --result-file=/tmp/bin.sql + C:\> mysql --user=root --execute "source /tmp/bin.sql" + + The latter command also can be used to reliably read in any SQL + file that may contain binary data. + + +File: manual.info, Node: glossary, Prev: restrictions, Up: Top + +Appendix F MySQL Glossary +************************* + +These terms are commonly used in information about the MySQL database +server. This glossary originated as a reference for terminology about +the InnoDB storage engine, and the majority of definitions are +InnoDB-related. + +*A* + + 1. ACID + + An acronym standing for atomicity, consistency, isolation, and + durability. These properties are all desirable in a database + system, and are all closely tied to the notion of a *transaction*. + The transactional features of InnoDB adhere to the ACID principles. + + Transactions are atomic units of work that can be committed or + rolled back. When a transaction makes multiple changes to the + database, either all the changes succeed when the transaction is + committed, or all the changes are undone when the transaction is + rolled back. + + The database remains in a consistent state at all times - after + each commit or rollback, and while transactions are in progress. + + Transactions are protected (isolated) from each other while they + are in progress; they cannot interfere with each other or see each + other's uncommitted data. This isolation is achieved through the + notion of *locking*. (Expert users can adjust the *isolation + level*, trading off less protection in favor of increased + performance, when they can be sure that the transactions really do + not interfere with each other.) + + The results of transactions are durable: once a commit operation + succeeds, the changes made by that transaction are safe from power + failures, system crashes, race conditions, or other potential + dangers that many non-database applications are vulnerable to. + Durability typically involves writing to disk storage, with a + certain amount of redundancy to protect against power failures or + software crashes during write operations. (In InnoDB, the + *doublewrite buffer* assists with durability.) + + See also *Note glos_commit::. See also *Note + glos_doublewrite_buffer::. See also *Note glos_isolation_level::. + See also *Note glos_locking::. See also *Note glos_rollback::. + See also *Note glos_transaction::. + + 2. adaptive flushing + + An algorithm, first introduced in the *InnoDB Plugin*, that + smooths out the I/O overhead introduced by *checkpoints*. Instead + of *flushing* all modified pages from the *buffer pool* to the + *data files* at once, the InnoDB storage engine periodically + flushes small sets of modified pages. The adaptive flushing + algorithm extends this process by estimating the optimal rate to + perform these periodic flushes, based on the rate of flushing and + how fast *redo* information is generated. + + See also *Note glos_buffer_pool::. See also *Note + glos_checkpoint::. See also *Note glos_data_files::. See also + *Note glos_flush::. See also *Note glos_plugin::. See also *Note + glos_redo_log::. + + 3. adaptive hash index + + If a table fits almost entirely in main memory, the fastest way to + perform queries on it is to use *hash indexes*. InnoDB has a + mechanism that monitors index searches made to the indexes defined + for a table. If InnoDB notices that queries could benefit from a + hash index, it builds one automatically. This feature is + controlled by the `innodb_adaptive_hash_index' configuration + option. + + The hash index is always built based on an existing *B-tree* index + on the table. InnoDB can build a hash index on a prefix of any + length of the key defined for the B-tree, depending on the pattern + of searches that InnoDB observes for the B-tree index. A hash + index can be partial; the whole B-tree index does not need to be + cached in the buffer pool. InnoDB builds hash indexes on demand + for those pages of the index that are often accessed. + + In a sense, the adaptive hash index configures InnoDB at runtime + to take advantage of ample main memory, coming closer to the + architecture of main-memory databases. + + See also *Note glos_b_tree::. See also *Note glos_hash_index::. + + 4. AIO + + Acronym for *asynchronous I/O*. You might see this acronym in + InnoDB messages or keywords. + + See also *Note glos_asynchronous_io::. + + 5. Antelope + + The code name for the original InnoDB *file format*. It supports + the *redundant* and *compact* row formats, but not the newer + *dynamic* and *compressed* row formats available in the + *Barracuda* file format. + + If your application could benefit from InnoDB table *compression*, + or uses BLOBs or large text columns that could benefit from the + dynamic row format, you might switch some tables to Barracuda + format. You select the file format to use by setting the + `innodb_file_format' option before creating the table. + + See also *Note glos_barracuda::. See also *Note + glos_compact_row_format::. See also *Note + glos_compressed_row_format::. See also *Note + glos_dynamic_row_format::. See also *Note glos_file_format::. + See also *Note glos_innodb_file_format::. See also *Note + glos_redundant_row_format::. + + 6. application programming interface (API) + + A set of functions or procedures. An API provides a stable set of + names and types for functions, procedures, parameters, and return + values. + + 7. apply + + When a backup produced by the *MySQL Enterprise Backup* product + does not include the most recent changes that occurred while the + backup was underway, the process of updating the backup files to + include those changes is known as the *apply* step. It is + specified by the `apply-log' option of the `mysqlbackup' command. + + Before the changes are applied, we refer to the files as a *raw + backup*. After the changes are applied, we refer to the files as a + *prepared backup*. The changes are recorded in the + *ibbackup_logfile* file; once the apply step is finished, this + file is no longer necessary. + + See also *Note glos_hot_backup::. See also *Note + glos_ibbackup_logfile::. See also *Note + glos_mysql_enterprise_backup::. See also *Note + glos_prepared_backup::. See also *Note glos_raw_backup::. + + 8. .ARM file + + Archive storage engine metadata. Files with this extension are + always included in backups produced by the `mysqlbackup' command + of the *MySQL Enterprise Backup* product. + + See also *Note glos_arz_file::. See also *Note + glos_mysql_enterprise_backup::. See also *Note + glos_mysqlbackup_command::. + + 9. .ARZ file + + Archive storage engine data. Files with this extension are always + included in backups produced by the `mysqlbackup' command of the + *MySQL Enterprise Backup* product. + + See also *Note glos_arm_file::. See also *Note + glos_mysql_enterprise_backup::. See also *Note + glos_mysqlbackup_command::. + + 10. asynchronous I/O + + A type of I/O operation that allows other processing to proceed + before the I/O is completed. Also known as *non-blocking I/O* and + abbreviated as *AIO*. InnoDB uses this type of I/O for certain + operations that can run in parallel without affecting the + reliability of the database, such as reading pages into the *buffer + pool* that have not actually been requested, but might be needed + soon. + + Historically, InnoDB has used asynchronous I/O on Windows systems + only. Starting with the InnoDB Plugin 1.1, InnoDB uses + asynchronous I/O on Linux systems. This change introduces a + dependency on `libaio'. On other Unix-like systems, InnoDB uses + synchronous I/O only. + + See also *Note glos_buffer_pool::. See also *Note + glos_non_blocking_io::. + + 11. atomic + + In the SQL context, *transactions* are units of work that either + succeed entirely (when *committed*) or have no effect at all (when + *rolled back*). The indivisible (`atomic') property of + transactions is the `A' in the acronym *ACID*. + + See also *Note glos_acid::. See also *Note glos_commit::. See + also *Note glos_rollback::. See also *Note glos_transaction::. + + 12. atomic instruction + + Special instructions provided by the CPU, to ensure that critical + low-level operations cannot be interrupted. + + 13. auto-increment + + A property of a table column (specified by the `AUTO_INCREMENT' + keyword) that automatically adds an ascending sequence of values + in the column. InnoDB supports auto-increment only for *primary + key* columns. + + It saves work for the developer, not to have to produce new unique + values when inserting new rows. It provides useful information for + the query optimizer, because the column is known to be not null + and with unique values. The values from such a column can be used + as lookup keys in various contexts, and because they are + auto-generated there is no reason to ever change them; for this + reason, primary key columns are often specified as + auto-incrementing. + + Auto-increment columns can be problematic with statement-based + replication, because replaying the statements on a slave might not + produce the same set of column values as on the master, due to + timing issues. When you have an auto-incrementing primary key, you + can use statement-based replication only with the setting + `innodb_autoinc_lock_mode=1'. If you have + `innodb_autoinc_lock_mode=2', which allows higher concurrency for + insert operations, use *row-based replication* rather than + *statement-based replication*. The setting + `innodb_autoinc_lock_mode=0' is the previous (traditional) default + setting and should not be used except for compatibility purposes. + + See also *Note glos_auto_increment_locking::. See also *Note + glos_innodb_autoinc_lock_mode::. See also *Note + glos_primary_key::. See also *Note glos_row_based_replication::. + See also *Note glos_statement_based_replication::. + + 14. auto-increment locking + + The convenience of an *auto-increment* primary key involves some + tradeoff with concurrency. In the simplest case, if one + transaction is inserting values into the table, any other + transactions must wait to do their own inserts into that table, so + that rows inserted by the first transaction receive consecutive + primary key values. InnoDB includes optimizations, and the + `innodb_autoinc_lock_mode' option, so that you can choose how to + trade off between predictable sequences of auto-increment values + and maximum *concurrency* for insert operations. + + See also *Note glos_auto_increment::. See also *Note + glos_concurrency::. See also *Note + glos_innodb_autoinc_lock_mode::. + + 15. autocommit + + A setting that causes a *commit* operation after each *SQL* + statement. This mode is not recommended for working with InnoDB + tables with *transactions* that span several statements. It can + help performance for read-only queries + (http://dev.mysql.com/doc/refman/5.6/en/innodb-performance-ro-txn.html) + on InnoDB tables, where it minimizes overhead from *locking* and + generation of *undo* data, especially in MySQL 5.6.4 and up. It is + also appropriate for working with MyISAM tables, where + transactions are not applicable. + + See also *Note glos_commit::. See also *Note glos_locking::. See + also *Note glos_sql::. See also *Note glos_transaction::. See + also *Note glos_undo::. + +*B* + + 1. B-tree + + A tree data structure that is popular for use in database indexes. + The structure is kept sorted at all times, enabling fast lookup + for exact matches (equals operator) and ranges (for example, + greater than, less than, and `BETWEEN' operators). This type of + index is available for most storage engines, such as InnoDB and + MyISAM. + + Because B-tree nodes can have many children, a B-tree is not the + same as a binary tree, which is limited to 2 children per node. + + Contrast with *hash index*, which is only available in the MEMORY + storage engine. The MEMORY storage engine can also use B-tree + indexes, and you should choose B-tree indexes for MEMORY tables if + some queries use range operators. + + See also *Note glos_hash_index::. + + 2. backticks + + Identifiers within MySQL SQL statements must be quoted using the + backtick character (``') if they contain special characters or + reserved words. For example, to refer to a table named `FOO#BAR' + or a column named `SELECT', you would specify the identifiers as + ``FOO#BAR`' and ``SELECT`'. Since the backticks provide an extra + level of safety, they are used extensively in program-generated + SQL statements, where the identifier names might not be known in + advance. + + Many other database systems use double quotation marks (`"') + around such special names. For portability, you can enable + `ANSI_QUOTES' mode in MySQL and use double quotation marks instead + of backticks to qualify identifier names. + + See also *Note glos_sql::. + + 3. backup + + The process of copying some or all table data and metadata from a + MySQL instance, for safekeeping. Can also refer to the set of + copied files. This is a crucial task for DBAs. The reverse of this + process is the *restore* operation. + + With MySQL, *physical backups* are performed by the *MySQL + Enterprise Backup* product, and *logical backups* are performed by + the `mysqldump' command. These techniques have different + characteristics in terms of size and representation of the backup + data, and speed (especially speed of the restore operation). + + Backups are further classified as *hot*, *warm*, or *cold* + depending on how much they interfere with normal database + operation. (Hot backups have the least interference, cold backups + the most.) + + See also *Note glos_cold_backup::. See also *Note + glos_hot_backup::. See also *Note glos_logical_backup::. See + also *Note glos_mysql_enterprise_backup::. See also *Note + glos_mysqldump::. See also *Note glos_physical_backup::. See + also *Note glos_warm_backup::. + + 4. Barracuda + + The code name for an InnoDB *file format* that supports + compression for table data. This file format was first introduced + in the InnoDB Plugin. It supports the *compressed* row format that + enables InnoDB table compression, and the *dynamic* row format that + improves the storage layout for BLOB and large text columns. You + can select it through the `innodb_file_format' option. + + Because the InnoDB *system tablespace* is stored in the original + *Antelope* file format, to use the Barracuda file format you must + also enable the *file-per-table* setting, which puts newly created + tables in their own tablespaces separate from the system + tablespace. + + The *MySQL Enterprise Backup* product version 3.5 and above + supports backing up tablespaces that use the Barracuda file format. + + See also *Note glos_antelope::. See also *Note + glos_compact_row_format::. See also *Note + glos_compressed_row_format::. See also *Note + glos_dynamic_row_format::. See also *Note glos_file_format::. + See also *Note glos_file_per_table::. See also *Note + glos_innodb_file_format::. See also *Note + glos_mysql_enterprise_backup::. See also *Note glos_row_format::. + See also *Note glos_system_tablespace::. + + 5. beta + + An early stage in the life of a software product, when it is + available only for evaluation, typically without a definite + release number or a number less than 1. InnoDB does not use the + beta designation, preferring an *early adopter* phase that can + extend over several point releases, leading to a *GA* release. + + See also *Note glos_early_adopter::. See also *Note glos_ga::. + + 6. binary log + + A file containing a record of all statements that attempt to + change table data. These statements can be replayed to bring slave + servers up to date in a *replication* scenario, or to bring a + database up to date after restoring table data from a backup. The + binary logging feature can be turned on and off, although Oracle + recommends always enabling it if you use replication or perform + backups. + + You can examine the contents of the binary log, or replay those + statements during replication or recovery, by using the *Note + `mysqlbinlog': mysqlbinlog. command. For full information about + the binary log, see *Note binary-log::. For MySQL configuration + options related to the binary log, see *Note + replication-options-binary-log::. + + For the *MySQL Enterprise Backup* product, the file name of the + binary log and the current position within the file are important + details. To record this information for the master server when + taking a backup in a replication context, you can specify the + `--slave-info' option. + + Prior to MySQL 5.0, a similar capability was available, known as + the update log. In MySQL 5.0 and higher, the binary log replaces + the update log. + + See also *Note glos_binlog::. See also *Note + glos_mysql_enterprise_backup::. See also *Note glos_replication::. + + 7. binlog + + An informal name for the *binary log* file. For example, you might + see this abbreviation used in e-mail messages or forum discussions. + + See also *Note glos_binary_log::. + + 8. blind query expansion + + A special mode of *full-text search* enabled by the `WITH QUERY + EXPANSION' clause. It performs the search twice, where the search + phrase for the second search is the original search phrase + concatenated with the few most highly relevant documents from the + first search. This technique is mainly applicable for short search + phrases, perhaps only a single word. It can uncover relevant + matches where the precise search term does not occur in the + document. + + See also *Note glos_full_text_search::. + + 9. bottleneck + + A portion of a system that is constrained in size or capacity, + that has the effect of limiting overall throughput. For example, a + memory area might be smaller than necessary; access to a single + required resource might prevent multiple CPU cores from running + simultaneously; or waiting for disk I/O to complete might prevent + the CPU from running at full capacity. Removing bottlenecks tends + to improve *concurrency*. For example, the ability to have + multiple InnoDB *buffer pool* instances reduces contention when + multiple sessions read from and write to the buffer pool + simultaneously. + + See also *Note glos_buffer_pool::. See also *Note + glos_concurrency::. + + 10. bounce + + A *shutdown* operation immediately followed by a restart. Ideally + with a relatively short *warmup* period so that performance and + throughput quickly return to a high level. + + See also *Note glos_shutdown::. + + 11. buddy allocator + + A mechanism for managing different-sized *pages* in the InnoDB + *buffer pool*. + + See also *Note glos_buffer_pool::. See also *Note glos_page::. + See also *Note glos_page_size::. + + 12. buffer + + A memory or disk area used for temporary storage. Data is buffered + in memory so that it can be written to disk efficiently, with a + few large I/O operations rather than many small ones. Data is + buffered on disk for greater reliability, so that it can be + recovered even when a crash or other failure occurs at the worst + possible time. The main types of buffers used by InnoDB are the + *buffer pool*, the *doublewrite buffer*, and the *insert buffer*. + + See also *Note glos_buffer_pool::. See also *Note + glos_doublewrite_buffer::. See also *Note glos_insert_buffer::. + + 13. buffer pool + + The memory area that holds cached InnoDB data for both tables and + indexes. For efficiency of high-volume read operations, the buffer + pool is divided into *pages* that can potentially hold multiple + rows. For efficiency of cache management, the buffer pool is + implemented as a linked list of pages; data that is rarely used is + aged out of the cache, using a variation of the *LRU* algorithm. + On systems with large memory, you can improve concurrency by + dividing the buffer pool into multiple *buffer pool instances*. + + Several `InnoDB' status variables, `information_schema' tables, and + `performance_schema' tables help to monitor the internal workings + of the buffer pool. Starting in MySQL 5.6, you can also dump and + restore the contents of the buffer pool, either automatically + during shutdown and restart, or manually at any time, through a + set of `InnoDB' configuration variables such as + `innodb_buffer_pool_dump_at_shutdown' + (http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_buffer_pool_dump_at_shutdown) + and `innodb_buffer_pool_load_at_startup' + (http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_buffer_pool_load_at_startup). + + See also *Note glos_buffer_pool_instance::. See also *Note + glos_lru::. See also *Note glos_page::. See also *Note + glos_warm_up::. + + 14. buffer pool instance + + Any of the multiple regions into which the *buffer pool* can be + divided, controlled by the `innodb_buffer_pool_instances' + configuration option. The total memory size specified by the + `innodb_buffer_pool_size' is divided among all the instances. + Typically, multiple buffer pool instances are appropriate for + systems devoting multiple gigabytes to the InnoDB buffer pool, + with each instance 1 gigabyte or larger. On systems loading or + looking up large amounts of data in the buffer pool from many + concurrent sessions, having multiple instances reduces the + contention for exclusive access to the data structures that manage + the buffer pool. + + See also *Note glos_buffer_pool::. + + 15. built-in + + The built-in InnoDB storage engine within MySQL is the original + form of distribution for the storage engine. Contrast with the + *InnoDB Plugin*. Starting with MySQL 5.5, the InnoDB Plugin is + merged back into the MySQL code base as the built-in InnoDB + storage engine (known as InnoDB 1.1). + + This distinction is important mainly in MySQL 5.1, where a feature + or bug fix might apply to the InnoDB Plugin but not the built-in + InnoDB, or vice versa. + + See also *Note glos_innodb::. See also *Note glos_plugin::. + + 16. business rules + + The relationships and sequences of actions that form the basis of + business software, used to run a commercial company. Sometimes + these rules are dictated by law, other times by company policy. + Careful planning ensures that the relationships encoded and + enforced by the database, and the actions performed through + application logic, accurately reflect the real policies of the + company and can handle real-life situations. + + For example, an employee leaving a company might trigger a + sequence of actions from the human resources department. The human + resources database might also need the flexibility to represent + data about a person who has been hired, but not yet started work. + Closing an account at an online service might result in data being + removed from a database, or the data might be moved or flagged so + that it could be recovered if the account is re-opened. A company + might establish policies regarding salary maximums, minimums, and + adjustments, in addition to basic sanity checks such as the salary + not being a negative number. A retail database might not allow a + purchase with the same serial number to be returned more than + once, or might not allow credit card purchases above a certain + value, while a database used to detect fraud might allow these + kinds of things. + + See also *Note glos_relational::. + +*C* + + 1. cache + + The general term for any memory area that stores copies of data + for frequent or high-speed retrieval. In InnoDB, the primary kind + of cache structure is the *buffer pool*. + + See also *Note glos_buffer::. See also *Note glos_buffer_pool::. + + 2. cardinality + + The number of different values in a table *column*. When queries + refer to columns that have an associated *index*, the cardinality + of each column influences which access method is most efficient. + For example, for a column with a *unique constraint*, the number + of different values is equal to the number of rows in the table. + If a table has a million rows but only 10 different values for a + particular column, each value occurs (on average) 100,000 times. A + query such as `SELECT c1 FROM t1 WHERE c1 = 50;' thus might return + 1 row or a huge number of rows, and the database server might + process the query differently depending on the cardinality of `c1'. + + If the values in a column have a very uneven distribution, the + cardinality might not be a good way to determine the best query + plan. For example, `SELECT c1 FROM t1 WHERE c1 = x;' might return + 1 row when `x=50' and a million rows when `x=30'. In such a case, + you might need to use *index hints* to pass along advice about + which lookup method is more efficient for a particular query. + + Cardinality can also apply to the number of distinct values + present in multiple columns, as in a *composite index*. + + For InnoDB, the process of estimating cardinality for indexes is + influenced by the `innodb_stats_sample_pages' and the + `innodb_stats_on_metadata' configuration options. The estimated + values are more stable when the *persistent statistics* feature is + enabled (in MySQL 5.6 and higher). + + See also *Note glos_column::. See also *Note + glos_composite_index::. See also *Note glos_index::. See also + *Note glos_index_hint::. See also *Note + glos_persistent_statistics::. See also *Note glos_random_dive::. + See also *Note glos_selectivity::. See also *Note + glos_unique_constraint::. + + 3. change buffer + + A special data structure that records changes to *pages* in + *secondary indexes*. These values could result from SQL *Note + `INSERT': insert, *Note `UPDATE': update, or *Note `DELETE': + delete. statements (*DML*). The set of features involving the + change buffer is known collectively as *change buffering*, + consisting of *insert buffering*, *delete buffering*, and *purge + buffering*. + + Changes are only recorded in the change buffer when the relevant + page from the secondary index is not in the *buffer pool*. When + the relevant index page is brought into the buffer pool while + associated changes are still in the change buffer, the changes for + that page are applied in the buffer pool (*merged*) using the data + from the change buffer. Periodically, the *purge* operation that + runs during times when the system is mostly idle, or during a slow + shutdown, writes the new index pages to disk. The purge operation + can write the disk blocks for a series of index values more + efficiently than if each value were written to disk immediately. + + Physically, the change buffer is part of the *system tablespace*, + so that the index changes remain buffered across database + restarts. The changes are only applied (*merged*) when the pages + are brought into the buffer pool due to some other read operation. + + The amount and kind of data stored in the change buffer are + governed by the `innodb_change_buffer_max_size' + (http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_change_buffer_max_size) + and `innodb_change_buffering' configuration options. To see + information about the current data in the change buffer, issue the + *Note `SHOW ENGINE INNODB STATUS': show-engine. command. + + Formerly known as the *insert buffer*. + + See also *Note glos_buffer_pool::. See also *Note + glos_change_buffering::. See also *Note glos_delete_buffering::. + See also *Note glos_dml::. See also *Note glos_insert_buffer::. + See also *Note glos_insert_buffering::. See also *Note + glos_merge::. See also *Note glos_page::. See also *Note + glos_purge::. See also *Note glos_purge_buffering::. See also + *Note glos_secondary_index::. See also *Note + glos_system_tablespace::. + + 4. change buffering + + The general term for the features involving the *change buffer*, + consisting of *insert buffering*, *delete buffering*, and *purge + buffering*. Index changes resulting from SQL statements, which + could normally involve random I/O operations, are held back and + performed periodically by a background *thread*. This sequence of + operations can write the disk blocks for a series of index values + more efficiently than if each value were written to disk + immediately. + + See also *Note glos_change_buffer::. See also *Note + glos_delete_buffering::. See also *Note glos_insert_buffering::. + See also *Note glos_purge_buffering::. + + 5. checkpoint + + As changes are made to data pages that are cached in the *buffer + pool*, those changes are written to the *data files* sometime + later, a process known as *flushing*. The checkpoint is a record + of the latest changes (represented by an *LSN* value) that have + been successfully written to the data files. + + See also *Note glos_buffer_pool::. See also *Note + glos_data_files::. See also *Note glos_flush::. See also *Note + glos_fuzzy_checkpointing::. See also *Note glos_lsn::. + + 6. checksum + + In `InnoDB', a validation mechanism to detect corruption when a + *page* in a *tablespace* is read from disk into the InnoDB *buffer + pool*. This feature is turned on and off by the + `innodb_checksums' configuration option. In MySQL 5.6, you can + enable a faster checksum algorithm by also specifying the + configuration option `innodb_checksum_algorithm=crc32'. + + The *Note `innochecksum': innochecksum. command helps to diagnose + corruption problems by testing the checksum values for a specified + *tablespace* file while the MySQL server is shut down. + + MySQL also uses checksums for replication purposes. For details, + see the configuration options `binlog_checksum' + (http://dev.mysql.com/doc/refman/5.6/en/replication-options-binary-log.html#sysvar_binlog_checksum), + `master_verify_checksum' + (http://dev.mysql.com/doc/refman/5.6/en/replication-options-binary-log.html#sysvar_master_verify_checksum), + and `slave_sql_verify_checksum' + (http://dev.mysql.com/doc/refman/5.6/en/replication-options-slave.html#sysvar_slave_sql_verify_checksum). + + See also *Note glos_buffer_pool::. See also *Note glos_page::. + See also *Note glos_tablespace::. + + 7. child table + + In a *foreign key* relationship, a child table is one whose rows + refer (or point) to rows in another table with an identical value + for a specific column. The corresponding row in the *parent table* + must exist before the row can be created in the child table. The + values in the child table can prevent delete or update operations + on the parent table, or can cause automatic deletion or updates in + the child table, based on the `ON CASCADE' option used when + creating the foreign key. + + See also *Note glos_foreign_key::. See also *Note + glos_parent_table::. + + 8. clean shutdown + + A *shutdown* that completes without errors and applies all changes + to InnoDB tables before finishing, as opposed to a crash or a *fast + shutdown*. Synonym for *slow shutdown*. + + See also *Note glos_fast_shutdown::. See also *Note + glos_shutdown::. See also *Note glos_slow_shutdown::. + + 9. client + + A type of program that sends requests to a server, and interprets + or processes the results. The client software might run only some + of the time (such as a mail or chat program), and might run + interactively (such as the `mysql' command processor). + + See also *Note glos_mysql::. See also *Note glos_server::. + + 10. clustered index + + The InnoDB term for a *primary key* index. InnoDB table storage is + organized based on the values of the primary key columns, to speed + up queries and sorts involving the primary key columns. For best + performance, choose the primary key columns carefully based on the + most performance-critical queries. Because modifying the columns of + the clustered index is an expensive operation, choose primary + columns that are rarely or never updated. + + In the Oracle Database product, this type of table is known as an + *index-organized table*. + + See also *Note glos_index::. See also *Note glos_primary_key::. + See also *Note glos_secondary_index::. + + 11. cold backup + + A *backup* taken while the database is shut down. For busy + applications and web sites, this might not be practical, and you + might prefer a *warm backup* or a *hot backup*. + + See also *Note glos_backup::. See also *Note glos_hot_backup::. + See also *Note glos_warm_backup::. + + 12. column + + A data item within a *row*, whose storage and semantics are + defined by a data type. Each *table* and *index* is largely + defined by the set of columns it contains. + + Each column has a *cardinality* value. A column can be the *primary + key* for its table, or part of the primary key. A column can be + subject to a *unique constraint*, a *NOT NULL constraint*, or + both. Values in different columns, even across different tables, + can be linked by a *foreign key* relationship. + + In discussions of MySQL internal operations, sometimes *field* is + used as a synonym, while row is the preferred term when discussing + *SQL*. + + See also *Note glos_cardinality::. See also *Note + glos_foreign_key::. See also *Note glos_index::. See also *Note + glos_primary_key::. See also *Note glos_row::. See also *Note + glos_sql::. See also *Note glos_table::. See also *Note + glos_unique_constraint::. + + 13. column index + + An *index* on a single column. + + See also *Note glos_composite_index::. See also *Note + glos_index::. + + 14. column prefix + + When an index is created with a length specification, such as + `CREATE INDEX idx ON t1 (c1(N))', only the first N characters of + the column value are stored in the index. Keeping the index + prefix small makes the index compact, and the memory and disk I/O + savings help performance. (Although making the index prefix too + small can hinder query optimization by making rows with different + values appear to the query optimizer to be duplicates.) + + For columns containing binary values or long text strings, where + sorting is not a major consideration and storing the entire value + in the index would waste space, the index automatically uses the + first N (typically 768) characters of the value to do lookups and + sorts. + + See also *Note glos_index::. + + 15. commit + + A *SQL* statement that ends a *transaction*, making permanent any + changes made by the transaction. It is the opposite of *rollback*, + which undoes any changes made in the transaction. + + InnoDB uses an *optimistic* mechanism for commits, so that changes + can be written to the data files before the commit actually + occurs. This technique makes the commit itself faster, with the + tradeoff that more work is required in case of a rollback. + + By default, MySQL uses the *autocommit* setting, which + automatically issues a commit following each SQL statement. + + See also *Note glos_autocommit::. See also *Note + glos_optimistic::. See also *Note glos_rollback::. See also + *Note glos_sql::. See also *Note glos_transaction::. + + 16. compact row format + + The default InnoDB *row format* since MySQL 5.0.3. Available for + tables that use the *Antelope* *file format*. It has a more + compact representation for nulls and variable-length fields than + the prior default (*redundant row format*). + + Because of the *B-tree* indexes that make row lookups so fast in + InnoDB, there is little if any performance benefit to keeping all + rows the same size. + + See also *Note glos_antelope::. See also *Note glos_file_format::. + See also *Note glos_redundant_row_format::. See also *Note + glos_row_format::. + + 17. composite index + + An *index* that includes multiple columns. + + See also *Note glos_index::. See also *Note glos_index_prefix::. + + 18. compressed backup + + A set of files produced by the *MySQL Enterprise Backup* product, + where each *tablespace* is compressed. The compressed files are + renamed with a `.ibz' file extension. + + Applying *compression* right at the start of the backup process + helps to avoid storage overhead during the compression process, + and to avoid network overhead when transferring the backup files + to another server. The process of *applying* the *binary log* + takes longer, and requires uncompressing the backup files. + + See also *Note glos_apply::. See also *Note glos_binary_log::. + See also *Note glos_compression::. See also *Note + glos_hot_backup::. See also *Note glos_mysql_enterprise_backup::. + See also *Note glos_tablespace::. + + 19. compressed row format + + A *row format* introduced in the InnoDB Plugin, available as part + of the *Barracuda* *file format*. Large fields are stored away + from the page that holds the rest of the row data, as in dynamic + row format. Both index pages and the large fields are compressed, + yielding memory and disk savings. Depending on the structure of + the data, the decrease in memory and disk usage might or might not + outweigh the performance overhead of uncompressing the data as it + is used. + + See also *Note glos_barracuda::. See also *Note + glos_dynamic_row_format::. See also *Note glos_file_format::. + See also *Note glos_row_format::. + + 20. compression + + A feature with wide-ranging benefits from using less disk space, + performing less I/O, and using less cache memory. InnoDB products + include more than one feature related to compression: table data + can be kept in a compressed format during database operation; data + can be compressed as part of a backup operation with the *MySQL + Enterprise Backup* product. + + When InnoDB table data is compressed, the compression applies to + the *table* itself, any associated *index* data, and the pages + loaded into the *buffer pool*. Compression does not apply to pages + in the *undo buffer*. + + The table compression feature requires using MySQL 5.5 or higher, + or the InnoDB Plugin in MySQL 5.1 or earlier, and creating the + table using the *Barracuda* file format and *compressed row + format*, with the *innodb_file_per_table* setting turned on. + + The compression feature of the *MySQL Enterprise Backup* product + makes a compressed copy of each tablespace, changing the extension + from `.ibd' to `.ibz'. Compressing the backup data allows you to + keep more backups on hand, and reduces the time to transfer + backups to a different server. The data is uncompressed during the + restore operation. When a compressed backup operation processes a + table that is already compressed, it skips the compression step + for that table, because compressing again would result in little + or no space savings. + + See also *Note glos_barracuda::. See also *Note + glos_buffer_pool::. See also *Note glos_compressed_row_format::. + See also *Note glos_hot_backup::. See also *Note glos_index::. + See also *Note glos_innodb_file_per_table::. See also *Note + glos_plugin::. See also *Note glos_table::. See also *Note + glos_undo_buffer::. + + 21. concatenated index See *Note glos_composite_index::. + + 22. concurrency + + The ability of multiple operations (in database terminology, + *transactions*) to run simultaneously, without interfering with + each other. Concurrency is also involved with performance, because + ideally the protection for multiple simultaneous transactions + works with a minimum of performance overhead, using efficient + mechanisms for *locking*. + + See also *Note glos_acid::. See also *Note glos_locking::. See + also *Note glos_transaction::. + + 23. configuration file + + The file that holds the *option* values used by MySQL at startup. + Traditionally, on Linux and UNIX this file is named `my.cnf', and + on Windows it is named `my.ini'. You can set a number of options + related to InnoDB under the `[mysqld]' section of the file. + + When you use the *MySQL Enterprise Backup* product, you typically + use two configuration files: one that specifies where the data + comes from and how it is structured (which could be the original + configuration file for your real server), and a stripped-down one + containing only a small set of options that specify where the + backup data goes and how it is structured. The configuration files + used with the *MySQL Enterprise Backup* product must contain + certain options that are typically left out of regular + configuration files, so you might need to add some options to your + existing configuration file for use with *MySQL Enterprise Backup*. + + See also *Note glos_my_cnf::. See also *Note glos_option_file::. + + 24. consistent read + + A read operation that uses snapshot information to present query + results based on a point in time, regardless of changes performed + by other transactions running at the same time. If queried data + has been changed by another transaction, the original data is + reconstructed based on the contents of the *undo log*. This + technique avoids some of the *locking* issues that can reduce + *concurrency* by forcing transactions to wait for other + transactions to finish. + + With the *repeatable read* isolation level, the snapshot is based + on the time when the first read operation is performed. With the + *read committed* isolation level, the snapshot is reset to the + time of each consistent read operation. + + Consistent read is the default mode in which InnoDB processes + `SELECT' statements in *READ COMMITTED* and *REPEATABLE READ* + isolation levels. Because a consistent read does not set any locks + on the tables it accesses, other sessions are free to modify those + tables while a consistent read is being performed on the table. + + For technical details about the applicable isolation levels, see + *Note innodb-consistent-read::. + + See also *Note glos_acid::. See also *Note glos_concurrency::. + See also *Note glos_isolation_level::. See also *Note + glos_locking::. See also *Note glos_mvcc::. See also *Note + glos_read_committed::. See also *Note glos_read_uncommitted::. + See also *Note glos_repeatable_read::. See also *Note + glos_serializable::. See also *Note glos_transaction::. See also + *Note glos_undo_log::. + + 25. constraint + + An automatic test that can block database changes to prevent data + from becoming inconsistent. (In computer science terms, a kind of + assertion related to an invariant condition.) Constraints are a + crucial component of the *ACID* philosophy, to maintain data + consistency. Constraints supported by MySQL include *foreign key + constraints* and *unique constraints*. + + See also *Note glos_acid::. See also *Note glos_foreign_key::. + See also *Note glos_relational::. See also *Note + glos_unique_constraint::. + + 26. counter + + A value that is incremented by a particular kind of `InnoDB' + operation. Useful for measuring how busy a server is, + troubleshooting the sources of performance issues, and testing + whether changes (for example, to configuration settings or indexes + used by queries) have the desired low-level effects. Different + kinds of counters are available through *performance_schema* + tables and *information_schema* tables, particularly + `information_schema.innodb_metrics'. + + See also *Note glos_information_schema::. See also *Note + glos_metrics_counter::. See also *Note glos_performance_schema::. + + 27. covering index + + An *index* that includes all the columns retrieved by a query. + Instead of using the index values as pointers to find the full + table rows, the query returns values from the index structure, + saving disk I/O. InnoDB can apply this optimization technique to + more indexes than MyISAM can, because InnoDB *secondary indexes* + also include the primary key columns. InnoDB cannot apply this + technique for queries against tables modified by a transactions, + until that transaction ends. + + Any *column index* or *composite index* could act as a covering + index, given the right query. Design your indexes and queries to + take advantage of this optimization technique wherever possible. + + See also *Note glos_column_index::. See also *Note + glos_composite_index::. See also *Note glos_index::. See also + *Note glos_secondary_index::. + + 28. crash recovery + + The cleanup activities that occur when InnoDB is started again + after a crash. Changes that were committed before the crash, but + not yet written into the tablespace files, are reconstructed from + the *doublewrite buffer*. When the database is shut down + normally, this type of activity is performed during shutdown by the + *purge* operation. + + During normal operation, committed data can be stored in the + insert buffer for a period of time before being written to the + tablespace files. There is always a tradeoff between keeping the + tablespace files up-to-date, which introduces performance overhead + during normal operation, and buffering the data, which can make + shutdown and crash recovery take longer. + + See also *Note glos_doublewrite_buffer::. See also *Note + glos_insert_buffer::. See also *Note glos_purge::. + + 29. CRUD + + Acronym for `create, read, update, delete', a common sequence of + operations in database applications. Often denotes a class of + applications with relatively simple database usage (basic *DDL*, + *DML* and *query* statements in *SQL*) that can be implemented + quickly in any language. + + See also *Note glos_ddl::. See also *Note glos_dml::. See also + *Note glos_query::. See also *Note glos_sql::. + + 30. cursor + + An internal data structure that is used to represent the result + set of a *query*, or other operation that performs a search using + an SQL `WHERE' clause. It works like an iterator in other + high-level languages, producing each value from the result set as + requested. + + Although usually SQL handles the processing of cursors for you, + you might delve into the inner workings when dealing with + performance-critical code. + + See also *Note glos_query::. + +*D* + + 1. data definition language See *Note glos_ddl::. + + 2. data dictionary + + A set of tables, controlled by the InnoDB storage engine, that + keeps track of InnoDB-related objects such as tables, indexes, and + table columns. These tables are part of the InnoDB *system + tablespace*. + + Because the *MySQL Enterprise Backup* product always backs up the + system tablespace, all backups include the contents of the data + dictionary. + + See also *Note glos_hot_backup::. See also *Note + glos_mysql_enterprise_backup::. See also *Note + glos_system_tablespace::. + + 3. data directory + + The directory under which each MySQL *instance* keeps the *data + files* for InnoDB and the directories representing individual + databases. Controlled by the `datadir' configuration option. + + See also *Note glos_data_files::. See also *Note glos_instance::. + + 4. data files + + The files that physically contain the InnoDB table and index data. + There can be a one-to-many relationship between data files and + tables, as in the case of the *system tablespace*, which can hold + multiple InnoDB tables as well as the *data dictionary*. There + can also be a one-to-one relationship between data files and + tables, as when the *file-per-table* setting is enabled, causing + each newly created table to be stored in a separate *tablespace*. + + See also *Note glos_data_dictionary::. See also *Note + glos_file_per_table::. See also *Note glos_system_tablespace::. + See also *Note glos_tablespace::. + + 5. data manipulation language See *Note glos_dml::. + + 6. data warehouse + + A database system or application that primarily runs large + *queries*. The read-only or read-mostly data might be organized in + *denormalized* form for query efficiency. Contrast with *OLTP*. + + See also *Note glos_denormalized::. See also *Note glos_oltp::. + See also *Note glos_query::. + + 7. database + + Within the MySQL *data directory*, each database is represented by + a separate directory. The InnoDB *system tablespace*, which can + hold table data from multiple databases within a MySQL *instance*, + is kept in its *data files* that reside outside the individual + database directories. When *file-per-table* mode is enabled, the + *.ibd files* representing individual InnoDB tables are stored + inside the database directories. + + For long-time MySQL users, a database is a familiar notion. Users + coming from an Oracle Database background will find that the MySQL + meaning of a database is closer to what Oracle Database calls a + *schema*. + + See also *Note glos_data_files::. See also *Note + glos_file_per_table::. See also *Note glos_ibd_file::. See also + *Note glos_instance::. See also *Note glos_schema::. See also + *Note glos_system_tablespace::. + + 8. DDL + + Data definition language, a set of *SQL* statements for + manipulating the database itself rather than individual table + rows. Includes all forms of the `CREATE', `ALTER', and `DROP' + statements. Also includes the `TRUNCATE' statement, because it + works differently than a `DELETE FROM TABLE_NAME' statement, even + though the ultimate effect is similar. + + DDL statements automatically *commit* the current *transaction*; + they cannot be *rolled back*. + + The InnoDB-related aspects of DDL include speed improvements for + *Note `CREATE INDEX': create-index. and *Note `DROP INDEX': + drop-index. statements, and the way the *file-per-table* setting + affects the behavior of the *Note `TRUNCATE TABLE': + truncate-table. statement. + + See also *Note glos_commit::. See also *Note + glos_file_per_table::. See also *Note glos_rollback::. See also + *Note glos_sql::. See also *Note glos_transaction::. + + 9. deadlock + + A situation where different *transactions* are unable to proceed, + because each holds a *lock* that the other needs. Because both + transactions are waiting for a resource to become available, + neither will ever release the locks it holds. + + A deadlock can occur when the transactions lock rows in multiple + tables (through statements such as `UPDATE' or `SELECT ... FOR + UPDATE'), but in the opposite order. A deadlock can also occur + when such statements lock ranges of index records and *gaps*, with + each transaction acquiring some locks but not others due to a + timing issue. + + To reduce the possibility of deadlocks, use transactions rather + than `LOCK TABLE' statements; keep transactions that insert or + update data small enough that they do not stay open for long + periods of time; when different transactions update multiple + tables or large ranges of rows, use the same order of operations + (such as `SELECT ... FOR UPDATE') in each transaction; create + indexes on the columns used in `SELECT ... FOR UPDATE' and `UPDATE + ... WHERE' statements. The possibility of deadlocks is not + affected by the *isolation level*, because the isolation level + changes the behavior of read operations, while deadlocks occur + because of write operations. + + If a deadlock does occur, InnoDB detects the condition and *rolls + back* one of the transactions (the *victim*). Thus, even if your + application logic is perfectly correct, you must still handle the + case where a transaction must be retried. To see the last + deadlock in an InnoDB user transaction, use the command `SHOW + ENGINE INNODB STATUS'. If frequent deadlocks highlight a problem + with transaction structure or application error handling, run with + the `innodb_print_all_deadlocks' + (http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_print_all_deadlocks) + setting enabled to print information about all deadlocks to the + `mysqld' error log. + + See also *Note glos_concurrency::. See also *Note glos_gap::. + See also *Note glos_isolation_level::. See also *Note glos_lock::. + See also *Note glos_locking::. See also *Note glos_rollback::. + See also *Note glos_transaction::. See also *Note glos_victim::. + + 10. deadlock detection + + A mechanism that automatically detects when a *deadlock* occurs, + and automatically *rolls back* one of the *transactions* involved + (the *victim*). + + See also *Note glos_deadlock::. See also *Note glos_rollback::. + See also *Note glos_transaction::. See also *Note glos_victim::. + + 11. delete + + When InnoDB processes a `DELETE' statement, the rows are + immediately marked for deletion and no longer are returned by + queries. The storage is reclaimed sometime later, during the + periodic garbage collection known as the *purge* operation, + performed by a separate thread. For removing large quantities of + data, related operations with their own performance + characteristics are *truncate* and *drop*. + + See also *Note glos_drop::. See also *Note glos_purge::. See + also *Note glos_truncate::. + + 12. delete buffering + + The technique of storing index changes due to `DELETE' operations + in the *insert buffer* rather than writing them immediately, so + that the physical writes can be performed to minimize random I/O. + (Because delete operations are a two-step process, this operation + buffers the write that normally marks an index record for + deletion.) It is one of the types of *change buffering*; the + others are *insert buffering* and *purge buffering*. + + See also *Note glos_change_buffering::. See also *Note + glos_insert_buffer::. See also *Note glos_insert_buffering::. + See also *Note glos_purge_buffering::. + + 13. denormalized + + A data storage strategy that duplicates data across different + tables, rather than linking the tables with *foreign keys* and + *join* queries. Typically used in *data warehouse* applications, + where the data is not updated after loading. In such applications, + query performance is more important than making it simple to + maintain consistent data during updates. Contrast with + *normalized*. + + See also *Note glos_normalized::. + + 14. descending index + + A type of index available with some database systems, where index + storage is optimized to process `ORDER BY COLUMN DESC' clauses. + Currently, although MySQL allows the `DESC' keyword in the *Note + `CREATE TABLE': create-table. statement, it does not use any + special storage layout for the resulting index. + + See also *Note glos_index::. + + 15. dirty page + + A *page* in the InnoDB *buffer pool* that has been updated in + memory, where the changes are not yet written (*flushed*) to the + data files. + + See also *Note glos_buffer_pool::. See also *Note glos_flush::. + See also *Note glos_neighbor_page::. See also *Note glos_page::. + See also *Note glos_write_combining::. + + 16. dirty read + + An operation that retrieves unreliable data, data that was updated + by another transaction but not yet *committed*. It is only possible + with the *isolation level* known as *read uncommitted*. + + This kind of operation does not adhere to the *ACID* principle of + database design. It is considered very risky, because the data + could be *rolled back*, or updated further before being committed; + then, the transaction doing the dirty read would be using data + that was never confirmed as accurate. + + Its polar opposite is *consistent read*, where InnoDB goes to + great lengths to ensure that a transaction does not read + information updated by another transaction, even if the other + transaction commits in the meantime. + + See also *Note glos_acid::. See also *Note glos_commit::. See + also *Note glos_consistent_read::. See also *Note + glos_isolation_level::. See also *Note glos_read_committed::. + See also *Note glos_read_uncommitted::. See also *Note + glos_rollback::. + + 17. disk-based + + A kind of database that primarily organizes data on disk storage + (hard drives or equivalent). Data is brought back and forth + between disk and memory to be operated upon. It is the opposite of + an *in-memory database*. Although InnoDB is disk-based, it also + contains features such as *the buffer* pool, multiple buffer pool + instances, and the *adaptive hash index* that allow certain kinds + of workloads to work primarily from memory. + + See also *Note glos_adaptive_hash_index::. See also *Note + glos_buffer_pool::. See also *Note glos_in_memory_database::. + + 18. disk-bound + + A type of *workload* where the primary *bottleneck* is CPU + operations in memory. Typically involves read-intensive operations + where the results can all be cached in the *buffer pool*. + + See also *Note glos_bottleneck::. See also *Note + glos_buffer_pool::. See also *Note glos_cpu_bound::. See also + *Note glos_workload::. + + 19. disk-bound + + A type of *workload* where the primary *bottleneck* is disk I/O. + Typically involves frequent writes to disk, or random reads of + more data than can fit into the *buffer pool*. + + See also *Note glos_bottleneck::. See also *Note + glos_buffer_pool::. See also *Note glos_cpu_bound::. See also + *Note glos_workload::. + + 20. DML + + Data manipulation language, a set of *SQL* statements for + performing insert, update, and delete operations. The `SELECT' + statement is sometimes considered as a DML statement, because the + `SELECT ... FOR UPDATE' form is subject to the same considerations + for *locking* as `INSERT', `UPDATE', and `DELETE'. + + DML statements for an InnoDB table operate in the context of a + *transaction*, so their effects can be *committed* or *rolled + back* as a single unit. + + See also *Note glos_commit::. See also *Note glos_locking::. See + also *Note glos_rollback::. See also *Note glos_sql::. See also + *Note glos_transaction::. + + 21. document id + + In the InnoDB *full-text search* feature, a special column in the + table containing the *FULLTEXT index*, to uniquely identify the + document associated with each *ilist* value. Its name is + `FTS_DOC_ID' (uppercase required). The column itself must be of + `BIGINT UNSIGNED NOT NULL' type, with a unique index named + `FTS_DOC_ID_INDEX'. Preferably, you define this column when + creating the table. If InnoDB must add the column to the table + while creating a `FULLTEXT' index, the indexing operation is + considerably more expensive. + + See also *Note glos_full_text_search::. See also *Note + glos_fulltext_index::. See also *Note glos_ilist::. + + 22. doublewrite buffer + + InnoDB uses a novel file flush technique called doublewrite. + Before writing *pages* to the *data files*, InnoDB first writes + them to a contiguous area called the doublewrite buffer. Only + after the write and the flush to the doublewrite buffer have + completed, does InnoDB write the pages to their proper positions + in the data file. If the operating system crashes in the middle of + a page write, InnoDB can later find a good copy of the page from + the doublewrite buffer during *crash recovery*. + + Although data is always written twice, the doublewrite buffer does + not require twice as much I/O overhead or twice as many I/O + operations. Data is written to the buffer itself as a large + sequential chunk, with a single `fsync()' call to the operating + system. + + To turn off the doublewrite buffer, specify the option + `innodb_doublewrite=0'. + + See also *Note glos_crash_recovery::. See also *Note + glos_data_files::. See also *Note glos_page::. See also *Note + glos_purge::. + + 23. drop + + A kind of *DDL* operation that removes a schema object, through a + statement such as *Note `DROP TABLE': drop-table. or *Note `DROP + INDEX': drop-index. From an InnoDB perspective, the performance + considerations of such operations involve the time that the *data + dictionary* is locked to ensure that interrelated objects are all + updated, the time that is and the time to update memory structures + such as the *buffer pool*. For a *table*, the drop operation has + somewhat different characteristics than a *truncate* operation + (*Note `TRUNCATE TABLE': truncate-table. statement). + + See also *Note glos_buffer_pool::. See also *Note + glos_data_dictionary::. See also *Note glos_ddl::. See also + *Note glos_table::. See also *Note glos_truncate::. + + 24. dynamic row format + + A row format introduced in the InnoDB Plugin, available as part of + the *Barracuda* *file format*. Because `TEXT' and `BLOB' fields are + stored outside of the rest of the page that holds the row data, it + is very efficient for rows that include large objects. Since the + large fields are typically not accessed to evaluate query + conditions, they are not brought into the *buffer pool* as often, + resulting in fewer I/O operations and better utilization of cache + memory. + + See also *Note glos_barracuda::. See also *Note + glos_buffer_pool::. See also *Note glos_file_format::. See also + *Note glos_row_format::. + +*E* + + 1. early adopter + + A stage similar to beta, when a software product is typically + evaluated for performance, functionality, and compatibility in a + non-mission-critical setting. InnoDB uses the *early adopter* + designation rather than *beta*, through a succession of point + releases leading up to a *GA* release. + + See also *Note glos_beta::. See also *Note glos_ga::. + + 2. error log + + A type of *log* showing information about MySQL startup and + critical runtime errors and crash information. For details, see + *Note error-log::. + + See also *Note glos_log::. + + 3. eviction + + The process of removing an item from a cache or other temporary + storage area, such as the InnoDB *buffer pool*. Often, but not + always, uses the *LRU* algorithm to determine which item to + remove. When a *dirty page* is evicted, its contents are *flushed* + to disk, and any *dirty neighbor* pages might be flushed also. + + See also *Note glos_buffer_pool::. See also *Note + glos_dirty_page::. See also *Note glos_flush::. See also *Note + glos_lru::. + + 4. exclusive lock + + A kind of *lock* that prevents any other *transaction* from + locking the same row. Depending on the transaction *isolation + level*, this kind of lock might block other transactions from + writing to the same row, or might also block other transactions + from reading the same row. The default InnoDB isolation level, + *REPEATABLE READ*, enables higher *concurrency* by allowing + transactions to read rows that have exclusive locks, a technique + known as *consistent read*. + + See also *Note glos_concurrency::. See also *Note + glos_consistent_read::. See also *Note glos_isolation_level::. + See also *Note glos_lock::. See also *Note glos_repeatable_read::. + See also *Note glos_shared_lock::. See also *Note + glos_transaction::. + + 5. extent + + A group of *pages* within a *tablespace* totaling 1 megabyte. + With the default *page size* of 16KB, an extent contains 64 pages. + In MySQL 5.6, the page size can also be 4KB or 8KB, in which case + an extent contains more pages, still adding up to 1MB. + + InnoDB features such as *segments*, *read-ahead* requests and the + *doublewrite buffer* use I/O operations that read, write, + allocate, or free data one extent at a time. + + See also *Note glos_doublewrite_buffer::. See also *Note + glos_neighbor_page::. See also *Note glos_page::. See also *Note + glos_page_size::. See also *Note glos_read_ahead::. See also + *Note glos_segment::. See also *Note glos_tablespace::. + +*F* + + 1. fast index creation + + A capability first introduced in the InnoDB Plugin, now part of + the MySQL server in 5.5 and higher, that speeds up creation of + InnoDB *secondary indexes* by avoiding the need to completely + rewrite the associated table. The speedup applies to dropping + secondary indexes also. + + Because index maintenance can add performance overhead to many + data transfer operations, consider doing operations such as `ALTER + TABLE ... ENGINE=INNODB' or `INSERT INTO ... SELECT * FROM ...' + without any secondary indexes in place, and creating the indexes + afterward. + + See also *Note glos_index::. See also *Note + glos_secondary_index::. + + 2. fast shutdown + + The default *shutdown* procedure for InnoDB, based on the + configuration setting `innodb_fast_shutdown=1'. To save time, + certain *flush* operations are skipped. This type of shutdown is + safe during normal usage, because the flush operations are + performed during the next startup, using the same mechanism as in + *crash recovery*. In cases where the database is being shut down + for an upgrade or downgrade, do a *slow shutdown* instead to + ensure that all relevant changes are applied to the *data files* + during the shutdown. + + See also *Note glos_crash_recovery::. See also *Note + glos_data_files::. See also *Note glos_flush::. See also *Note + glos_shutdown::. See also *Note glos_slow_shutdown::. + + 3. file format + + The format used by InnoDB for each table, typically with the + *file-per-table* setting enabled so that each table is stored in a + separate *`.ibd' file*. Currently, the file formats available in + InnoDB are known as *Antelope* and *Barracuda*. Each file format + supports one or more *row formats*. The row formats available for + Barracuda tables, *COMPRESSED* and *DYNAMIC*, enable important new + storage features for InnoDB tables. + + See also *Note glos_antelope::. See also *Note glos_barracuda::. + See also *Note glos_file_per_table::. See also *Note + glos_ibd_file::. See also *Note glos_ibdata_file::. See also + *Note glos_row_format::. + + 4. file-per-table + + A general name for the setting controlled by the + `innodb_file_per_table' option. For each table created while this + setting is in effect, the data is stored in a separate *.ibd file* + rather than in the *system tablespace*. When table data is stored + in a separate file, you have more flexibility to choose nondefault + *file formats* and *row formats*, which are required for features + such as data *compression*. The `TRUNCATE TABLE' operation is also + much faster, and the reclaimed space can be used by the operating + system rather than remaining reserved for InnoDB. + + The *MySQL Enterprise Backup* product is more flexible for tables + that are in their own files. For example, tables can be excluded + from a backup, but only if they are in separate files. Thus, this + setting is suitable for tables that are backed up less frequently + or on a different schedule. + + See also *Note glos_compressed_row_format::. See also *Note + glos_compression::. See also *Note glos_file_format::. See also + *Note glos_ibdata_file::. See also *Note + glos_innodb_file_per_table::. See also *Note glos_row_format::. + See also *Note glos_system_tablespace::. + + 5. fill factor + + In an InnoDB *index*, the proportion of a *page* that is taken up + by index data before the page is split. The unused space when + index data is first divided between pages allows for rows to be + updated with longer string values without requiring expensive + index maintenance operations. If the fill factor is too low, the + index consumes more space than needed, causing extra I/O overhead + when reading the index. If the fill factor is too high, any update + that increases the length of column values can cause extra I/O + overhead for index maintenance. + + See also *Note glos_index::. See also *Note glos_page::. + + 6. fixed row format + + This row format is used by the MyISAM storage engine, not by + InnoDB. If you create an InnoDB table with the option + `row_format=fixed', InnoDB translates this option to use the + *compact row format* instead, although the `fixed' value might + still show up in output such as `SHOW TABLE STATUS' reports. + + See also *Note glos_compact_row_format::. See also *Note + glos_row_format::. + + 7. flush + + To write changes to the database files, that had been buffered in + a memory area or a temporary disk storage area. The InnoDB storage + structures that are periodically flushed include the *redo log*, + the *undo log*, and the *buffer pool*. + + Flushing can happen because a memory area becomes full and the + system needs to free some space, because a *commit* operation + means the changes from a transaction can be finalized, or because a + *slow shutdown* operation means that all outstanding work should + be finalized. When it is not critical to flush all the buffered + data at once, `InnoDB' can use a technique called *fuzzy + checkpointing* to flush small batches of pages to spread out the + I/O overhead. + + See also *Note glos_buffer_pool::. See also *Note glos_commit::. + See also *Note glos_fuzzy_checkpointing::. See also *Note + glos_neighbor_page::. See also *Note glos_redo_log::. See also + *Note glos_slow_shutdown::. See also *Note glos_undo_log::. + + 8. flush list + + An internal InnoDB data structure that tracks *pages* in the + *buffer pool* that have been changed and need to be written back + out to disk. This data structure is updated frequently by InnoDB's + internal *mini-transactions*, and so is protected by its own + *mutex* to allow concurrent access to the buffer pool. + + See also *Note glos_buffer_pool::. See also *Note glos_lru::. + See also *Note glos_mini_transaction::. See also *Note + glos_mutex::. See also *Note glos_page::. See also *Note + glos_page_cleaner::. + + 9. foreign key + + A type of pointer relationship, between rows in separate InnoDB + tables. The foreign key relationship is defined on one column in + both the *parent table* and the *child table*. + + In addition to enabling fast lookup of related information, + foreign keys help to enforce *referential integrity*, by + preventing any of these pointers from becoming invalid as data is + inserted, updated, and deleted. This enforcement mechanism is a + type of *constraint*. A row that points to another table cannot be + inserted if the associated foreign key value does not exist in the + other table. If a row is deleted or its foreign key value changed, + and rows in another table point to that foreign key value, the + foreign key can be set up to prevent the deletion, cause the + corresponding column values in the other table to become *null*, + or automatically delete the corresponding rows in the other table. + + One of the stages in designing a *normalized* database is to + identify data that is duplicated, separate that data into a new + table, and set up a foreign key relationship so that the multiple + tables can be queried like a single table, using a *join* + operation. + + See also *Note glos_child_table::. See also *Note + glos_foreign_key_constraint::. See also *Note glos_join::. See + also *Note glos_normalized::. See also *Note glos_null::. See + also *Note glos_parent_table::. See also *Note + glos_referential_integrity::. See also *Note glos_relational::. + + 10. foreign key constraint + + The type of *constraint* that maintains database consistency + through a *foreign key* relationship. Unlike other kinds of + constraints that prevent data from being inserted or updated, + foreign key constraints can also cause data in *child rows* to be + deleted, changed to different values, or set to *null*, based on + the `ON CASCADE' option specified when creating the foreign key. + + See also *Note glos_child_table::. See also *Note + glos_constraint::. See also *Note glos_foreign_key::. See also + *Note glos_null::. + + 11. .frm file + + The file containing the metadata, such as the table definition, of + a MySQL table. + + For backups, you must always keep the full set of `.frm' files + along with the backup data, to be able to restore tables that are + altered or dropped after the backup. Files with this extension are + always included in backups produced by the *mysqlbackup* command + of the *MySQL Enterprise Backup* product. If you use the *ibbackup + * command instead, you must copy the `.frm' files yourself. + + Although each InnoDB table has a `.frm' file, InnoDB maintains its + own table metadata in the *system tablespace*; the `.frm' files + are not needed for InnoDB to operate on InnoDB tables. + + These files are backed up by the *MySQL Enterprise Backup* + product. These files must not be modified by an `ALTER TABLE' + operation while the backup is taking place, which is why backups + that include non-InnoDB tables perform a `FLUSH TABLES WITH READ + LOCK' operation to freeze such activity while backing up the + `.frm' files. Restoring a backup can result in `.frm' files being + created, changed, or removed to match the state of the database at + the time of the backup. + + See also *Note glos_ibbackup_command::. See also *Note + glos_mysql_enterprise_backup::. See also *Note + glos_mysqlbackup_command::. See also *Note + glos_system_tablespace::. + + 12. FTS + + Acronym for *full-text search*. + + See also *Note glos_full_text_search::. + + 13. full backup + + A *backup* that includes all the *tables* in each MySQL + *database*, and all the databases in a MySQL *instance*. Contrast + with *partial backup*. + + See also *Note glos_backup::. See also *Note glos_database::. + See also *Note glos_instance::. See also *Note + glos_partial_backup::. See also *Note glos_table::. + + 14. full table scan + + An operation that requires reading the entire contents of a table, + rather than just selected portions using an index. Typically + performed either with small lookup tables, or in data warehousing + situations with large tables where all available data is + aggregated and analyzed. How frequently these operations occur, + and the sizes of the tables relative to available memory, have + implications for the algorithms used in query optimization and + managing the buffer pool. + + The purpose of *indexes* is to allow lookups for specific values + or ranges of values within a large table, thus avoiding full table + scans when practical. + + See also *Note glos_buffer_pool::. See also *Note glos_index::. + See also *Note glos_lru::. + + 15. full-text search + + The MySQL feature for finding words, phrases, Boolean combinations + of words, and so on within table data, in a faster, more + convenient, and more flexible way than using the SQL `LIKE' + operator or writing your own application-level search algorithm. + It uses the SQL function `MATCH()' and *FULLTEXT indexes*. + + See also *Note glos_fulltext_index::. + + 16. FULLTEXT index + + The special kind of *index* that holds the *search index* in the + MySQL *full-text search* mechanism. Originally, only available for + `MyISAM' tables. Starting in MySQL 5.6.4, it is also available for + *InnoDB* tables. + + See also *Note glos_full_text_search::. See also *Note + glos_index::. See also *Note glos_innodb::. See also *Note + glos_search_index::. + + 17. fuzzy checkpointing + + A technique that *flushes* small batches of *dirty pages* from the + *buffer pool*, rather than flushing all dirty pages at once which + would disrupt database processing. + + See also *Note glos_buffer_pool::. See also *Note + glos_dirty_page::. See also *Note glos_flush::. + +*G* + + 1. GA + + `Generally available', the stage when a software product leaves + beta and is available for sale, official support, and production + use. + + See also *Note glos_beta::. See also *Note glos_early_adopter::. + + 2. gap + + A place in an InnoDB *index* data structure where new values could + be inserted. When you lock a set of rows with a statement such as + `SELECT ... FOR UPDATE', InnoDB can create locks that apply to the + gaps as well as the actual values in the index. For example, if you + select all values greater than 10 for update, a gap lock prevents + another transaction from inserting a new value that is greater + than 10. The *supremum record* and *infimum record* represent the + gaps containing all values greater than or less than all the + current index values. + + See also *Note glos_concurrency::. See also *Note glos_gap_lock::. + See also *Note glos_index::. See also *Note glos_infimum_record::. + See also *Note glos_isolation_level::. See also *Note + glos_supremum_record::. + + 3. gap lock + + A *lock* on a *gap* between index records, or a lock on the gap + before the first or after the last index record. For example, + `SELECT c1 FOR UPDATE FROM t WHERE c1 BETWEEN 10 and 20;' prevents + other transactions from inserting a value of 15 into the column + `t.c1', whether or not there was already any such value in the + column, because the gaps between all existing values in the range + are locked. Contrast with *record lock* and *next-key lock*. + + Gap locks are part of the tradeoff between performance and + *concurrency*, and are used in some transaction *isolation levels* + and not others. + + See also *Note glos_gap::. See also *Note glos_infimum_record::. + See also *Note glos_lock::. See also *Note glos_next_key_lock::. + See also *Note glos_record_lock::. See also *Note + glos_supremum_record::. + + 4. general log See *Note glos_general_query_log::. + + 5. general query log + + A type of *log* used for diagnosis and troubleshooting of SQL + statements processed by the MySQL server. Can be stored in a file + or in a database table. You must enable this feature to use it. + Records a broader range of queries than the *slow query log*. + Unlike the *binary log*, which is used for replication, the + general query log contains *Note `SELECT': select. statements and + does not maintain strict ordering. For more information, see *Note + query-log::. + + See also *Note glos_binary_log::. See also *Note + glos_general_query_log::. See also *Note glos_log::. + + 6. global_transaction + + A type of *transaction* involved in *XA* operations. It consists + of several actions that are transactional in themselves, but that + all must either complete successfully as a group, or all be rolled + back as a group. In essence, this extends *ACID* properties `up a + level' so that multiple ACID transactions can be executed in + concert as components of a global operation that also has ACID + properties. For this type of distributed transaction, you must use + the *SERIALIZABLE* isolation level to achieve ACID properties. + + See also *Note glos_acid::. See also *Note glos_serializable::. + See also *Note glos_transaction::. See also *Note glos_xa::. + + 7. group commit + + An `InnoDB' optimization that performs some low-level I/O + operations (*log write*) once for a set of *commit* operations, + rather than flushing and syncing separately for each commit. + + When the binlog is enabled, you typically also set the + configuration option `sync_binlog=0', because group commit for the + binary log is only supported if it is set to 0. + + See also *Note glos_commit::. See also *Note glos_plugin::. See + also *Note glos_xa::. + +*H* + + 1. hash index + + A type of *index* intended for queries that use equality + operators, rather than range operators such as greater-than or + `BETWEEN'. It is available in only the `MEMORY' storage engine. + Although hash indexes are the default for `MEMORY' tables for + historic reasons, that storage engine also supports *B-tree* + indexes, which are often a better choice for general-purpose + queries. + + The InnoDB storage engine includes a variant of this index type, + the *adaptive hash index*, that is constructed automatically if + needed based on runtime conditions. + + See also *Note glos_adaptive_hash_index::. See also *Note + glos_b_tree::. See also *Note glos_index::. + + 2. HDD + + Acronym for `hard disk drive'. Refers to storage media using + spinning platters, usually when comparing and contrasting with + *SSD*. Its performance characteristics can influence the + throughput of a *disk-based* workload. + + See also *Note glos_disk_based::. See also *Note glos_ssd::. + + 3. heartbeat + + A periodic message that is sent to indicate that a system is + functioning properly. In a *replication* context, if the *master* + stops sending such messages, one of the *slaves* can take its + place. Similar techniques can be used between the servers in a + cluster environment, to confirm that all of them are operating + properly. + + See also *Note glos_replication::. + + 4. hot + + A condition where a row, table, or internal data structure is + accessed so frequently, requiring some form of locking or mutual + exclusion, that it results in a performance or scalability issue. + + Although `hot' typically indicates an undesirable condition, a + *hot backup* is the preferred type of backup. + + See also *Note glos_hot_backup::. + + 5. hot backup + + A backup taken while the database and is running and applications + are reading and writing to it. The backup involves more than + simply copying data files: it must include any data that was + inserted or updated while the backup was in process; it must + exclude any data that was deleted while the backup was in process; + and it must ignore any changes that were not committed. + + The Oracle product that performs hot backups, of InnoDB tables + especially but also tables from MyISAM and other storage engines, + is known as *MySQL Enterprise Backup*. + + The hot backup process consists of two stages. The initial copying + of the data files produces a *raw backup*. The *apply* step + incorporates any changes to the database that happened while the + backup was running. Applying the changes produces a *prepared* + backup; these files are ready to be restored whenever necessary. + + See also *Note glos_apply::. See also *Note + glos_mysql_enterprise_backup::. See also *Note + glos_prepared_backup::. See also *Note glos_raw_backup::. + +*I* + + 1. ib-file set + + The set of files managed by InnoDB within a MySQL database: the + *system tablespace*, any *file-per-table* tablespaces, and the + (typically 2) *redo log* files. Used sometimes in detailed + discussions of InnoDB file structures and formats, to avoid + ambiguity between the meanings of *database* between different + DBMS products, and the non-InnoDB files that may be part of a + MySQL database. + + See also *Note glos_database::. See also *Note + glos_file_per_table::. See also *Note glos_redo_log::. See also + *Note glos_system_tablespace::. + + 2. ib_logfile + + A set of files, typically named `ib_logfile0' and `ib_logfile1', + that form the *redo log*. Also sometimes referred to as the *log + group*. These files record statements that attempt to change data + in InnoDB tables. These statements are replayed automatically to + correct data written by incomplete transactions, on startup + following a crash. + + This data cannot be used for manual recovery; for that type of + operation, use the *binary log*. + + See also *Note glos_binary_log::. See also *Note glos_log_group::. + See also *Note glos_redo_log::. + + 3. ibbackup command + + The fundamental command-line tool of the *MySQL Enterprise Backup* + product. It performs a *hot backup* operation for InnoDB tables. + You use this command directly if all your data is in InnoDB + tables, if all the important data that you need to back up is in + InnoDB tables, or if you are running on the Windows platform. If + you also need to back up tables from MyISAM or other storage + engines, you use the *mysqlbackup command* instead (available on + UNIX and Linux systems only). + + See also *Note glos_hot_backup::. See also *Note + glos_mysql_enterprise_backup::. See also *Note + glos_mysqlbackup_command::. + + 4. ibbackup_logfile + + A supplemental backup file created by the *MySQL Enterprise + Backup* product during a *hot backup* operation. It contains + information about any data changes that occurred while the backup + was running. The initial backup files, including + `ibbackup_logfile', are known as a *raw backup*, because the + changes that occurred during the backup operation are not yet + incorporated. After you perform the *apply* step to the raw backup + files, the resulting files do include those final data changes, + and are known as a *prepared backup*. At this stage, the + `ibbackup_logfile' file is no longer necessary. + + See also *Note glos_apply::. See also *Note glos_hot_backup::. + See also *Note glos_mysql_enterprise_backup::. See also *Note + glos_prepared_backup::. See also *Note glos_raw_backup::. + + 5. .ibd file + + Each InnoDB *table* created using the *file-per-table* mode goes + into its own *tablespace* file, with a `.ibd' extension, inside the + *database* directory. This file contains the table data and any + *indexes* for the table. + + This extension does not apply to the *system tablespace*, which + consists of the *ibdata files*. + + When a `.ibd' file is included in a compressed backup by the + *MySQL Enterprise* Backup product, the compressed equivalent is a + `.ibz' file. + + See also *Note glos_database::. See also *Note + glos_file_per_table::. See also *Note glos_ibdata_file::. See + also *Note glos_ibz_file::. See also *Note glos_index::. See + also *Note glos_mysql_enterprise_backup::. See also *Note + glos_system_tablespace::. See also *Note glos_table::. See also + *Note glos_tablespace::. + + 6. ibdata file + + A set of files with names such as `ibdata1', `ibdata2', and so on, + that make up the InnoDB *system tablespace*. These files contain + metadata about InnoDB tables, and can contain some or all of the + table data also (depending on whether the *file-per-table* option + is in effect when each table is created). + + See also *Note glos_file_per_table::. See also *Note + glos_system_tablespace::. + + 7. .ibz file + + When the *MySQL Enterprise Backup* product performs a *compressed + backup*, it transforms each *tablespace* file that is created + using the *file-per-table* setting from a `.ibd' extension to a + `.ibz' extension. + + The compression applied during backup is distinct from the + *compressed row format* that keeps table data compressed during + normal operation. A compressed backup operation skips the + compression step for a tablespace that is already in compressed + row format, as compressing a second time would slow down the + backup but produce little or no space savings. + + See also *Note glos_compressed_backup::. See also *Note + glos_compressed_row_format::. See also *Note + glos_file_per_table::. See also *Note glos_ibd_file::. See also + *Note glos_mysql_enterprise_backup::. See also *Note + glos_tablespace::. + + 8. ilist + + Within an InnoDB *FULLTEXT index*, the data structure consisting + of a document ID and positional information for a token (that is, + a particular word). + + See also *Note glos_fulltext_index::. + + 9. implicit row lock + + A row lock that InnoDB acquires to ensure consistency, without you + specifically requesting it. + + See also *Note glos_row_lock::. + + 10. in-memory database + + A type of database system that maintains data in memory, to avoid + overhead due to disk I/O and translation between disk blocks and + memory areas. Some in-memory databases sacrifice durability (the + `D' in the *ACID* design philosophy) and are vulnerable to + hardware, power, and other types of failures, making them more + suitable for read-only operations. Other in-memory databases do + use durability mechanisms such as logging changes to disk or using + non-volatile memory. + + MySQL features that are address the same kinds of memory-intensive + processing include the `MEMORY' storage engine, the InnoDB *buffer + pool* and *adaptive hash index*, the MyISAM key cache, and the + MySQL *query cache*. + + See also *Note glos_acid::. See also *Note + glos_adaptive_hash_index::. See also *Note glos_buffer_pool::. + See also *Note glos_disk_based::. + + 11. incremental backup + + A type of *hot backup*, performed by the *MySQL Enterprise Backup* + product, that only saves data changed since some point in time. + Having a full backup and a succession of incremental backups lets + you reconstruct backup data over a long period, without the + storage overhead of keeping several full backups on hand. You can + restore the full backup and then apply each of the incremental + backups in succession, or you can keep the full backup up-to-date + by applying each incremental backup to it, then perform a single + restore operation. + + The granularity of changed data is at the *page* level. A page + might actually cover more than one row. Each changed page is + included in the backup. + + See also *Note glos_hot_backup::. See also *Note + glos_mysql_enterprise_backup::. See also *Note glos_page::. + + 12. index + + A data structure that provides a fast lookup capability for *rows* + of a *table*, typically by forming a tree structure (*B-tree)* + representing all the values of a particular *column* or set of + columns. + + InnoDB tables always have a *clustered index* representing the + *primary key*. They can also have one or more *secondary indexes* + defined on one or more columns. Depending on their structure, + secondary indexes can be classified as *partial*, *column*, or + *composite* indexes. + + Indexes are a crucial aspect of *query* performance. Database + architects design tables, queries, and indexes to allow fast + lookups for data needed by applications. The ideal database design + uses a *covering index* where practical; the query results are + computed entirely from the index, without reading the actual table + data. Each *foreign key* constraint also requires an index, to + efficiently check whether values exist in both the *parent* and + *child* tables. + + Although a B-tree index is the most common, a different kind of + data structure is used for *hash indexes*, as in the `MEMORY' + storage engine and the InnoDB *adaptive hash index*. + + See also *Note glos_adaptive_hash_index::. See also *Note + glos_b_tree::. See also *Note glos_child_table::. See also *Note + glos_clustered_index::. See also *Note glos_column_index::. See + also *Note glos_composite_index::. See also *Note + glos_covering_index::. See also *Note glos_foreign_key::. See + also *Note glos_hash_index::. See also *Note glos_parent_table::. + See also *Note glos_partial_index::. See also *Note + glos_primary_key::. See also *Note glos_query::. See also *Note + glos_row::. See also *Note glos_secondary_index::. See also + *Note glos_table::. + + 13. index cache + + A memory area that holds the token data for InnoDB *full-text + search*. It buffers the data to minimize disk I/O when data is + inserted or updated in columns that are part of a *FULLTEXT + index*. The token data is written to disk when the index cache + becomes full. Each InnoDB `FULLTEXT' index has its own separate + index cache, whose size is controlled by the configuration option + `innodb_ft_cache_size' + (http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_ft_cache_size). + + See also *Note glos_full_text_search::. See also *Note + glos_fulltext_index::. + + 14. index hint + + Extended SQL syntax for overriding the *indexes* recommended by the + optimizer. For example, the `FORCE INDEX', `USE INDEX', and `IGNORE + INDEX' clauses. Typically used when indexed columns have unevenly + distributed values, resulting in inaccurate *cardinality* + estimates. + + See also *Note glos_cardinality::. See also *Note glos_index::. + + 15. index prefix + + In an *index* that applies to multiple columns (known as a + *composite index*), the initial or leading columns of the index. + A query that references the first 1, 2, 3, and so on columns of a + composite index can use the index, even if the query does not + reference all the columns in the index. + + See also *Note glos_composite_index::. See also *Note + glos_index::. + + 16. infimum record + + A *pseudo-record* in an *index*, representing the *gap* below the + smallest value in that index. If a transaction has a statement + such as `SELECT ... FOR UPDATE ... WHERE col < 10;', and the + smallest value in the column is 5, it is a lock on the infimum + record that prevents other transactions from inserting even + smaller values such as 0, -10, and so on. + + See also *Note glos_gap::. See also *Note glos_index::. See also + *Note glos_pseudo_record::. See also *Note glos_supremum_record::. + + 17. INFORMATION_SCHEMA + + The name of the *database* that provides a query interface to the + MySQL *data dictionary*. (This name is defined by the ANSI SQL + standard.) To examine information (metadata) about the database, + you can query tables such as `INFORMATION_SCHEMA.TABLES' and + `INFORMATION_SCHEMA.COLUMNS', rather than using `SHOW' commands + that produce unstructured output. + + The information schema contains some tables that are specific to + *InnoDB*, such as *Note `INNODB_LOCKS': innodb-locks-table. and + *Note `INNODB_TRX': innodb-trx-table. You use these tables not to + see how the database is structured, but to get real-time + information about the workings of the InnoDB storage engine to + help with performance monitoring, tuning, and troubleshooting. In + particular, these tables provide information about the InnoDB + features related to *compression*, and *transactions* and their + associated *locks*. + + See also *Note glos_compression::. See also *Note + glos_data_dictionary::. See also *Note glos_database::. See also + *Note glos_innodb::. See also *Note glos_lock::. See also *Note + glos_transaction::. + + 18. innobackup command + + A *backup* command from the former *InnoDB Hot Backup* product. It + is superceded by the *`mysqlbackup'* command in the *MySQL + Enterprise Backup* product. + + See also *Note glos_backup::. See also *Note + glos_innodb_hot_backup::. See also *Note + glos_mysql_enterprise_backup::. See also *Note + glos_mysqlbackup_command::. + + 19. InnoDB + + A *storage engine* for MySQL that combines high performance with + *transactional* capability (that is, reliability, robustness, and + concurrent access - the *ACID* design philosophy). Tables created + under the InnoDB storage engine are ideally suited for *hot + backups*. In MySQL 5.5 and higher, InnoDB is the default storage + engine for new tables. + + See also *Note glos_acid::. See also *Note glos_hot_backup::. + See also *Note glos_storage_engine::. See also *Note + glos_transaction::. + + 20. InnoDB Hot Backup + + A licensed backup product, superceded in MySQL 5.1 and above by + *MySQL Enterprise Backup*. + + See also *Note glos_mysql_enterprise_backup::. + + 21. innodb_autoinc_lock_mode + + The option that controls the algorithm used for *auto-increment + locking*. When you have an auto-incrementing *primary key*, you + can use statement-based replication only with the setting + `innodb_autoinc_lock_mode=1'. This setting is known as + *consecutive* lock mode, because multi-row inserts within a + transaction receive consecutive auto-increment values. If you have + `innodb_autoinc_lock_mode=2', which allows higher concurrency for + insert operations, use row-based replication rather than + statement-based replication. This setting is known as *interleaved* + lock mode, because multiple multi-row insert statements running at + the same time can receive autoincrement values that are + interleaved. The setting `innodb_autoinc_lock_mode=0' is the + previous (traditional) default setting and should not be used + except for compatibility purposes. + + See also *Note glos_auto_increment_locking::. See also *Note + glos_primary_key::. + + 22. innodb_file_format + + A setting that determines the *file format* for all InnoDB + *tablespaces* created after you specify a value for this option. + To create tablespaces other than the *system tablespace*, you must + also use the *file-per-table* option. Currently, you can specify + the *Antelope* and *Barracuda* file formats. + + See also *Note glos_antelope::. See also *Note glos_barracuda::. + See also *Note glos_file_format::. See also *Note + glos_file_per_table::. See also *Note + glos_innodb_file_per_table::. See also *Note + glos_system_tablespace::. See also *Note glos_tablespace::. + + 23. innodb_file_per_table + + The option that turns on the *file-per-table* setting, which + stores each newly created InnoDB table and its associated index in + its own *.ibd file*, outside the *system tablespace*. + + This option affects the performance and storage considerations for + a number of SQL statements, such as *Note `DROP TABLE': + drop-table. and *Note `TRUNCATE TABLE': truncate-table. + + This option is needed to take full advantage of many other InnoDB + features, such as such as table *compression*, or backups of named + tables in *MySQL Enterprise Backup*. + + This option was once static, but can now be set using the *Note + `SET GLOBAL': set-statement. command. + + For reference information, see `innodb_file_per_table'. For usage + information, see *Note innodb-multiple-tablespaces::. + + See also *Note glos_compression::. See also *Note + glos_file_per_table::. See also *Note glos_ibd_file::. See also + *Note glos_mysql_enterprise_backup::. See also *Note + glos_system_tablespace::. + + 24. innodb_lock_wait_timeout + + A setting that sets the balance between *waiting* for shared + resources to become available, or giving up and handling the + error, retrying, or doing alternative processing in your + application. Rolls back any InnoDB transaction that waits more + than a specified time to acquire a *lock*. Especially useful if + *deadlocks* are caused by updates to multiple tables controlled by + different storage engines; such deadlocks are not *detected* + automatically. + + See also *Note glos_deadlock::. See also *Note + glos_deadlock_detection::. See also *Note glos_lock::. See also + *Note glos_wait::. + + 25. innodb_strict_mode + + The option that controls whether InnoDB operates in *strict mode*, + where conditions that are normally treated as warnings, cause + errors instead (and the underlying statements fail). + + This mode is the default setting in MySQL 5.5.5 and higher. + + See also *Note glos_strict_mode::. + + 26. insert + + One of the primary *DML* operations in *SQL*. The performance of + inserts is a key factor in *data warehouse* systems that load + millions of rows into tables, and *OLTP* systems where many + concurrent connections might insert rows into the same table, in + arbitrary order. If insert performance is important to you, you + should learn about *InnoDB* features such as the *insert buffer* + used in *change buffering*, and *auto-increment* columns. + + See also *Note glos_auto_increment::. See also *Note + glos_change_buffering::. See also *Note glos_data_warehouse::. + See also *Note glos_dml::. See also *Note glos_innodb::. See + also *Note glos_insert_buffer::. See also *Note glos_oltp::. See + also *Note glos_sql::. + + 27. insert buffer + + Former name for the *change buffer*. Now that *change buffering* + includes delete and update operations as well as inserts, `change + buffer' is the preferred term. + + See also *Note glos_change_buffer::. See also *Note + glos_change_buffering::. + + 28. insert buffering + + The technique of storing secondary index changes due to `INSERT' + operations in the *insert buffer* rather than writing them + immediately, so that the physical writes can be performed to + minimize random I/O. It is one of the types of *change buffering*; + the others are *delete buffering* and *purge buffering*. + + Insert buffering is not used if the secondary index is unique, + because the uniqueness of new values cannot be verified before the + new entries are written out. Other kinds of change buffering do + work for unique indexes. + + See also *Note glos_change_buffering::. See also *Note + glos_delete_buffering::. See also *Note glos_insert_buffer::. + See also *Note glos_purge_buffering::. + + 29. instance + + A single *mysqld* daemon managing a *data directory* representing + one or more *databases* with a set of *tables*. It is common in + development, testing, and some *replication* scenarios to have + multiple instances on the same *server* machine, each managing its + own data directory and listening on its own port or socket. With + one instance running a *disk-bound* workload, the server might + still have extra CPU and memory capacity to run additional + instances. + + See also *Note glos_data_directory::. See also *Note + glos_database::. See also *Note glos_disk_bound::. See also + *Note glos_mysqld::. See also *Note glos_replication::. See also + *Note glos_server::. + + 30. instrumentation + + Modifications at the source code level to collect performance data + for tuning and debugging. In MySQL, data collected by + instrumentation is exposed through a SQL interface using the + `INFORMATION_SCHEMA' and `PERFORMANCE_SCHEMA' databases. + + See also *Note glos_information_schema::. See also *Note + glos_performance_schema::. + + 31. intention exclusive lock See *Note glos_intention_lock::. + + 32. intention lock + + A kind of *lock* that applies to the table level, used to indicate + what kind of lock the transaction intends to acquire on rows in + the table. Different transactions can acquire different kinds of + intention locks on the same table, but the first transaction to + acquire an *intention exclusive* (IX) lock on a table prevents + other transactions from acquiring any S or X locks on the table. + Conversely, the first transaction to acquire an *intention shared* + (IS) lock on a table prevents other transactions from acquiring + any X locks on the table. The two-phase process allows the lock + requests to be resolved in order, without blocking locks and + corresponding operations that are compatible. For more details on + this locking mechanism, see *Note innodb-lock-modes::. + + See also *Note glos_lock::. See also *Note glos_lock_mode::. See + also *Note glos_locking::. + + 33. intention shared lock See *Note glos_intention_lock::. + + 34. inverted index + + A data structure optimized for document retrieval systems, used in + the implementation of InnoDB *full-text search*. The InnoDB + *FULLTEXT index*, implemented as an inverted index, records the + position of each word within a document, rather than the location + of a table row. A single column value (a document stored as a text + string) is represented by many entries in the inverted index. + + See also *Note glos_full_text_search::. See also *Note + glos_fulltext_index::. See also *Note glos_ilist::. + + 35. isolation level + + One of the foundations of database processing. Isolation is the + *I* in the acronym *ACID*; the isolation level is the setting that + fine-tunes the balance between performance and reliability, + consistency, and reproducibility of results when multiple + *transactions* are making changes and performing queries at the + same time. + + From highest amount of consistency and protection to the least, + the isolation levels supported by InnoDB are: *SERIALIZABLE*, + *REPEATABLE READ*, *READ COMMITTED*, and *READ UNCOMMITTED*. + + With the built-in InnoDB storage engine and the InnoDB Plugin, + many users can keep the default isolation level (*REPEATABLE + READ*) for all operations. Expert users might choose the *read + committed* level as they push the boundaries of scalability with + OLTP processing, or during data warehousing operations where minor + inconsistencies do not affect the aggregate results of large + amounts of data. The levels on the edges (*SERIALIZABLE* and + *READ UNCOMMITTED*) change the processing behavior to such an + extent that they are rarely used. + + See also *Note glos_acid::. See also *Note glos_read_committed::. + See also *Note glos_read_uncommitted::. See also *Note + glos_repeatable_read::. See also *Note glos_serializable::. See + also *Note glos_transaction::. + +*J* + + 1. join + + A *query* that retrieves data from more than one table, by + referencing columns in the tables that hold identical values. + Ideally, these columns are part of an InnoDB *foreign key* + relationship, which ensures *referential integrity* and that the + join columns are *indexed*. Often used to save space and improve + query performance by replacing repeated strings with numeric IDs, + in a *normalized* data design. + + See also *Note glos_foreign_key::. See also *Note glos_index::. + See also *Note glos_normalized::. See also *Note glos_query::. + See also *Note glos_referential_integrity::. + +*K* + + 1. key_block_size + + An option to specify the size of data pages within an InnoDB table + that uses *compressed row format*. The default is 8 kilobytes. + Lower values risk hitting internal limits that depend on the + combination of row size and compression percentage. + + See also *Note glos_compressed_row_format::. + +*L* + + 1. latch + + A lightweight structure used by InnoDB to implement a *lock* for + its own internal memory structures, typically held for a brief + time measured in milliseconds or microseconds. A general term that + includes both *mutexes* (for exclusive access) and *rw-locks* (for + shared access). Certain latches are the focus of performance tuning + within the InnoDB storage engine, such as the *data dictionary* + mutex. Statistics about latch use and contention are available + through the *Performance Schema* interface. + + See also *Note glos_data_dictionary::. See also *Note glos_lock::. + See also *Note glos_locking::. See also *Note glos_mutex::. See + also *Note glos_performance_schema::. See also *Note + glos_rw_lock::. + + 2. list + + The InnoDB *buffer pool* is represented as a list of memory + *pages*. The list is reordered as new pages are accessed and enter + the buffer pool, as pages within the buffer pool are accessed + again and are considered newer, and as pages that are not accessed + for a long time are *evicted* from the buffer pool. The buffer + pool is actually divided into *sublists*, and the replacement + policy is a variation of the familiar *LRU* technique. + + See also *Note glos_buffer_pool::. See also *Note glos_eviction::. + See also *Note glos_lru::. See also *Note glos_sublist::. + + 3. lock + + The high-level notion of an object that controls access to a + resource, such as a table, row, or internal data structure, as + part of a *locking* strategy. For intensive performance tuning, + you might delve into the actual structures that implement locks, + such as *mutexes* and *latches*. + + See also *Note glos_latch::. See also *Note glos_lock_mode::. + See also *Note glos_locking::. See also *Note glos_mutex::. + + 4. lock escalation + + An operation used in some database systems that converts many row + locks into a single table lock, saving memory space but reducing + concurrent access to the table. InnoDB uses a space-efficient + representation for row locks, so that lock escalation is not + needed. + + See also *Note glos_locking::. See also *Note glos_row_lock::. + See also *Note glos_table_lock::. + + 5. lock mode + + A shared (S) lock allows a transaction to read a row. Multiple + transactions can acquire an S lock on that same row at the same + time. + + An exclusive (X) lock allows a transaction to update or delete a + row. No other transaction can acquire any kind of lock on that + same row at the same time. + + *Intention locks* apply to the table level, and are used to + indicate what kind of lock the transaction intends to acquire on + rows in the table. Different transactions can acquire different + kinds of intention locks on the same table, but the first + transaction to acquire an intention exclusive (IX) lock on a table + prevents other transactions from acquiring any S or X locks on the + table. Conversely, the first transaction to acquire an intention + shared (IS) lock on a table prevents other transactions from + acquiring any X locks on the table. The two-phase process allows + the lock requests to be resolved in order, without blocking locks + and corresponding operations that are compatible. + + See also *Note glos_intention_lock::. See also *Note glos_lock::. + See also *Note glos_locking::. + + 6. locking + + The system of protecting a *transaction* from seeing or changing + data that is being queried or changed by other transactions. The + locking strategy must balance reliability and consistency of + database operations (the principles of the *ACID* philosophy) + against the performance needed for good *concurrency*. Fine-tuning + the locking strategy often involves choosing an *isolation level* + and ensuring all your database operations are safe and reliable + for that isolation level. + + See also *Note glos_acid::. See also *Note glos_concurrency::. + See also *Note glos_isolation_level::. See also *Note + glos_latch::. See also *Note glos_lock::. See also *Note + glos_mutex::. See also *Note glos_transaction::. + + 7. locking read + + A *Note `SELECT': select. statement that also performs a *locking* + operation on an `InnoDB' table. Either *Note `SELECT ... FOR + UPDATE': select. or `SELECT ... LOCK IN SHARE MODE'. It has the + potential to produce a *deadlock*, depending on the *isolation + level* of the transaction. + + See also *Note glos_deadlock::. See also *Note + glos_isolation_level::. See also *Note glos_locking::. + + 8. log + + In the InnoDB context, `log' or `log files' typically refers to + the *redo log* represented by the *ib_logfile** files. Another log + area, which is physically part of the *system tablespace*, is the + *undo log*. + + Other kinds of logs that are important in MySQL are the *error + log*, *binary log*, the *general query log*, and the *slow query + log*. + + See also *Note glos_binary_log::. See also *Note glos_error_log::. + See also *Note glos_general_query_log::. See also *Note + glos_ib_logfile::. See also *Note glos_redo_log::. See also + *Note glos_slow_query_log::. See also *Note + glos_system_tablespace::. See also *Note glos_undo_log::. + + 9. log buffer + + The memory area that holds data to be written to the *log files* + that make up the *redo log*. It is controlled by the + `innodb_log_buffer_size' configuration option. + + See also *Note glos_log_file::. See also *Note glos_redo_log::. + + 10. log file + + One of the `ib_logfileN' files that make up the *redo log*. Data + is written to these files from the *log buffer* memory area. + + See also *Note glos_ib_logfile::. See also *Note + glos_log_buffer::. See also *Note glos_redo_log::. + + 11. log group + + The set of files that make up the *redo log*, typically named + `ib_logfile0' and `ib_logfile1'. (For that reason, sometimes + referred to collectively as *ib_logfile*.) + + See also *Note glos_ib_logfile::. See also *Note glos_redo_log::. + + 12. logical + + A type of operation that involves high-level, abstract aspects + such as tables, queries, indexes, and other SQL concepts. + Typically, logical aspects are important to make database + administration and application development convenient and usable. + Contrast with *physical*. + + See also *Note glos_logical_backup::. See also *Note + glos_physical::. + + 13. logical backup + + A *backup* that reproduces table structure and data, without + copying the actual data files. For example, the *`mysqldump'* + command produces a logical backup, because its output contains + statements such as `CREATE TABLE' and `INSERT' that can re-create + the data. Contrast with *physical backup*. A logical backup offers + flexibility (for example, you could edit table definitions or + insert statements before restoring), but can take substantially + longer to *restore* than a physical backup. + + See also *Note glos_backup::. See also *Note glos_mysqldump::. + See also *Note glos_physical_backup::. See also *Note + glos_restore::. + + 14. loose_ + + In MySQL 5.1, a prefix added to InnoDB configuration options when + installing the InnoDB *Plugin* after server startup, so any new + configuration options not recognized by the current level of MySQL + do not cause a startup failure. MySQL processes configuration + options that start with this prefix, but gives a warning rather + than a failure if the part after the prefix is not a recognized + option. + + See also *Note glos_plugin::. + + 15. LRU + + An acronym for `least recently used', a common method for managing + storage areas. The items that have not been used recently are + *evicted* when space is needed to cache newer items. InnoDB uses + the LRU mechanism by default to manage the *pages* within the + *buffer pool*, but makes exceptions in cases where a page might be + read only a single time, such as during a *full table scan*. This + variation of the LRU algorithm is called the *midpoint insertion + strategy*. The ways in which the buffer pool management differs + from the traditional LRU algorithm is fine-tuned by the options + `innodb_old_blocks_pct', `innodb_old_blocks_time', and the new + MySQL 5.6 options `innodb_lru_scan_depth' + (http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_lru_scan_depth) + and `innodb_flush_neighbors' + (http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_flush_neighbors). + + See also *Note glos_buffer_pool::. See also *Note glos_eviction::. + See also *Note glos_full_table_scan::. See also *Note + glos_midpoint_insertion_strategy::. + + 16. LSN + + Acronym for `log sequence number'. This arbitrary, ever-increasing + value represents a point in time corresponding to operations + recorded in the *redo log*. (This point in time is regardless of + *transaction* boundaries; it can fall in the middle of one or more + transactions.) It is used internally by InnoDB during crash + recovery and for managing the buffer pool. + + In the *MySQL Enterprise Backup* product, you can specify an LSN + to represent the point in time from which to take an *incremental + backup*. The relevant LSN is displayed by the output of the + `ibbackup' command. Once you have the LSN corresponding to the + time of a full backup, you can specify that value to take a + subsequent incremental backup, whose output contains another LSN + for the next incremental backup. + + See also *Note glos_incremental_backup::. See also *Note + glos_mysql_enterprise_backup::. See also *Note glos_redo_log::. + See also *Note glos_transaction::. + +*M* + + 1. master server + + Frequently shortened to `master'. A database server machine in a + *replication* scenario that processes the initial insert, update, + and delete requests for data. These changes are propagated to, and + repeated on, other servers known as *slave servers*. + + See also *Note glos_replication::. See also *Note + glos_slave_server::. + + 2. master thread + + An InnoDB *thread* that performs various tasks in the background. + Most of these tasks are I/O related, such as writing changes from + the *insert buffer* to the appropriate secondary indexes. + + To improve *concurrency*, sometimes actions are moved from the + master thread to separate background threads. For example, in + MySQL 5.6 and higher, *dirty pages* are *flushed* from the *buffer + pool* by the *page cleaner* thread rather than the master thread. + + See also *Note glos_buffer_pool::. See also *Note + glos_dirty_page::. See also *Note glos_flush::. See also *Note + glos_insert_buffer::. See also *Note glos_page_cleaner::. See + also *Note glos_thread::. + + 3. merge + + To apply changes to data cached in memory, such as when a page is + brought into the *buffer pool*, and any applicable changes + recorded in the *change buffer* are incorporated into the page in + the buffer pool. The updated data is eventually written to the + *tablespace* by the *flush* mechanism. + + See also *Note glos_buffer_pool::. See also *Note + glos_change_buffer::. See also *Note glos_flush::. See also + *Note glos_tablespace::. + + 4. metrics counter + + A feature implemented by the `innodb_metrics' + (http://dev.mysql.com/doc/refman/5.6/en/innodb-metrics-table.html) + table in the *information_schema*, in MySQL 5.6 and higher. You + can query *counts* and totals for low-level InnoDB operations, and + use the results for performance tuning in combination with data + from the *performance_schema*. + + See also *Note glos_counter::. See also *Note + glos_information_schema::. See also *Note + glos_performance_schema::. + + 5. midpoint insertion strategy + + The technique of initially bringing *pages* into the InnoDB + *buffer pool* not at the `newest' end of the list, but instead + somewhere in the middle. The exact location of this point can + vary, based on the setting of the `innodb_old_blocks_pct' option. + The intent is that blocks that are only read once, such as during + a *full table scan*, can be aged out of the buffer pool sooner + than with a strict *LRU* algorithm. + + See also *Note glos_buffer_pool::. See also *Note + glos_full_table_scan::. See also *Note glos_lru::. See also + *Note glos_page::. + + 6. mini-transaction + + An internal phase of InnoDB processing, when making changes to the + *data dictionary* during a *DDL* operation. The changes to the + data dictionary are made without affecting the *transaction* that + is being processed by MySQL. + + See also *Note glos_data_dictionary::. See also *Note glos_ddl::. + See also *Note glos_transaction::. + + 7. .MRG file + + A file containing references to other tables, used by the `MERGE' + storage engine. Files with this extension are always included in + backups produced by the `mysqlbackup' command of the *MySQL + Enterprise Backup* product. + + See also *Note glos_mysql_enterprise_backup::. See also *Note + glos_mysqlbackup_command::. + + 8. multi-core + + A type of processor that can take advantage of multi-threaded + programs, such as the MySQL server. + + 9. multiversion concurrency control See *Note glos_mvcc::. + + 10. mutex + + Informal abbreviation for `mutex variable'. (Mutex itself is short + for `mutual exclusion'.) The low-level object that InnoDB uses to + represent and enforce exclusive-access *locks* to internal + in-memory data structures. Once the lock is acquired, any other + process, thread, and so on is prevented from acquiring the same + lock. Contrast with *rw-locks*, which allow shared access. Mutexes + and rw-locks are known collectively as *latches*. + + See also *Note glos_latch::. See also *Note glos_lock::. See + also *Note glos_performance_schema::. See also *Note + glos_pthreads::. See also *Note glos_rw_lock::. + + 11. MVCC + + Acronym for `multiversion concurrency control'. This technique + allows InnoDB *transactions* with certain *isolation levels* + perform *consistent read* operations; that is, to query rows that + are being updated by other transactions, and see the values from + before those updates occurred. This is a powerful technique to + increase *concurrency*, by allowing queries to proceed without + waiting due to *locks* held by the other transactions. + + This technique is not universal in the database world. Some other + database products, and some other storage engines within MySQL, do + not support it. + + See also *Note glos_acid::. See also *Note glos_concurrency::. + See also *Note glos_consistent_read::. See also *Note + glos_isolation_level::. See also *Note glos_lock::. See also + *Note glos_transaction::. + + 12. my.cnf + + The name, on UNIX or Linux systems, of the MySQL option file. + + See also *Note glos_my_ini::. See also *Note glos_option_file::. + + 13. my.ini + + The name, on Windows systems, of the MySQL option file. + + See also *Note glos_my_cnf::. See also *Note glos_option_file::. + + 14. .MYD file + + The file that MySQL uses to store data for a MyISAM table. Files + with this extension are always included in backups produced by the + `mysqlbackup' command of the *MySQL Enterprise Backup* product. + + See also *Note glos_myi_file::. See also *Note + glos_mysql_enterprise_backup::. See also *Note + glos_mysqlbackup_command::. + + 15. .MYI file + + A file that MySQL uses to store indexes for a MyISAM table. Files + with this extension are always included in backups produced by the + `mysqlbackup' command of the *MySQL Enterprise Backup* product. + + See also *Note glos_myd_file::. See also *Note + glos_mysql_enterprise_backup::. See also *Note + glos_mysqlbackup_command::. + + 16. mysql + + The `mysql' program is the command-line interpreter for the MySQL + database. It processes *SQL* statements, and also MySQL-specific + commands such as `SHOW TABLES', by passing requests to the + *`mysqld'* daemon. + + See also *Note glos_mysqld::. See also *Note glos_sql::. + + 17. MySQL Enterprise Backup + + A licensed product, superceding InnoDB Hot Backup, that performs + *hot backups* of MySQL databases. It offers the most efficiency + and flexibility when backing up *InnoDB* tables, but can also back + up MyISAM and other kinds of tables. + + See also *Note glos_hot_backup::. See also *Note glos_innodb::. + + 18. mysqlbackup command + + A command-line tool of the *MySQL Enterprise Backup* product. It + performs a *hot backup* operation for tables from InnoDB, MyISAM, + and other storage engines. It calls the *ibbackup command* to back + up the InnoDB tables; if you only need to back up InnoDB tables, + it can be more efficient to call `ibbackup' directly. + + See also *Note glos_hot_backup::. See also *Note + glos_ibbackup_command::. See also *Note + glos_mysql_enterprise_backup::. + + 19. mysqld + + The `mysqld' program is the database engine for the MySQL + database. It runs as a UNIX daemon or Windows service, constantly + waiting for requests and performing maintenance work in the + background. + + See also *Note glos_mysql::. + + 20. mysqldump + + A command that performs a *logical backup* of some combination of + databases, tables, and table data. The results are SQL statements + that reproduce the original schema objects, data, or both. For + substantial amounts of data, a *physical backup* solution such as + *MySQL Enterprise Backup* is faster, particularly for the + *restore* operation. + + See also *Note glos_logical_backup::. See also *Note + glos_mysql_enterprise_backup::. See also *Note + glos_physical_backup::. See also *Note glos_restore::. + +*N* + + 1. neighbor page + + Any *page* in the same *extent* as a particular page. When a page + is selected to be *flushed*, any neighbor pages that are *dirty* + are typically flushed as well, as an I/O optimization for + traditional hard disks. In MySQL 5.6 and up, this behavior can be + controlled by the configuration variable `innodb_flush_neighbors' + (http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_flush_neighbors); + you might turn that setting off for SSD drives, which do not have + the same overhead for writing smaller batches of data at random + locations. + + See also *Note glos_dirty_page::. See also *Note glos_extent::. + See also *Note glos_flush::. See also *Note glos_page::. + + 2. next-key lock + + A combination of a *record lock* on the index record and a gap + lock on the gap before the index record. + + See also *Note glos_gap_lock::. See also *Note glos_locking::. + See also *Note glos_record_lock::. + + 3. non-blocking I/O + + An industry term that means the same as *asynchronous I/O*. + + See also *Note glos_asynchronous_io::. + + 4. non-repeatable read + + The situation when a query retrieves data, and a later query + within the same *transaction* retrieves what should be the same + data, but the queries return different results (changed by another + transaction committing in the meantime). + + This kind of operation goes against the *ACID* principle of + database design. Within a transaction, data should be consistent, + with predictable and stable relationships. + + Among different *isolation levels*, non-repeatable reads are + prevented by the *serializable read* and *repeatable read* levels, + and allowed by the *consistent read*, and *read uncommitted* + levels. + + See also *Note glos_acid::. See also *Note glos_consistent_read::. + See also *Note glos_isolation_level::. See also *Note + glos_read_uncommitted::. See also *Note glos_repeatable_read::. + See also *Note glos_serializable::. See also *Note + glos_transaction::. + + 5. normalized + + A database design strategy where data is split into multiple + tables, and duplicate values condensed into single rows + represented by an ID, to avoid storing, querying, and updating + redundant or lengthy values. It is typically used in *OLTP* + applications. + + For example, an address might be given a unique ID, so that a + census database could represent the relationship *lives at this + address* by associating that ID with each member of a family, + rather than storing multiple copies of a complex value such as + *123 Main Street, Anytown, USA*. + + For another example, although a simple address book application + might store each phone number in the same table as a person's name + and address, a phone company database might give each phone number + a special ID, and store the numbers and IDs in a separate table. + This normalized representation could simplify large-scale updates + when area codes split apart. + + Normalization is not always recommended. Data that is primarily + queried, and only updated by deleting entirely and reloading, is + often kept in fewer, larger tables with redundant copies of + duplicate values. This data representation is referred to as + *denormalized*, and is frequently found in data warehousing + applications. + + See also *Note glos_denormalized::. See also *Note + glos_foreign_key::. See also *Note glos_oltp::. See also *Note + glos_relational::. + + 6. NOT NULL constraint + + A type of *constraint* that specifies that a *column* cannot + contain any *NULL* values. It helps to preserve *referential + integrity*, as the database server can identify data with + erroneous missing values. It also helps in the arithmetic involved + in query optimization, allowing the optimizer to predict the + number of entries in an index on that column. + + See also *Note glos_column::. See also *Note glos_constraint::. + See also *Note glos_null::. See also *Note glos_primary_key::. + See also *Note glos_referential_integrity::. + + 7. NULL + + A special value in *SQL*, indicating the absence of data. Any + arithmetic operation or equality test involving a `NULL' value, in + turn produces a `NULL' result. (Thus it is similar to the IEEE + floating-point concept of NaN, `not a number'.) Any aggregate + calculation such as `AVG()' ignores rows with `NULL' values, when + determining how many rows to divide by. The only test that works + with `NULL' values uses the SQL idioms `IS NULL' or `IS NOT NULL'. + + `NULL' values play a part in index operations, because for + performance a database must minimize the overhead of keeping track + of missing data values. Typically, `NULL' values are not stored in + an index, because a query that tests an indexed column using a + standard comparison operator could never match a row with a `NULL' + value for that column. For the same reason, unique indexes do not + prevent `NULL' values; those values simply are not represented in + the index. Declaring a `NOT NULL' constraint on a column provides + reassurance that there are no rows left out of the index, allowing + for better query optimization (accurate counting of rows and + estimation of whether to use the index). + + Because the *primary key* must be able to uniquely identify every + row in the table, a single-column primary key cannot contain any + `NULL' values, and a multi-column primary key cannot contain any + rows with `NULL' values in all columns. + + Although the Oracle database allows a `NULL' value to be + concatenated with a string, InnoDB treats the result of such an + operation as `NULL'. + + See also *Note glos_index::. See also *Note glos_primary_key::. + See also *Note glos_sql::. + +*O* + + 1. off-page column + + A column containing variable-length data (such as `BLOB' and + `VARCHAR') that is too long to fit on a *B-tree* page. The data is + stored in *overflow pages*. The `DYNAMIC' row format in the InnoDB + *Barracuda* file format is more efficient for such storage than + the older `COMPACT' row format. + + See also *Note glos_b_tree::. See also *Note glos_barracuda::. + See also *Note glos_overflow_page::. + + 2. OLTP + + Acronym for `Online Transaction Processing'. A database system, or + a database application, that runs a workload with many + *transactions*, with frequent writes as well as reads, typically + affecting small amounts of data at a time. For example, an airline + reservation system or an application that processes bank deposits. + The data might be organized in *normalized* form for a balance + between *DML* (insert/update/delete) efficiency and *query* + efficiency. Contrast with *data warehouse*. + + With its *row-level locking* and *transactional* capability, + *InnoDB* is the ideal storage engine for MySQL tables used in OLTP + applications. + + See also *Note glos_data_warehouse::. See also *Note glos_dml::. + See also *Note glos_innodb::. See also *Note glos_query::. See + also *Note glos_row_lock::. See also *Note glos_transaction::. + + 3. online + + A type of operation that involves no downtime, blocking, or + restricted operation for the database. Typically applied to *DDL*. + Operations that shorten the periods of restricted operation, such + as *fast index creation*, are a step along the way to true online + DDL. A *hot backup* is an online operation and a *warm backup* is + partially an online operation. + + See also *Note glos_ddl::. See also *Note + glos_fast_index_creation::. See also *Note glos_hot_backup::. + See also *Note glos_warm_backup::. + + 4. .OPT file + + A file containing database configuration information. Files with + this extension are always included in backups produced by the + `mysqlbackup' command of the *MySQL Enterprise Backup* product. + + See also *Note glos_mysql_enterprise_backup::. See also *Note + glos_mysqlbackup_command::. + + 5. optimistic + + A methodology that guides low-level implementation decisions for a + relational database system. The requirements of performance and + *concurrency* in a relational database mean that operations must + be started or dispatched quickly. The requirements of consistency + and *referential integrity* mean that any operation could fail: a + transaction might be rolled back, a *DML* operation could violate a + constraint, a request for a lock could cause a deadlock, a network + error could cause a timeout. An optimistic strategy is one that + assumes most requests or attempts will succeed, so that relatively + little work is done to prepare for the failure case. When this + assumption is true, the database does little unnecessary work; + when requests do fail, extra work must be done to clean up and + undo changes. + + InnoDB uses optimistic strategies for operations such as *locking* + and *commits*. For example, data changed by a transaction can be + written to the data files before the commit occurs, making the + commit itself very fast, but requiring more work to undo the + changes if the transaction is rolled back. + + The opposite of an optimistic strategy is a *pessimistic* one, + where a system is optimized to deal with operations that are + unreliable and frequently unsuccessful. This methodology is rare + in a database system, because so much care goes into choosing + reliable hardware, networks, and algorithms. + + See also *Note glos_commit::. See also *Note glos_concurrency::. + See also *Note glos_dml::. See also *Note glos_locking::. See + also *Note glos_pessimistic::. + + 6. optimizer + + The MySQL component that determines the best *indexes* and *join* + order to use for a *query*, based on characteristics and data + distribution of the relevant *tables*. + + See also *Note glos_index::. See also *Note glos_join::. See + also *Note glos_query::. See also *Note glos_table::. + + 7. option + + A configuration parameter for MySQL, either stored in the *option + file* or passed on the command line. + + In the context of the *InnoDB* storage engine (either the built-in + InnoDB or the InnoDB Plugin), each option name starts with the + prefix `innodb_'. + + See also *Note glos_innodb::. See also *Note glos_option_file::. + + 8. option file + + The file that holds the configuration *options* for the MySQL + instance. Traditionally, on Linux and UNIX this file is named + `my.cnf', and on Windows it is named `my.ini'. + + See also *Note glos_configuration_file::. See also *Note + glos_my_cnf::. See also *Note glos_option::. + + 9. overflow page + + Separately allocated disk *pages* that hold variable-length + columns (such as `BLOB' and `VARCHAR') that are too long to fit on + a *B-tree* page. The associated columns are known as *off-page + columns*. + + See also *Note glos_b_tree::. See also *Note + glos_off_page_column::. See also *Note glos_page::. + +*P* + + 1. page + + A unit representing how much data InnoDB transfers at any one time + between disk (the *data files*) and memory (the *buffer pool*). A + page can contain one or more *rows*, depending on how much data is + in each row. If a row does not fit entirely into a single page, + InnoDB sets up additional pointer-style data structures so that + the information about the row can be stored in one page. + + One way to fit more data in each page is to use *compressed row + format*. For tables that use BLOBs or large text fields, *compact + row format* allows those large columns to be stored separately + from the rest of the row, reducing I/O overhead and memory usage + for queries that do not reference those columns. + + When InnoDB reads or writes sets of pages as a batch to increase + I/O throughput, it reads or writes an *extent* at a time. + + All the InnoDB disk data structures within a MySQL instance share + the same *page size*. + + See also *Note glos_buffer_pool::. See also *Note + glos_compact_row_format::. See also *Note + glos_compressed_row_format::. See also *Note glos_data_files::. + See also *Note glos_extent::. See also *Note glos_page_size::. + See also *Note glos_row::. + + 2. page cleaner + + An InnoDB background *thread* that *flushes* *dirty pages* from the + *buffer pool*. Prior to MySQL 5.6, this activity was performed by + the *master thread* + + See also *Note glos_buffer_pool::. See also *Note + glos_dirty_page::. See also *Note glos_flush::. See also *Note + glos_master_thread::. See also *Note glos_thread::. + + 3. page size + + For releases up to and including MySQL 5.5, the size of each + InnoDB *page* is fixed at 16 kilobytes. This value represents a + balance: large enough to hold the data for most rows, yet small + enough to minimize the performance overhead of transferring + unneeded data to memory. Other values are not tested or supported. + + Starting in MySQL 5.6, the page size for an InnoDB *instance* can + be either 4KB, 8KB, or 16KB, controlled by the `innodb_page_size' + (http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_page_size) + configuration option. You set the size when creating the MySQL + instance, and it remains constant afterwards. The same page size + applies to all InnoDB *tablespaces*, both the *system tablespace* + and any separate tablespaces created in *file-per-table* mode. + + Smaller page sizes can help performance with storage devices that + use small block sizes, particularly for *SSD* devices in + *disk-bound* workloads, such as for *OLTP* applications. As + individual rows are updated, less data is copied into memory, + written to disk, reorganized, locked, and so on. + + See also *Note glos_disk_bound::. See also *Note + glos_file_per_table::. See also *Note glos_instance::. See also + *Note glos_oltp::. See also *Note glos_page::. See also *Note + glos_ssd::. See also *Note glos_system_tablespace::. See also + *Note glos_tablespace::. + + 4. .PAR file + + A file containing partition definitions. Files with this extension + are always included in backups produced by the `mysqlbackup' + command of the *MySQL Enterprise Backup* product. + + See also *Note glos_mysql_enterprise_backup::. See also *Note + glos_mysqlbackup_command::. + + 5. parent table + + The table in a *foreign key* relationship that holds the initial + column values pointed to from the *child table*. The consequences + of deleting, or updating rows in the parent table depend on the + `ON UPDATE' and `ON DELETE' clauses in the foreign key definition. + Rows with corresponding values in the child table could be + automatically deleted or updated in turn, or those columns could + be set to `NULL', or the operation could be prevented. + + See also *Note glos_child_table::. See also *Note + glos_foreign_key::. + + 6. partial backup + + A *backup* that contains some of the *tables* in a MySQL database, + or some of the databases in a MySQL instance. Contrast with *full + backup*. + + See also *Note glos_backup::. See also *Note glos_full_backup::. + See also *Note glos_table::. + + 7. partial index + + An *index* that represents only part of a column value, typically + the first N characters (the *prefix*) of a long `VARCHAR' value. + + See also *Note glos_index::. See also *Note glos_index_prefix::. + + 8. Performance Schema + + The `performance_schema' schema, in MySQL 5.5 and up, presents a + set of tables that you can query to get detailed information about + the performance characteristics of many internal parts of the + MySQL server. + + See also *Note glos_latch::. See also *Note glos_mutex::. See + also *Note glos_rw_lock::. + + 9. persistent statistics + + A feature in MySQL 5.6 that stores *index* statistics for InnoDB + *tables* on disk, providing better *plan stability* for *queries*. + The statistics are recalculated only by running the *Note `ALTER + TABLE': alter-table. statement. + + See also *Note glos_index::. See also *Note glos_optimizer::. + See also *Note glos_plan_stability::. See also *Note glos_query::. + See also *Note glos_table::. + + 10. pessimistic + + A methodology that sacrifices performance or concurrency in favor + of safety. It is appropriate if a high proportion of requests or + attempts might fail, or if the consequences of a failed request + are severe. InnoDB uses what is known as a pessimistic *locking* + strategy, to minimize the chance of *deadlocks*. At the application + level, you might avoid deadlocks by using a pessimistic strategy + of acquiring all locks needed by a transaction at the very + beginning. + + Many built-in database mechanisms use the opposite *optimistic* + methodology. + + See also *Note glos_deadlock::. See also *Note glos_locking::. + See also *Note glos_optimistic::. + + 11. phantom + + A row that appears in the result set of a query, but not in the + result set of an earlier query. For example, if a query is run + twice within a *transaction*, and in the meantime, another + transaction commits after inserting a new row or updating a row so + that it matches the `WHERE' clause of the query. + + This occurrence is known as a phantom read. It is harder to guard + against than a *non-repeatable read*, because locking all the rows + from the first query result set does not prevent the changes that + cause the phantom to appear. + + Among different *isolation levels*, phantom reads are prevented by + the *serializable read* level, and allowed by the *repeatable + read*, *consistent read*, and *read uncommitted* levels. + + See also *Note glos_consistent_read::. See also *Note + glos_isolation_level::. See also *Note glos_non_repeatable_read::. + See also *Note glos_read_uncommitted::. See also *Note + glos_repeatable_read::. See also *Note glos_serializable::. See + also *Note glos_transaction::. + + 12. physical + + A type of operation that involves hardware-related aspects such as + disk blocks, memory pages, files, bits, disk reads, and so on. + Typically, physical aspects are important during expert-level + performance tuning and problem diagnosis. Contrast with *logical*. + + See also *Note glos_logical::. See also *Note + glos_physical_backup::. + + 13. physical backup + + A *backup* that copies the actual data files. For example, the + *`mysqlbackup'* command of the *MySQL Enterprise Backup* product + produces a physical backup, because its output contains data files + that can be used directly by the `mysqld' server, resulting in a + faster *restore* operation. Contrast with *logical backup*. + + See also *Note glos_backup::. See also *Note + glos_logical_backup::. See also *Note + glos_mysql_enterprise_backup::. See also *Note glos_restore::. + + 14. PITR + + Acronym for *point-in-time recovery*. + + See also *Note glos_point_in_time_recovery::. + + 15. plan stability + + A property of a *query execution plan*, where the optimizer makes + the same choices each time for a given *query*, so that + performance is consistent and predictable. + + See also *Note glos_query::. See also *Note + glos_query_execution_plan::. + + 16. plugin + + In MySQL 5.1 and earlier, a separately installable form of the + *InnoDB* storage engine that includes features and performance + enhancements not included in the *built-in* InnoDB for those + releases. + + For MySQL 5.5 and higher, the MySQL distribution includes the very + latest InnoDB features and performance enhancements, known as + InnoDB 1.1, and there is no longer a separate InnoDB Plugin. + + This distinction is important mainly in MySQL 5.1, where a feature + or bug fix might apply to the InnoDB Plugin but not the built-in + InnoDB, or vice versa. + + See also *Note glos_built_in::. See also *Note glos_innodb::. + + 17. point-in-time recovery + + The process of restoring a *backup* to recreate the state of the + database at a specific date and time. Commonly abbreviated *PITR*. + Because it is unlikely that the specified time corresponds exactly + to the time of a backup, this technique usually requires a + combination of a *physical backup* and a *logical backup*. For + example, with the *MySQL Enterprise Backup* product, you restore + the last backup that you took before the specified point in time, + then replay changes from the *binary log* between the time of the + backup and the PITR time. + + See also *Note glos_backup::. See also *Note + glos_logical_backup::. See also *Note + glos_mysql_enterprise_backup::. See also *Note + glos_physical_backup::. See also *Note glos_pitr::. + + 18. prefix See *Note glos_index_prefix::. + + 19. prepared backup + + A set of backup files, produced by the *MySQL Enterprise Backup* + product, after all the stages of applying *binary logs* and + *incremental backups* are finished. The resulting files are ready + to be *restored*. Prior to the apply steps, the files are known as + a *raw backup*. + + See also *Note glos_binary_log::. See also *Note + glos_hot_backup::. See also *Note glos_incremental_backup::. See + also *Note glos_mysql_enterprise_backup::. See also *Note + glos_raw_backup::. See also *Note glos_restore::. + + 20. primary key + + A set of columns - and by implication, the index based on this set + of columns - that can uniquely identify every row in a table. As + such, it must be a unique index that does not contain any `NULL' + values. + + InnoDB requires that every table has such an index (also called + the *clustered index* or *cluster index*), and organizes the table + storage based on the column values of the primary key. + + See also *Note glos_clustered_index::. See also *Note + glos_index::. + + 21. process + + An instance of an executing program. The operating switches + between multiple running processes, allowing for a certain degree + of *concurrency*. On most operating systems, processes can contain + multiple *threads* of execution that share resources. + Context-switching between threads is faster than the equivalent + switching between processes. + + See also *Note glos_concurrency::. See also *Note glos_thread::. + + 22. pseudo-record + + An artificial record in an index, used for *locking* key values or + ranges that do not currently exist. + + See also *Note glos_infimum_record::. See also *Note + glos_locking::. See also *Note glos_supremum_record::. + + 23. Pthreads + + The POSIX threads standard, which defines an API for threading and + locking operations on UNIX and Linux systems. On UNIX and Linux + systems, InnoDB uses this implementation for *mutexes*. + + See also *Note glos_mutex::. + + 24. purge + + A type of garbage collection performed by a separate thread, + running on a periodic schedule. The purge includes these actions: + removing obsolete values from indexes; physically removing rows + that were marked for deletion by previous `DELETE' statements. + + See also *Note glos_crash_recovery::. See also *Note + glos_delete::. See also *Note glos_doublewrite_buffer::. + + 25. purge buffering + + The technique of storing index changes due to `DELETE' operations + in the *insert buffer* rather than writing them immediately, so + that the physical writes can be performed to minimize random I/O. + (Because delete operations are a two-step process, this operation + buffers the write that normally purges an index record that was + previously marked for deletion.) It is one of the types of *change + buffering*; the others are *insert buffering*. and *delete + buffering* + + See also *Note glos_change_buffering::. See also *Note + glos_delete_buffering::. See also *Note glos_insert_buffer::. + See also *Note glos_insert_buffering::. + + 26. purge thread + + A *thread* within the InnoDB process that is dedicated to + performing the periodic *purge* operation. + + See also *Note glos_purge::. See also *Note glos_thread::. + +*Q* + + 1. query + + In *SQL*, an operation that reads information from one or more + *tables*. Depending on the organization of data and the parameters + of the query, the lookup might be optimized by consulting an + *index*. If multiple tables are involved, the query is known as a + *join*. + + For historical reasons, sometimes discussions of internal + processing for statements use `query' in a broader sense, + including other types of MySQL statements such as *DDL* and *DML* + statements. + + See also *Note glos_ddl::. See also *Note glos_dml::. See also + *Note glos_index::. See also *Note glos_join::. See also *Note + glos_sql::. See also *Note glos_table::. + + 2. query execution plan + + The set of decisions made by the optimizer about how to perform a + *query* most efficiently, including which *index* or indexes to + use, and the order in which to *join* tables. *Plan stability* + involves the same choices being made consistently for a given + query. + + See also *Note glos_index::. See also *Note glos_join::. See + also *Note glos_plan_stability::. See also *Note glos_query::. + + 3. query log See *Note glos_general_query_log::. + +*R* + + 1. RAID + + Acronym for `Redundant Array of Inexpensive Drives'. Spreading I/O + operations across multiple drives enables greater *concurrency* at + the hardware level, and improves the efficiency of low-level write + operations that otherwise would be performed in sequence. + + See also *Note glos_concurrency::. + + 2. random dive + + A technique for quickly estimating the number of different values + in a column (the column's cardinality). InnoDB samples pages at + random from the index and uses that data to estimate the number of + different values. This operation occurs when each table is first + opened. + + Originally, the number of sampled pages was fixed at 8; now, it is + determined by the setting of the `innodb_stats_sample_pages' + parameter. + + The way the random pages are picked depends on the setting of the + innodb_use_legacy_cardinality_algorithm parameter. The default + setting (OFF) has better randomness than in older releases. + + See also *Note glos_cardinality::. + + 3. raw backup + + The initial set of backup files produced by the *MySQL Enterprise + Backup* product, before the changes reflected in the *binary log* + and any *incremental backups* are applied. At this stage, the + files are not ready to *restore*. After these changes are applied, + the files are known as a *prepared backup*. + + See also *Note glos_binary_log::. See also *Note + glos_hot_backup::. See also *Note glos_ibbackup_logfile::. See + also *Note glos_incremental_backup::. See also *Note + glos_mysql_enterprise_backup::. See also *Note + glos_prepared_backup::. See also *Note glos_restore::. + + 4. READ COMMITTED + + An *isolation level* that uses a *locking* strategy that relaxes + some of the protection between *transactions*, in the interest of + performance. Transactions cannot see uncommitted data from other + transactions, but they can see data that is committed by another + transaction after the current transaction started. Thus, a + transaction never sees any bad data, but the data that it does see + may depend to some extent on the timing of other transactions. + + When a transaction with this isolation level performs `UPDATE ... + WHERE' or `DELETE ... WHERE' operations, other transactions might + have to wait. The transaction can perform `SELECT ... FOR UPDATE', + and `LOCK IN SHARE MODE' operations without making other + transactions wait. + + See also *Note glos_acid::. See also *Note glos_isolation_level::. + See also *Note glos_locking::. See also *Note + glos_repeatable_read::. See also *Note glos_serializable::. See + also *Note glos_transaction::. + + 5. READ UNCOMMITTED + + The *isolation level* that provides the least amount of protection + between transactions. Queries employ a *locking* strategy that + allows them to proceed in situations where they would normally + wait for another transaction. However, this extra performance + comes at the cost of less reliable results, including data that + has been changed by other transactions and not committed yet + (known as *dirty read*). Use this isolation level only with great + caution, and be aware that the results might not be consistent or + reproducible, depending on what other transactions are doing at + the same time. Typically, transactions with this isolation level + do only queries, not insert, update, or delete operations. + + See also *Note glos_acid::. See also *Note glos_dirty_read::. + See also *Note glos_isolation_level::. See also *Note + glos_locking::. See also *Note glos_transaction::. + + 6. read view + + An internal snapshot used by the *MVCC* mechanism of InnoDB. + Certain *transactions*, depending on their *isolation level*, see + the data values as they were at the time the transaction (or in + some cases, the statement) started. Isolation levels that use a + read view are *REPEATABLE READ*, *READ COMMITTED*, and *READ + UNCOMMITTED*. + + See also *Note glos_isolation_level::. See also *Note glos_mvcc::. + See also *Note glos_read_committed::. See also *Note + glos_read_uncommitted::. See also *Note glos_repeatable_read::. + See also *Note glos_transaction::. + + 7. read-ahead + + A type of I/O request that prefetches a group of *pages* (an entire + *extent*) into the *buffer pool* asynchronously, in anticipation + that these pages will be needed soon. The linear read-ahead + technique prefetches all the pages of one extent based on access + patterns for pages in the preceding extent, and is part of all + MySQL versions starting with the InnoDB Plugin for MySQL 5.1. The + random read-ahead technique prefetches all the pages for an extent + once a certain number of pages from the same extent are in the + buffer pool. Random read-ahead is not part of MySQL 5.5, but is + re-introduced in MySQL 5.6 under the control of the + `innodb_random_read_ahead' configuration option. + + See also *Note glos_buffer_pool::. See also *Note glos_extent::. + See also *Note glos_page::. + + 8. record lock + + A lock on an index record. For example, `SELECT c1 FOR UPDATE FROM + t WHERE c1 = 10;' prevents any other transaction from inserting, + updating, or deleting rows where the value of `t.c1' is 10. + Contrast with *gap lock* and *next-key lock*. + + See also *Note glos_gap_lock::. See also *Note glos_lock::. See + also *Note glos_next_key_lock::. + + 9. redo log + + A set of files, typically named `ib_logfile0' and `ib_logfile1', + that record statements that attempt to change data in InnoDB + tables. These statements are replayed automatically to correct + data written by incomplete *transactions*, on startup following a + *crash*. The passage of data through the redo logs is represented + by the ever-increasing *LSN* value. The 4GB limit on maximum size + for the redo log is raised in MySQL 5.6. + + The disk layout of the redo log is influenced by the configuration + options `innodb_log_file_size', `innodb_log_group_home_dir', and + (rarely) `innodb_log_files_in_group'. The performance of redo log + operations is also affected by the *log buffer*, which is + controlled by the `innodb_log_buffer_size' configuration option. + + See also *Note glos_crash_recovery::. See also *Note + glos_ib_logfile::. See also *Note glos_log_buffer::. See also + *Note glos_lsn::. See also *Note glos_transaction::. + + 10. redundant row format + + The oldest InnoDB row format, available for tables using the + *Antelope* *file format*. Prior to MySQL 5.0.3, it was the only + row format available in InnoDB. In My SQL 5.0.3 and later, the + default is *compact row format*. You can still specify redundant + row format for compatibility with older InnoDB tables. + + See also *Note glos_antelope::. See also *Note + glos_compact_row_format::. See also *Note glos_file_format::. + See also *Note glos_row_format::. + + 11. referential integrity + + The technique of maintaining data always in a consistent format, + part of the *ACID* philosophy. In particular, data in different + tables is kept consistent through the use of *foreign key + constraints*, which can prevent changes from happening or + automatically propagate those changes to all related tables. + Related mechanisms include the *unique constraint*, which prevents + duplicate values from being inserted by mistake, and the *NOT NULL + constraint*, which prevents blank values from being inserted by + mistake. + + See also *Note glos_acid::. See also *Note + glos_foreign_key_constraint::. See also *Note + glos_not_null_constraint::. See also *Note + glos_unique_constraint::. + + 12. relational + + An important aspect of modern database systems. The database + server encodes and enforces relationships such as one-to-one, + one-to-many, many-to-one, and uniqueness. For example, a person + might have zero, one, or many phone numbers in an address + database; a single phone number might be associated with several + family members. In a financial database, a person might be + required to have exactly one taxpayer ID, and any taxpayer ID + could only be associated with one person. + + The database server can use these relationships to prevent bad + data from being inserted, and to find efficient ways to look up + information. For example, if a value is declared to be unique, the + server can stop searching as soon as the first match is found, and + it can reject attempts to insert a second copy of the same value. + + At the database level, these relationships are expressed through + SQL features such as *columns* within a table, unique and `NOT + NULL' *constraints*, *foreign keys*, and different kinds of join + operations. Complex relationships typically involve data split + between more than one table. Often, the data is *normalized*, so + that duplicate values in one-to-many relationships are stored only + once. + + In a mathematical context, the relations within a database are + derived from set theory. For example, the `OR' and `AND' operators + of a `WHERE' clause represent the notions of union and + intersection. + + See also *Note glos_acid::. See also *Note glos_constraint::. + See also *Note glos_foreign_key::. See also *Note + glos_normalized::. + + 13. relevance + + In the *full-text search* feature, a number signifying the + similarity between the search string and the data in the *FULLTEXT + index*. For example, when you search for a single word, that word + is typically more relevant for a row where if it occurs several + times in the text than a row where it appears only once. + + See also *Note glos_full_text_search::. See also *Note + glos_fulltext_index::. + + 14. REPEATABLE READ + + The default *isolation level* for InnoDB. It prevents any rows + that are queried from being changed by other transactions, thus + blocking *non-repeatable reads* but not *phantom* reads. It uses a + moderately strict *locking* strategy so that all queries within a + transaction see data from the same snapshot, that is, the data as + it was at the time the transaction started. + + When a transaction with this isolation level performs `UPDATE ... + WHERE', `DELETE ... WHERE', `SELECT ... FOR UPDATE', and `LOCK IN + SHARE MODE' operations, other transactions might have to wait. + + See also *Note glos_acid::. See also *Note glos_consistent_read::. + See also *Note glos_isolation_level::. See also *Note + glos_locking::. See also *Note glos_phantom::. See also *Note + glos_serializable::. See also *Note glos_transaction::. + + 15. replication + + The practice of sending changes from a *master database*, to one + or more *slave databases*, so that all databases have the same + data. This technique has a wide range of uses, such as + load-balancing for better scalability, disaster recovery, and + testing software upgrades and configuration changes. The changes + can be sent between the database by methods called *row-based + replication* and *statement-based replication*. + + See also *Note glos_row_based_replication::. See also *Note + glos_statement_based_replication::. + + 16. restore + + The process of putting a set of backup files from the *MySQL + Enterprise Backup* product in place for use by MySQL. This + operation can be performed to fix a corrupted database, to return + to some earlier point in time, or (in a *replication* context) to + set up a new *slave database*. In the *MySQL Enterprise Backup* + product, this operation is performed by the `copy-back' option of + the `mysqlbackup' command. + + See also *Note glos_hot_backup::. See also *Note + glos_mysql_enterprise_backup::. See also *Note + glos_mysqlbackup_command::. See also *Note glos_prepared_backup::. + See also *Note glos_replication::. + + 17. rollback + + A *SQL* statement that ends a *transaction*, undoing any changes + made by the transaction. It is the opposite of *commit*, which + makes permanent any changes made in the transaction. + + By default, MySQL uses the *autocommit* setting, which + automatically issues a commit following each SQL statement. You + must change this setting before you can use the rollback technique. + + See also *Note glos_acid::. See also *Note glos_commit::. See + also *Note glos_transaction::. + + 18. rollback segment + + The storage area containing the *undo log*, part of the *system + tablespace*. + + See also *Note glos_system_tablespace::. See also *Note + glos_undo_log::. + + 19. row + + The logical data structure defined by a set of *columns*. A set of + rows makes up a *table*. Within InnoDB *data files*, each *page* + can contain one or more rows. + + Although InnoDB uses the term *row format* for consistency with + MySQL syntax, the row format is a property of each table and + applies to all rows in that table. + + See also *Note glos_column::. See also *Note glos_data_files::. + See also *Note glos_page::. See also *Note glos_row_format::. + See also *Note glos_table::. + + 20. row format + + The disk storage format for a *row* from an InnoDB *table*. As + InnoDB gains new capabilities such as compression, new row formats + are introduced to support the resulting improvements in storage + efficiency and performance. + + Each table has its own row format, specified through the + `ROW_FORMAT' option. To see the row format for each InnoDB table, + issue the command `SHOW TABLE STATUS'. Because all the tables in + the system tablespace share the same row format, to take advantage + of other row formats typically requires setting the + `innodb_file_per_table' option, so that each table is stored in a + separate tablespace. + + See also *Note glos_compact_row_format::. See also *Note + glos_compressed_row_format::. See also *Note + glos_dynamic_row_format::. See also *Note glos_fixed_row_format::. + See also *Note glos_redundant_row_format::. See also *Note + glos_row::. See also *Note glos_table::. + + 21. row lock + + A *lock* that prevents a row from being accessed in an + incompatible way by another *transaction*. Other rows in the same + table can be freely written to by other transactions. This is the + type of *locking* done by *DML* operations on *InnoDB* tables. + Contrast with *table locks* used by MyISAM, which block concurrent + access to the table. + + See also *Note glos_dml::. See also *Note glos_innodb::. See + also *Note glos_lock::. See also *Note glos_locking::. See also + *Note glos_table_lock::. See also *Note glos_transaction::. + + 22. row-based replication + + This form of *replication* is safe to use for all settings of the + *innodb_autoinc_lock_mode* option. + + See also *Note glos_auto_increment_locking::. See also *Note + glos_innodb_autoinc_lock_mode::. See also *Note + glos_replication::. See also *Note + glos_statement_based_replication::. + + 23. row-level locking + + The *locking* mechanism used for *InnoDB* tables, relying on *row + locks* rather than *table locks*. Multiple *transactions* can + modify the same table concurrently. Only if two transactions try + to modify the same row does one of the transactions wait for the + other to complete (and release its row locks). + + See also *Note glos_innodb::. See also *Note glos_locking::. See + also *Note glos_row_lock::. See also *Note glos_table_lock::. + See also *Note glos_transaction::. + + 24. rw-lock + + The low-level object that InnoDB uses to represent and enforce + shared-access *locks* to internal in-memory data structures. Once + the lock is acquired, any other process, thread, and so on can + read the data structure, but no one else can write to it. Contrast + with *mutexes*, which enforce exclusive access. Mutexes and + rw-locks are known collectively as *latches*. + + See also *Note glos_latch::. See also *Note glos_lock::. See + also *Note glos_mutex::. See also *Note glos_performance_schema::. + +*S* + + 1. savepoint + + Savepoints help to implement nested *transactions*. They can be + used to provide scope to operations on tables that are part of a + larger transaction. For example, scheduling a trip in a + reservation system might involve booking several different + flights; if a desired flight is unavailable, you might *roll back* + the changes involved in booking that one leg, without rolling back + the earlier flights that were successfully booked. + + See also *Note glos_rollback::. See also *Note glos_transaction::. + + 2. scalability + + The ability to add more work and issue more simultaneous requests + to a system, without a sudden drop in performance due to exceeding + the limits of system capacity. Software architecture, hardware + configuration, application coding, and type of workload all play a + part in scalability. When the system reaches its maximum capacity, + popular techniques for increasing scalability are *scale up* + (increasing the capacity of existing hardware or software) and + *scale out* (adding new hardware or more instances of server + software). + + 3. schema + + Conceptually, a schema is a set of interrelated database objects, + such as tables, table columns, data types of the columns, indexes, + foreign keys, and so on. These objects are connected through SQL + syntax, because the columns make up the tables, the foreign keys + refer to tables and columns, and so on. Ideally, they are also + connected logically, working together as part of a unified + application or flexible framework. For example, the + *information_schema* and *performance_schema* databases use + `schema' in their names to emphasize the close relationships + between the tables and columns they contain. + + In MySQL, physically, a *schema* is synonymous with a *database*. + You can substitute the keyword `SCHEMA' instead of `DATABASE' in + MySQL SQL syntax, for example using `CREATE SCHEMA' instead of + `CREATE DATABASE'. + + Some other database products draw a distinction. For example, in + the Oracle Database product, a *schema* represents only a part of + a database: the tables and other objects owned by a single user. + + See also *Note glos_database::. See also *Note glos_ib_file_set::. + See also *Note glos_information_schema::. See also *Note + glos_performance_schema::. + + 4. search index + + In MySQL, full-text search queries use a special kind of index, + the *FULLTEXT* index. In MySQL 5.6.4 and up, `InnoDB' and `MyISAM' + tables both support `FULLTEXT' indexes; formerly, these indexes + were only available for `MyISAM' tables. + + See also *Note glos_fulltext_index::. + + 5. secondary index + + A type of InnoDB *index* that represents a subset of table + columns. An InnoDB table can have zero, one, or many secondary + indexes. (Contrast with the *clustered index*, which is required + for each InnoDB table, and stores the data for all the table + columns.) + + A secondary index can be used to satisfy queries that only require + values from the indexed columns. For more complex queries, it can + be used to identify the relevant rows in the table, which are then + retrieved through lookups using the clustered index. + + Creating and dropping secondary indexes has traditionally involved + significant overhead from copying all the data in the InnoDB + table. The *fast index creation* feature of the InnoDB Plugin + makes both `CREATE INDEX' and `DROP INDEX' statements much faster + for InnoDB secondary indexes. + + See also *Note glos_clustered_index::. See also *Note + glos_fast_index_creation::. See also *Note glos_index::. + + 6. segment + + A division within an InnoDB *tablespace*. If a tablespace is + analogous to a directory, the segments are analogous to files + within that directory. A segment can grow. New segments can be + created. + + For example, within a *file-per-table* tablespace, the table data + is in one segment and each associated index is in its own segment. + The *system tablespace* contains many different segments, because + it can hold many tables and their associated indexes. The system + tablespace also includes up to 128 *rollback segments* making up + the *undo log*. + + Segments grow and shrink as data is inserted and deleted. When a + segment needs more room, it is extended by one *extent* (1 + megabyte) at a time. Similarly, a segment releases one extent's + worth of space when all the data in that extent is no longer + needed. + + See also *Note glos_extent::. See also *Note + glos_file_per_table::. See also *Note glos_rollback_segment::. + See also *Note glos_system_tablespace::. See also *Note + glos_tablespace::. See also *Note glos_undo_log::. + + 7. selectivity + + A property of data distribution, the number of distinct values in + a column (its *cardinality*) divided by the number of records in + the table. High selectivity means that the column values are + relatively unique, and can retrieved efficiently through an index. + If you (or the query optimizer) can predict that a test in a + `WHERE' clause only matches a small number (or proportion) of rows + in a table, the overall *query* tends to be efficient if it + evaluates that test first, using an index. + + See also *Note glos_cardinality::. See also *Note glos_query::. + + 8. semi-consistent read + + A type of read operation used for `UPDATE' statements, that is a + combination of *read committed* and *consistent read*. When an + `UPDATE' statement examines a row that is already locked, InnoDB + returns the latest committed version to MySQL so that MySQL can + determine whether the row matches the `WHERE' condition of the + `UPDATE'. If the row matches (must be updated), MySQL reads the + row again, and this time InnoDB either locks it or waits for a + lock on it. This type of read operation can only happen when the + transaction has the read committed *isolation level*, or when the + `innodb_locks_unsafe_for_binlog' option is enabled. + + See also *Note glos_consistent_read::. See also *Note + glos_isolation_level::. See also *Note glos_read_committed::. + + 9. SERIALIZABLE + + The *isolation level* that uses the most conservative locking + strategy, to prevent any other transactions from inserting or + changing data that was read by this transaction, until it is + finished. This way, the same query can be run over and over within + a transaction, and be certain to retrieve the same set of results + each time. Any attempt to change data that was committed by + another transaction since the start of the current transaction, + cause the current transaction to wait. + + This is the default isolation level specified by the SQL standard. + In practice, this degree of strictness is rarely needed, so the + default isolation level for InnoDB is the next most strict, + *repeatable read*. + + See also *Note glos_acid::. See also *Note glos_consistent_read::. + See also *Note glos_isolation_level::. See also *Note + glos_locking::. See also *Note glos_repeatable_read::. See also + *Note glos_transaction::. + + 10. server + + A type of program that runs continuously, waiting to receive and + act upon requests from another program (the client). Because often + an entire computer is dedicated to running one or more server + programs (such as a database server, a web server, an application + server, or some combination of these), the term *server* can also + refer to the computer that runs the server software. + + See also *Note glos_client::. See also *Note glos_mysqld::. + + 11. shared lock + + A kind of *lock* that allows other *transactions* to read the + locked object, and to also acquire other shared locks on it, but + not to write to it. The opposite of *exclusive lock*. + + See also *Note glos_exclusive_lock::. See also *Note glos_lock::. + See also *Note glos_transaction::. + + 12. shared tablespace + + Another way of referring to the *system tablespace*. + + See also *Note glos_system_tablespace::. + + 13. sharp checkpoint + + The process of *flushing* to disk all *dirty* buffer pool pages + whose redo entries are contained in certain portion of the *redo + log*. Occurs before InnoDB reuses a portion of a log file; the log + files are used in a circular fashion. Typically occurs with + write-intensive *workloads*. + + See also *Note glos_dirty_page::. See also *Note glos_flush::. + See also *Note glos_redo_log::. See also *Note glos_workload::. + + 14. shutdown + + The process of stopping the MySQL server. By default, this process + does cleanup operations for *InnoDB* tables, so it can *slow* to + shut down, but fast to start up later. If you skip the cleanup + operations, it is *fast* to shut down but must do the cleanup + during the next restart. + + The shutdown mode is controlled by the `innodb_fast_shutdown' + option. + + See also *Note glos_fast_shutdown::. See also *Note glos_innodb::. + See also *Note glos_slow_shutdown::. + + 15. slave server + + Frequently shortened to `slave'. A database *server* machine in a + *replication* scenario that receives changes from another server + (the *master*) and applies those same changes. Thus it maintains + the same contents as the master, although it might lag somewhat + behind. + + In MySQL, slave servers are commonly used in disaster recovery, to + take the place of a master servers that fails. They are also + commonly used for testing software upgrades and new settings, to + ensure that database configuration changes do not cause problems + with performance or reliability. + + Slave servers typically have high workloads, because they process + all the *DML* (write) operations relayed from the master, as well + as user queries. To ensure that slave servers can apply changes + from the master fast enough, they frequently have fast I/O devices + and sufficient CPU and memory to run multiple database instances + on the same slave server. For example, the master server might use + hard drive storage while the slave servers use *SSD*s. + + See also *Note glos_dml::. See also *Note glos_replication::. + See also *Note glos_server::. See also *Note glos_ssd::. + + 16. slow query log + + A type of *log* used for performance tuning of SQL statements + processed by the MySQL server. The log information is stored in a + file. You must enable this feature to use it. You control which + categories of `slow' SQL statements are logged. For more + information, see *Note slow-query-log::. + + See also *Note glos_general_query_log::. See also *Note + glos_log::. + + 17. slow shutdown + + A type of shutdown that does additional flushing operations before + completing. Specified by the configuration parameter + `innodb_fast_shutdown=0' or the command `SET GLOBAL + innodb_fast_shutdown=0;'. Although the shutdown itself can take + longer, that time will be saved on the subsequent startup. + + See also *Note glos_fast_shutdown::. See also *Note + glos_shutdown::. + + 18. snapshot + + A representation of data at a particular time, which remains the + same even as changes are *committed* by other *transactions*. Used + by certain *isolation levels* to allow *consistent reads*. + + See also *Note glos_commit::. See also *Note + glos_consistent_read::. See also *Note glos_isolation_level::. + See also *Note glos_transaction::. - * Another way for a connector to support a given authentication - method is to implement it directly in the client/server protocol. - Connector/Net uses this approach to provide support for Windows - native authentication. + 19. spin - * If a connector should be able to load client-side plugins from a - directory different from the default plugin directory, it must - implement some means for client users to specify the directory. - Possibilities for this include a command-line option or - environment variable from which the connector can obtain the - directory name. Standard MySQL client programs such as *Note - `mysql': mysql. and *Note `mysqladmin': mysqladmin. implement a - `--plugin-dir' option. See also *Note c-api-plugin-functions::. + A type of *wait* operation that continuously tests whether a + resource becomes available. This technique is used for resources + that are typically held only for brief periods, where it is more + efficient to wait in a `busy loop' than to put the thread to sleep + and perform a context switch. If the resource does not become + available within a short time, the spin loop ceases and another + wait technique is used. - * Proxy user support by a connector depends, as described earlier in - this section, on whether the authentication methods that it - supports permit proxy users. + See also *Note glos_latch::. See also *Note glos_lock::. See + also *Note glos_mutex::. See also *Note glos_wait::. - -File: manual.info, Node: limits, Prev: pluggable-authentication-restrictions, Up: restrictions + 20. SQL -E.10 Limits in MySQL -==================== + The Structured Query Language that is standard for performing + database operations. Often divided into the categories *DDL*, + *DML*, and *queries*. -* Menu: + See also *Note glos_ddl::. See also *Note glos_dml::. See also + *Note glos_query::. -* joins-limits:: Limits of Joins -* database-count-limit:: Limits on Number of Databases and Tables -* table-size-limit:: Limits on Table Size -* column-count-limit:: Table Column-Count and Row-Size Limits -* limits-windows:: Windows Platform Limitations + 21. SSD -This section lists current limits in MySQL 5.5. + Acronym for `solid-state drive'. A type of storage device with + different performance characteristics than a traditional hard disk + drive (*HDD*): smaller storage capacity, faster for random reads, + no moving parts, and with a number of considerations affecting + write performance. Its performance characteristics can influence + the throughput of a *disk-based* workload. - -File: manual.info, Node: joins-limits, Next: database-count-limit, Prev: limits, Up: limits + See also *Note glos_disk_based::. See also *Note glos_ssd::. -E.10.1 Limits of Joins ----------------------- + 22. statement-based replication -The maximum number of tables that can be referenced in a single join is -61. This also applies to the number of tables that can be referenced in -the definition of a view. + This form of *replication* requires some care with the setting for + the *innodb_autoinc_lock_mode* option, to avoid potential timing + problems with *auto-increment locking*. - -File: manual.info, Node: database-count-limit, Next: table-size-limit, Prev: joins-limits, Up: limits + See also *Note glos_auto_increment_locking::. See also *Note + glos_innodb_autoinc_lock_mode::. See also *Note + glos_replication::. See also *Note glos_row_based_replication::. -E.10.2 Limits on Number of Databases and Tables ------------------------------------------------ + 23. stemming -MySQL has no limit on the number of databases. The underlying file -system may have a limit on the number of directories. + The ability to search for different variations of a word based on + a common root word, such as singular and plural, or past, present, + and future verb tense. This feature is currently supported in + MyISAM *full-text search* feature but not in *FULLTEXT indexes* + for InnoDB tables. -MySQL has no limit on the number of tables. The underlying file system -may have a limit on the number of files that represent tables. -Individual storage engines may impose engine-specific constraints. -`InnoDB' permits up to 4 billion tables. + See also *Note glos_full_text_search::. See also *Note + glos_fulltext_index::. - -File: manual.info, Node: table-size-limit, Next: column-count-limit, Prev: database-count-limit, Up: limits + 24. stopword -E.10.3 Limits on Table Size ---------------------------- + In a *FULLTEXT index*, a word that is considered common or trivial + enough that it is omitted from the *search index* and ignored in + search queries. Different configuration settings control stopword + processing for `InnoDB' and `MyISAM' tables. -The effective maximum table size for MySQL databases is usually -determined by operating system constraints on file sizes, not by MySQL -internal limits. The following table lists some examples of operating -system file-size limits. This is only a rough guide and is not intended -to be definitive. For the most up-to-date information, be sure to check -the documentation specific to your operating system. + See also *Note glos_fulltext_index::. See also *Note + glos_search_index::. -Operating System File-size Limit -Win32 w/ FAT/FAT32 2GB/4GB -Win32 w/ NTFS 2TB (possibly larger) -Linux 2.2-Intel 32-bit 2GB (LFS: 4GB) -Linux 2.4+ (using ext3 file system) 4TB -Solaris 9/10 16TB -MacOS X w/ HFS+ 2TB + 25. storage engine -Windows users, please note that FAT and VFAT (FAT32) are _not_ -considered suitable for production use with MySQL. Use NTFS instead. + A component of the MySQL database that performs the low-level work + of storing, updating, and querying data. *InnoDB* is one such + storage engine. Different storage engines are designed with + different tradeoffs between factors such as memory usage versus + disk usage, read speed versus write speed, and speed versus + robustness. Each storage engine has an associated *table type*, so + we refer to *Note `InnoDB': innodb-storage-engine. tables, *Note + `MyISAM': myisam-storage-engine. tables, and so on. -On Linux 2.2, you can get `MyISAM' tables larger than 2GB in size by -using the Large File Support (LFS) patch for the ext2 file system. Most -current Linux distributions are based on kernel 2.4 or higher and -include all the required LFS patches. On Linux 2.4, patches also exist -for ReiserFS to get support for big files (up to 2TB). With JFS and XFS, -petabyte and larger files are possible on Linux. + The *MySQL Enterprise Backup* product is optimized for backing up + tables produced by the *InnoDB* storage engine. It can also back + up tables produced by MyISAM and other storage engines. -For a detailed overview about LFS in Linux, have a look at Andreas -Jaeger's `Large File Support in Linux' page at -`http://www.suse.de/~aj/linux_lfs.html'. + See also *Note glos_innodb::. See also *Note + glos_mysql_enterprise_backup::. See also *Note glos_table_type::. -If you do encounter a full-table error, there are several reasons why -it might have occurred: + 26. strict mode - * The disk might be full. + The general name for the setting controlled by the + `innodb_strict_mode' option. Turning on this setting causes + certain conditions that are normally treated as warnings, to be + considered errors. For example, certain invalid combinations of + options related to *file format* and *row format*, that normally + produce a warning and continue with default values, now cause the + `CREATE TABLE' operation to fail. - * The `InnoDB' storage engine maintains `InnoDB' tables within a - tablespace that can be created from several files. This enables a - table to exceed the maximum individual file size. The tablespace - can include raw disk partitions, which permits extremely large - tables. The maximum tablespace size is 64TB. + MySQL also has something called strict mode. - If you are using `InnoDB' tables and run out of room in the - `InnoDB' tablespace. In this case, the solution is to extend the - `InnoDB' tablespace. See *Note innodb-data-log-reconfiguration::. + See also *Note glos_file_format::. See also *Note + glos_innodb_strict_mode::. See also *Note glos_row_format::. - * You are using `MyISAM' tables on an operating system that supports - files only up to 2GB in size and you have hit this limit for the - data file or index file. + 27. sublist - * You are using a `MyISAM' table and the space required for the - table exceeds what is permitted by the internal pointer size. - `MyISAM' permits data and index files to grow up to 256TB by - default, but this limit can be changed up to the maximum - permissible size of 65,536TB (256^7 - 1 bytes). + Within the list structure that represents the buffer pool, pages + that are relatively old and relatively new are represented by + different portions of the list. A set of parameters control the + size of these portions and the dividing point between the new and + old pages. - If you need a `MyISAM' table that is larger than the default limit - and your operating system supports large files, the *Note `CREATE - TABLE': create-table. statement supports `AVG_ROW_LENGTH' and - `MAX_ROWS' options. See *Note create-table::. The server uses these - options to determine how large a table to permit. + See also *Note glos_buffer_pool::. See also *Note glos_eviction::. + See also *Note glos_list::. See also *Note glos_lru::. - If the pointer size is too small for an existing table, you can - change the options with *Note `ALTER TABLE': alter-table. to - increase a table's maximum permissible size. See *Note - alter-table::. + 28. supremum record - ALTER TABLE TBL_NAME MAX_ROWS=1000000000 AVG_ROW_LENGTH=NNN; + A *pseudo-record* in an index, representing the *gap* above the + largest value in that index. If a transaction has a statement such + as `SELECT ... FOR UPDATE ... WHERE col > 10;', and the largest + value in the column is 20, it is a lock on the supremum record + that prevents other transactions from inserting even larger values + such as 50, 100, and so on. - You have to specify `AVG_ROW_LENGTH' only for tables with *Note - `BLOB': blob. or *Note `TEXT': blob. columns; in this case, MySQL - can't optimize the space required based only on the number of rows. + See also *Note glos_gap::. See also *Note glos_infimum_record::. + See also *Note glos_pseudo_record::. - To change the default size limit for `MyISAM' tables, set the - `myisam_data_pointer_size', which sets the number of bytes used - for internal row pointers. The value is used to set the pointer - size for new tables if you do not specify the `MAX_ROWS' option. - The value of `myisam_data_pointer_size' can be from 2 to 7. A - value of 4 permits tables up to 4GB; a value of 6 permits tables - up to 256TB. + 29. system tablespace - You can check the maximum data and index sizes by using this - statement: + By default, this single data file stores all the table data for a + database, as well as all the metadata for InnoDB-related objects + (the *data dictionary*). - SHOW TABLE STATUS FROM DB_NAME LIKE 'TBL_NAME'; + Turning on the *innodb_file_per_table* option causes each newly + created table to be stored in its own *tablespace*, reducing the + size of, and dependencies on, the system tablespace. - You also can use *Note `myisamchk -dv /path/to/table-index-file': - myisamchk. See *Note show::, or *Note myisamchk::. + In MySQL 5.6 and higher, setting a value for the + `innodb_undo_tablespaces' + (http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_undo_tablespaces) + option splits the *undo log* into one or more separate tablespace + files. These files are still considered part of the system + tablespace. - Other ways to work around file-size limits for `MyISAM' tables are - as follows: + Keeping all table data in the system tablespace has implications + for the *MySQL Enterprise Backup* product (backing up one large + file rather than several smaller files), and prevents you from + using certain InnoDB features that require the newer *file format* + known as *Barracuda*. + + See also *Note glos_barracuda::. See also *Note + glos_data_dictionary::. See also *Note glos_file_format::. See + also *Note glos_file_per_table::. See also *Note + glos_ibdata_file::. See also *Note glos_innodb_file_per_table::. + See also *Note glos_mysql_enterprise_backup::. See also *Note + glos_tablespace::. See also *Note glos_undo_log::. + +*T* + + 1. table + + Each MySQL table is associated with a particular *storage engine*. + *InnoDB* tables have particular *physical* and *logical* + characteristics that affect performance, *scalability*, *backup*, + administration, and application development. + + In terms of file storage, each InnoDB table is either part of the + single big InnoDB *system tablespace*, or in a separate *`.ibd'* + file if the table is created in *file-per-table* mode. The + *`.ibd'* file holds data for the table and all its *indexes*, and + is known as a *tablespace*. + + InnoDB tables created in file-per-table mode can use the + *Barracuda* file format. Barracuda tables can use the *DYNAMIC row + format* or the *COMPRESSED row format*. These relatively new + settings enable a number of InnoDB features, such as *compression*, + *fast index creation*, and *off-page columns* + + For backward compatibility with MySQL 5.1 and earlier, InnoDB + tables inside the system tablespace must use the *Antelope* file + format, which supports the *compact row format* and the *redundant + row format*. + + The *rows* of an InnoDB table are organized into an index + structure known as the *clustered index*, with entries sorted + based on the *primary key* columns of the table. Data access is + optimized for queries that filter and sort on the primary key + columns, and each index contains a copy of the associated primary + key columns for each entry. Modifying values for any of the + primary key columns is an expensive operation. Thus an important + aspect of InnoDB table design is choosing a primary key with + columns that are used in the most important queries, and keeping + the primary key short, with rarely changing values. + + See also *Note glos_antelope::. See also *Note glos_backup::. + See also *Note glos_barracuda::. See also *Note + glos_clustered_index::. See also *Note glos_compact_row_format::. + See also *Note glos_compressed_row_format::. See also *Note + glos_compression::. See also *Note glos_dynamic_row_format::. + See also *Note glos_fast_index_creation::. See also *Note + glos_file_per_table::. See also *Note glos_ibd_file::. See also + *Note glos_index::. See also *Note glos_off_page_column::. See + also *Note glos_primary_key::. See also *Note + glos_redundant_row_format::. See also *Note glos_row::. See also + *Note glos_system_tablespace::. See also *Note glos_tablespace::. + + 2. table lock + + A lock that prevents any other *transaction* from accessing a + table. InnoDB makes considerable effort to make such locks + unnecessary, by using techniques such as *row locks* and + *consistent reads* for processing *DML* statements and *queries*. + You can create such a lock through SQL using the `LOCK TABLE' + statement; one of the steps in migrating from other database + systems or MySQL storage engines is to remove such statements + wherever practical. + + See also *Note glos_consistent_read::. See also *Note glos_dml::. + See also *Note glos_lock::. See also *Note glos_locking::. See + also *Note glos_query::. See also *Note glos_row_lock::. See + also *Note glos_table::. See also *Note glos_transaction::. + + 3. table scan See *Note glos_full_table_scan::. + + 4. table type + + Obsolete synonym for *storage engine*. We refer to *Note `InnoDB': + innodb-storage-engine. tables, *Note `MyISAM': + myisam-storage-engine. tables, and so on. + + See also *Note glos_innodb::. See also *Note + glos_storage_engine::. + + 5. tablespace + + A data file that can hold data for one or more tables. The *system + tablespace* contains the tables that make up the *data + dictionary*, and by default holds all the other InnoDB tables. + Turning on the `innodb_file_per_table' option allows newly created + tables to each have their own tablespace, with a separate data + file for each table. + + Tablespaces created by the built-in InnoDB storage engine are + upward compatible with the InnoDB Plugin. Tablespaces created by + the InnoDB Plugin are downward compatible with the built-in InnoDB + storage engine, if they use the *Antelope* file format. + + See also *Note glos_antelope::. See also *Note glos_barracuda::. + See also *Note glos_compressed_row_format::. See also *Note + glos_data_dictionary::. See also *Note glos_file_per_table::. + See also *Note glos_ibdata_file::. See also *Note + glos_innodb_file_per_table::. See also *Note + glos_system_tablespace::. + + 6. tablespace dictionary + + A representation of the *data dictionary* metadata for a table, + within the InnoDB *tablespace*. This metadata can be checked + against the *.frm file* for consistency when the table is opened, + to diagnose errors resulting from out-of-date `.frm' files. This + information is present for InnoDB tables that are part of the + *system tablespace*, as well as for tables that have their own + *.ibd file* because of the *file-per-table* option. + + See also *Note glos_data_dictionary::. See also *Note + glos_file_per_table::. See also *Note glos_frm_file::. See also + *Note glos_ibd_file::. See also *Note glos_system_tablespace::. + See also *Note glos_tablespace::. + + 7. temporary table + + A table whose data does not need to be truly permanent. For + example, temporary tables might be used as storage areas for + intermediate results in complicated calculations or + transformations; this intermediate data would not need to be + recovered after a crash. Database products can take various + shortcuts to improve the performance of operations on temporary + tables, by being less scrupulous about writing data to disk and + other measures to protect the data across restarts. + + Sometimes, the data itself is removed automatically at a set time, + such as when the transaction ends or when the session ends. With + some database products, the table itself is removed automatically + too. + + See also *Note glos_table::. + + 8. text collection + + The set of columns included in a *FULLTEXT index*. + + See also *Note glos_fulltext_index::. + + 9. thread + + A unit of processing that is typically more lightweight than a + *process*, allowing for greater *concurrency*. + + See also *Note glos_concurrency::. See also *Note + glos_master_thread::. See also *Note glos_process::. See also + *Note glos_pthreads::. + + 10. torn page + + An error condition that can occur due to a combination of I/O + device configuration and hardware failure. If data is written out + in chunks smaller than the InnoDB *page size* (by default, 16KB), + a hardware failure while writing could result in only part of a + page being stored to disk. The InnoDB *doublewrite buffer* guards + against this possibility. + + See also *Note glos_doublewrite_buffer::. + + 11. TPS + + Acronym for `*transactions* per second', a unit of measurement + sometimes used in benchmarks. Its value depends on the *workload* + represented by a particular benchmark test, combined with factors + that you control such as the hardware capacity and database + configuration. + + See also *Note glos_transaction::. See also *Note glos_workload::. + + 12. transaction + + Transactions are atomic units of work that can be committed or + rolled back. When a transaction makes multiple changes to the + database, either all the changes succeed when the transaction is + committed, or all the changes are undone when the transaction is + rolled back. - * If your large table is read only, you can use *Note - `myisampack': myisampack. to compress it. *Note - `myisampack': myisampack. usually compresses a table by at - least 50%, so you can have, in effect, much bigger tables. - *Note `myisampack': myisampack. also can merge multiple - tables into a single table. See *Note myisampack::. + Database transactions, as implemented by InnoDB, have properties + that are collectively known by the acronym *ACID*, for atomicity, + consistency, isolation, and durability. - * MySQL includes a `MERGE' library that enables you to handle a - collection of `MyISAM' tables that have identical structure - as a single `MERGE' table. See *Note merge-storage-engine::. + See also *Note glos_acid::. See also *Note glos_commit::. See + also *Note glos_isolation_level::. See also *Note glos_lock::. + See also *Note glos_rollback::. - * You are using the *Note `NDB': mysql-cluster. storage engine, in - which case you need to increase the values for the `DataMemory' and - `IndexMemory' configuration parameters in your `config.ini' file. - See *Note mysql-cluster-params-ndbd::. + 13. transaction ID - * You are using the `MEMORY' (`HEAP') storage engine; in this case - you need to increase the value of the `max_heap_table_size' system - variable. See *Note server-system-variables::. + An internal field associated with each row. This field is + physically changed by INSERT, UPDATE, and DELETE operations to + record which transaction has locked the row. - -File: manual.info, Node: column-count-limit, Next: limits-windows, Prev: table-size-limit, Up: limits + See also *Note glos_implicit_row_lock::. -E.10.4 Table Column-Count and Row-Size Limits ---------------------------------------------- + 14. .TRG file -There is a hard limit of 4096 columns per table, but the effective -maximum may be less for a given table. The exact limit depends on -several interacting factors. + A file containing *trigger* parameters. Files with this extension + are always included in backups produced by the `mysqlbackup' + command of the *MySQL Enterprise Backup* product. - * Every table (regardless of storage engine) has a maximum row size - of 65,535 bytes. Storage engines may place additional constraints - on this limit, reducing the effective maximum row size. + See also *Note glos_mysql_enterprise_backup::. See also *Note + glos_mysqlbackup_command::. See also *Note glos_trn_file::. - The maximum row size constrains the number (and possibly size) of - columns because the total length of all columns cannot exceed this - size. For example, `utf8' characters require up to three bytes per - character, so for a *Note `CHAR(255) CHARACTER SET utf8': char. - column, the server must allocate 255 x 3 = 765 bytes per value. - Consequently, a table cannot contain more than 65,535 / 765 = 85 - such columns. + 15. .TRN file - Storage for variable-length columns includes length bytes, which - are assessed against the row size. For example, a *Note - `VARCHAR(255) CHARACTER SET utf8': char. column takes two bytes to - store the length of the value, so each value can take up to 767 - bytes. + A file containing trigger namespace information. Files with this + extension are always included in backups produced by the + `mysqlbackup' command of the *MySQL Enterprise Backup* product. - *Note `BLOB': blob. and *Note `TEXT': blob. columns count from one - to four plus eight bytes each toward the row-size limit because - their contents are stored separately from the rest of the row. + See also *Note glos_mysql_enterprise_backup::. See also *Note + glos_mysqlbackup_command::. See also *Note glos_trg_file::. - Declaring columns `NULL' can reduce the maximum number of columns - permitted. For *Note `MyISAM': myisam-storage-engine. tables, - `NULL' columns require additional space in the row to record - whether their values are `NULL'. Each `NULL' column takes one bit - extra, rounded up to the nearest byte. The maximum row length in - bytes can be calculated as follows: + 16. troubleshooting - row length = 1 - + (SUM OF COLUMN LENGTHS) - + (NUMBER OF NULL COLUMNS + DELETE_FLAG + 7)/8 - + (NUMBER OF VARIABLE-LENGTH COLUMNS) + Resources for troubleshooting InnoDB reliability and performance + issues include: the Information Schema tables. - DELETE_FLAG is 1 for tables with static row format. Static tables - use a bit in the row record for a flag that indicates whether the - row has been deleted. DELETE_FLAG is 0 for dynamic tables because - the flag is stored in the dynamic row header. For information - about *Note `MyISAM': myisam-storage-engine. table formats, see - *Note myisam-table-formats::. + 17. truncate - These calculations do not apply for *Note `InnoDB': - innodb-storage-engine. tables. Storage size is the same for `NULL' - and `NOT NULL' columns. + A *DDL* operation that removes the entire contents of a table, + while leaving the table and related indexes intact. Contrast with + *drop*. Although conceptually it has the same result as a `DELETE' + statement with no `WHERE' clause, it operates differently behind + the scenes: InnoDB creates a new empty table, drops the old table, + then renames the new table to take the place of the old one. + Because this is a DDL operation, it cannot be *rolled back*. - The following statement to create table `t1' succeeds because the - columns require 32,765 + 2 bytes and 32,766 + 2 bytes, which falls - within the maximum row size of 65,535 bytes: + If the table being truncated contains foreign keys that reference + another table, the truncation operation uses a slower method of + operation, deleting one row at a time so that corresponding rows + in the referenced table can be deleted as needed by any `ON DELETE + CASCADE' clause. (MySQL 5.5 and higher do not allow this slower + form of truncate, and return an error instead if foreign keys are + involved. In this case, use a `DELETE' statement instead. - mysql> CREATE TABLE t1 - -> (c1 VARCHAR(32765) NOT NULL, c2 VARCHAR(32766) NOT NULL) - -> ENGINE = MyISAM CHARACTER SET latin1; - Query OK, 0 rows affected (0.02 sec) + See also *Note glos_ddl::. See also *Note glos_drop::. See also + *Note glos_foreign_key::. See also *Note glos_rollback::. - The following statement to create table `t2' fails because the - columns are `NULL' and *Note `MyISAM': myisam-storage-engine. - requires additional space that causes the row size to exceed - 65,535 bytes: + 18. tuple - mysql> CREATE TABLE t2 - -> (c1 VARCHAR(32765) NULL, c2 VARCHAR(32766) NULL) - -> ENGINE = MyISAM CHARACTER SET latin1; - ERROR 1118 (42000): Row size too large. The maximum row size for the - used table type, not counting BLOBs, is 65535. You have to change some - columns to TEXT or BLOBs + A technical term designating an ordered set of elements. It is an + abstract notion, used in formal discussions of database theory. In + the database field, tuples are usually represented by the columns + of a table row. They could also be represented by the result sets + of queries, for example, queries that retrieved only some columns + of a table, or columns from joined tables. - The following statement to create table `t3' fails because - although the column length is within the maximum length of 65,535 - bytes, two additional bytes are required to record the length, - which causes the row size to exceed 65,535 bytes: + See also *Note glos_cursor::. - mysql> CREATE TABLE t3 - -> (c1 VARCHAR(65535) NOT NULL) - -> ENGINE = MyISAM CHARACTER SET latin1; - ERROR 1118 (42000): Row size too large. The maximum row size for the - used table type, not counting BLOBs, is 65535. You have to change some - columns to TEXT or BLOBs + 19. two-phase commit - Reducing the column length to 65,533 or less permits the statement - to succeed. + An operation that is part of a distributed *transaction*, under the + *XA* specification. (Sometimes abbreviated as 2PC.) When multiple + databases participate in the transaction, either all databases + *commit* the changes, or all databases *roll back* the changes. - * Each table has an `.frm' file that contains the table definition. - The server uses the following expression to check some of the - table information stored in the file against an upper limit of - 64KB: + See also *Note glos_commit::. See also *Note glos_rollback::. + See also *Note glos_transaction::. See also *Note glos_xa::. - if (info_length+(ulong) create_fields.elements*FCOMP+288+ - n_length+int_length+com_length > 65535L || int_count > 255) +*U* - The portion of the information stored in the `.frm' file that is - checked against the expression cannot grow beyond the 64KB limit, - so if the table definition reaches this size, no more columns can - be added. + 1. undo - The relevant factors in the expression are: + Data that is maintained throughout the life of a *transaction*, + recording all changes so that they can be undone in case of a + *rollback* operation. - * `info_length' is space needed for `screens.' This is related - to MySQL's Unireg heritage. + See also *Note glos_rollback::. See also *Note glos_transaction::. + See also *Note glos_undo_log::. - * `create_fields.elements' is the number of columns. + 2. undo buffer See *Note glos_undo_log::. - * `FCOMP' is 17. + 3. undo log - * `n_length' is the total length of all column names, including - one byte per name as a separator. + A storage area that holds copies of data modified by active + *transactions*. If another transaction needs to see the original + data (as part of a *consistent read* operation), the unmodified + data is retrieved from this storage area. This area is physically + part of the *system tablespace*. It is split into separate + portions, the *insert undo buffer* and the *update undo buffer*. + Collectively, these parts are also known as the *rollback + segment*, a familiar term for Oracle DBAs. - * `int_length' is related to the list of values for *Note - `ENUM': enum. and *Note `SET': set. columns. + See also *Note glos_consistent_read::. See also *Note + glos_rollback_segment::. See also *Note glos_system_tablespace::. + See also *Note glos_transaction::. - * `com_length' is the total length of column and table comments. + 4. unique constraint - Thus, using long column names can reduce the maximum number of - columns, as can the inclusion of *Note `ENUM': enum. or *Note - `SET': set. columns, or use of column, index, or table comments. + A kind of *constraint* that asserts that a column cannot contain + any duplicate values. In terms of *relational* algebra, it is used + to specify 1-to-1 relationships. For efficiency in checking + whether a value can be inserted, (that is, the value does not + already exist in the column), a unique constraint is supported by + an underlying *unique index*. - * Individual storage engines might impose additional restrictions - that limit table column count. Examples: + See also *Note glos_constraint::. See also *Note + glos_relational::. See also *Note glos_unique_index::. - * *Note `InnoDB': innodb-storage-engine. permits up to 1000 - columns. + 5. unique index - * *Note `InnoDB': innodb-storage-engine. restricts row size to - something less than half a database page (approximately 8000 - bytes), not including *Note `VARBINARY': binary-varbinary, - *Note `VARCHAR': char, *Note `BLOB': blob, or *Note `TEXT': - blob. columns. + An index on a column or set of columns that have a *unique + constraint*. Because the index is known not to contain any + duplicate values, certain kinds of lookups and count operations + are more efficient than in the normal kind of index. Most of the + lookups against this type of index are simply to determine if a + certain value exists or not. The number of values in the index is + the same as the number of rows in the table, or at least the + number of rows with non-null values for the associated columns. - * Different *Note `InnoDB': innodb-storage-engine. storage - formats (`COMPRESSED', `REDUNDANT') use different amounts of - page header and trailer data, which affects the amount of - storage available for rows. + See also *Note glos_cardinality::. See also *Note + glos_unique_constraint::. See also *Note glos_unique_key::. - -File: manual.info, Node: limits-windows, Prev: column-count-limit, Up: limits + 6. unique key -E.10.5 Windows Platform Limitations ------------------------------------ + The set of columns (one or more) comprising a *unique index*. When + you can define a `WHERE' condition that matches exactly one row, + and the query can use an associated unique index, the lookup and + error handling can be performed very efficiently. -The following limitations apply to use of MySQL on the Windows platform: + See also *Note glos_cardinality::. See also *Note + glos_unique_constraint::. See also *Note glos_unique_index::. - * *Process memory* +*V* - On Windows 32-bit platforms, it is not possible by default to use - more than 2GB of RAM within a single process, including MySQL. - This is because the physical address limit on Windows 32-bit is - 4GB and the default setting within Windows is to split the virtual - address space between kernel (2GB) and user/applications (2GB). + 1. victim - Some versions of Windows have a boot time setting to enable larger - applications by reducing the kernel application. Alternatively, - to use more than 2GB, use a 64-bit version of Windows. + The transaction that is automatically chosen to be rolled back + when a *deadlock* is detected. InnoDB rolls back the transaction + that has updated the fewest rows. - * *File system aliases* + See also *Note glos_deadlock::. See also *Note + glos_deadlock_detection::. See also *Note + glos_innodb_lock_wait_timeout::. - When using `MyISAM' tables, you cannot use aliases within Windows - link to the data files on another volume and then link back to the - main MySQL `datadir' location. +*W* - This facility is often used to move the data and index files to a - RAID or other fast solution, while retaining the main `.frm' files - in the default data directory configured with the `datadir' option. + 1. wait - * *Limited number of ports* + When an operation, such as acquiring a *lock*, *mutex*, or + *latch*, cannot be completed immediately, InnoDB pauses and tries + again. The mechanism for pausing is elaborate enough that this + operation has its own name, the *wait*. Individual threads are + paused using a combination of internal InnoDB scheduling, + operating system `wait()' calls, and short-duration *spin* loops. - Windows systems have about 4,000 ports available for client - connections, and after a connection on a port closes, it takes two - to four minutes before the port can be reused. In situations where - clients connect to and disconnect from the server at a high rate, - it is possible for all available ports to be used up before closed - ports become available again. If this happens, the MySQL server - appears to be unresponsive even though it is running. Note that - ports may be used by other applications running on the machine as - well, in which case the number of ports available to MySQL is - lower. + On systems with heavy load and many transactions, you might use + the output from the `SHOW INNODB STATUS' command to determine + whether threads are spending too much time waiting, and if so, how + you can improve *concurrency*. - For more information about this problem, see - `http://support.microsoft.com/default.aspx?scid=kb;en-us;196271'. + See also *Note glos_concurrency::. See also *Note glos_latch::. + See also *Note glos_lock::. See also *Note glos_mutex::. See + also *Note glos_spin::. - * *`DATA DIRECTORY' and `INDEX DIRECTORY'* + 2. warm backup - The `DATA DIRECTORY' and `INDEX DIRECTORY' options for *Note - `CREATE TABLE': create-table. are ignored on Windows, because - MySQL does not support Windows symbolic links. These options also - are ignored on systems that have a nonfunctional `realpath()' call. + A *backup* taken while the database is running, but that restricts + some database operations during the backup process. For example, + tables might become read-only. For busy applications and web + sites, you might prefer a *hot backup*. - * **Note `DROP DATABASE': drop-database.* + See also *Note glos_backup::. See also *Note glos_cold_backup::. + See also *Note glos_hot_backup::. - You cannot drop a database that is in use by another session. + 3. warm up - * *Case-insensitive names* + To run a system under a typical *workload* for some time after + startup, so that the *buffer pool* and other memory regions are + filled as they would be under normal conditions. - File names are not case sensitive on Windows, so MySQL database - and table names are also not case sensitive on Windows. The only - restriction is that database and table names must be specified - using the same case throughout a given statement. See *Note - identifier-case-sensitivity::. + This process happens naturally over time when a MySQL server is + restarted or subjected to a new workload. Starting in MySQL 5.6, + you can speed up the warmup process by setting the configuration + variables `innodb_buffer_pool_dump_at_shutdown=ON' + (http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_buffer_pool_dump_at_shutdown) + and `innodb_buffer_pool_load_at_startup=ON' + (http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_buffer_pool_load_at_startup), + to bring the contents of the buffer pool back into memory after a + restart. Typically, you run a workload for some time to warm up + the buffer pool before running performance tests, to ensure + consistent results across multiple runs; otherwise, performance + might be artificially low during the first run. - * *Directory and file names* + See also *Note glos_buffer_pool::. See also *Note glos_workload::. - On Windows, MySQL Server supports only directory and file names - that are compatible with the current ANSI code pages. For - example, the following Japanese directory name will not work in - the Western locale (code page 1252): + 4. Windows - datadir="C:/ç§ãŸã¡ã®ãƒ—ロジェクトã®ãƒ‡ãƒ¼ã‚¿" + The built-in *InnoDB* storage engine and the InnoDB *Plugin* are + supported on all the same Microsoft Windows versions as the MySQL + server. The *MySQL Enterprise Backup* product has more + comprehensive support for Windows systems than the *InnoDB Hot + Backup* product that it supercedes. - The same limitation applies to directory and file names referred - to in SQL statements, such as the data file path name in *Note - `LOAD DATA INFILE': load-data. + See also *Note glos_innodb::. See also *Note + glos_innodb_hot_backup::. See also *Note + glos_mysql_enterprise_backup::. See also *Note glos_plugin::. - * *The ``\'' path name separator character* + 5. workload - Path name components in Windows are separated by the ``\'' - character, which is also the escape character in MySQL. If you are - using *Note `LOAD DATA INFILE': load-data. or *Note `SELECT ... - INTO OUTFILE': select-into, use Unix-style file names with ``/'' - characters: + The combination and volume of *SQL* and other database operations, + performed by a database application during typical or peak usage. + You can subject the database to a particular workload during + performance testing to identify *bottlenecks*, or during capacity + planning. - mysql> LOAD DATA INFILE 'C:/tmp/skr.txt' INTO TABLE skr; - mysql> SELECT * INTO OUTFILE 'C:/tmp/skr.txt' FROM skr; + See also *Note glos_bottleneck::. See also *Note glos_cpu_bound::. + See also *Note glos_disk_bound::. See also *Note glos_sql::. - Alternatively, you must double the ``\'' character: + 6. write combining - mysql> LOAD DATA INFILE 'C:\\tmp\\skr.txt' INTO TABLE skr; - mysql> SELECT * INTO OUTFILE 'C:\\tmp\\skr.txt' FROM skr; + An optimization technique that reduces write operations when + *dirty pages* are *flushed* from the InnoDB *buffer pool*. If a + row in a page is updated multiple times, or multiple rows on the + same page are updated, all of those changes are stored to the data + files in a single write operation rather than one write for each + change. - * *Problems with pipes* + See also *Note glos_buffer_pool::. See also *Note + glos_dirty_page::. See also *Note glos_flush::. - Pipes do not work reliably from the Windows command-line prompt. - If the pipe includes the character `^Z' / `CHAR(24)', Windows - thinks that it has encountered end-of-file and aborts the program. +*X* - This is mainly a problem when you try to apply a binary log as - follows: + 1. XA - C:\> mysqlbinlog BINARY_LOG_FILE | mysql --user=root + A standard interface for coordinating distributed *transactions*, + allowing multiple databases to participate in a transaction while + maintaining *ACID* compliance. For full details, see *Note xa::. - If you have a problem applying the log and suspect that it is - because of a `^Z' / `CHAR(24)' character, you can use the - following workaround: + XA Distributed Transaction support is turned on by default. If you + are not using this feature, note that it adds an extra fsync for + each transaction, which may adversely affect performance. - C:\> mysqlbinlog BINARY_LOG_FILE --result-file=/tmp/bin.sql - C:\> mysql --user=root --execute "source /tmp/bin.sql" + See also *Note glos_commit::. See also *Note glos_transaction::. + See also *Note glos_two_phase_commit::. - The latter command also can be used to reliably read in any SQL - file that may contain binary data. +*Y* + + 1. young + + A characteristic of a *page* in the `InnoDB' *buffer pool* meaning + it has been accessed recently, and so is moved within the buffer + pool data structure so that it will not be *flushed* soon by the + *LRU* algorithm. This term is used in some *information schema* + column names of tables related to the buffer pool. + + See also *Note glos_buffer_pool::. See also *Note glos_flush::. + See also *Note glos_information_schema::. See also *Note + glos_lru::. See also *Note glos_page::. [index] * Menu: @@ -260422,7 +268937,7 @@ * -? option (MySQL Cluster programs): mysql-cluster-program-options-common. (line 45) * -append option (ndb_restore): mysql-cluster-programs-ndb-restore. - (line 448) + (line 446) * -backup_path option (ndb_restore): mysql-cluster-programs-ndb-restore. (line 298) * -backupid option (ndb_restore): mysql-cluster-programs-ndb-restore. @@ -260453,36 +268968,36 @@ (line 115) * -disable option prefix: option-modifiers. (line 6) * -disable-indexes option (ndb_restore): mysql-cluster-programs-ndb-restore. - (line 712) + (line 710) * -dont_ignore_systab_0 option (ndb_restore): mysql-cluster-programs-ndb-restore. - (line 479) + (line 477) * -e option (ndb_mgm): mysql-cluster-programs-ndb-mgm. (line 41) * -enable option prefix: option-modifiers. (line 6) * -exclude-databases option (ndb_restore): mysql-cluster-programs-ndb-restore. - (line 598) + (line 596) * -exclude-missing-columns option (ndb_restore): mysql-cluster-programs-ndb-restore. - (line 697) + (line 695) * -exclude-tables option (ndb_restore): mysql-cluster-programs-ndb-restore. - (line 608) + (line 606) * -execute option (ndb_mgm): mysql-cluster-programs-ndb-mgm. (line 41) * -f option (ndb_mgmd): mysql-cluster-programs-ndb-mgmd. (line 172) * -fields-enclosed-by option (ndb_restore): mysql-cluster-programs-ndb-restore. - (line 379) + (line 377) * -fields-optionally-enclosed-by option (ndb_restore): mysql-cluster-programs-ndb-restore. - (line 393) + (line 391) * -fields-terminated-by option (ndb_restore): mysql-cluster-programs-ndb-restore. - (line 409) + (line 407) * -help option (MySQL Cluster programs): mysql-cluster-program-options-common. (line 45) * -hex option (ndb_restore): mysql-cluster-programs-ndb-restore. - (line 424) + (line 422) * -include-databases option (ndb_restore): mysql-cluster-programs-ndb-restore. - (line 535) + (line 533) * -include-tables option (ndb_restore): mysql-cluster-programs-ndb-restore. - (line 545) + (line 543) * -initial option (ndb_mgmd): mysql-cluster-programs-ndb-mgmd. (line 249) * -initial option (ndbd): mysql-cluster-programs-ndbd. @@ -260513,24 +269028,28 @@ (line 273) * -ndb-connectstring option (MySQL Cluster programs): mysql-cluster-program-options-common. (line 70) +* -ndb-deferred-constraints option (MySQL Cluster): mysql-cluster-program-options-mysqld. + (line 191) +* -ndb-distribution option (MySQL Cluster): mysql-cluster-program-options-mysqld. + (line 218) * -ndb-log-update-as-write (mysqld option): mysql-cluster-replication-conflict-resolution. - (line 78) + (line 83) * -ndb-mgmd-host option (MySQL Cluster programs): mysql-cluster-program-options-common. (line 130) * -ndb-mgmd-host option (MySQL Cluster): mysql-cluster-program-options-mysqld. - (line 191) + (line 242) * -ndb-nodegroup-map option (ndb_restore): mysql-cluster-programs-ndb-restore. - (line 488) + (line 486) * -ndb-nodeid option (MySQL Cluster programs): mysql-cluster-program-options-common. (line 148) * -ndb-optimized-node-selection option (MySQL Cluster): mysql-cluster-program-options-common. (line 164) * -no-binlog option (ndb_restore): mysql-cluster-programs-ndb-restore. - (line 494) + (line 492) * -no-nodeid-checks option (ndb_mgmd): mysql-cluster-programs-ndb-mgmd. (line 89) * -no-restore-disk-objects option (ndb_restore): mysql-cluster-programs-ndb-restore. - (line 500) + (line 498) * -nodaemon option (ndb_mgmd): mysql-cluster-programs-ndb-mgmd. (line 301) * -nostart option (ndbd): mysql-cluster-programs-ndbd. @@ -260548,27 +269067,27 @@ * -P option (ndb_mgmd): mysql-cluster-programs-ndb-mgmd. (line 324) * -parallelism option (ndb_restore): mysql-cluster-programs-ndb-restore. - (line 507) + (line 505) * -password option: password-security-user. (line 17) * -preserve-trailing-spaces option (ndb_restore): mysql-cluster-programs-ndb-restore. (line 254) * -print option (ndb_restore): mysql-cluster-programs-ndb-restore. - (line 473) + (line 471) * -print-full-config option (ndb_mgmd): mysql-cluster-programs-ndb-mgmd. (line 324) * -print_data option (ndb_restore): mysql-cluster-programs-ndb-restore. - (line 353) + (line 351) * -print_log option (ndb_restore): mysql-cluster-programs-ndb-restore. - (line 468) + (line 466) * -print_metadata option (ndb_restore): mysql-cluster-programs-ndb-restore. - (line 463) + (line 461) * -progress-frequency option (ndb_restore): mysql-cluster-programs-ndb-restore. - (line 513) + (line 511) * -promote-attributes option (ndb_restore): mysql-cluster-programs-ndb-restore. (line 201) * -rebuild-indexes option (ndb_restore): mysql-cluster-programs-ndb-restore. - (line 723) + (line 721) * -reload option (ndb_mgmd): mysql-cluster-programs-ndb-mgmd. (line 344) * -remove option (ndb_mgmd): mysql-cluster-programs-ndb-mgmd. @@ -260590,22 +269109,28 @@ * -restore_skip-table-check option (ndb_restore): mysql-cluster-programs-ndb-restore. (line 176) * -rewrite-database option (ndb_restore): mysql-cluster-programs-ndb-restore. - (line 756) + (line 754) * -skip option prefix: option-modifiers. (line 6) * -skip-broken-objects option (ndb_restore): mysql-cluster-programs-ndb-restore. - (line 732) + (line 730) * -skip-unknown-objects option (ndb_restore): mysql-cluster-programs-ndb-restore. - (line 744) + (line 742) * -tab option (ndb_restore): mysql-cluster-programs-ndb-restore. - (line 367) + (line 365) * -usage option (MySQL Cluster programs): mysql-cluster-program-options-common. (line 45) * -V option (MySQL Cluster programs): mysql-cluster-program-options-common. (line 177) * -verbose option (ndb_restore): mysql-cluster-programs-ndb-restore. - (line 519) + (line 517) * -version option (MySQL Cluster programs): mysql-cluster-program-options-common. (line 177) +* .ARM file: glossary. (line 145) +* .ARZ file: glossary. (line 155) +* .frm file: glossary. (line 1639) +* .ibd file: glossary. (line 1958) +* .ibz file: glossary. (line 1990) +* .MRG file: glossary. (line 2747) * .my.cnf file <1>: multiple-server-clients. (line 34) * .my.cnf file <2>: access-denied. (line 101) @@ -260613,11 +269138,17 @@ (line 56) * .my.cnf file <4>: option-files. (line 11) * .my.cnf file: connecting. (line 220) +* .MYD file: glossary. (line 2809) +* .MYI file: glossary. (line 2819) * .mysql_history file <1>: password-security-user. (line 88) * .mysql_history file: mysql-history-file. (line 6) +* .OPT file: glossary. (line 3058) +* .PAR file: glossary. (line 3205) * .pid (process ID) file: myisam-maintenance-schedule. (line 17) +* .TRG file: glossary. (line 4467) +* .TRN file: glossary. (line 4476) * / (division): arithmetic-functions. (line 99) * /etc/passwd <1>: select-into. (line 24) @@ -260628,8 +269159,8 @@ * := (assignment): user-variables. (line 6) * < (less than): comparison-operators. (line 109) -* <<: calculating-days. (line 6) -* << (left shift): bit-functions. (line 51) +* << (left shift) <1>: bit-functions. (line 51) +* << (left shift): calculating-days. (line 6) * <= (less than or equal): comparison-operators. (line 102) * <=> (equal to): comparison-operators. @@ -260688,7 +269219,7 @@ * \Z (Control+Z) ASCII 26: string-literals. (line 75) * ^ (bitwise XOR): bit-functions. (line 38) * _ (wildcard character): string-literals. (line 78) -* _rowid: create-table. (line 416) +* _rowid: create-table. (line 417) * `: identifiers. (line 20) * abort-slave-event-count option, mysqld: replication-options-slave. (line 34) @@ -260703,11 +269234,12 @@ (line 6) * access privileges: privilege-system. (line 16) * account names: account-names. (line 6) -* account privileges, adding: adding-users. (line 6) +* accounts, adding privileges: adding-users. (line 6) * accounts, anonymous user: default-privileges. (line 6) * accounts, default: default-privileges. (line 6) * accounts, root: default-privileges. (line 6) -* ACID <1>: innodb-storage-engine. +* ACID <1>: glossary. (line 15) +* ACID <2>: innodb-storage-engine. (line 24) * ACID: ansi-diff-transactions. (line 6) @@ -260719,9 +269251,11 @@ * Active Server Pages (ASP): connector-odbc-usagenotes-apptips-microsoft-asp. (line 6) * ActiveState Perl: activestate-perl. (line 6) -* adaptive hash index <1>: innodb-other-changes-innodb_adaptive_hash_index. +* adaptive flushing: glossary. (line 53) +* adaptive hash index <1>: glossary. (line 69) +* adaptive hash index <2>: innodb-other-changes-innodb_adaptive_hash_index. (line 6) -* adaptive hash index <2>: innodb-performance-adaptive_hash_index. +* adaptive hash index <3>: innodb-performance-adaptive_hash_index. (line 6) * adaptive hash index: innodb-adaptive-hash. (line 6) @@ -260730,7 +269264,7 @@ * add-drop-trigger option, mysqldump: mysqldump. (line 354) * add-locks option, mysqldump: mysqldump. (line 365) * ADDDATE(): date-and-time-functions. - (line 135) + (line 147) * adding, character sets: adding-character-set. (line 12) * adding, native functions: adding-native-function. @@ -260745,12 +269279,14 @@ * addition (+): arithmetic-functions. (line 55) * ADDTIME(): date-and-time-functions. - (line 153) + (line 165) * addtodest option, mysqlhotcopy: mysqlhotcopy. (line 87) * administration of MySQL Cluster: mysql-cluster-programs-ndb-mgm. (line 6) * administration, server: mysqladmin. (line 6) * administrative programs: programs-overview. (line 147) +* ADO.NET: connector-net-visual-studio-entity-framework. + (line 6) * AES_DECRYPT(): encryption-functions. (line 102) * AES_ENCRYPT(): encryption-functions. @@ -260758,6 +269294,7 @@ * After create, thread state: general-thread-states. (line 11) * age, calculating: date-calculations. (line 6) +* AIO: glossary. (line 93) * alias names, case sensitivity: identifier-case-sensitivity. (line 6) * aliases, for expressions: group-by-hidden-columns. @@ -260769,7 +269306,7 @@ * aliases, on expressions: select. (line 108) * ALL <1>: all-subqueries. (line 6) * ALL: select. (line 355) -* ALL join type, optimizer: explain-output. (line 350) +* ALL join type, optimizer: explain-output. (line 352) * all-databases option, mysqlcheck: mysqlcheck. (line 199) * all-databases option, mysqldump: mysqldump. (line 372) * all-in-1 option, mysqlcheck: mysqlcheck. (line 205) @@ -260782,7 +269319,7 @@ * allow-suspicious-udfs option, mysqld: server-options. (line 83) * ALLOW_INVALID_DATES SQL mode: server-sql-mode. (line 91) * allowold option, mysqlhotcopy: mysqlhotcopy. (line 92) -* ALTER COLUMN: alter-table. (line 323) +* ALTER COLUMN: alter-table. (line 327) * ALTER DATABASE: alter-database. (line 6) * ALTER EVENT: alter-event. (line 6) * ALTER EVENT, and replication: replication-features-invoked. @@ -260820,6 +269357,7 @@ * ANSI SQL mode: server-sql-mode. (line 59) * ANSI_QUOTES SQL mode: server-sql-mode. (line 109) * answering questions, etiquette: mailing-list-use. (line 6) +* Antelope: glossary. (line 100) * Antelope file format: innodb-file-format. (line 14) * ANY: any-in-some-subqueries. (line 6) @@ -260828,15 +269366,17 @@ (line 6) * API nodes: mysql-cluster-programs-mysqld. (line 6) -* API's, list of: packages. (line 6) * APIs: connectors-apis. (line 24) +* APIs, list of: packages. (line 6) * APIs, Perl: apis-perl. (line 6) +* application programming interface (API): glossary. (line 120) +* apply: glossary. (line 126) * apply-slave-statements option, mysqldump: mysqldump. (line 391) * apply_status table (OBSOLETE): mysql-cluster-replication-schema. (line 46) * approximate-value literals: precision-math. (line 14) * Arbitration: mysql-cluster-ndbd-definition. - (line 2517) + (line 2485) * ArbitrationDelay <1>: mysql-cluster-api-definition. (line 151) * ArbitrationDelay: mysql-cluster-mgm-definition. @@ -260846,7 +269386,7 @@ * ArbitrationRank: mysql-cluster-mgm-definition. (line 177) * ArbitrationTimeout: mysql-cluster-ndbd-definition. - (line 2497) + (line 2465) * ARCHIVE storage engine <1>: archive-storage-engine. (line 6) * ARCHIVE storage engine: storage-engines. (line 22) @@ -260865,6 +269405,10 @@ * ASCII(): string-functions. (line 103) * ASIN(): mathematical-functions. (line 78) +* ASP.NET <1>: connector-net-programming-asp-provider. + (line 6) +* ASP.NET: connector-net-tutorials. + (line 18) * assignment operator, :=: assignment-operators. (line 15) * assignment operator, =: assignment-operators. @@ -260873,6 +269417,7 @@ (line 6) * AsText(): functions-to-convert-geometries-between-formats. (line 16) +* asynchronous I/O <1>: glossary. (line 165) * asynchronous I/O: innodb-performance-aio-linux. (line 6) * asynchronous replication: mysql-cluster-replication. @@ -260881,6 +269426,8 @@ (line 101) * ATAN2(): mathematical-functions. (line 111) +* atomic: glossary. (line 184) +* atomic instruction: glossary. (line 194) * attackers, security against: security-against-attack. (line 6) * attribute demotion, replication: replication-features-different-data-types. @@ -260895,9 +269442,9 @@ * AUTHENTICATION_PAM_LOG environment variable: pam-authentication-plugin-debugging. (line 6) * authentication_windows_log_level system variable: server-system-variables. - (line 620) + (line 628) * authentication_windows_use_principal_name system variable: server-system-variables. - (line 654) + (line 662) * auto-generate-sql option, mysqlslap: mysqlslap. (line 210) * auto-generate-sql-add-autoincrement option, mysqlslap: mysqlslap. (line 215) @@ -260914,6 +269461,8 @@ (line 247) * auto-generate-sql-write-number option, mysqlslap: mysqlslap. (line 252) +* auto-increment: glossary. (line 199) +* auto-increment locking: glossary. (line 232) * AUTO-INCREMENT, ODBC: connector-odbc-usagenotes-functionality-last-insert-id. (line 6) * auto-rehash option, mysql: mysql-command-options. @@ -260931,19 +269480,21 @@ (line 21) * auto_increment_offset system variable: replication-options-master. (line 222) +* autocommit: glossary. (line 248) * autocommit session variable: server-system-variables. - (line 695) + (line 703) * automatic_sp_privileges system variable: server-system-variables. - (line 746) + (line 754) * AutoReconnect, API and SQL nodes: mysql-cluster-api-definition. (line 270) * AVG(): group-by-functions. (line 58) * AVG(DISTINCT): group-by-functions. (line 58) +* B-tree: glossary. (line 266) * B-tree indexes <1>: innodb-physical-structure. (line 6) * B-tree indexes: index-btree-hash. (line 6) * back_log system variable: server-system-variables. - (line 773) + (line 781) * background threads, master <1>: innodb-performance-adaptive_flushing. (line 6) * background threads, master: innodb-performance-thread_io_rate. @@ -260955,6 +269506,8 @@ * backslash, escape character: string-literals. (line 6) * backspace (\b) <1>: load-data. (line 418) * backspace (\b): string-literals. (line 71) +* backticks: glossary. (line 285) +* backup: glossary. (line 303) * backup identifiers, native backup and restore: mysql-cluster-backup-using-management-client. (line 94) * backup option, myisamchk: myisamchk-repair-options. @@ -260963,23 +269516,23 @@ * BackupDataBufferSize <1>: mysql-cluster-backup-configuration. (line 8) * BackupDataBufferSize: mysql-cluster-ndbd-definition. - (line 2950) + (line 2918) * BackupDataDir: mysql-cluster-ndbd-definition. (line 322) * BackupLogBufferSize <1>: mysql-cluster-backup-configuration. (line 13) * BackupLogBufferSize: mysql-cluster-ndbd-definition. - (line 2974) + (line 2942) * BackupMaxWriteSize <1>: mysql-cluster-backup-configuration. (line 29) * BackupMaxWriteSize: mysql-cluster-ndbd-definition. - (line 3072) + (line 3040) * BackupMemory <1>: mysql-cluster-backup-configuration. (line 18) * BackupMemory: mysql-cluster-ndbd-definition. - (line 3009) + (line 2977) * BackupReportFrequency: mysql-cluster-ndbd-definition. - (line 3033) + (line 3001) * backups: backup-and-recovery. (line 15) * backups, databases and tables <1>: mysqlhotcopy. (line 6) @@ -261003,9 +269556,12 @@ * BackupWriteSize <1>: mysql-cluster-backup-configuration. (line 24) * BackupWriteSize: mysql-cluster-ndbd-definition. - (line 3055) + (line 3023) +* Barracuda: glossary. (line 327) * Barracuda file format: innodb-file-format. (line 14) * base64-output option, mysqlbinlog: mysqlbinlog. (line 168) +* BaseCommandInterceptor class: connector-net-ref-mysqlclient-basecommandinterceptor. + (line 6) * basedir option, mysql.server: mysql-server. (line 36) * basedir option, mysql_install_db: mysql-install-db. (line 55) * basedir option, mysql_plugin: mysql-plugin. (line 81) @@ -261013,7 +269569,9 @@ * basedir option, mysqld: server-options. (line 114) * basedir option, mysqld_safe: mysqld-safe. (line 111) * basedir system variable: server-system-variables. - (line 809) + (line 817) +* BaseExceptionInterceptor class: connector-net-ref-mysqlclient-baseexceptioninterceptor. + (line 6) * batch mode: batch-mode. (line 6) * batch option, mysql: mysql-command-options. (line 181) @@ -261025,7 +269583,7 @@ * BatchSize: mysql-cluster-api-definition. (line 196) * BatchSizePerLocalScan: mysql-cluster-ndbd-definition. - (line 927) + (line 941) * Bazaar tree: installing-development-tree. (line 6) * BdMPolyFromText(): gis-wkt-functions. (line 59) @@ -261038,14 +269596,15 @@ * BEGIN, XA transactions: xa-statements. (line 6) * BENCHMARK(): information-functions. (line 33) -* benchmarks: custom-benchmarks. (line 6) -* benchmarks, benchmark suite: mysql-benchmarks. (line 6) +* benchmarks <1>: custom-benchmarks. (line 6) +* benchmarks: mysql-benchmarks. (line 6) +* beta: glossary. (line 354) * BETWEEN ... AND: comparison-operators. (line 198) * big-tables option, mysqld: server-options. (line 135) * big5: faqs-cjk. (line 6) * big_tables session variable: server-system-variables. - (line 831) + (line 839) * BIGINT data type: numeric-type-overview. (line 125) * BIN(): string-functions. (line 118) @@ -261055,6 +269614,7 @@ (line 151) * binary distributions, installing: binary-installation. (line 6) +* binary log <1>: glossary. (line 364) * binary log: binary-log. (line 13) * binary log, event groups: set-global-sql-slave-skip-counter. (line 6) @@ -261069,33 +269629,35 @@ * bind-address option, mysqldump: mysqldump. (line 399) * bind-address option, mysqlimport: mysqlimport. (line 134) * bind-address option, mysqlshow: mysqlshow. (line 118) +* binlog: glossary. (line 394) * BINLOG: binlog. (line 6) * Binlog Dump, thread command: thread-commands. (line 8) * BINLOG statement, mysqlbinlog output: mysqlbinlog-row-events. (line 6) * binlog-do-db option, mysqld: replication-options-binary-log. - (line 191) + (line 215) * binlog-format option, mysqld: server-options. (line 184) * binlog-ignore-db option, mysqld: replication-options-binary-log. - (line 316) + (line 340) * binlog-row-event-max-size option, mysqld: replication-options-binary-log. (line 20) * binlog_cache_size system variable: replication-options-binary-log. - (line 423) + (line 447) * binlog_direct_non_transactional_updates system variable: replication-options-binary-log. - (line 473) + (line 497) * binlog_format system variable: replication-options-binary-log. - (line 531) + (line 555) * binlog_index table (OBSOLETE): mysql-cluster-replication-schema. (line 6) * binlog_stmt_cache_size system variable: replication-options-binary-log. - (line 778) + (line 810) * BIT data type: numeric-type-overview. (line 35) +* bit functions: bit-functions. (line 6) +* bit functions, example: calculating-days. (line 6) * BIT_AND(): group-by-functions. (line 69) * BIT_COUNT: calculating-days. (line 6) * BIT_COUNT(): bit-functions. (line 84) -* bit_functions, example: calculating-days. (line 6) * BIT_LENGTH(): string-functions. (line 127) * BIT_OR: calculating-days. (line 6) * BIT_OR(): group-by-functions. (line 78) @@ -261103,9 +269665,12 @@ * BLACKHOLE storage engine <1>: blackhole-storage-engine. (line 6) * BLACKHOLE storage engine: storage-engines. (line 22) -* BLOB columns, default values: blob. (line 53) -* BLOB columns, indexing <1>: create-table. (line 468) +* blind query expansion: glossary. (line 401) +* BLOB columns, default values: blob. (line 49) +* BLOB columns, indexing <1>: create-table. (line 469) * BLOB columns, indexing: column-indexes. (line 18) +* BLOB columns, with Connector/Net: connector-net-programming-blob. + (line 12) * BLOB data type <1>: blob. (line 6) * BLOB data type: string-type-overview. (line 181) @@ -261125,19 +269690,25 @@ (line 45) * boolean options: option-modifiers. (line 6) * bootstrap option, mysqld: server-options. (line 215) -* Borland Builder 4: connector-odbc-usagenotes-apptips-borland-builder. - (line 6) +* Borland applications: connector-odbc-usagenotes-apptips-borland. + (line 12) +* bottleneck: glossary. (line 414) +* bounce: glossary. (line 430) * Boundary(): general-geometry-property-functions. (line 70) * brackets, square: data-types. (line 41) * brief option, mysqlaccess: mysqlaccess. (line 71) -* buffer pool <1>: innodb-performance-midpoint_insertion. +* buddy allocator: glossary. (line 438) +* buffer: glossary. (line 446) +* buffer pool <1>: glossary. (line 459) +* buffer pool <2>: innodb-performance-midpoint_insertion. (line 6) * buffer pool: innodb-buffer-pool. (line 6) +* buffer pool instance: glossary. (line 485) +* buffer sizes: innodb-buffer-pool. (line 6) * buffer sizes, client: connectors-apis. (line 24) * buffer sizes, mysqld server: server-parameters. (line 6) * Buffer(): spatial-operators. (line 11) -* bug reports, criteria for: bug-reports. (line 6) * bugs database: bug-reports. (line 6) * bugs, known: bugs. (line 6) * bugs, MySQL Cluster, reporting: mysql-cluster-programs-ndb-error-reporter. @@ -261145,12 +269716,20 @@ * bugs, reporting: bug-reports. (line 6) * bugs.mysql.com: bug-reports. (line 6) * BUILD_CONFIG option, CMake: source-configuration-options. - (line 134) + (line 174) * BuildIndexThreads: mysql-cluster-ndbd-definition. - (line 3207) + (line 3181) * building, client programs: building-clients. (line 11) +* built-in: glossary. (line 501) +* bulk loading, for InnoDB tables: optimizing-innodb-bulk-data-loading. + (line 6) +* bulk loading, for MyISAM tables: optimizing-myisam-bulk-data-loading. + (line 6) +* bulk loading, with Connector/Net: connector-net-programming-bulk-loader. + (line 6) * bulk_insert_buffer_size system variable: server-system-variables. - (line 846) + (line 854) +* business rules: glossary. (line 515) * C API, data types: c. (line 26) * C API, functions: c-api-function-overview. (line 6) @@ -261162,14 +269741,21 @@ (line 6) * C prepared statement API, type codes: c-api-prepared-statement-type-codes. (line 6) +* C# <1>: connector-net-ref. (line 11) +* C#: connector-net-tutorials-intro. + (line 14) * C++ Builder: connector-odbc-usagenotes-apptips-borland-cppbuilder. (line 6) * C:\my.cnf file: multiple-server-clients. (line 34) +* cache: glossary. (line 544) * CACHE INDEX: cache-index. (line 6) * CACHE INDEX, and partitioning: partitioning-limitations. (line 241) * caches, clearing: flush. (line 6) +* calculating, aggregate value for a set of rows: group-by-functions. + (line 6) +* calculating, cardinality: show-index. (line 43) * calculating, dates: date-calculations. (line 6) * calendar: mysql-calendar. (line 6) * CALL: call. (line 6) @@ -261177,13 +269763,16 @@ (line 6) * calling sequences for simple functions, UDF: udf-calling. (line 6) * can't create/write to file: cannot-create. (line 6) +* cardinality <1>: glossary. (line 552) +* cardinality: how-to-avoid-table-scan. + (line 6) * carriage return (\r) <1>: load-data. (line 420) * carriage return (\r): string-literals. (line 73) * CASE <1>: case-statement. (line 6) * CASE: control-flow-functions. (line 14) * case sensitivity, in access checking: grant-table-structure. - (line 281) + (line 286) * case sensitivity, in identifiers: identifier-case-sensitivity. (line 6) * case sensitivity, in names: identifier-case-sensitivity. @@ -261212,11 +269801,15 @@ (line 127) * Centroid(): multipolygon-property-functions. (line 26) +* certificate file: connector-net-connection-options. + (line 6) * CFLAGS environment variable <1>: environment-variables. (line 18) * CFLAGS environment variable: compilation-problems. (line 40) * cflags option, mysql_config: mysql-config. (line 11) +* change buffer: glossary. (line 588) +* change buffering: glossary. (line 632) * change buffering, disabling: innodb-performance-change_buffering. (line 6) * CHANGE MASTER TO: change-master-to. (line 6) @@ -261226,15 +269819,15 @@ * ChangeLog: news. (line 17) * changes to privileges: privilege-changes. (line 6) * changes, log: news. (line 17) -* changes, MySQL 5.5: news-5-5-x. (line 30) +* changes, MySQL 5.5: news-5-5-x. (line 32) * changes, MySQL Cluster: mysql-cluster-news. (line 10) * Changing master, thread state: slave-connection-thread-states. (line 9) -* changing socket location <1>: problems-with-mysql-sock. +* changing, column: alter-table. (line 327) +* changing, field: alter-table. (line 327) +* changing, socket location <1>: problems-with-mysql-sock. (line 26) -* changing socket location: automatic-start. (line 139) -* changing, column: alter-table. (line 323) -* changing, field: alter-table. (line 323) +* changing, socket location: automatic-start. (line 139) * changing, table <1>: alter-table-problems. (line 6) * changing, table: alter-table. (line 12) @@ -261247,16 +269840,18 @@ * CHAR_LENGTH(): string-functions. (line 176) * CHARACTER data type: string-type-overview. (line 89) -* character set repertoire <1>: charset-unicode-utf8. +* character set repertoire: charset-unicode-utf8. (line 34) -* character set repertoire: charset-repertoire. (line 6) -* Character sets: charset. (line 23) +* character sets: charset. (line 23) * character sets, adding: adding-character-set. (line 12) * character sets, and replication: replication-features-charset. (line 6) +* character sets, repertoire: charset-repertoire. (line 6) * character sets, restrictions: charset-restrictions. (line 6) +* character sets, with Connector/Net: connector-net-using-character-sets. + (line 6) * CHARACTER VARYING data type: string-type-overview. (line 121) * character-set-client-handshake option, mysqld: server-options. @@ -261277,23 +269872,23 @@ * character-sets-dir option, mysqlshow: mysqlshow. (line 128) * CHARACTER_LENGTH(): string-functions. (line 183) * character_set_client system variable: server-system-variables. - (line 882) + (line 890) * character_set_connection system variable: server-system-variables. - (line 921) + (line 929) * character_set_database system variable: server-system-variables. - (line 936) + (line 944) * character_set_filesystem system variable: server-system-variables. - (line 975) + (line 983) * character_set_results system variable: server-system-variables. - (line 1004) + (line 1012) * character_set_server system variable: server-system-variables. - (line 1019) + (line 1027) * character_set_system system variable: server-system-variables. - (line 1038) + (line 1046) * CHARACTER_SETS, INFORMATION_SCHEMA table: character-sets-table. (line 6) * character_sets_dir system variable: server-system-variables. - (line 1052) + (line 1060) * characters, multi-byte: multi-byte-characters. (line 6) * charset command, mysql: mysql-commands. (line 61) @@ -261323,9 +269918,11 @@ * Checking table, thread state: general-thread-states. (line 28) * checking, tables for errors: myisam-check. (line 6) +* checkpoint: glossary. (line 647) * CHECKPOINT Events (MySQL Cluster): mysql-cluster-log-events. (line 35) * checkpoint option, mysqlhotcopy: mysqlhotcopy. (line 97) +* checksum: glossary. (line 659) * Checksum: mysql-cluster-tcp-definition. (line 154) * Checksum (MySQL Cluster) <1>: mysql-cluster-sci-definition. @@ -261335,10 +269932,11 @@ * checksum errors: solaris-installation. (line 11) * CHECKSUM TABLE: checksum-table. (line 6) +* child table: glossary. (line 683) * Chinese, Japanese, Korean character sets, frequently asked questions: faqs-cjk. (line 6) -* choosing types: choosing-types. (line 6) * choosing, a MySQL version: which-version. (line 18) +* choosing, data types: choosing-types. (line 6) * chroot option, mysqld: server-options. (line 309) * chroot option, mysqlhotcopy: mysqlhotcopy. (line 102) * circular replication, in MySQL Cluster <1>: mysql-cluster-replication-conflict-resolution. @@ -261351,8 +269949,6 @@ (line 6) * CJK (Chinese, Japanese, Korean), availability of specific characters: faqs-cjk. (line 6) -* CJK (Chinese, Japanese, Korean), available character sets: faqs-cjk. - (line 6) * CJK (Chinese, Japanese, Korean), big5: faqs-cjk. (line 6) * CJK (Chinese, Japanese, Korean), character sets available: faqs-cjk. (line 6) @@ -261372,6 +269968,7 @@ (line 6) * CJK (Chinese, Japanese, Korean), documentation in Korean: faqs-cjk. (line 6) +* CJK (Chinese, Japanese, Korean), FAQ: faqs-cjk. (line 6) * CJK (Chinese, Japanese, Korean), gb2312, gbk: faqs-cjk. (line 6) * CJK (Chinese, Japanese, Korean), Japanese character sets: faqs-cjk. (line 6) @@ -261409,13 +270006,14 @@ (line 6) * CJK (Chinese, Japanese, Korean), Vietnamese: faqs-cjk. (line 6) * CJK (Chinese, Japanese, Korean), Yen sign: faqs-cjk. (line 6) -* CJK, FAQ: faqs-cjk. (line 6) +* clean shutdown: glossary. (line 697) * cleaning up, thread state: general-thread-states. (line 32) * clear command, mysql: mysql-commands. (line 69) * clearing, caches: flush. (line 6) * Clearing, thread state: event-scheduler-thread-states. (line 10) +* client: glossary. (line 706) * client connection threads: connection-threads. (line 6) * client programs: programs-overview. (line 106) * client programs, building: building-clients. (line 11) @@ -261437,86 +270035,89 @@ (line 6) * cluster_replication database (OBSOLETE): mysql-cluster-replication-schema. (line 6) +* clustered index: glossary. (line 715) * clustered index, InnoDB: innodb-index-types. (line 6) * Clustering: mysql-cluster. (line 16) * CLUSTERLOG commands (MySQL Cluster): mysql-cluster-logging-management-commands. (line 8) * CLUSTERLOG STATISTICS command (MySQL Cluster): mysql-cluster-log-statistics. (line 6) -* CMake options: source-configuration-options. - (line 6) * CMake, BUILD_CONFIG option: source-configuration-options. - (line 134) + (line 174) * CMake, CMAKE_BUILD_TYPE option: source-configuration-options. - (line 140) + (line 180) * CMake, CMAKE_INSTALL_PREFIX option: source-configuration-options. - (line 169) + (line 209) * CMake, CPACK_MONOLITHIC_INSTALL option: source-configuration-options. - (line 152) + (line 192) * CMake, DEFAULT_CHARSET option: source-configuration-options. - (line 335) + (line 377) * CMake, DEFAULT_COLLATION option: source-configuration-options. - (line 353) + (line 395) * CMake, DISABLE_GRANT_OPTIONS option: source-configuration-options. - (line 509) + (line 556) * CMake, ENABLE_DEBUG_SYNC option: source-configuration-options. - (line 362) + (line 404) * CMake, ENABLE_DOWNLOADS option: source-configuration-options. - (line 381) + (line 423) * CMake, ENABLE_DTRACE option: source-configuration-options. - (line 387) + (line 429) * CMake, ENABLE_GCOV option: source-configuration-options. - (line 392) + (line 434) * CMake, ENABLED_LOCAL_INFILE option: source-configuration-options. - (line 396) + (line 438) * CMake, ENABLED_PROFILING option: source-configuration-options. - (line 405) + (line 447) * CMake, HAVE_EMBEDDED_PRIVILEGE_CONTROL option: source-configuration-options. - (line 515) + (line 562) * CMake, INSTALL_BINDIR option: source-configuration-options. - (line 176) + (line 216) * CMake, INSTALL_DOCDIR option: source-configuration-options. - (line 180) + (line 220) * CMake, INSTALL_DOCREADMEDIR option: source-configuration-options. - (line 184) + (line 224) * CMake, INSTALL_INCLUDEDIR option: source-configuration-options. - (line 188) + (line 228) * CMake, INSTALL_INFODIR option: source-configuration-options. - (line 192) + (line 232) * CMake, INSTALL_LAYOUT option: source-configuration-options. - (line 196) + (line 236) * CMake, INSTALL_LIBDIR option: source-configuration-options. - (line 214) + (line 254) * CMake, INSTALL_MANDIR option: source-configuration-options. - (line 218) + (line 258) * CMake, INSTALL_MYSQLSHAREDIR option: source-configuration-options. - (line 222) + (line 262) * CMake, INSTALL_MYSQLTESTDIR option: source-configuration-options. - (line 226) + (line 266) * CMake, INSTALL_PLUGINDIR option: source-configuration-options. - (line 230) + (line 270) * CMake, INSTALL_SBINDIR option: source-configuration-options. - (line 237) + (line 277) * CMake, INSTALL_SCRIPTDIR option: source-configuration-options. - (line 241) + (line 281) * CMake, INSTALL_SHAREDIR option: source-configuration-options. - (line 245) + (line 285) * CMake, INSTALL_SQLBENCHDIR option: source-configuration-options. - (line 249) + (line 289) * CMake, INSTALL_SUPPORTFILESDIR option: source-configuration-options. - (line 254) + (line 294) +* CMake, MEMCACHED_HOME option: source-configuration-options. + (line 574) * CMake, MYSQL_DATADIR option: source-configuration-options. - (line 258) + (line 298) * CMake, MYSQL_MAINTAINER_MODE option: source-configuration-options. - (line 411) + (line 453) +* CMake, MYSQL_PROJECT_NAME option: source-configuration-options. + (line 459) * CMake, MYSQL_TCP_PORT option: source-configuration-options. - (line 417) + (line 464) * CMake, MYSQL_UNIX_ADDR option: source-configuration-options. - (line 424) + (line 471) * CMake, ODBC_INCLUDES option: source-configuration-options. - (line 265) + (line 305) * CMake, ODBC_LIB_DIR option: source-configuration-options. - (line 270) + (line 310) * CMake, options: source-configuration-options. (line 6) * CMake, running after prior invocation <1>: compilation-problems. @@ -261524,71 +270125,95 @@ * CMake, running after prior invocation: installing-source-distribution. (line 164) * CMake, SYSCONFDIR option: source-configuration-options. - (line 275) + (line 315) * CMake, VERSION file: source-configuration-third-party. (line 6) +* CMake, WITH_BUNDLED_LIBEVENT option: source-configuration-options. + (line 595) +* CMake, WITH_BUNDLED_MEMCACHED option: source-configuration-options. + (line 602) +* CMake, WITH_CLASSPATH option: source-configuration-options. + (line 613) * CMake, WITH_COMMENT option: source-configuration-options. - (line 432) + (line 479) * CMake, WITH_DEBUG option: source-configuration-options. - (line 436) + (line 483) * CMake, WITH_EMBEDDED_SERVER option: source-configuration-options. - (line 446) + (line 493) +* CMake, WITH_ERROR_INSERT option: source-configuration-options. + (line 618) * CMake, WITH_EXTRA_CHARSETS option: source-configuration-options. - (line 450) + (line 497) * CMake, WITH_LIBWRAP option: source-configuration-options. - (line 460) + (line 507) +* CMake, WITH_NDB_BINLOG option: source-configuration-options. + (line 635) +* CMake, WITH_NDB_DEBUG option: source-configuration-options. + (line 640) +* CMake, WITH_NDB_PORT option: source-configuration-options. + (line 645) +* CMake, WITH_NDB_TEST option: source-configuration-options. + (line 652) +* CMake, WITH_NDBCLUSTER_STORAGE_ENGINE option: source-configuration-options. + (line 624) +* CMake, WITH_NDBMTD option: source-configuration-options. + (line 630) * CMake, WITH_READLINE option: source-configuration-options. - (line 464) + (line 511) * CMake, WITH_SSL option: source-configuration-options. - (line 469) + (line 516) * CMake, WITH_UNIXODBC option: source-configuration-options. - (line 284) + (line 324) * CMake, WITH_ZLIB option: source-configuration-options. - (line 485) + (line 532) * CMAKE_BUILD_TYPE option, CMake: source-configuration-options. - (line 140) + (line 180) * CMAKE_INSTALL_PREFIX option, CMake: source-configuration-options. - (line 169) + (line 209) * CMakeCache.txt file: compilation-problems. (line 6) * COALESCE(): comparison-operators. (line 230) * COERCIBILITY(): information-functions. (line 90) +* cold backup: glossary. (line 731) * ColdFusion: connector-odbc-usagenotes-apptips-coldfusion. (line 6) * collating, strings: string-collating. (line 6) -* collation names: charset-collation-names. - (line 6) * COLLATION(): information-functions. (line 116) * collation, adding: adding-collation. (line 13) * collation, INFORMATION_SCHEMA: charset-collation-information-schema. (line 6) * collation, modifying: adding-collation. (line 59) +* collation, names: charset-collation-names. + (line 6) * collation-server option, mysqld: server-options. (line 329) * COLLATION_CHARACTER_SET_APPLICABILITY, INFORMATION_SCHEMA table: collation-character-set-applicability-table. (line 6) * collation_connection system variable: server-system-variables. - (line 1071) + (line 1079) * collation_database system variable: server-system-variables. - (line 1085) + (line 1093) * collation_server system variable: server-system-variables. - (line 1124) + (line 1132) * COLLATIONS, INFORMATION_SCHEMA table: collations-table. (line 6) -* collations, naming conventions: charset-collation-names. - (line 6) +* column: glossary. (line 740) * column alias, problems: problems-with-alias. (line 6) * column alias, quoting <1>: problems-with-alias. (line 6) * column alias, quoting: identifiers. (line 78) -* column comments: create-table. (line 324) -* column format: create-table. (line 330) +* column comments: create-table. (line 325) +* Column Editor: connector-net-visual-studio-editing-tables-column-editor. + (line 6) +* column format: create-table. (line 331) +* column index: glossary. (line 762) * column names, case sensitivity: identifier-case-sensitivity. (line 6) -* column storage: create-table. (line 349) -* column, changing: alter-table. (line 323) +* column prefix: glossary. (line 769) +* column storage: create-table. (line 350) +* column, changing: alter-table. (line 327) * column, types: data-types. (line 29) * column-names option, mysql: mysql-command-options. (line 206) @@ -261637,6 +270262,7 @@ * comments option, mysqldump: mysqldump. (line 414) * comments, adding: comments. (line 6) * comments, starting: ansi-diff-comments. (line 6) +* commit: glossary. (line 787) * COMMIT <1>: commit. (line 6) * COMMIT: ansi-diff-transactions. (line 6) @@ -261659,6 +270285,7 @@ * comp_err, statefile option: comp-err. (line 66) * comp_err, version option: comp-err. (line 71) * compact option, mysqldump: mysqldump. (line 421) +* compact row format: glossary. (line 805) * comparison operators: comparison-operators. (line 6) * compatibility, between MySQL versions <1>: upgrading-from-5-4. @@ -261676,9 +270303,9 @@ * compatibility, with ODBC <6>: identifier-qualifiers. (line 41) * compatibility, with ODBC: server-system-variables. - (line 5424) + (line 5429) * compatibility, with Oracle <1>: describe. (line 39) -* compatibility, with Oracle <2>: alter-table. (line 287) +* compatibility, with Oracle <2>: alter-table. (line 291) * compatibility, with Oracle <3>: group-by-functions. (line 239) * compatibility, with Oracle: extensions-to-ansi. (line 96) * compatibility, with PostgreSQL: extensions-to-ansi. (line 190) @@ -261694,7 +270321,8 @@ * compiling, user-defined functions: udf-compiling. (line 6) * complete-insert option, mysqldump: mysqldump. (line 447) * completion_type system variable: server-system-variables. - (line 1143) + (line 1151) +* composite index: glossary. (line 820) * composite partitioning: partitioning-subpartitions. (line 26) * compound statements: sql-syntax-compound-statements. @@ -261709,28 +270337,31 @@ * compress option, mysqlslap: mysqlslap. (line 261) * COMPRESS(): encryption-functions. (line 142) +* compressed backup: glossary. (line 826) +* compressed row format: glossary. (line 843) * compressed tables <1>: compressed-format. (line 6) * compressed tables: myisampack. (line 6) * CompressedBackup: mysql-cluster-ndbd-definition. - (line 1675) + (line 1690) * CompressedLCP: mysql-cluster-ndbd-definition. - (line 1701) + (line 1716) +* compression: glossary. (line 858) * compression, algorithms: innodb-compression-internals. (line 13) * compression, application and schema design: innodb-compression-tuning. - (line 75) + (line 74) * compression, BLOBs, VARCHAR and TEXT: innodb-compression-internals. - (line 112) + (line 110) * compression, buffer pool: innodb-compression-internals. - (line 164) + (line 161) * Compression, compressed page size: innodb-compression-tuning. - (line 162) + (line 161) * Compression, configuration characteristics: innodb-compression-tuning. - (line 144) + (line 143) * compression, data and indexes: innodb-compression-internals. (line 44) * compression, data characteristics: innodb-compression-tuning. - (line 29) + (line 28) * compression, enabling for a table: innodb-compression-usage. (line 11) * compression, implementation: innodb-compression-internals. @@ -261742,30 +270373,33 @@ * Compression, innodb_strict_mode: innodb-other-changes-strict-mode. (line 6) * Compression, KEY_BLOCK_SIZE: innodb-compression-tuning. - (line 162) + (line 161) * compression, log files: innodb-compression-internals. - (line 200) + (line 197) * compression, modification log: innodb-compression-internals. - (line 66) + (line 64) * Compression, monitoring: innodb-compression-tuning. - (line 180) + (line 179) * Compression, overflow pages: innodb-compression-internals. - (line 112) + (line 110) * compression, overview: innodb-compression-background. (line 6) * compression, tuning: innodb-compression-tuning. (line 6) +* compression, with Connector/Net network traffic: connector-net-connection-options. + (line 6) * Compression, workload characteristics: innodb-compression-tuning. - (line 113) + (line 112) * CONCAT(): string-functions. (line 187) * CONCAT_WS(): string-functions. (line 214) * concatenation, string <1>: string-functions. (line 187) * concatenation, string: string-literals. (line 12) +* concurrency: glossary. (line 896) * concurrency option, mysqlslap: mysqlslap. (line 266) * concurrent inserts <1>: concurrent-inserts. (line 6) * concurrent inserts: internal-locking. (line 92) * concurrent_insert system variable: server-system-variables. - (line 1203) + (line 1211) * cond_instances table, performance_schema: cond-instances-table. (line 6) * conditions <1>: show-warnings. (line 6) @@ -261789,6 +270423,7 @@ (line 6) * configinfo option, ndb_config: mysql-cluster-programs-ndb-config. (line 318) +* configuration file: glossary. (line 908) * configuration files: access-denied. (line 101) * configuration, MySQL Cluster: mysql-cluster-params-overview. (line 13) @@ -261801,36 +270436,48 @@ * configuring MySQL Cluster <3>: mysql-cluster-configuration. (line 14) * configuring MySQL Cluster: mysql-cluster-installation. - (line 15) + (line 16) * Configuring MySQL Cluster (concepts): mysql-cluster-basics. (line 6) * conflict resolution, and ndb_replication system table: mysql-cluster-replication-conflict-resolution. - (line 160) + (line 165) * conflict resolution, enabling: mysql-cluster-replication-conflict-resolution. - (line 152) + (line 157) * conflict resolution, in MySQL Cluster Replication: mysql-cluster-replication-conflict-resolution. (line 6) * conflict resolution, mysqld startup options: mysql-cluster-replication-conflict-resolution. - (line 97) + (line 102) * connect command, mysql: mysql-commands. (line 74) * Connect Out, thread command: thread-commands. (line 25) * Connect, thread command: thread-commands. (line 21) * connect_timeout system variable: server-system-variables. - (line 1259) + (line 1267) * connect_timeout variable <1>: mysqladmin. (line 469) * connect_timeout variable: mysql-command-options. (line 622) * ConnectCheckIntervalDelay: mysql-cluster-ndbd-definition. - (line 2023) + (line 2038) * Connecting to master, thread state: slave-io-thread-states. (line 16) * connecting, remotely with SSH: windows-and-ssh. (line 6) +* connecting, through Connector/Net: connector-net-programming-connecting. + (line 6) +* connecting, through Visual Studio: connector-net-visual-studio-making-a-connection. + (line 6) * connecting, to the server <1>: connecting. (line 6) * connecting, to the server: connecting-disconnecting. (line 6) * connecting, verification: connection-access. (line 6) * CONNECTION Events (MySQL Cluster): mysql-cluster-log-events. (line 20) +* connection pooling <1>: connector-net-connection-options. + (line 6) +* connection pooling: connector-net-programming-connection-pooling. + (line 6) +* connection string <1>: connector-net-connection-options. + (line 6) +* connection string: connector-net-programming-connecting-connection-string. + (line 12) * connection, aborted: communication-errors. (line 6) * CONNECTION_ID(): information-functions. @@ -261847,23 +270494,23 @@ (line 12) * Connector/ODBC <1>: connector-odbc. (line 17) * Connector/ODBC: connectors-apis. (line 24) -* Connector/ODBC, Borland: connector-odbc-usagenotes-apptips-borland. - (line 12) -* Connector/ODBC, Borland Database Engine: connector-odbc-usagenotes-apptips-borland. - (line 12) * Connector/ODBC, reporting problems: connector-odbc-support. (line 14) +* Connector/ODBC, with Borland applications: connector-odbc-usagenotes-apptips-borland. + (line 12) * Connector/OpenOffice.org: connectors-apis. (line 24) * Connectors, MySQL: connectors-apis. (line 24) * connectstring: mysql-cluster-connectstring. (line 6) +* consistent read: glossary. (line 928) * consistent reads: innodb-consistent-read. (line 6) * console option, mysqld: server-options. (line 349) * const table, optimizer <1>: select. (line 379) -* const table, optimizer: explain-output. (line 215) +* const table, optimizer: explain-output. (line 217) * constant table: where-optimizations. (line 89) +* constraint: glossary. (line 961) * constraints: constraints. (line 12) * CONSTRAINTS, INFORMATION_SCHEMA table: table-constraints-table. (line 6) @@ -261878,9 +270525,9 @@ * conventions, syntax: manual-conventions. (line 8) * conventions, typographical: manual-conventions. (line 8) * CONVERT: cast-functions. (line 45) -* CONVERT TO: alter-table. (line 472) +* CONVERT TO: alter-table. (line 476) * CONVERT_TZ(): date-and-time-functions. - (line 163) + (line 175) * converting HEAP to MyISAM, thread state: general-thread-states. (line 44) * ConvexHull(): spatial-operators. (line 16) @@ -261890,7 +270537,7 @@ * copying databases: copying-databases. (line 6) * copying tables <1>: create-table-select. (line 6) -* copying tables: create-table. (line 1306) +* copying tables: create-table. (line 1307) * Copying to group table, thread state: general-thread-states. (line 55) * Copying to tmp table on disk, thread state: general-thread-states. @@ -261912,14 +270559,17 @@ * count option, mysqlshow: mysqlshow. (line 138) * COUNT(): group-by-functions. (line 92) * COUNT(DISTINCT): group-by-functions. (line 122) +* counter: glossary. (line 974) * counters, ndbinfo table: mysql-cluster-ndbinfo-counters. (line 6) * counting, table rows: counting-rows. (line 6) +* covering index: glossary. (line 988) * CPACK_MONOLITHIC_INSTALL option, CMake: source-configuration-options. - (line 152) + (line 192) * CR_SERVER_GONE_ERROR: gone-away. (line 6) * CR_SERVER_LOST_ERROR: gone-away. (line 6) * crash: debugging-server. (line 16) +* crash recovery: glossary. (line 1007) * crash, recovery: myisam-crash-recovery. (line 6) * crash, repeated: crashing. (line 6) @@ -261928,7 +270578,7 @@ * crash-me: mysql-benchmarks. (line 43) * crash-me program: mysql-benchmarks. (line 6) * CrashOnCorruptedTuple: mysql-cluster-ndbd-definition. - (line 1571) + (line 1586) * CRC32(): mathematical-functions. (line 176) * CREATE ... IF NOT EXISTS, and replication: replication-features-create-if-not-exists. @@ -261958,7 +270608,7 @@ * CREATE TABLE, DIRECTORY options, and replication: replication-features-directory. (line 6) * CREATE TABLE, KEY_BLOCK_SIZE: innodb-compression-tuning. - (line 162) + (line 161) * CREATE TABLE, options for table compression: innodb-compression-usage. (line 11) * CREATE TABLE, ROW_FORMAT: innodb-row-format-specification. @@ -261992,24 +270642,28 @@ * CROSS JOIN: join. (line 6) * Crosses(): functions-that-test-spatial-relationships-between-geometries. (line 22) +* CRUD: glossary. (line 1026) +* Crystal Reports: connector-net-programming-crystal. + (line 12) * CSV data, reading <1>: select-into. (line 92) * CSV data, reading: load-data. (line 317) * csv option, mysqlslap: mysqlslap. (line 293) * CSV storage engine <1>: csv-storage-engine. (line 11) * CSV storage engine: storage-engines. (line 22) * CURDATE(): date-and-time-functions. - (line 187) + (line 199) * CURRENT_DATE: date-and-time-functions. - (line 198) + (line 210) * CURRENT_TIME: date-and-time-functions. - (line 214) + (line 226) * CURRENT_TIMESTAMP: date-and-time-functions. - (line 218) + (line 230) * CURRENT_USER(): information-functions. (line 134) +* cursor: glossary. (line 1037) * Cursors: cursors. (line 13) * CURTIME(): date-and-time-functions. - (line 202) + (line 214) * CXX environment variable <1>: environment-variables. (line 18) * CXX environment variable: compilation-problems. @@ -262020,8 +270674,11 @@ (line 40) * daemon plugins: daemon-plugins. (line 6) * Daemon, thread command: thread-commands. (line 33) +* data dictionary: glossary. (line 1055) +* data directory: glossary. (line 1070) * DATA DIRECTORY, and replication: replication-features-directory. (line 6) +* data files: glossary. (line 1078) * data node (MySQL Cluster), defined: mysql-cluster-basics. (line 6) * data nodes (MySQL Cluster) <1>: mysql-cluster-programs-ndbmtd. @@ -262058,10 +270715,10 @@ (line 89) * data type, CHARACTER VARYING: string-type-overview. (line 121) -* data type, DATE <1>: datetime. (line 10) +* data type, DATE <1>: datetime. (line 6) * data type, DATE: date-and-time-type-overview. (line 16) -* data type, DATETIME <1>: datetime. (line 10) +* data type, DATETIME <1>: datetime. (line 6) * data type, DATETIME: date-and-time-type-overview. (line 23) * data type, DEC: numeric-type-overview. @@ -262133,8 +270790,8 @@ (line 192) * data type, TIME <1>: time. (line 6) * data type, TIME: date-and-time-type-overview. - (line 63) -* data type, TIMESTAMP <1>: datetime. (line 10) + (line 61) +* data type, TIMESTAMP <1>: datetime. (line 6) * data type, TIMESTAMP: date-and-time-type-overview. (line 31) * data type, TINYBLOB: string-type-overview. @@ -262153,10 +270810,11 @@ (line 121) * data type, YEAR <1>: year. (line 6) * data type, YEAR: date-and-time-type-overview. - (line 70) + (line 68) * data types: data-types. (line 29) * data types, C API: c. (line 26) * data types, overview: data-type-overview. (line 13) +* data warehouse: glossary. (line 1094) * data, importing <1>: mysqlimport. (line 6) * data, importing: batch-commands. (line 6) * data, loading into tables: loading-tables. (line 6) @@ -262164,6 +270822,7 @@ * data, size: data-size. (line 6) * data-file-length option, myisamchk: myisamchk-repair-options. (line 23) +* database: glossary. (line 1103) * Database information, obtaining: show. (line 50) * database metadata: information-schema. (line 41) * database names, case sensitivity: identifier-case-sensitivity. @@ -262208,7 +270867,7 @@ * datadir option, mysqld: server-options. (line 390) * datadir option, mysqld_safe: mysqld-safe. (line 120) * datadir system variable: server-system-variables. - (line 1284) + (line 1292) * DataJunction: connector-odbc-usagenotes-apptips-datajunction. (line 6) * DataMemory: mysql-cluster-ndbd-definition. @@ -262217,29 +270876,31 @@ * date and time functions: date-and-time-functions. (line 6) * Date and Time types: date-and-time-types. - (line 15) + (line 16) * date calculations: date-calculations. (line 6) * DATE columns, problems: using-date. (line 6) -* DATE data type <1>: datetime. (line 10) +* DATE columns, with Connector/Net: connector-net-programming-datetime. + (line 14) +* DATE data type <1>: datetime. (line 6) * DATE data type: date-and-time-type-overview. (line 16) * date literals: date-and-time-literals. (line 6) * date types: storage-requirements. (line 125) -* date values, problems: datetime. (line 47) +* date values, problems: datetime. (line 58) * DATE(): date-and-time-functions. - (line 223) + (line 235) * DATE_ADD(): date-and-time-functions. - (line 242) + (line 254) * date_format system variable: server-system-variables. - (line 1305) + (line 1313) * DATE_FORMAT(): date-and-time-functions. - (line 399) + (line 411) * DATE_SUB(): date-and-time-functions. - (line 242) + (line 254) * DATEDIFF(): date-and-time-functions. - (line 230) + (line 242) * dates, used with partitioning: partitioning-types. (line 53) * dates, used with partitioning (examples) <1>: partitioning-pruning. (line 75) @@ -262249,21 +270910,21 @@ (line 49) * dates, used with partitioning (examples): partitioning-range. (line 127) -* DATETIME data type <1>: datetime. (line 10) +* DATETIME data type <1>: datetime. (line 6) * DATETIME data type: date-and-time-type-overview. (line 23) * datetime_format system variable: server-system-variables. - (line 1309) + (line 1317) * DAY(): date-and-time-functions. - (line 483) + (line 495) * DAYNAME(): date-and-time-functions. - (line 487) + (line 499) * DAYOFMONTH(): date-and-time-functions. - (line 496) + (line 508) * DAYOFWEEK(): date-and-time-functions. - (line 505) + (line 517) * DAYOFYEAR(): date-and-time-functions. - (line 514) + (line 526) * db option, mysqlaccess: mysqlaccess. (line 86) * db table, sorting: request-access. (line 51) * DB2 SQL mode: server-sql-mode. (line 458) @@ -262279,6 +270940,9 @@ * DBI_USER environment variable: environment-variables. (line 18) * DBUG package: the-dbug-package. (line 6) +* DDL: glossary. (line 1123) +* deadlock: glossary. (line 1145) +* deadlock detection: glossary. (line 1188) * DEALLOCATE PREPARE <1>: deallocate-prepare. (line 6) * DEALLOCATE PREPARE: sql-syntax-prepared-statements. (line 13) @@ -262301,7 +270965,7 @@ * debug option, mysqlshow: mysqlshow. (line 143) * debug option, mysqlslap: mysqlslap. (line 298) * debug system variable: server-system-variables. - (line 1313) + (line 1321) * Debug, thread command: thread-commands. (line 38) * debug-check option, mysql: mysql-command-options. (line 234) @@ -262326,7 +270990,7 @@ * debug-info option, mysqlslap: mysqlslap. (line 308) * debug-sync-timeout option, mysqld: server-options. (line 443) * debug_sync system variable: server-system-variables. - (line 1363) + (line 1371) * debugging support: source-configuration-options. (line 6) * debugging, client: debugging-client. (line 6) @@ -262353,7 +271017,7 @@ * default values <1>: insert. (line 70) * default values <2>: create-table. (line 303) * default values: data-type-defaults. (line 6) -* default values, BLOB and TEXT columns: blob. (line 53) +* default values, BLOB and TEXT columns: blob. (line 49) * default values, explicit: data-type-defaults. (line 6) * default values, implicit: data-type-defaults. (line 6) * default values, suppression: constraint-invalid-data. @@ -262385,13 +271049,13 @@ * default-storage-engine option, mysqld: server-options. (line 504) * default-time-zone option, mysqld: server-options. (line 532) * DEFAULT_CHARSET option, CMake: source-configuration-options. - (line 335) + (line 377) * DEFAULT_COLLATION option, CMake: source-configuration-options. - (line 353) + (line 395) * default_storage_engine system variable: server-system-variables. - (line 1397) + (line 1405) * default_week_format system variable: server-system-variables. - (line 1429) + (line 1437) * DefaultOperationRedoProblemAction, API and SQL nodes: mysql-cluster-api-definition. (line 297) * defaults, embedded: libmysqld-options. (line 6) @@ -262416,7 +271080,7 @@ * delay-key-write option, mysqld <1>: myisam-start. (line 45) * delay-key-write option, mysqld: server-options. (line 548) * delay_key_write system variable: server-system-variables. - (line 1452) + (line 1460) * DELAYED: insert-delayed. (line 6) * Delayed insert, thread command: thread-commands. (line 42) * delayed inserts, thread states: delayed-insert-thread-states. @@ -262425,12 +271089,14 @@ * delayed-insert option, mysqldump: mysqldump. (line 500) * delayed_insert_limit: insert-delayed. (line 134) * delayed_insert_limit system variable: server-system-variables. - (line 1500) + (line 1508) * delayed_insert_timeout system variable: server-system-variables. - (line 1534) + (line 1542) * delayed_queue_size system variable: server-system-variables. - (line 1555) + (line 1563) +* delete: glossary. (line 1197) * DELETE: delete. (line 6) +* delete buffering: glossary. (line 1210) * delete option, mysqlimport: mysqlimport. (line 186) * DELETE, and MySQL Cluster: mysql-cluster-limitations-limits. (line 9) @@ -262442,11 +271108,11 @@ * deleting, database: drop-database. (line 6) * deleting, foreign key <1>: innodb-foreign-key-constraints. (line 160) -* deleting, foreign key: alter-table. (line 441) +* deleting, foreign key: alter-table. (line 445) * deleting, function: drop-function-udf. (line 6) * deleting, index <1>: drop-index. (line 6) -* deleting, index: alter-table. (line 330) -* deleting, primary key: alter-table. (line 345) +* deleting, index: alter-table. (line 334) +* deleting, primary key: alter-table. (line 349) * deleting, rows: deleting-from-related-tables. (line 6) * deleting, schema: drop-database. (line 6) @@ -262465,6 +271131,7 @@ (line 49) * Delphi: connector-odbc-usagenotes-apptips-borland-delphi. (line 6) +* denormalized: glossary. (line 1224) * derived tables: from-clause-subqueries. (line 6) * des-key-file option, mysqld: server-options. (line 582) @@ -262473,6 +271140,7 @@ * DES_ENCRYPT(): encryption-functions. (line 201) * DESC: describe. (line 6) +* descending index: glossary. (line 1236) * descending option, ndb_select_all: mysql-cluster-programs-ndb-select-all. (line 34) * DESCRIBE <1>: describe. (line 6) @@ -262492,15 +271160,18 @@ (line 9) * directory structure, default: installation-layouts. (line 6) +* dirty page <1>: glossary. (line 1246) +* dirty page: innodb-parameters. (line 232) +* dirty read: glossary. (line 1256) * disable named command, mysql: mysql-command-options. (line 269) * disable-keys option, mysqldump: mysqldump. (line 512) * disable-log-bin option, mysqlbinlog: mysqlbinlog. (line 329) * DISABLE_GRANT_OPTIONS option, CMake: source-configuration-options. - (line 509) + (line 556) * DISCARD TABLESPACE <1>: innodb-multiple-tablespaces. - (line 101) -* DISCARD TABLESPACE: alter-table. (line 452) + (line 97) +* DISCARD TABLESPACE: alter-table. (line 456) * discard_or_import_tablespace, thread state: general-thread-states. (line 105) * disconnect-slave-event-count option, mysqld: replication-options-slave. @@ -262515,22 +271186,24 @@ * disk option, ndb_select_all: mysql-cluster-programs-ndb-select-all. (line 56) * disk performance: disk-issues. (line 10) +* disk-based: glossary. (line 1279) +* disk-bound: glossary. (line 1292) * DiskCheckpointSpeed: mysql-cluster-ndbd-definition. - (line 2334) + (line 2302) * DiskCheckpointSpeedInRestart: mysql-cluster-ndbd-definition. - (line 2355) + (line 2323) * DiskIOThreadPool: mysql-cluster-ndbd-definition. - (line 3329) + (line 3438) * Diskless: mysql-cluster-ndbd-definition. - (line 1593) + (line 1608) * diskpagebuffer, ndbinfo table: mysql-cluster-ndbinfo-diskpagebuffer. (line 6) * DiskPageBufferMemory: mysql-cluster-ndbd-definition. - (line 3273) + (line 3382) * disks, splitting data across: windows-symbolic-links. (line 6) * DiskSyncSize: mysql-cluster-ndbd-definition. - (line 2309) + (line 2277) * display size: data-types. (line 31) * display triggers: show-triggers. (line 6) * display width: data-types. (line 31) @@ -262560,12 +271233,14 @@ * DIV: arithmetic-functions. (line 115) * div_precision_increment system variable: server-system-variables. - (line 1589) + (line 1597) * division (/): arithmetic-functions. (line 99) +* DML: glossary. (line 1312) * DNS: dns. (line 6) * DO: do. (line 6) * DocBook XML, documentation source format: manual-info. (line 31) +* document id: glossary. (line 1328) * Documentation, in Chinese: faqs-cjk. (line 6) * Documentation, in Japanese: faqs-cjk. (line 6) * Documentation, in Korean: faqs-cjk. (line 6) @@ -262576,7 +271251,10 @@ * DOUBLE PRECISION data type: numeric-type-overview. (line 231) * double quote (\"): string-literals. (line 70) -* downgrades, MySQL Cluster: mysql-cluster-rolling-restart. +* doublewrite buffer: glossary. (line 1343) +* downgrades, MySQL Cluster <1>: mysql-cluster-rolling-restart. + (line 6) +* downgrades, MySQL Cluster: mysql-cluster-upgrade-downgrade. (line 6) * downgrading <1>: innodb-downgrading-overview. (line 6) @@ -262584,10 +271262,8 @@ * downgrading: upgrading-downgrading. (line 14) * downloading: getting-mysql. (line 6) -* DRBD license: faqs-drbd. (line 6) -* drbd, FAQ <1>: faqs-drbd. (line 6) -* drbd, FAQ: faqs-mysql-drbd-heartbeat. - (line 19) +* DRBD: faqs-drbd. (line 6) +* drop: glossary. (line 1367) * DROP ... IF EXISTS, and replication: replication-features-drop-if-exists. (line 6) * DROP DATABASE: drop-database. (line 6) @@ -262595,18 +271271,18 @@ * DROP EVENT: drop-event. (line 6) * DROP FOREIGN KEY <1>: innodb-foreign-key-constraints. (line 160) -* DROP FOREIGN KEY: alter-table. (line 441) +* DROP FOREIGN KEY: alter-table. (line 445) * DROP FUNCTION <1>: drop-function-udf. (line 6) * DROP FUNCTION: drop-procedure. (line 6) * DROP INDEX <1>: innodb-create-index-overview. (line 6) * DROP INDEX <2>: drop-index. (line 6) -* DROP INDEX: alter-table. (line 330) +* DROP INDEX: alter-table. (line 334) * DROP LOGFILE GROUP: drop-logfile-group. (line 6) * DROP NODEGROUP command (MySQL Cluster): mysql-cluster-mgm-client-commands. (line 196) * DROP PREPARE: deallocate-prepare. (line 6) -* DROP PRIMARY KEY: alter-table. (line 345) +* DROP PRIMARY KEY: alter-table. (line 349) * DROP PROCEDURE: drop-procedure. (line 6) * DROP SCHEMA: drop-database. (line 6) * DROP SERVER: drop-server. (line 6) @@ -262627,7 +271303,9 @@ * DUMPFILE: select-into. (line 100) * dumping, databases and tables <1>: mysqlhotcopy. (line 6) * dumping, databases and tables: mysqldump. (line 6) +* dynamic row format: glossary. (line 1383) * dynamic table characteristics: dynamic-format. (line 6) +* early adopter: glossary. (line 1400) * edit command, mysql: mysql-commands. (line 116) * ego command, mysql: mysql-commands. (line 125) * Eiffel Wrapper: apis-eiffel. (line 6) @@ -262638,17 +271316,17 @@ * enable-named-pipe option, mysqld: server-options. (line 592) * enable-pstack option, mysqld: server-options. (line 605) * ENABLE_DEBUG_SYNC option, CMake: source-configuration-options. - (line 362) + (line 404) * ENABLE_DOWNLOADS option, CMake: source-configuration-options. - (line 381) + (line 423) * ENABLE_DTRACE option, CMake: source-configuration-options. - (line 387) + (line 429) * ENABLE_GCOV option, CMake: source-configuration-options. - (line 392) + (line 434) * ENABLED_LOCAL_INFILE option, CMake: source-configuration-options. - (line 396) + (line 438) * ENABLED_PROFILING option, CMake: source-configuration-options. - (line 405) + (line 447) * ENCODE(): encryption-functions. (line 252) * ENCRYPT(): encryption-functions. @@ -262663,7 +271341,7 @@ (line 10) * engine option, mysqlslap: mysqlslap. (line 330) * engine_condition_pushdown system variable: server-system-variables. - (line 1629) + (line 1637) * ENGINES, INFORMATION_SCHEMA table: engines-table. (line 6) * ENTER SINGLE USER MODE command (MySQL Cluster): mysql-cluster-mgm-client-commands. (line 141) @@ -262777,7 +271455,7 @@ * environment variables: programs-overview. (line 286) * environment variables, list of: environment-variables. (line 6) -* eq_ref join type, optimizer: explain-output. (line 232) +* eq_ref join type, optimizer: explain-output. (line 234) * equal (=): comparison-operators. (line 64) * Equals(): functions-that-test-spatial-relationships-between-geometries. @@ -262786,6 +271464,7 @@ * errno: perror. (line 6) * ERROR Events (MySQL Cluster): mysql-cluster-log-events. (line 196) +* error log: glossary. (line 1410) * error logs (MySQL Cluster): mysql-cluster-programs-ndbd. (line 355) * error messages, can't find file: file-permissions. (line 6) @@ -262794,7 +271473,7 @@ (line 6) * Error, thread command: thread-commands. (line 50) * error_count session variable: server-system-variables. - (line 1674) + (line 1682) * ERROR_FOR_DIVISION_BY_ZERO SQL mode: server-sql-mode. (line 117) * errors, access denied: error-access-denied. (line 6) @@ -262862,7 +271541,7 @@ (line 6) * event-scheduler option, mysqld: server-options. (line 647) * event_scheduler system variable: server-system-variables. - (line 1680) + (line 1688) * events <1>: events. (line 15) * events: stored-programs-views. (line 16) @@ -262886,6 +271565,7 @@ (line 6) * events_waits_summary_global_by_event_name table, performance_schema: event-wait-summary-tables. (line 6) +* eviction: glossary. (line 1418) * exact-value literals: precision-math. (line 14) * example option, mysqld_multi: mysqld-multi. (line 95) * EXAMPLE storage engine <1>: example-storage-engine. @@ -262895,18 +271575,25 @@ * examples, myisamchk output: myisamchk-table-info. (line 6) * examples, queries: examples. (line 18) +* exclusive lock: glossary. (line 1430) * EXECUTE <1>: execute. (line 6) * EXECUTE: sql-syntax-prepared-statements. (line 13) * execute option, mysql: mysql-command-options. (line 277) * Execute, thread command: thread-commands. (line 52) +* ExecuteNonQuery method: connector-net-tutorials-sql-command. + (line 6) * ExecuteOnComputer <1>: mysql-cluster-api-definition. (line 87) * ExecuteOnComputer <2>: mysql-cluster-ndbd-definition. (line 101) * ExecuteOnComputer: mysql-cluster-mgm-definition. (line 76) +* ExecuteReader method: connector-net-tutorials-sql-command. + (line 6) +* ExecuteScalar method: connector-net-tutorials-sql-command. + (line 6) * executing SQL statements from text files <1>: batch-commands. (line 6) * executing SQL statements from text files: batch-mode. (line 6) @@ -262916,8 +271603,8 @@ (line 121) * execution plan: execution-plan-information. (line 13) -* execution threads (MySQL Cluster): mysql-cluster-programs-ndbmtd. - (line 60) +* execution threads (MySQL Cluster): mysql-cluster-ndbd-definition. + (line 3256) * EXISTS, with subqueries: exists-and-not-exists-subqueries. (line 6) * EXIT command (MySQL Cluster): mysql-cluster-mgm-client-commands. @@ -262929,7 +271616,7 @@ * EXP(): mathematical-functions. (line 197) * expire_logs_days system variable: server-system-variables. - (line 1706) + (line 1714) * EXPLAIN <1>: explain. (line 6) * EXPLAIN: using-explain. (line 6) * EXPLAIN PARTITIONS: partitioning-info. (line 6) @@ -262948,6 +271635,7 @@ * extended option, mysqlcheck: mysqlcheck. (line 283) * extended-insert option, mysqldump: mysqldump. (line 559) * extensions, to standard SQL: compatibility. (line 15) +* extent: glossary. (line 1447) * ExteriorRing(): polygon-property-functions. (line 21) * external locking <1>: general-thread-states. @@ -262956,20 +271644,22 @@ * external locking <3>: myisam-crash-recovery. (line 6) * external locking <4>: server-system-variables. - (line 5241) + (line 5246) * external locking: server-options. (line 688) * external-locking option, mysqld: server-options. (line 688) * external_user session variable: server-system-variables. - (line 1734) + (line 1742) * extra-file option, my_print_defaults: my-print-defaults. (line 43) * extra-node-info option, ndb_desc: mysql-cluster-programs-ndb-desc. (line 192) * extra-partition-info option, ndb_desc: mysql-cluster-programs-ndb-desc. (line 180) * EXTRACT(): date-and-time-functions. - (line 521) + (line 533) * extracting, dates: date-calculations. (line 6) * ExtractValue(): xml-functions. (line 150) +* ExtraSendBufferMemory, data nodes: mysql-cluster-ndbd-definition. + (line 3780) * failover, in MySQL Cluster replication: mysql-cluster-replication-failover. (line 6) * failover, Java clients: mysql-cluster-basics. @@ -262978,6 +271668,15 @@ * FALSE: number-literals. (line 6) * FALSE, testing for: comparison-operators. (line 130) +* FAQs, Connector/MXJ: connector-mxj-usagenotes. + (line 13) +* FAQs, Connector/ODBC: connector-odbc-usagenotes. + (line 12) +* FAQs, DRBD: faqs-drbd. (line 6) +* FAQs, heartbeat: drbd-linux-heartbeat. + (line 6) +* FAQs, LVM: drbd-lvm. (line 6) +* fast index creation: glossary. (line 1465) * Fast Index Creation, concurrency: innodb-create-index-concurrency. (line 6) * Fast Index Creation, crash recovery: innodb-create-index-recovery. @@ -262993,6 +271692,7 @@ * fast option, myisamchk: myisamchk-check-options. (line 35) * fast option, mysqlcheck: mysqlcheck. (line 299) +* fast shutdown: glossary. (line 1482) * features of MySQL: features. (line 6) * FEDERATED storage engine <1>: federated-storage-engine. (line 13) @@ -263001,7 +271701,7 @@ * Fetch, thread command: thread-commands. (line 56) * Field List, thread command: thread-commands. (line 61) * FIELD(): string-functions. (line 260) -* field, changing: alter-table. (line 323) +* field, changing: alter-table. (line 327) * fields option, ndb_config: mysql-cluster-programs-ndb-config. (line 278) * fields-enclosed-by option, mysqldump <1>: mysqlimport. (line 192) @@ -263015,13 +271715,14 @@ * fields-terminated-by option, mysqldump <1>: mysqlimport. (line 190) * fields-terminated-by option, mysqldump: mysqldump. (line 565) * FILE: string-functions. (line 388) +* file format <1>: glossary. (line 1498) * file format: innodb-file-format. (line 14) * file format management, downgrading: innodb-downgrading-overview. (line 6) * file format management, enabling new file formats: innodb-other-changes-file-formats. (line 6) * file format, Antelope: innodb-compression-internals. - (line 112) + (line 110) * file format, Barracuda: innodb-compression-usage. (line 11) * file format, downgrading: innodb-file-format-downgrading. @@ -263030,6 +271731,7 @@ (line 6) * file per table: innodb-other-changes-innodb_file_per_table. (line 6) +* file-per-table: glossary. (line 1513) * file_instances table, performance_schema: file-instances-table. (line 6) * file_summary_by_event_name table, performance_schema: file-summary-tables. @@ -263061,11 +271763,12 @@ * FileSystemPath: mysql-cluster-ndbd-definition. (line 294) * FileSystemPathDataFiles: mysql-cluster-ndbd-definition. - (line 3432) + (line 3541) * FileSystemPathDD: mysql-cluster-ndbd-definition. - (line 3397) + (line 3506) * FileSystemPathUndoFiles: mysql-cluster-ndbd-definition. - (line 3462) + (line 3571) +* fill factor: glossary. (line 1537) * FIND_IN_SET(): string-functions. (line 279) * Finished reading one binlog; switching to next binlog, thread state: master-thread-states. (line 17) @@ -263076,6 +271779,7 @@ * fix-table-names option, mysqlcheck: mysqlcheck. (line 308) * FIXED data type: numeric-type-overview. (line 186) +* fixed row format: glossary. (line 1551) * fixed-point arithmetic: precision-math. (line 14) * FLOAT data type: numeric-type-overview. (line 194) @@ -263086,19 +271790,21 @@ * floats: number-literals. (line 6) * FLOOR(): mathematical-functions. (line 210) +* flush: glossary. (line 1562) * FLUSH: flush. (line 6) +* flush list: glossary. (line 1583) * flush list mutex: innodb-separate-flush-list-mutex. (line 6) * flush option, mysqld: server-options. (line 713) * flush system variable: server-system-variables. - (line 1753) + (line 1761) * flush tables: mysqladmin. (line 194) * FLUSH, and replication: replication-features-flush. (line 6) * flush-logs option, mysqldump: mysqldump. (line 582) * flush-privileges option, mysqldump: mysqldump. (line 594) * flush_time system variable: server-system-variables. - (line 1775) + (line 1783) * Flushing tables, thread state: general-thread-states. (line 132) * flushlog option, mysqlhotcopy: mysqlhotcopy. (line 116) @@ -263122,6 +271828,8 @@ * force option, mysqldump: mysqldump. (line 602) * force option, mysqlimport: mysqlimport. (line 201) * force-read option, mysqlbinlog: mysqlbinlog. (line 343) +* foreign key: glossary. (line 1596) +* foreign key constraint: glossary. (line 1626) * FOREIGN KEY constraints, and fast index creation: innodb-create-index-limitations. (line 6) * FOREIGN KEY constraints, and TRUNCATE TABLE: innodb-other-changes-truncate. @@ -263132,59 +271840,63 @@ (line 6) * foreign key, deleting <1>: innodb-foreign-key-constraints. (line 160) -* foreign key, deleting: alter-table. (line 441) -* foreign keys <1>: alter-table. (line 418) -* foreign keys <2>: example-foreign-keys. +* foreign key, deleting: alter-table. (line 445) +* foreign keys <1>: connector-net-visual-studio-editing-tables-foreign-keys. + (line 6) +* foreign keys <2>: alter-table. (line 422) +* foreign keys <3>: example-foreign-keys. (line 6) * foreign keys: ansi-diff-foreign-keys. (line 6) * foreign_key_checks session variable: server-system-variables. - (line 1804) + (line 1812) * FORMAT(): string-functions. (line 294) * Forums: forums. (line 6) * FOUND_ROWS(): information-functions. (line 179) * FragmentLogFileSize: mysql-cluster-ndbd-definition. - (line 1070) + (line 1085) * FreeBSD troubleshooting: compilation-problems. (line 72) * freeing items, thread state: general-thread-states. (line 126) -* frequently-asked questions about DRBD <1>: faqs-drbd. (line 6) -* frequently-asked questions about DRBD: faqs-mysql-drbd-heartbeat. - (line 19) * frequently-asked questions about MySQL Cluster: faqs-mysql-cluster. (line 6) * FROM: select. (line 136) * FROM_DAYS(): date-and-time-functions. - (line 537) + (line 549) * FROM_UNIXTIME(): date-and-time-functions. - (line 548) + (line 560) * ft_boolean_syntax system variable: server-system-variables. - (line 1825) + (line 1833) * ft_max_word_len myisamchk variable: myisamchk-general-options. (line 53) * ft_max_word_len system variable: server-system-variables. - (line 1862) + (line 1870) * ft_min_word_len myisamchk variable: myisamchk-general-options. (line 53) * ft_min_word_len system variable: server-system-variables. - (line 1887) + (line 1895) * ft_query_expansion_limit system variable: server-system-variables. - (line 1913) + (line 1921) * ft_stopword_file myisamchk variable: myisamchk-general-options. (line 53) * ft_stopword_file system variable: server-system-variables. - (line 1935) + (line 1943) +* FTS: glossary. (line 1669) +* full backup: glossary. (line 1675) * full disk: full-disk. (line 6) +* full table scan: glossary. (line 1685) * full table scans, avoiding: how-to-avoid-table-scan. (line 6) * full-text parser plugins: full-text-plugins. (line 6) +* full-text search <1>: glossary. (line 1703) * full-text search: fulltext-search. (line 16) * FULLTEXT: fulltext-search. (line 16) +* FULLTEXT index: glossary. (line 1713) * FULLTEXT initialization, thread state: general-thread-states. (line 137) -* fulltext join type, optimizer: explain-output. (line 275) +* fulltext join type, optimizer: explain-output. (line 277) * fulltext, stopword list: fulltext-fine-tuning. (line 40) * function names, parsing: function-resolution. @@ -263195,7 +271907,6 @@ (line 6) * function, deleting: drop-function-udf. (line 6) * functions: functions. (line 27) -* functions for SELECT and WHERE clauses: functions. (line 27) * functions, and replication: replication-features-functions. (line 6) * functions, arithmetic: bit-functions. (line 6) @@ -263213,6 +271924,7 @@ (line 6) * functions, encryption: encryption-functions. (line 6) +* functions, for SELECT and WHERE clauses: functions. (line 27) * functions, GROUP BY: group-by-functions. (line 6) * functions, grouping: operator-precedence. (line 48) @@ -263229,36 +271941,41 @@ * functions, string: string-functions. (line 11) * functions, string comparison: string-comparison-functions. (line 6) -* functions, user-defined: adding-functions. (line 12) -* Functions, user-defined <1>: drop-function-udf. (line 6) -* Functions, user-defined: create-function-udf. +* functions, user-defined <1>: adding-functions. (line 12) +* functions, user-defined <2>: drop-function-udf. (line 6) +* functions, user-defined: create-function-udf. (line 6) * functions, user-defined, adding: adding-udf. (line 15) +* fuzzy checkpointing: glossary. (line 1724) +* GA: glossary. (line 1735) +* gap: glossary. (line 1743) * gap event: mysql-cluster-replication-issues. (line 29) +* gap lock: glossary. (line 1760) * gap lock, InnoDB <1>: innodb-next-key-locking. (line 6) * gap lock, InnoDB <2>: innodb-record-level-locks. (line 6) * gap lock, InnoDB <3>: innodb-transaction-model. - (line 74) -* gap lock, InnoDB: innodb-parameters. (line 1164) + (line 71) +* gap lock, InnoDB: innodb-parameters. (line 1135) * gb2312, gbk: faqs-cjk. (line 6) * gci option, ndb_select_all: mysql-cluster-programs-ndb-select-all. (line 66) * GCP Stop errors (MySQL Cluster): mysql-cluster-ndbd-definition. - (line 3632) + (line 3741) * gdb option, mysqld: server-options. (line 733) * gdb, using: using-gdb-on-mysqld. (line 6) * general information: introduction. (line 18) * General Public License: what-is-mysql. (line 39) +* general query log <1>: glossary. (line 1781) * general query log: query-log. (line 6) * general-log option, mysqld: server-options. (line 750) * general_log system variable: server-system-variables. - (line 1967) + (line 1975) * general_log_file system variable: server-system-variables. - (line 1991) + (line 1999) * geographic feature: gis-introduction. (line 27) * GeomCollFromText(): gis-wkt-functions. (line 14) * GeomCollFromWKB(): gis-wkb-functions. (line 16) @@ -263285,7 +272002,7 @@ * GeomFromWKB(): gis-wkb-functions. (line 22) * geospatial feature: gis-introduction. (line 37) * GET_FORMAT(): date-and-time-functions. - (line 576) + (line 588) * GET_LOCK(): miscellaneous-functions. (line 42) * getting MySQL: getting-mysql. (line 6) @@ -263298,13 +272015,13 @@ * global privileges <1>: revoke. (line 6) * global privileges: grant. (line 6) * GLOBAL_STATUS, INFORMATION_SCHEMA table: status-table. (line 6) +* global_transaction: glossary. (line 1795) * GLOBAL_VARIABLES, INFORMATION_SCHEMA table: variables-table. (line 6) * globalization: globalization. (line 16) * go command, mysql: mysql-commands. (line 134) -* goals of MySQL: what-is-mysql. (line 84) * Google Test: source-configuration-options. - (line 381) + (line 423) * got handler lock, thread state: delayed-insert-thread-states. (line 26) * got old table, thread state: delayed-insert-thread-states. @@ -263326,9 +272043,9 @@ * greater than or equal (>=): comparison-operators. (line 116) * greatest timestamp wins (conflict resolution): mysql-cluster-replication-conflict-resolution. - (line 276) + (line 281) * greatest timestamp, delete wins (conflict resolution): mysql-cluster-replication-conflict-resolution. - (line 302) + (line 307) * GREATEST(): comparison-operators. (line 240) * GROUP BY: group-by-optimization. @@ -263339,16 +272056,18 @@ * GROUP BY, extensions to standard SQL <1>: select. (line 206) * GROUP BY, extensions to standard SQL: group-by-hidden-columns. (line 6) +* group commit <1>: glossary. (line 1809) * group commit: innodb-performance-group_commit. (line 6) * GROUP_CONCAT(): group-by-functions. (line 136) * group_concat_max_len system variable: server-system-variables. - (line 2013) + (line 2021) * grouping, expressions: operator-precedence. (line 48) * HANDLER: handler. (line 6) * Handlers: declare-handler. (line 6) * handling, errors: udf-return-values. (line 6) +* hash index: glossary. (line 1824) * hash indexes: index-btree-hash. (line 6) * hash partitioning: partitioning-hash. (line 10) * hash partitions, managing: partitioning-management-hash-key. @@ -263356,46 +272075,50 @@ * hash partitions, splitting and merging: partitioning-management-hash-key. (line 6) * have_compress system variable: server-system-variables. - (line 2045) + (line 2053) * have_crypt system variable: server-system-variables. - (line 2051) + (line 2059) * have_csv system variable: server-system-variables. - (line 2056) -* have_dynamic_loading system variable: server-system-variables. (line 2064) +* have_dynamic_loading system variable: server-system-variables. + (line 2072) * HAVE_EMBEDDED_PRIVILEGE_CONTROL option, CMake: source-configuration-options. - (line 515) + (line 562) * have_geometry system variable: server-system-variables. - (line 2069) + (line 2077) * have_innodb system variable: server-system-variables. - (line 2073) -* have_openssl system variable: server-system-variables. (line 2081) +* have_openssl system variable: server-system-variables. + (line 2089) * have_partitioning system variable: server-system-variables. - (line 2085) + (line 2093) * have_profiling system variable: server-system-variables. - (line 2089) + (line 2097) * have_query_cache system variable: server-system-variables. - (line 2094) -* have_rtree_keys system variable: server-system-variables. (line 2102) +* have_rtree_keys system variable: server-system-variables. + (line 2110) * have_ssl system variable: server-system-variables. - (line 2107) + (line 2115) * have_symlink system variable: server-system-variables. - (line 2114) + (line 2122) * HAVING: select. (line 220) +* HDD: glossary. (line 1841) * header option, ndb_select_all: mysql-cluster-programs-ndb-select-all. (line 39) * header_file option, comp_err: comp-err. (line 44) * HEAP storage engine <1>: memory-storage-engine. (line 6) * HEAP storage engine: storage-engines. (line 22) +* heartbeat <1>: glossary. (line 1850) +* heartbeat: drbd-linux-heartbeat. + (line 6) * HeartbeatIntervalDbApi: mysql-cluster-ndbd-definition. - (line 1907) + (line 1922) * HeartbeatIntervalDbDb: mysql-cluster-ndbd-definition. - (line 1877) + (line 1892) * HeartbeatOrder: mysql-cluster-ndbd-definition. - (line 1936) + (line 1951) * HeartbeatThreadPriority <1>: mysql-cluster-api-definition. (line 212) * HeartbeatThreadPriority: mysql-cluster-mgm-definition. @@ -263492,7 +272215,7 @@ * HostName (MySQL Cluster): mysql-cluster-security-networking-issues. (line 40) * hostname system variable: server-system-variables. - (line 2121) + (line 2129) * HostName1 <1>: mysql-cluster-sci-definition. (line 114) * HostName1 <2>: mysql-cluster-shm-definition. @@ -263505,15 +272228,22 @@ (line 62) * HostName2: mysql-cluster-tcp-definition. (line 76) +* hot: glossary. (line 1861) +* hot backup: glossary. (line 1872) * HOUR(): date-and-time-functions. - (line 613) + (line 625) * howto option, mysqlaccess: mysqlaccess. (line 98) * html option, mysql: mysql-command-options. (line 292) * i-am-a-dummy option, mysql: mysql-command-options. (line 485) +* ib-file set <1>: glossary. (line 1897) * ib-file set: innodb-file-format-compatibility. (line 11) +* ib_logfile: glossary. (line 1911) +* ibbackup command: glossary. (line 1926) +* ibbackup_logfile: glossary. (line 1941) +* ibdata file: glossary. (line 1979) * icc, and MySQL Cluster support>: porting. (line 29) * icc, MySQL builds: compiler-characteristics. (line 6) @@ -263531,7 +272261,7 @@ (line 6) * identifiers, quoting: identifiers. (line 20) * identity session variable: server-system-variables. - (line 2134) + (line 2142) * IF: if-statement. (line 6) * IF(): control-flow-functions. (line 49) @@ -263541,67 +272271,74 @@ * IGNORE KEY: index-hints. (line 6) * ignore option, mysqlimport: mysqlimport. (line 212) * IGNORE, with partitioned tables: insert. (line 263) -* ignore-builtin-innodb option, mysqld: innodb-parameters. (line 144) +* ignore-builtin-innodb option, mysqld: innodb-parameters. (line 142) * ignore-lines option, mysqlimport: mysqlimport. (line 216) * ignore-spaces option, mysql: mysql-command-options. (line 296) * ignore-table option, mysqldump: mysqldump. (line 635) -* ignore_builtin_innodb system variable: innodb-parameters. (line 219) +* ignore_builtin_innodb system variable: innodb-parameters. (line 207) * IGNORE_SPACE SQL mode: server-sql-mode. (line 142) +* ilist: glossary. (line 2010) * implicit default values: data-type-defaults. (line 6) +* implicit row lock: glossary. (line 2018) * IMPORT TABLESPACE <1>: innodb-multiple-tablespaces. - (line 101) -* IMPORT TABLESPACE: alter-table. (line 452) + (line 97) +* IMPORT TABLESPACE: alter-table. (line 456) * importing, data <1>: mysqlimport. (line 6) * importing, data: batch-commands. (line 6) * IN <1>: any-in-some-subqueries. (line 6) * IN: comparison-operators. (line 255) +* in-memory database: glossary. (line 2025) * in_file option, comp_err: comp-err. (line 48) * include option, mysql_config: mysql-config. (line 20) * include-master-host-port option, mysqldump: mysqldump. (line 627) * increasing with replication, speed: replication. (line 13) -* increasing, performance: replication-faq. (line 24) +* incremental backup: glossary. (line 2045) * incremental recovery: point-in-time-recovery. (line 11) * incremental recovery, using MySQL Cluster replication: mysql-cluster-replication-pitr. (line 6) +* index: glossary. (line 2064) +* index cache: glossary. (line 2101) * INDEX DIRECTORY, and replication: replication-features-directory. (line 6) * index dives (for statistics estimation): innodb-other-changes-statistics-estimation. (line 6) +* index hint: glossary. (line 2115) * index hints <1>: index-hints. (line 6) * index hints: select. (line 144) -* index join type, optimizer: explain-output. (line 341) +* index join type, optimizer: explain-output. (line 343) +* index prefix: glossary. (line 2125) * index, deleting <1>: drop-index. (line 6) -* index, deleting: alter-table. (line 330) +* index, deleting: alter-table. (line 334) * index, rebuilding: rebuilding-tables. (line 6) * index-record lock, InnoDB <1>: innodb-next-key-locking. (line 6) * index-record lock, InnoDB <2>: innodb-record-level-locks. (line 6) * index-record lock, InnoDB <3>: innodb-transaction-model. - (line 74) -* index-record lock, InnoDB: innodb-parameters. (line 1164) -* index_merge join type, optimizer: explain-output. (line 292) -* index_subquery join type, optimizer: explain-output. (line 310) + (line 71) +* index-record lock, InnoDB: innodb-parameters. (line 1135) +* index_merge join type, optimizer: explain-output. (line 294) +* index_subquery join type, optimizer: explain-output. (line 312) * indexes: create-index. (line 6) -* indexes, and BLOB columns <1>: create-table. (line 468) +* indexes, and BLOB columns <1>: create-table. (line 469) * indexes, and BLOB columns: column-indexes. (line 18) * indexes, and IS NULL: index-btree-hash. (line 39) * indexes, and LIKE: index-btree-hash. (line 13) -* indexes, and NULL values: create-table. (line 447) -* indexes, and TEXT columns <1>: create-table. (line 468) +* indexes, and NULL values: create-table. (line 448) +* indexes, and TEXT columns <1>: create-table. (line 469) * indexes, and TEXT columns: column-indexes. (line 18) * indexes, assigning to key cache: cache-index. (line 6) * indexes, block size: server-system-variables. - (line 2312) + (line 2320) * indexes, columns: column-indexes. (line 6) * Indexes, creating and dropping: innodb-create-index-implementation. (line 6) * indexes, leftmost prefix of: multiple-column-indexes. - (line 81) + (line 83) * indexes, multi-column: multiple-column-indexes. (line 6) * indexes, multiple-part: create-index. (line 6) @@ -263609,12 +272346,15 @@ * Indexes, primary (clustered) and secondary: innodb-create-index-implementation. (line 6) * indexes, use of: mysql-indexes. (line 6) +* Indexes/Keys dialog: connector-net-visual-studio-editing-tables-indexes. + (line 6) * IndexMemory: mysql-cluster-ndbd-definition. - (line 442) + (line 457) * INET_ATON(): miscellaneous-functions. (line 102) * INET_NTOA(): miscellaneous-functions. (line 128) +* infimum record: glossary. (line 2136) * INFO Events (MySQL Cluster): mysql-cluster-log-events. (line 210) * information functions: information-functions. @@ -263637,6 +272377,7 @@ (line 6) * information schema tables, INNODB_TRX: innodb-information-schema-innodb_trx. (line 6) +* INFORMATION_SCHEMA <1>: glossary. (line 2148) * INFORMATION_SCHEMA: information-schema. (line 41) * INFORMATION_SCHEMA plugins: information-schema-plugins. (line 6) @@ -263655,27 +272396,30 @@ (line 142) * init-file option, mysqld: server-options. (line 772) * init_connect system variable: server-system-variables. - (line 2141) + (line 2149) * init_file system variable: server-system-variables. - (line 2183) + (line 2191) * init_slave system variable: replication-options-slave. - (line 1020) + (line 1035) * InitFragmentLogFiles: mysql-cluster-ndbd-definition. - (line 1095) + (line 1110) * Initialized, thread state: event-scheduler-thread-states. (line 15) * InitialLogFileGroup: mysql-cluster-ndbd-definition. - (line 3501) + (line 3610) * InitialNoOfOpenFiles: mysql-cluster-ndbd-definition. - (line 1144) + (line 1159) * InitialTablespace: mysql-cluster-ndbd-definition. - (line 3571) + (line 3680) * INNER JOIN: join. (line 6) +* innobackup command: glossary. (line 2172) * innochecksum <1>: innochecksum. (line 6) * innochecksum: programs-overview. (line 147) +* InnoDB <1>: glossary. (line 2183) * InnoDB: innodb-storage-engine. (line 24) -* innodb option, mysqld: innodb-parameters. (line 175) +* InnoDB Hot Backup: glossary. (line 2196) +* innodb option, mysqld: innodb-parameters. (line 166) * InnoDB parameters, deprecated: innodb-parameters-deprecated. (line 6) * InnoDB parameters, deprecated, innodb_file_io_threads: innodb-performance-multiple_io_threads. @@ -263693,7 +272437,7 @@ * InnoDB parameters, new, innodb_io_capacity: innodb-performance-thread_io_rate. (line 6) * InnoDB parameters, new, innodb_large_prefix: innodb-parameters. - (line 1057) + (line 1036) * InnoDB parameters, new, innodb_read_ahead_threshold: innodb-performance-read_ahead. (line 6) * InnoDB parameters, new, innodb_read_io_threads: innodb-performance-multiple_io_threads. @@ -263792,15 +272536,15 @@ * InnoDB, gap lock <2>: innodb-record-level-locks. (line 6) * InnoDB, gap lock <3>: innodb-transaction-model. - (line 74) -* InnoDB, gap lock: innodb-parameters. (line 1164) + (line 71) +* InnoDB, gap lock: innodb-parameters. (line 1135) * InnoDB, index-record lock <1>: innodb-next-key-locking. (line 6) * InnoDB, index-record lock <2>: innodb-record-level-locks. (line 6) * InnoDB, index-record lock <3>: innodb-transaction-model. - (line 74) -* InnoDB, index-record lock: innodb-parameters. (line 1164) + (line 71) +* InnoDB, index-record lock: innodb-parameters. (line 1135) * InnoDB, indexes: innodb-table-and-index. (line 14) * InnoDB, insert buffering: innodb-insert-buffering. @@ -263816,12 +272560,12 @@ (line 6) * InnoDB, migrating a database: innodb-migration. (line 6) * InnoDB, Monitors <1>: innodb-troubleshooting-datadict. - (line 60) + (line 58) * InnoDB, Monitors <2>: innodb-troubleshooting. (line 26) * InnoDB, Monitors <3>: innodb-monitors. (line 12) -* InnoDB, Monitors <4>: innodb-file-space. (line 60) -* InnoDB, Monitors: innodb-backup. (line 122) +* InnoDB, Monitors <4>: innodb-file-space. (line 59) +* InnoDB, Monitors: innodb-backup. (line 116) * InnoDB, multi-versioning: innodb-multi-versioning. (line 6) * InnoDB, next-key lock <1>: innodb-next-key-locking. @@ -263829,14 +272573,14 @@ * InnoDB, next-key lock <2>: innodb-record-level-locks. (line 6) * InnoDB, next-key lock <3>: innodb-transaction-model. - (line 74) -* InnoDB, next-key lock: innodb-parameters. (line 1164) + (line 71) +* InnoDB, next-key lock: innodb-parameters. (line 1135) * InnoDB, NFS <1>: innodb-restrictions. (line 16) * InnoDB, NFS: innodb-configuration. - (line 62) + (line 64) * InnoDB, page size <1>: innodb-restrictions. - (line 89) + (line 84) * InnoDB, page size: innodb-physical-structure. (line 6) * InnoDB, raw devices: innodb-raw-devices. (line 6) @@ -263845,14 +272589,14 @@ * InnoDB, record-level locks <2>: innodb-record-level-locks. (line 6) * InnoDB, record-level locks <3>: innodb-transaction-model. - (line 74) -* InnoDB, record-level locks: innodb-parameters. (line 1164) + (line 71) +* InnoDB, record-level locks: innodb-parameters. (line 1135) * InnoDB, replication: innodb-and-mysql-replication. (line 6) * InnoDB, row structure: innodb-physical-record. (line 6) * InnoDB, secondary index: innodb-index-types. (line 6) -* InnoDB, semi-consistent read: innodb-parameters. (line 1164) +* InnoDB, semi-consistent read: innodb-parameters. (line 1135) * InnoDB, Solaris 10 x86_64 issues: solaris-installation. (line 11) * InnoDB, system tablespace setup: innodb-init. (line 6) @@ -263864,7 +272608,7 @@ * InnoDB, tables, converting from other storage engines: converting-tables-to-innodb. (line 6) * InnoDB, transaction isolation levels: innodb-transaction-model. - (line 62) + (line 59) * InnoDB, transaction model: innodb-transaction-model. (line 18) * InnoDB, troubleshooting: innodb-troubleshooting. @@ -263889,38 +272633,39 @@ (line 6) * InnoDB, troubleshooting, SQL errors: innodb-error-handling. (line 11) -* innodb-status-file option, mysqld: innodb-parameters. (line 188) +* innodb-status-file option, mysqld: innodb-parameters. (line 179) * innodb_ system variable, innodb_rollback_segments: innodb-parameters. - (line 1728) + (line 1694) * innodb_adaptive_flushing: innodb-performance-adaptive_flushing. (line 6) * innodb_adaptive_flushing system variable: innodb-parameters. - (line 227) + (line 215) * innodb_adaptive_hash_index: innodb-performance-adaptive_hash_index. (line 6) * innodb_adaptive_hash_index system variable: innodb-parameters. - (line 249) + (line 237) * innodb_adaptive_hash_index, and innodb_thread_concurrency: innodb-performance-thread_concurrency. (line 6) * innodb_adaptive_hash_index, dynamically changing: innodb-other-changes-innodb_adaptive_hash_index. (line 6) * innodb_additional_mem_pool_size system variable: innodb-parameters. - (line 271) + (line 259) * innodb_additional_mem_pool_size, and innodb_use_sys_malloc: innodb-performance-use_sys_malloc. (line 6) * innodb_autoextend_increment system variable: innodb-parameters. - (line 299) + (line 287) +* innodb_autoinc_lock_mode: glossary. (line 2203) * innodb_autoinc_lock_mode system variable: innodb-parameters. - (line 327) + (line 315) * innodb_buffer_pool_instances system variable: innodb-parameters. - (line 354) + (line 342) * innodb_buffer_pool_size system variable: innodb-parameters. - (line 392) + (line 380) * innodb_change_buffering: innodb-performance-change_buffering. (line 6) * innodb_change_buffering system variable: innodb-parameters. - (line 442) -* innodb_checksums system variable: innodb-parameters. (line 487) + (line 430) +* innodb_checksums system variable: innodb-parameters. (line 475) * INNODB_CMP, INFORMATION_SCHEMA table: innodb-cmp-table. (line 6) * INNODB_CMP_RESET, INFORMATION_SCHEMA table: innodb-cmp-table. (line 6) @@ -263929,19 +272674,20 @@ * INNODB_CMPMEM_RESET, INFORMATION_SCHEMA table: innodb-cmpmem-table. (line 6) * innodb_commit_concurrency system variable: innodb-parameters. - (line 511) + (line 499) * innodb_concurrency_tickets: innodb-performance-thread_concurrency. (line 6) * innodb_concurrency_tickets system variable: innodb-parameters. - (line 538) -* innodb_data_file_path system variable: innodb-parameters. (line 568) -* innodb_data_home_dir system variable: innodb-parameters. (line 597) -* innodb_doublewrite system variable: innodb-parameters. (line 621) -* innodb_fast_shutdown system variable: innodb-parameters. (line 644) + (line 526) +* innodb_data_file_path system variable: innodb-parameters. (line 556) +* innodb_data_home_dir system variable: innodb-parameters. (line 585) +* innodb_doublewrite system variable: innodb-parameters. (line 609) +* innodb_fast_shutdown system variable: innodb-parameters. (line 632) +* innodb_file_format <1>: glossary. (line 2223) * innodb_file_format: innodb-file-format. (line 14) -* innodb_file_format system variable: innodb-parameters. (line 688) +* innodb_file_format system variable: innodb-parameters. (line 669) * innodb_file_format, Antelope: innodb-compression-internals. - (line 112) + (line 110) * innodb_file_format, Barracuda: innodb-compression-usage. (line 11) * innodb_file_format, downgrading: innodb-downgrading-overview. @@ -263953,25 +272699,27 @@ * innodb_file_format_check: innodb-file-format-compatibility-checking. (line 6) * innodb_file_format_check system variable: innodb-parameters. - (line 727) -* innodb_file_format_max system variable: innodb-parameters. (line 773) + (line 706) +* innodb_file_format_max system variable: innodb-parameters. (line 758) * innodb_file_io_threads: innodb-performance-multiple_io_threads. (line 6) +* innodb_file_per_table <1>: glossary. (line 2237) * innodb_file_per_table: innodb-compression-usage. (line 11) -* innodb_file_per_table system variable: innodb-parameters. (line 801) +* innodb_file_per_table system variable: innodb-parameters. (line 786) * innodb_file_per_table, dynamically changing: innodb-other-changes-innodb_file_per_table. (line 6) * innodb_flush_log_at_trx_commit system variable: innodb-parameters. - (line 836) -* innodb_flush_method system variable: innodb-parameters. (line 896) -* innodb_force_recovery system variable: innodb-parameters. (line 948) + (line 819) +* innodb_flush_method system variable: innodb-parameters. (line 878) +* innodb_force_recovery system variable: innodb-parameters. (line 930) * innodb_io_capacity: innodb-performance-thread_io_rate. (line 6) -* innodb_io_capacity system variable: innodb-parameters. (line 982) -* innodb_large_prefix system variable: innodb-parameters. (line 1057) +* innodb_io_capacity system variable: innodb-parameters. (line 964) +* innodb_large_prefix system variable: innodb-parameters. (line 1036) +* innodb_lock_wait_timeout: glossary. (line 2262) * innodb_lock_wait_timeout system variable: innodb-parameters. - (line 1096) + (line 1069) * innodb_lock_wait_timeout, dynamically changing: innodb-other-changes-innodb_lock_wait_timeout. (line 6) * INNODB_LOCK_WAITS, INFORMATION_SCHEMA table: innodb-lock-waits-table. @@ -263979,84 +272727,88 @@ * INNODB_LOCKS, INFORMATION_SCHEMA table: innodb-locks-table. (line 6) * innodb_locks_unsafe_for_binlog system variable: innodb-parameters. - (line 1146) -* innodb_log_buffer_size system variable: innodb-parameters. (line 1317) -* innodb_log_file_size system variable: innodb-parameters. (line 1343) + (line 1117) +* innodb_log_buffer_size system variable: innodb-parameters. (line 1288) +* innodb_log_file_size system variable: innodb-parameters. (line 1314) * innodb_log_files_in_group system variable: innodb-parameters. - (line 1371) + (line 1342) * innodb_log_group_home_dir system variable: innodb-parameters. - (line 1394) + (line 1365) * innodb_max_dirty_pages_pct: innodb-performance-adaptive_flushing. (line 6) * innodb_max_dirty_pages_pct system variable: innodb-parameters. - (line 1417) -* innodb_max_purge_lag system variable: innodb-parameters. (line 1441) + (line 1387) +* innodb_max_purge_lag system variable: innodb-parameters. (line 1411) * innodb_mirrored_log_groups system variable: innodb-parameters. - (line 1493) + (line 1461) * innodb_old_blocks_pct: innodb-performance-midpoint_insertion. (line 6) -* innodb_old_blocks_pct system variable: innodb-parameters. (line 1498) +* innodb_old_blocks_pct system variable: innodb-parameters. (line 1466) * innodb_old_blocks_time: innodb-performance-midpoint_insertion. (line 6) -* innodb_old_blocks_time system variable: innodb-parameters. (line 1520) -* innodb_open_files system variable: innodb-parameters. (line 1549) +* innodb_old_blocks_time system variable: innodb-parameters. (line 1488) +* innodb_open_files system variable: innodb-parameters. (line 1517) * innodb_purge_batch_size system variable: innodb-parameters. - (line 1578) -* innodb_purge_threads system variable: innodb-parameters. (line 1604) + (line 1544) +* innodb_purge_threads system variable: innodb-parameters. (line 1570) * innodb_read_ahead_threshold: innodb-performance-read_ahead. (line 6) * innodb_read_ahead_threshold system variable: innodb-parameters. - (line 1633) + (line 1599) * innodb_read_io_threads: innodb-performance-multiple_io_threads. (line 6) -* innodb_read_io_threads system variable: innodb-parameters. (line 1661) +* innodb_read_io_threads system variable: innodb-parameters. (line 1627) * innodb_replication_delay system variable: innodb-parameters. - (line 1683) + (line 1649) * innodb_rollback_on_timeout system variable: innodb-parameters. - (line 1705) + (line 1671) * innodb_rollback_segments system variable: innodb-parameters. - (line 1728) + (line 1694) * innodb_spin_wait_delay: innodb-performance-spin_lock_polling. (line 6) -* innodb_spin_wait_delay system variable: innodb-parameters. (line 1754) -* innodb_stats_method system variable: innodb-parameters. (line 1776) +* innodb_spin_wait_delay system variable: innodb-parameters. (line 1719) +* innodb_stats_method system variable: innodb-parameters. (line 1741) * innodb_stats_on_metadata system variable: innodb-parameters. - (line 1809) + (line 1774) * innodb_stats_on_metadata, dynamically changing: innodb-other-changes-innodb_stats_on_metadata. (line 6) * innodb_stats_sample_pages: innodb-other-changes-statistics-estimation. (line 6) * innodb_stats_sample_pages system variable: innodb-parameters. - (line 1840) + (line 1805) +* innodb_strict_mode <1>: glossary. (line 2277) * innodb_strict_mode: innodb-other-changes-strict-mode. (line 6) -* innodb_strict_mode system variable: innodb-parameters. (line 1865) -* innodb_support_xa system variable: innodb-parameters. (line 1888) -* innodb_sync_spin_loops system variable: innodb-parameters. (line 1928) -* innodb_table_locks system variable: innodb-parameters. (line 1950) +* innodb_strict_mode system variable: innodb-parameters. (line 1830) +* innodb_support_xa system variable: innodb-parameters. (line 1853) +* innodb_sync_spin_loops system variable: innodb-parameters. (line 1893) +* innodb_table_locks system variable: innodb-parameters. (line 1915) * innodb_thread_concurrency: innodb-performance-thread_concurrency. (line 6) * innodb_thread_concurrency system variable: innodb-parameters. - (line 1982) + (line 1947) * innodb_thread_sleep_delay: innodb-performance-thread_concurrency. (line 6) * innodb_thread_sleep_delay system variable: innodb-parameters. - (line 2018) + (line 1983) * INNODB_TRX, INFORMATION_SCHEMA table: innodb-trx-table. (line 6) -* innodb_use_native_aio system variable: innodb-parameters. (line 2039) +* innodb_use_native_aio system variable: innodb-parameters. (line 2004) * innodb_use_sys_malloc: innodb-performance-use_sys_malloc. (line 6) -* innodb_use_sys_malloc system variable: innodb-parameters. (line 2065) +* innodb_use_sys_malloc system variable: innodb-parameters. (line 2038) * innodb_use_sys_malloc, and innodb_thread_concurrency: innodb-performance-thread_concurrency. (line 6) -* innodb_version system variable: innodb-parameters. (line 2086) +* innodb_version system variable: innodb-parameters. (line 2059) * innodb_write_io_threads: innodb-performance-multiple_io_threads. (line 6) * innodb_write_io_threads system variable: innodb-parameters. - (line 2090) + (line 2063) +* insert: glossary. (line 2287) * INSERT <1>: insert. (line 12) * INSERT: insert-speed. (line 6) * INSERT ... SELECT: insert-select. (line 6) +* insert buffer: glossary. (line 2303) +* insert buffering <1>: glossary. (line 2312) * insert buffering: innodb-insert-buffering. (line 6) * insert buffering, disabling: innodb-performance-change_buffering. @@ -264068,7 +272820,7 @@ (line 76) * insert-ignore option, mysqldump: mysqldump. (line 642) * insert_id session variable: server-system-variables. - (line 2215) + (line 2223) * insertable views, insertable: view-updatability. (line 6) * inserting, speed of: insert-speed. (line 6) * inserts, concurrent <1>: concurrent-inserts. (line 6) @@ -264077,43 +272829,43 @@ * INSTALL PLUGIN: install-plugin. (line 6) * install-manual option, mysqld: server-options. (line 811) * INSTALL_BINDIR option, CMake: source-configuration-options. - (line 176) + (line 216) * INSTALL_DOCDIR option, CMake: source-configuration-options. - (line 180) + (line 220) * INSTALL_DOCREADMEDIR option, CMake: source-configuration-options. - (line 184) + (line 224) * INSTALL_INCLUDEDIR option, CMake: source-configuration-options. - (line 188) + (line 228) * INSTALL_INFODIR option, CMake: source-configuration-options. - (line 192) + (line 232) * INSTALL_LAYOUT option, CMake: source-configuration-options. - (line 196) + (line 236) * INSTALL_LIBDIR option, CMake: source-configuration-options. - (line 214) + (line 254) * INSTALL_MANDIR option, CMake: source-configuration-options. - (line 218) + (line 258) * INSTALL_MYSQLSHAREDIR option, CMake: source-configuration-options. - (line 222) + (line 262) * INSTALL_MYSQLTESTDIR option, CMake: source-configuration-options. - (line 226) + (line 266) * INSTALL_PLUGINDIR option, CMake: source-configuration-options. - (line 230) + (line 270) * INSTALL_SBINDIR option, CMake: source-configuration-options. - (line 237) + (line 277) * INSTALL_SCRIPTDIR option, CMake: source-configuration-options. - (line 241) + (line 281) * INSTALL_SHAREDIR option, CMake: source-configuration-options. - (line 245) + (line 285) * INSTALL_SQLBENCHDIR option, CMake: source-configuration-options. - (line 249) + (line 289) * INSTALL_SUPPORTFILESDIR option, CMake: source-configuration-options. - (line 254) + (line 294) * installation layouts: installation-layouts. (line 6) * installation overview: source-installation. (line 15) * installing MySQL Cluster: mysql-cluster-installation. - (line 15) + (line 16) * installing MySQL Cluster, Linux: mysql-cluster-install-linux. (line 12) * installing MySQL Cluster, Linux binary release: mysql-cluster-install-linux-binary. @@ -264146,15 +272898,22 @@ * installing, source distribution: source-installation. (line 15) * installing, user-defined functions: udf-compiling. (line 6) +* instance: glossary. (line 2329) * INSTR(): string-functions. (line 352) +* instrumentation: glossary. (line 2345) * INT data type: numeric-type-overview. (line 116) * integer arithmetic: precision-math. (line 14) * INTEGER data type: numeric-type-overview. (line 121) * integers: number-literals. (line 6) +* intention lock: glossary. (line 2357) * interactive_timeout system variable: server-system-variables. - (line 2221) + (line 2229) +* interceptors <1>: connector-net-connection-options. + (line 6) +* interceptors: connector-net-interceptors. + (line 6) * InteriorRingN(): polygon-property-functions. (line 35) * internal locking: internal-locking. (line 6) @@ -264175,6 +272934,7 @@ (line 6) * invalidating query cache entries, thread state: query-cache-thread-states. (line 19) +* inverted index: glossary. (line 2377) * IP addresses, in account names: account-names. (line 6) * IP addresses, in default accounts: default-privileges. (line 6) * IPv6 addresses, in account names: account-names. (line 6) @@ -264204,6 +272964,7 @@ (line 75) * ISNULL(): comparison-operators. (line 298) +* isolation level: glossary. (line 2389) * ISOLATION LEVEL: set-transaction. (line 6) * IsRing(): linestring-property-functions. (line 80) @@ -264216,28 +272977,29 @@ (line 6) * jdbc:mysql:loadbalance://: mysql-cluster-basics. (line 115) +* join: glossary. (line 2419) * JOIN: join. (line 6) * join algorithm, Block Nested-Loop: nested-loop-joins. (line 6) * join algorithm, Nested-Loop: nested-loop-joins. (line 6) * join option, myisampack: myisampack. (line 78) -* join type, ALL: explain-output. (line 350) -* join type, const: explain-output. (line 215) -* join type, eq_ref: explain-output. (line 232) -* join type, fulltext: explain-output. (line 275) -* join type, index: explain-output. (line 341) -* join type, index_merge: explain-output. (line 292) -* join type, index_subquery: explain-output. (line 310) -* join type, range: explain-output. (line 318) -* join type, ref: explain-output. (line 253) -* join type, ref_or_null: explain-output. (line 279) -* join type, system: explain-output. (line 210) -* join type, unique_subquery: explain-output. (line 300) +* join type, ALL: explain-output. (line 352) +* join type, const: explain-output. (line 217) +* join type, eq_ref: explain-output. (line 234) +* join type, fulltext: explain-output. (line 277) +* join type, index: explain-output. (line 343) +* join type, index_merge: explain-output. (line 294) +* join type, index_subquery: explain-output. (line 312) +* join type, range: explain-output. (line 320) +* join type, ref: explain-output. (line 255) +* join type, ref_or_null: explain-output. (line 281) +* join type, system: explain-output. (line 212) +* join type, unique_subquery: explain-output. (line 302) * join, nested-loop algorithm: nested-join-optimization. (line 167) * join_buffer_size system variable: server-system-variables. - (line 2246) + (line 2254) * keep_files_on_create system variable: server-system-variables. - (line 2280) + (line 2288) * keepold option, mysqlhotcopy: mysqlhotcopy. (line 126) * key cache, assigning indexes to: cache-index. (line 6) * Key cache, MyISAM: myisam-key-cache. (line 15) @@ -264248,20 +273010,21 @@ (line 6) * key space, MyISAM: key-space. (line 6) * key-value store: index-btree-hash. (line 78) +* key_block_size: glossary. (line 2435) * KEY_BLOCK_SIZE <1>: innodb-compression-tuning. - (line 162) + (line 161) * KEY_BLOCK_SIZE: innodb-compression-usage. (line 11) * key_buffer_size myisamchk variable: myisamchk-general-options. (line 53) * key_buffer_size system variable: server-system-variables. - (line 2312) + (line 2320) * key_cache_age_threshold system variable: server-system-variables. - (line 2393) + (line 2401) * key_cache_block_size system variable: server-system-variables. - (line 2428) + (line 2436) * key_cache_division_limit system variable: server-system-variables. - (line 2451) + (line 2459) * KEY_COLUMN_USAGE, INFORMATION_SCHEMA table: key-column-usage-table. (line 6) * keys: column-indexes. (line 6) @@ -264292,22 +273055,22 @@ * language support, error messages: error-message-language. (line 6) * language system variable: server-system-variables. - (line 2475) + (line 2483) * large page support: large-page-support. (line 6) -* large tables, and MySQL Cluster: create-table. (line 789) -* large tables, creating in NDB: create-table. (line 789) +* large tables, and MySQL Cluster: create-table. (line 790) +* large tables, creating in NDB: create-table. (line 790) * large-pages option, mysqld: server-options. (line 852) * large_files_support system variable: server-system-variables. - (line 2501) + (line 2509) * large_page_size system variable: server-system-variables. - (line 2532) + (line 2540) * large_pages system variable: server-system-variables. - (line 2511) + (line 2519) * last row, unique ID: getting-unique-id. (line 6) * LAST_DAY(): date-and-time-functions. - (line 625) + (line 637) * last_insert_id session variable: server-system-variables. - (line 2549) + (line 2557) * LAST_INSERT_ID() <1>: insert. (line 206) * LAST_INSERT_ID(): ansi-diff-transactions. (line 159) @@ -264319,16 +273082,17 @@ (line 6) * LAST_INSERT_ID([expr]): information-functions. (line 263) +* latch: glossary. (line 2446) * layout of installation: installation-layouts. (line 6) * lc-messages option, mysqld: server-options. (line 884) * lc-messages-dir option, mysqld: server-options. (line 906) * lc_messages system variable: server-system-variables. - (line 2557) + (line 2565) * lc_messages_dir system variable: server-system-variables. - (line 2579) + (line 2587) * lc_time_names system variable: server-system-variables. - (line 2600) + (line 2608) * LCASE(): string-functions. (line 366) * LD_LIBRARY_PATH environment variable: perl-support-problems. (line 20) @@ -264348,7 +273112,7 @@ * LEFT OUTER JOIN: join. (line 6) * LEFT(): string-functions. (line 370) * leftmost prefix of indexes: multiple-column-indexes. - (line 81) + (line 83) * legal names: identifiers. (line 13) * length option, myisam_ftdump: myisam-ftdump. (line 70) * LENGTH(): string-functions. (line 378) @@ -264357,6 +273121,12 @@ * less than or equal (<=): comparison-operators. (line 102) * LIBMYSQL_PLUGINS environment variable: mysql-load-plugin. (line 36) +* libmysqlclient.a: connector-cpp-apps-linux-netbeans. + (line 6) +* libmysqlcppconn-static.a: connector-cpp-apps-linux-netbeans. + (line 6) +* libmysqlcppconn.so: connector-cpp-apps-linux-netbeans. + (line 6) * libmysqld: libmysqld. (line 14) * libmysqld, options: libmysqld-options. (line 6) * libmysqld-libs option, mysql_config: mysql-config. (line 24) @@ -264365,7 +273135,7 @@ * libs option, mysql_config: mysql-config. (line 29) * libs_r option, mysql_config: mysql-config. (line 34) * license system variable: server-system-variables. - (line 2620) + (line 2628) * LIKE: string-comparison-functions. (line 20) * LIKE, and indexes: index-btree-hash. (line 13) @@ -264406,6 +273176,9 @@ * linking, problems: c-api-linking-problems. (line 6) * links, symbolic: symbolic-links. (line 12) +* LINQ: connector-net-tutorials-entity-framework-databinding-linq-entities. + (line 6) +* list: glossary. (line 2462) * list partitioning <1>: partitioning-columns. (line 11) * list partitioning: partitioning-list. (line 6) @@ -264417,6 +273190,8 @@ * LN(): mathematical-functions. (line 236) * LOAD DATA INFILE <1>: problems-with-null. (line 51) +* LOAD DATA INFILE <2>: connector-net-programming-bulk-loader. + (line 6) * LOAD DATA INFILE: load-data. (line 6) * LOAD DATA, and replication: replication-features-load-data. (line 6) @@ -264432,15 +273207,18 @@ * local-infile option, mysqld: privileges-options. (line 50) * local-load option, mysqlbinlog: mysqlbinlog. (line 360) * local_infile system variable: server-system-variables. - (line 2634) + (line 2642) * localhost, special treatment of: connecting. (line 75) * localization: globalization. (line 16) * LOCALTIME: date-and-time-functions. - (line 640) + (line 652) * LOCALTIMESTAMP: date-and-time-functions. - (line 644) + (line 656) * LOCATE(): string-functions. (line 408) +* lock: glossary. (line 2475) +* lock escalation: glossary. (line 2486) * LOCK IN SHARE MODE: select. (line 343) +* lock mode: glossary. (line 2497) * Lock Monitor, InnoDB: innodb-monitors. (line 12) * lock option, ndb_select_all: mysql-cluster-programs-ndb-select-all. (line 15) @@ -264451,23 +273229,25 @@ * lock-tables option, mysqldump: mysqldump. (line 660) * lock-tables option, mysqlimport: mysqlimport. (line 233) * lock_wait_timeout system variable: server-system-variables. - (line 2648) + (line 2656) * Locked, thread state: general-thread-states. (line 167) * locked_in_memory system variable: server-system-variables. - (line 2692) + (line 2700) * LockExecuteThreadToCPU: mysql-cluster-ndbd-definition. - (line 3111) + (line 3080) +* locking <1>: glossary. (line 2522) * locking: system-optimization. (line 23) * locking methods: internal-locking. (line 6) +* locking read: glossary. (line 2538) * locking, external <1>: general-thread-states. (line 320) * locking, external <2>: external-locking. (line 6) * locking, external <3>: myisam-crash-recovery. (line 6) * locking, external <4>: server-system-variables. - (line 5241) + (line 5246) * locking, external: server-options. (line 688) * Locking, information schema <1>: innodb-information-schema-notes. (line 12) @@ -264482,34 +273262,38 @@ (line 167) * locking, table-level: internal-locking. (line 6) * LockMaintThreadsToCPU: mysql-cluster-ndbd-definition. - (line 3135) + (line 3109) * LockPagesInMainMemory: mysql-cluster-ndbd-definition. - (line 1510) + (line 1525) +* log: glossary. (line 2549) * log buf mutex: innodb-improved-log-sys-mutex. (line 6) +* log buffer: glossary. (line 2566) +* log file: glossary. (line 2574) * log files (MySQL Cluster): mysql-cluster-programs-ndbd. (line 346) * log files (MySQL Cluster), ndbmtd: mysql-cluster-programs-ndbmtd. - (line 116) + (line 64) * log files, maintaining: log-file-maintenance. (line 6) +* log group: glossary. (line 2582) * log option, mysqld: server-options. (line 927) * log option, mysqld_multi: mysqld-multi. (line 99) * log sys mutex: innodb-improved-log-sys-mutex. (line 6) * log system variable: server-system-variables. - (line 2702) + (line 2710) * LOG(): mathematical-functions. (line 250) * log, changes: news. (line 17) * log-bin option, mysqld: replication-options-binary-log. (line 50) * log-bin-index option, mysqld: replication-options-binary-log. - (line 80) + (line 89) * log-bin-trust-function-creators option, mysqld: replication-options-binary-log. - (line 97) + (line 106) * log-bin-use-v1-row-events option, mysqld: replication-options-binary-log. - (line 122) + (line 131) * log-error option, mysqld: server-options. (line 961) * log-error option, mysqld_safe: mysqld-safe. (line 143) * log-error option, mysqldump: mysqldump. (line 674) @@ -264518,6 +273302,8 @@ * log-output option, mysqld: server-options. (line 1016) * log-queries-not-using-indexes option, mysqld: server-options. (line 1054) +* log-short-format option, mysqld <1>: replication-options-binary-log. + (line 192) * log-short-format option, mysqld: server-options. (line 1078) * log-slave-updates option, mysqld: replication-options-slave. (line 76) @@ -264535,27 +273321,27 @@ * LOG2(): mathematical-functions. (line 277) * log_bin system variable: server-system-variables. - (line 2710) + (line 2718) * log_bin_trust_function_creators system variable: server-system-variables. - (line 2725) + (line 2733) * log_bin_use_v1_row_events system variable: replication-options-binary-log. - (line 602) + (line 634) * log_error system variable: server-system-variables. - (line 2756) + (line 2764) * log_output system variable: server-system-variables. - (line 2775) + (line 2783) * log_queries_not_using_indexes system variable: server-system-variables. - (line 2805) + (line 2813) * log_slave_updates system variable: server-system-variables. - (line 2825) + (line 2833) * log_slow_admin_statements system variable: server-system-variables. - (line 2832) + (line 2840) * log_slow_queries system variable: server-system-variables. - (line 2865) + (line 2873) * log_slow_slave_statements system variable: server-system-variables. - (line 2849) + (line 2857) * log_warnings system variable: server-system-variables. - (line 2891) + (line 2899) * logbuffers, ndbinfo table: mysql-cluster-ndbinfo-logbuffers. (line 6) * LogDestination: mysql-cluster-mgm-definition. @@ -264564,27 +273350,29 @@ (line 6) * logging slow query, thread state: general-thread-states. (line 175) +* logical: glossary. (line 2590) +* logical backup: glossary. (line 2601) * logical operators: logical-operators. (line 6) * login, thread state: general-thread-states. (line 184) * LogLevelCheckpoint: mysql-cluster-ndbd-definition. - (line 2765) + (line 2733) * LogLevelCongestion: mysql-cluster-ndbd-definition. - (line 2834) + (line 2802) * LogLevelConnection: mysql-cluster-ndbd-definition. - (line 2799) + (line 2767) * LogLevelError: mysql-cluster-ndbd-definition. - (line 2816) + (line 2784) * LogLevelInfo: mysql-cluster-ndbd-definition. - (line 2852) + (line 2820) * LogLevelNodeRestart: mysql-cluster-ndbd-definition. - (line 2783) + (line 2751) * LogLevelShutdown: mysql-cluster-ndbd-definition. - (line 2730) + (line 2698) * LogLevelStartup: mysql-cluster-ndbd-definition. - (line 2713) + (line 2681) * LogLevelStatistic: mysql-cluster-ndbd-definition. - (line 2747) + (line 2715) * logs, and TIMESTAMP: upgrading-from-previous-series. (line 306) * logs, flushing: server-logs. (line 33) @@ -264594,32 +273382,37 @@ * LONG data type: blob. (line 6) * Long Data, thread command: thread-commands. (line 73) * long_query_time system variable: server-system-variables. - (line 2922) + (line 2930) * LONGBLOB data type: string-type-overview. (line 221) * LongMessageBuffer: mysql-cluster-ndbd-definition. - (line 945) + (line 960) * LONGTEXT data type: string-type-overview. (line 231) * LOOP: loop-statement. (line 6) * LOOP, labels: statement-labels. (line 6) * loops option, ndb_show_tables: mysql-cluster-programs-ndb-show-tables. (line 39) +* loose_: glossary. (line 2616) * lost connection errors: error-lost-connection. (line 6) * low-priority option, mysqlimport: mysqlimport. (line 238) * low-priority-updates option, mysqld: server-options. (line 1228) * low_priority_updates system variable: server-system-variables. - (line 2953) + (line 2961) * LOWER(): string-functions. (line 425) * lower_case_file_system system variable: server-system-variables. - (line 2979) + (line 2987) * lower_case_table_names system variable: server-system-variables. - (line 3001) + (line 3009) * LPAD(): string-functions. (line 449) +* LRU: glossary. (line 2628) * LRU page replacement: innodb-performance-midpoint_insertion. (line 6) +* LSN: glossary. (line 2649) * LTRIM(): string-functions. (line 460) +* Lua: mysql-proxy. (line 15) +* LVM: drbd-lvm. (line 6) * Mac OS X: connector-odbc. (line 17) * Mac OS X, installation: macosx-installation. (line 14) @@ -264635,9 +273428,9 @@ * maintenance, tables: mysqlcheck. (line 6) * MAKE_SET(): string-functions. (line 469) * MAKEDATE(): date-and-time-functions. - (line 648) -* MAKETIME(): date-and-time-functions. (line 660) +* MAKETIME(): date-and-time-functions. + (line 672) * Making temp file, thread state: slave-sql-thread-states. (line 18) * malicious SQL statements, and MySQL Cluster: mysql-cluster-security-mysql-privileges. @@ -264651,7 +273444,7 @@ * management nodes (MySQL Cluster): mysql-cluster-programs-ndb-mgmd. (line 6) * managing MySQL Cluster: mysql-cluster-management. - (line 23) + (line 24) * managing MySQL Cluster processes: mysql-cluster-programs. (line 32) * manual, available formats: manual-info. (line 31) @@ -264660,6 +273453,8 @@ * manual, typographical conventions: manual-conventions. (line 8) * Master has sent all binlog to slave; waiting for binlog to be updated, thread state: master-thread-states. (line 22) +* master server: glossary. (line 2672) +* master thread: glossary. (line 2682) * master-data option, mysqldump: mysqldump. (line 679) * master-info-file option, mysqld: replication-options-slave. (line 169) @@ -264676,70 +273471,74 @@ * MAX(): group-by-functions. (line 191) * MAX(DISTINCT): group-by-functions. (line 191) * max-binlog-dump-events option, mysqld: replication-options-binary-log. - (line 386) + (line 410) * max-record-length option, myisamchk: myisamchk-repair-options. (line 61) * max-relay-log-size option, mysqld: replication-options-slave. (line 219) * max_allowed_packet system variable: server-system-variables. - (line 3048) + (line 3056) * max_allowed_packet variable: mysql-command-options. (line 627) * max_allowed_packet, and replication: replication-features-max-allowed-packet. (line 6) * max_binlog_cache_size system variable: replication-options-binary-log. - (line 661) + (line 693) * max_binlog_size system variable: replication-options-binary-log. - (line 745) + (line 777) * max_binlog_stmt_cache_size system variable: replication-options-binary-log. - (line 707) + (line 739) * max_connect_errors system variable: server-system-variables. - (line 3093) + (line 3101) * max_connections system variable: server-system-variables. - (line 3130) + (line 3138) * MAX_CONNECTIONS_PER_HOUR: user-resources. (line 6) * max_delayed_threads system variable: server-system-variables. - (line 3157) + (line 3165) * max_error_count system variable: server-system-variables. - (line 3188) + (line 3196) * max_heap_table_size system variable: server-system-variables. - (line 3212) + (line 3220) * max_insert_delayed_threads system variable: server-system-variables. - (line 3257) + (line 3269) * max_join_size system variable: server-system-variables. - (line 3271) + (line 3283) * max_join_size variable: mysql-command-options. (line 632) * max_length_for_sort_data system variable: server-system-variables. - (line 3313) + (line 3325) * max_long_data_size system variable: server-system-variables. - (line 3336) + (line 3348) * max_prepared_stmt_count system variable: server-system-variables. - (line 3366) + (line 3378) * MAX_QUERIES_PER_HOUR: user-resources. (line 6) * max_relay_log_size system variable: server-system-variables. - (line 3396) -* MAX_ROWS, and MySQL Cluster: create-table. (line 789) -* MAX_ROWS, and NDB: create-table. (line 789) + (line 3408) +* MAX_ROWS, and DataMemory (MySQL Cluster): mysql-cluster-ndbd-definition. + (line 399) +* MAX_ROWS, and MySQL Cluster <1>: partitioning-overview. + (line 134) +* MAX_ROWS, and MySQL Cluster: create-table. (line 790) +* MAX_ROWS, and NDB: create-table. (line 790) * max_seeks_for_key system variable: server-system-variables. - (line 3426) + (line 3438) * max_sort_length system variable: server-system-variables. - (line 3463) + (line 3475) * max_sp_recursion_depth system variable: server-system-variables. - (line 3487) + (line 3499) * max_tmp_tables system variable: server-system-variables. - (line 3516) + (line 3528) * MAX_UPDATES_PER_HOUR: user-resources. (line 6) * MAX_USER_CONNECTIONS: user-resources. (line 6) * max_user_connections system variable: server-system-variables. - (line 3548) + (line 3560) * max_write_lock_count system variable: server-system-variables. - (line 3588) + (line 3600) * MaxBufferedEpochs: mysql-cluster-ndbd-definition. - (line 2206) + (line 2174) * MAXDB SQL mode: server-sql-mode. (line 463) * MaxDMLOperationsPerTransaction: mysql-cluster-ndbd-definition. - (line 740) + (line 754) * maximum memory used: mysqladmin. (line 209) * maximums, maximum columns per table: column-count-limit. (line 6) * maximums, maximum number of databases: database-count-limit. @@ -264749,51 +273548,51 @@ * maximums, maximum tables per join: joins-limits. (line 6) * maximums, table size: table-size-limit. (line 6) * MaxLCPStartDelay: mysql-cluster-ndbd-definition. - (line 1179) + (line 1194) * MaxNoOfAttributes: mysql-cluster-ndbd-definition. - (line 1229) + (line 1244) * MaxNoOfConcurrentIndexOperations: mysql-cluster-ndbd-definition. - (line 780) + (line 794) * MaxNoOfConcurrentOperations: mysql-cluster-ndbd-definition. - (line 658) + (line 672) * MaxNoOfConcurrentScans: mysql-cluster-ndbd-definition. - (line 873) + (line 887) * MaxNoOfConcurrentSubOperations: mysql-cluster-ndbd-definition. - (line 1478) + (line 1493) * MaxNoOfConcurrentTransactions: mysql-cluster-ndbd-definition. - (line 613) -* MaxNoOfExecutionThreads, ndbmtd: mysql-cluster-programs-ndbmtd. - (line 60) + (line 627) +* MaxNoOfExecutionThreads, ndbmtd: mysql-cluster-ndbd-definition. + (line 3256) * MaxNoOfFiredTriggers: mysql-cluster-ndbd-definition. - (line 807) + (line 821) * MaxNoOfIndexes: mysql-cluster-ndbd-definition. - (line 1398) + (line 1413) * MaxNoOfLocalOperations: mysql-cluster-ndbd-definition. - (line 721) + (line 735) * MaxNoOfLocalScans: mysql-cluster-ndbd-definition. - (line 907) + (line 921) * MaxNoOfOpenFiles: mysql-cluster-ndbd-definition. - (line 1125) + (line 1140) * MaxNoOfOrderedIndexes: mysql-cluster-ndbd-definition. - (line 1320) + (line 1335) * MaxNoOfSavedMessages: mysql-cluster-ndbd-definition. - (line 1161) + (line 1176) * MaxNoOfSubscribers: mysql-cluster-ndbd-definition. - (line 1439) + (line 1454) * MaxNoOfSubscriptions: mysql-cluster-ndbd-definition. - (line 1410) + (line 1425) * MaxNoOfTables: mysql-cluster-ndbd-definition. - (line 1281) + (line 1296) * MaxNoOfTriggers: mysql-cluster-ndbd-definition. - (line 1373) + (line 1388) * MaxNoOfUniqueHashIndexes: mysql-cluster-ndbd-definition. - (line 1347) + (line 1362) * MaxParallelScansPerFragment: mysql-cluster-ndbd-definition. - (line 969) + (line 984) * MaxScanBatchSize: mysql-cluster-api-definition. (line 227) * MaxStartFailRetries: mysql-cluster-ndbd-definition. - (line 3812) + (line 3938) * MBR: relations-on-geometry-mbr. (line 6) * MBRContains(): relations-on-geometry-mbr. @@ -264812,6 +273611,8 @@ (line 56) * MD5(): encryption-functions. (line 283) +* medium trust: connector-net-medium-trust. + (line 6) * medium-check option, myisamchk: myisamchk-check-options. (line 49) * medium-check option, mysqlcheck: mysqlcheck. (line 321) @@ -264821,6 +273622,8 @@ (line 111) * MEDIUMTEXT data type: string-type-overview. (line 212) +* MEMCACHED_HOME option, CMake: source-configuration-options. + (line 574) * memlock option, mysqld: server-options. (line 1285) * memory allocator, innodb_use_sys_malloc: innodb-performance-use_sys_malloc. (line 6) @@ -264839,7 +273642,8 @@ * memoryusage, ndbinfo table: mysql-cluster-ndbinfo-memoryusage. (line 6) * MemReportFrequency: mysql-cluster-ndbd-definition. - (line 2869) + (line 2837) +* merge: glossary. (line 2698) * MERGE storage engine <1>: merge-storage-engine. (line 11) * MERGE storage engine: storage-engines. (line 22) @@ -264852,16 +273656,19 @@ * metadata, triggers: trigger-metadata. (line 6) * metadata, views: view-metadata. (line 6) * metadata_locks_cache_size system variable: server-system-variables. - (line 3619) + (line 3631) * method option, mysqlhotcopy: mysqlhotcopy. (line 130) * methods, locking: internal-locking. (line 6) +* metrics counter: glossary. (line 2710) * mgmd (MySQL Cluster), defined: mysql-cluster-basics. (line 6) * MI: mi. (line 6) * MICROSECOND(): date-and-time-functions. - (line 668) + (line 680) * Microsoft Access: connector-odbc-usagenotes-apptips-microsoft-access. (line 6) +* Microsoft ADO <1>: connector-net-visual-studio-entity-framework. + (line 6) * Microsoft ADO: connector-odbc-usagenotes-apptips-microsoft-ado. (line 6) * Microsoft Excel: connector-odbc-usagenotes-apptips-microsoft-excel. @@ -264870,22 +273677,26 @@ (line 6) * Microsoft Visual InterDev: connector-odbc-usagenotes-apptips-microsoft-visualinterdev. (line 6) +* Microsoft Visual Studio: connector-net-visual-studio. + (line 22) * MID(): string-functions. (line 486) * midpoint insertion: innodb-performance-midpoint_insertion. (line 6) +* midpoint insertion strategy: glossary. (line 2723) * MIN(): group-by-functions. (line 211) * MIN(DISTINCT): group-by-functions. (line 211) * min-examined-row-limit option, mysqld: server-options. (line 1255) * min_examined_row_limit system variable: server-system-variables. - (line 3640) + (line 3652) * MinFreePct: mysql-cluster-ndbd-definition. - (line 559) + (line 399) +* mini-transaction: glossary. (line 2737) * Minimum Bounding Rectangle: relations-on-geometry-mbr. (line 6) * minus, unary (-): arithmetic-functions. (line 69) * MINUTE(): date-and-time-functions. - (line 678) + (line 690) * mirror sites: getting-mysql. (line 6) * miscellaneous functions: miscellaneous-functions. (line 6) @@ -264905,17 +273716,17 @@ * monitor, terminal: tutorial. (line 16) * monitoring, threads: thread-information. (line 19) * Monitors, InnoDB <1>: innodb-troubleshooting-datadict. - (line 60) + (line 58) * Monitors, InnoDB <2>: innodb-troubleshooting. (line 26) * Monitors, InnoDB <3>: innodb-monitors. (line 12) -* Monitors, InnoDB <4>: innodb-file-space. (line 60) -* Monitors, InnoDB: innodb-backup. (line 122) +* Monitors, InnoDB <4>: innodb-file-space. (line 59) +* Monitors, InnoDB: innodb-backup. (line 116) * Mono: connector-net. (line 18) * MONTH(): date-and-time-functions. - (line 685) + (line 697) * MONTHNAME(): date-and-time-functions. - (line 694) + (line 706) * MPointFromText(): gis-wkt-functions. (line 35) * MPointFromWKB(): gis-wkb-functions. (line 37) * MPolyFromText(): gis-wkt-functions. (line 40) @@ -264930,6 +273741,7 @@ (line 6) * multi-column indexes: multiple-column-indexes. (line 6) +* multi-core: glossary. (line 2757) * multi-master replication, in MySQL Cluster <1>: mysql-cluster-replication-conflict-resolution. (line 6) * multi-master replication, in MySQL Cluster: mysql-cluster-replication-multi-master. @@ -264960,12 +273772,15 @@ (line 40) * MultiPolygonFromText(): gis-wkt-functions. (line 40) * MultiPolygonFromWKB(): gis-wkb-functions. (line 42) +* mutex: glossary. (line 2764) * mutex_instances table, performance_schema: mutex-instances-table. (line 6) +* MVCC: glossary. (line 2778) * MVCC (multi-version concurrency control): innodb-multi-versioning. (line 6) * My, derivation: history. (line 6) * my-print-defaults option, mysql_plugin: mysql-plugin. (line 89) +* my.cnf: glossary. (line 2797) * my.cnf file: replication-features. (line 42) * my.cnf, and MySQL Cluster <1>: mysql-cluster-config-example. @@ -264976,6 +273791,7 @@ (line 6) * my.cnf, in MySQL Cluster: mysql-cluster-programs-mysqld. (line 52) +* my.ini: glossary. (line 2803) * my_bool C type: c-api-data-structures. (line 64) * my_bool values, printing: c-api-data-structures. @@ -265010,14 +273826,14 @@ * MyISAM storage engine: storage-engines. (line 22) * MyISAM, compressed tables <1>: compressed-format. (line 6) * MyISAM, compressed tables: myisampack. (line 6) -* myisam-block-size option, mysqld: server-options. (line 1329) -* myisam-recover option, mysqld: server-options. (line 1346) +* myisam-block-size option, mysqld: server-options. (line 1333) +* myisam-recover option, mysqld: server-options. (line 1350) * myisam-recover-options option, mysqld <1>: myisam-start. (line 41) -* myisam-recover-options option, mysqld: server-options. (line 1352) +* myisam-recover-options option, mysqld: server-options. (line 1356) * myisam_block_size myisamchk variable: myisamchk-general-options. (line 53) * myisam_data_pointer_size system variable: server-system-variables. - (line 3670) + (line 3682) * myisam_ftdump <1>: myisam-ftdump. (line 6) * myisam_ftdump: programs-overview. (line 152) * myisam_ftdump, count option: myisam-ftdump. (line 62) @@ -265027,19 +273843,19 @@ * myisam_ftdump, stats option: myisam-ftdump. (line 74) * myisam_ftdump, verbose option: myisam-ftdump. (line 79) * myisam_max_sort_file_size system variable: server-system-variables. - (line 3694) + (line 3706) * myisam_mmap_size system variable: server-system-variables. - (line 3723) + (line 3735) * myisam_recover_options system variable: server-system-variables. - (line 3758) + (line 3770) * myisam_repair_threads system variable: server-system-variables. - (line 3768) + (line 3780) * myisam_sort_buffer_size system variable: server-system-variables. - (line 3805) + (line 3817) * myisam_stats_method system variable: server-system-variables. - (line 3844) + (line 3856) * myisam_use_mmap system variable: server-system-variables. - (line 3878) + (line 3890) * myisamchk <1>: myisamchk. (line 15) * myisamchk: programs-overview. (line 157) * myisamchk, analyze option: myisamchk-other-options. @@ -265146,7 +273962,8 @@ * myisampack, version option: myisampack. (line 111) * myisampack, wait option: myisampack. (line 115) * MyODBC: connector-odbc. (line 17) -* mysql <1>: mysql. (line 15) +* mysql <1>: glossary. (line 2829) +* mysql <2>: mysql. (line 15) * mysql: programs-overview. (line 106) * mysql \. (command for reading from text files) <1>: batch-commands. (line 6) @@ -265169,7 +273986,7 @@ * MySQL Cluster Disk Data, storage requirements: mysql-cluster-disk-data-storage-requirements. (line 6) * MySQL Cluster How-To: mysql-cluster-installation. - (line 15) + (line 16) * MySQL Cluster limitations: mysql-cluster-limitations. (line 20) * MySQL Cluster limitations, and differences from standard MySQL limits: mysql-cluster-limitations-limits. @@ -265225,17 +274042,17 @@ * MySQL Cluster replication: mysql-cluster-replication. (line 20) * MySQL Cluster replication, and -initial option: mysql-cluster-replication-issues. - (line 174) + (line 173) * MySQL Cluster replication, and circular replication: mysql-cluster-replication-issues. (line 60) * MySQL Cluster Replication, and NDB API _slave status variables: mysql-cluster-replication. (line 61) * MySQL Cluster replication, and primary key: mysql-cluster-replication-issues. - (line 120) + (line 119) * MySQL Cluster replication, and single point of failure: mysql-cluster-replication-two-channels. (line 6) * MySQL Cluster replication, and unique keys: mysql-cluster-replication-issues. - (line 128) + (line 127) * MySQL Cluster replication, backups: mysql-cluster-replication-backups. (line 11) * MySQL Cluster replication, circular replication: mysql-cluster-replication-multi-master. @@ -265271,7 +274088,7 @@ * MySQL Cluster replication, starting: mysql-cluster-replication-starting. (line 6) * MySQL Cluster replication, storage engines other than NDB on slave: mysql-cluster-replication-issues. - (line 223) + (line 221) * MySQL Cluster replication, synchronization of master and slave: mysql-cluster-replication-auto-sync. (line 6) * MySQL Cluster replication, system tables used: mysql-cluster-replication-schema. @@ -265295,11 +274112,11 @@ * MySQL Cluster, and application feature requirements: mysql-cluster-ndb-innodb-usage. (line 6) * MySQL Cluster, and DNS: mysql-cluster-installation. - (line 54) + (line 58) * MySQL Cluster, and INFORMATION_SCHEMA: mysql-cluster-security-mysql-privileges. (line 96) * MySQL Cluster, and IP addressing: mysql-cluster-installation. - (line 54) + (line 58) * MySQL Cluster, and MySQL privileges: mysql-cluster-security-mysql-privileges. (line 6) * MySQL Cluster, and MySQL root user <1>: mysql-cluster-security-mysql-security-procedures. @@ -265309,7 +274126,7 @@ * MySQL Cluster, and networking: mysql-cluster-overview-requirements. (line 6) * MySQL Cluster, and transactions: mysql-cluster-ndbd-definition. - (line 413) + (line 428) * MySQL Cluster, API node <1>: mysql-cluster-api-definition. (line 6) * MySQL Cluster, API node: mysql-cluster-basics. @@ -265318,7 +274135,7 @@ (line 6) * MySQL Cluster, availability: mysql-cluster-compared. (line 36) -* MySQL Cluster, available platforms: mysql-cluster. (line 42) +* MySQL Cluster, available platforms: mysql-cluster. (line 45) * MySQL Cluster, backups <1>: mysql-cluster-backup-troubleshooting. (line 6) * MySQL Cluster, backups <2>: mysql-cluster-backup-configuration. @@ -265389,7 +274206,7 @@ * MySQL Cluster, configuration <8>: mysql-cluster-configuration. (line 14) * MySQL Cluster, configuration: mysql-cluster-installation. - (line 15) + (line 16) * MySQL Cluster, configuration (example): mysql-cluster-config-example. (line 6) * MySQL Cluster, configuration changes: mysql-cluster-rolling-restart. @@ -265416,7 +274233,7 @@ (line 6) * MySQL Cluster, CREATE NODEGROUP command: mysql-cluster-mgm-client-commands. (line 174) -* MySQL Cluster, creating large tables: create-table. (line 789) +* MySQL Cluster, creating large tables: create-table. (line 790) * MySQL Cluster, data node <1>: mysql-cluster-ndbd-definition. (line 6) * MySQL Cluster, data node: mysql-cluster-basics. @@ -265453,15 +274270,15 @@ (line 20) * MySQL Cluster, event types: mysql-cluster-event-reports. (line 49) -* MySQL Cluster, execution threads: mysql-cluster-programs-ndbmtd. - (line 60) +* MySQL Cluster, execution threads: mysql-cluster-ndbd-definition. + (line 3256) * MySQL Cluster, EXIT command: mysql-cluster-mgm-client-commands. (line 159) * MySQL Cluster, EXIT SINGLE USER MODE command: mysql-cluster-mgm-client-commands. (line 149) * MySQL Cluster, FAQ: faqs-mysql-cluster. (line 6) * MySQL Cluster, GCP Stop errors: mysql-cluster-ndbd-definition. - (line 3632) + (line 3741) * MySQL Cluster, general description: mysql-cluster-overview. (line 15) * MySQL Cluster, HELP command: mysql-cluster-mgm-client-commands. @@ -265470,11 +274287,11 @@ (line 40) * MySQL Cluster, INFO Events: mysql-cluster-log-events. (line 210) -* MySQL Cluster, information sources: mysql-cluster. (line 198) +* MySQL Cluster, information sources: mysql-cluster. (line 183) * MySQL Cluster, insecurity of communication protocols: mysql-cluster-security-networking-issues. (line 12) * MySQL Cluster, installation: mysql-cluster-installation. - (line 15) + (line 16) * MySQL Cluster, installation (Linux): mysql-cluster-install-linux. (line 12) * MySQL Cluster, installation (Windows): mysql-cluster-install-windows. @@ -265494,7 +274311,7 @@ * MySQL Cluster, Java clients: mysql-cluster-basics. (line 115) * MySQL Cluster, log files <1>: mysql-cluster-programs-ndbmtd. - (line 116) + (line 64) * MySQL Cluster, log files: mysql-cluster-programs-ndbd. (line 346) * MySQL Cluster, logging commands: mysql-cluster-logging-management-commands. @@ -265510,8 +274327,8 @@ * MySQL Cluster, management nodes: mysql-cluster-programs-ndb-mgmd. (line 6) * MySQL Cluster, managing: mysql-cluster-management. - (line 23) -* MySQL Cluster, MAX_ROWS: create-table. (line 789) + (line 24) +* MySQL Cluster, MAX_ROWS: create-table. (line 790) * MySQL Cluster, memory usage and recovery <1>: mysql-cluster-rolling-restart. (line 63) * MySQL Cluster, memory usage and recovery: mysql-cluster-limitations-limits. @@ -265694,7 +274511,9 @@ (line 6) * MySQL Cluster, troubleshooting backups: mysql-cluster-backup-troubleshooting. (line 6) -* MySQL Cluster, upgrades and downgrades: mysql-cluster-rolling-restart. +* MySQL Cluster, upgrades and downgrades <1>: mysql-cluster-rolling-restart. + (line 6) +* MySQL Cluster, upgrades and downgrades: mysql-cluster-upgrade-downgrade. (line 6) * MySQL Cluster, using tables and data: mysql-cluster-install-example-data. (line 6) @@ -265702,6 +274521,7 @@ (line 6) * mysql commands, list of: mysql-commands. (line 11) * MySQL Dolphin name: history. (line 6) +* MySQL Enterprise Backup: glossary. (line 2838) * MySQL history: history. (line 6) * mysql history file: mysql-history-file. (line 6) * MySQL Installer: mi. (line 6) @@ -265872,6 +274692,13 @@ * mysql, warnings command: mysql-commands. (line 234) * mysql, xml option: mysql-command-options. (line 579) +* MySql.Data class: connector-net-ref. (line 11) +* MySql.Data.dll library <1>: connector-net-installation-unix. + (line 6) +* MySql.Data.dll library: connector-net-installation-binary-windows-zip. + (line 6) +* mysql.data.ef.dll library: connector-net-visual-studio. + (line 22) * mysql.event table: events-privileges. (line 138) * mysql.ndb_binlog_index table: mysql-cluster-replication-schema. (line 6) @@ -265886,6 +274713,8 @@ * mysql.server, user option: mysql-server. (line 62) * mysql.sock, protection: problems-with-mysql-sock. (line 6) +* mysql.visualstudio.dll library: connector-net-visual-studio. + (line 22) * MYSQL323 SQL mode: server-sql-mode. (line 474) * MYSQL40 SQL mode: server-sql-mode. (line 478) * mysql_affected_rows(): mysql-affected-rows. @@ -265944,7 +274773,7 @@ * mysql_create_db(): mysql-create-db. (line 6) * mysql_data_seek(): mysql-data-seek. (line 6) * MYSQL_DATADIR option, CMake: source-configuration-options. - (line 258) + (line 298) * MYSQL_DEBUG environment variable <1>: debugging-client. (line 10) * MYSQL_DEBUG environment variable <2>: programs-overview. (line 289) * MYSQL_DEBUG environment variable: environment-variables. @@ -266016,7 +274845,7 @@ * mysql_info() <2>: update. (line 95) * mysql_info() <3>: load-data. (line 658) * mysql_info() <4>: insert. (line 202) -* mysql_info(): alter-table. (line 537) +* mysql_info(): alter-table. (line 541) * mysql_init(): mysql-init. (line 6) * mysql_insert_id() <1>: mysql-insert-id. (line 6) * mysql_insert_id() <2>: insert. (line 206) @@ -266049,7 +274878,7 @@ * mysql_load_plugin_v(): mysql-load-plugin-v. (line 6) * MYSQL_MAINTAINER_MODE option, CMake: source-configuration-options. - (line 411) + (line 453) * mysql_more_results(): mysql-more-results. (line 6) * mysql_next_result(): mysql-next-result. (line 6) * mysql_num_fields(): mysql-num-fields. (line 6) @@ -266071,6 +274900,8 @@ * mysql_plugin, version option: mysql-plugin. (line 138) * mysql_plugin_options(): mysql-plugin-options. (line 6) +* MYSQL_PROJECT_NAME option, CMake: source-configuration-options. + (line 459) * MYSQL_PS1 environment variable: environment-variables. (line 18) * MYSQL_PWD environment variable <1>: connecting. (line 231) @@ -266188,7 +275019,7 @@ * MYSQL_TCP_PORT environment variable: environment-variables. (line 18) * MYSQL_TCP_PORT option, CMake: source-configuration-options. - (line 417) + (line 464) * mysql_thread_end(): mysql-thread-end. (line 6) * mysql_thread_id(): mysql-thread-id. (line 6) * mysql_thread_init(): mysql-thread-init. (line 6) @@ -266199,7 +275030,7 @@ (line 6) * mysql_tzinfo_to_sql: programs-overview. (line 90) * MYSQL_UNIX_ADDR option, CMake: source-configuration-options. - (line 424) + (line 471) * MYSQL_UNIX_PORT environment variable <1>: multiple-server-clients. (line 27) * MYSQL_UNIX_PORT environment variable <2>: multiple-unix-servers. @@ -266299,6 +275130,7 @@ * mysqladmin, version option: mysqladmin. (line 450) * mysqladmin, vertical option: mysqladmin. (line 454) * mysqladmin, wait option: mysqladmin. (line 459) +* mysqlbackup command: glossary. (line 2847) * mysqlbinlog <1>: mysqlbinlog. (line 11) * mysqlbinlog: programs-overview. (line 177) * mysqlbinlog, base64-output option: mysqlbinlog. (line 168) @@ -266337,6 +275169,8 @@ * mysqlbinlog, verbose option: mysqlbinlog. (line 515) * mysqlbinlog, version option: mysqlbinlog. (line 525) * mysqlbug: mysqlbug. (line 6) +* MySqlBulkLoader class: connector-net-programming-bulk-loader. + (line 6) * mysqlcheck <1>: mysqlcheck. (line 6) * mysqlcheck: programs-overview. (line 119) * mysqlcheck, all-databases option: mysqlcheck. (line 199) @@ -266380,7 +275214,18 @@ * mysqlcheck, verbose option: mysqlcheck. (line 412) * mysqlcheck, version option: mysqlcheck. (line 417) * mysqlcheck, write-binlog option: mysqlcheck. (line 421) +* MySqlClient class: connector-net-ref-mysqlclient. + (line 17) * mysqlclient library: connectors-apis. (line 24) +* MySQLCommand class: connector-net-programming-mysqlcommand. + (line 6) +* MySqlCommand class: connector-net-tutorials-sql-command. + (line 6) +* mysqlcppconn-static.lib: connector-cpp-apps-windows-visual-studio. + (line 6) +* mysqlcppconn.dll: connector-cpp-apps-windows-visual-studio. + (line 6) +* mysqld <1>: glossary. (line 2859) * mysqld: programs-overview. (line 38) * mysqld (MySQL Cluster): mysql-cluster-programs. (line 32) @@ -266407,10 +275252,10 @@ * mysqld, big-tables option: server-options. (line 135) * mysqld, bind-address option: server-options. (line 159) * mysqld, binlog-do-db option: replication-options-binary-log. - (line 191) + (line 215) * mysqld, binlog-format option: server-options. (line 184) * mysqld, binlog-ignore-db option: replication-options-binary-log. - (line 316) + (line 340) * mysqld, binlog-row-event-max-size option: replication-options-binary-log. (line 20) * mysqld, bootstrap option: server-options. (line 215) @@ -266445,10 +275290,10 @@ * mysqld, gdb option: server-options. (line 733) * mysqld, general-log option: server-options. (line 750) * mysqld, help option: server-options. (line 72) -* mysqld, ignore-builtin-innodb option: innodb-parameters. (line 144) +* mysqld, ignore-builtin-innodb option: innodb-parameters. (line 142) * mysqld, init-file option: server-options. (line 772) -* mysqld, innodb option: innodb-parameters. (line 175) -* mysqld, innodb-status-file option: innodb-parameters. (line 188) +* mysqld, innodb option: innodb-parameters. (line 166) +* mysqld, innodb-status-file option: innodb-parameters. (line 179) * mysqld, install option: server-options. (line 800) * mysqld, install-manual option: server-options. (line 811) * mysqld, language option: server-options. (line 823) @@ -266460,17 +275305,19 @@ * mysqld, log-bin option: replication-options-binary-log. (line 50) * mysqld, log-bin-index option: replication-options-binary-log. - (line 80) + (line 89) * mysqld, log-bin-trust-function-creators option: replication-options-binary-log. - (line 97) + (line 106) * mysqld, log-bin-use-v1-row-events option: replication-options-binary-log. - (line 122) + (line 131) * mysqld, log-error option: server-options. (line 961) * mysqld, log-isam option: server-options. (line 983) * mysqld, log-long-format option: server-options. (line 998) * mysqld, log-output option: server-options. (line 1016) * mysqld, log-queries-not-using-indexes option: server-options. (line 1054) +* mysqld, log-short-format option <1>: replication-options-binary-log. + (line 192) * mysqld, log-short-format option: server-options. (line 1078) * mysqld, log-slave-updates option: replication-options-slave. (line 76) @@ -266489,15 +275336,15 @@ * mysqld, master-retry-count option: replication-options-slave. (line 187) * mysqld, max-binlog-dump-events option: replication-options-binary-log. - (line 386) + (line 410) * mysqld, max-relay-log-size option: replication-options-slave. (line 219) * mysqld, memlock option: server-options. (line 1285) * mysqld, min-examined-row-limit option: server-options. (line 1255) -* mysqld, myisam-block-size option: server-options. (line 1329) -* mysqld, myisam-recover option: server-options. (line 1346) +* mysqld, myisam-block-size option: server-options. (line 1333) +* mysqld, myisam-recover option: server-options. (line 1350) * mysqld, myisam-recover-options option <1>: myisam-start. (line 41) -* mysqld, myisam-recover-options option: server-options. (line 1352) +* mysqld, myisam-recover-options option: server-options. (line 1356) * mysqld, MySQL server <1>: mysqld-server. (line 19) * mysqld, MySQL server: mysqld. (line 6) * mysqld, ndb-batch-size option: mysql-cluster-program-options-mysqld. @@ -266511,134 +275358,136 @@ * mysqld, ndb-connectstring option: mysql-cluster-program-options-mysqld. (line 175) * mysqld, ndb-log-apply-status: mysql-cluster-program-options-mysqld. - (line 231) + (line 282) +* mysqld, ndb-log-empty-epochs: mysql-cluster-program-options-mysqld. + (line 393) * mysqld, ndb-log-transaction-id: mysql-cluster-program-options-mysqld. - (line 269) + (line 320) * mysqld, ndb-nodeid: mysql-cluster-program-options-mysqld. - (line 304) + (line 355) * mysqld, ndbcluster option: mysql-cluster-program-options-mysqld. - (line 209) -* mysqld, old-alter-table option: server-options. (line 1417) + (line 260) +* mysqld, old-alter-table option: server-options. (line 1421) * mysqld, old-passwords option <1>: privileges-options. (line 56) -* mysqld, old-passwords option: server-options. (line 1443) -* mysqld, old-style-user-limits option: server-options. (line 1465) -* mysqld, one-thread option: server-options. (line 1482) -* mysqld, open-files-limit option: server-options. (line 1497) -* mysqld, partition option: server-options. (line 1529) -* mysqld, pid-file option: server-options. (line 1550) -* mysqld, plugin option prefix: server-options. (line 1573) -* mysqld, plugin-load option: server-options. (line 1598) -* mysqld, port option: server-options. (line 1647) -* mysqld, port-open-timeout option: server-options. (line 1669) +* mysqld, old-passwords option: server-options. (line 1447) +* mysqld, old-style-user-limits option: server-options. (line 1469) +* mysqld, one-thread option: server-options. (line 1486) +* mysqld, open-files-limit option: server-options. (line 1501) +* mysqld, partition option: server-options. (line 1533) +* mysqld, pid-file option: server-options. (line 1554) +* mysqld, plugin option prefix: server-options. (line 1577) +* mysqld, plugin-load option: server-options. (line 1602) +* mysqld, port option: server-options. (line 1651) +* mysqld, port-open-timeout option: server-options. (line 1673) * mysqld, read-only option: replication-options-slave. (line 225) * mysqld, relay-log option: replication-options-slave. (line 233) * mysqld, relay-log-index option: replication-options-slave. - (line 278) + (line 287) * mysqld, relay-log-info-file option: replication-options-slave. - (line 315) + (line 324) * mysqld, relay-log-purge option: replication-options-slave. - (line 335) + (line 344) * mysqld, relay-log-recovery option: replication-options-slave. - (line 342) -* mysqld, relay-log-space-limit option: replication-options-slave. (line 351) -* mysqld, remove option: server-options. (line 1688) +* mysqld, relay-log-space-limit option: replication-options-slave. + (line 360) +* mysqld, remove option: server-options. (line 1692) * mysqld, replicate-do-db option: replication-options-slave. - (line 372) + (line 381) * mysqld, replicate-do-table option: replication-options-slave. - (line 556) + (line 565) * mysqld, replicate-ignore-db option: replication-options-slave. - (line 487) + (line 496) * mysqld, replicate-ignore-table option: replication-options-slave. - (line 578) + (line 587) * mysqld, replicate-rewrite-db option: replication-options-slave. - (line 601) + (line 610) * mysqld, replicate-same-server-id option: replication-options-slave. - (line 630) + (line 639) * mysqld, replicate-wild-do-table option: replication-options-slave. - (line 654) + (line 663) * mysqld, replicate-wild-ignore-table option: replication-options-slave. - (line 701) + (line 710) * mysqld, report-host option: replication-options-slave. - (line 727) + (line 736) * mysqld, report-password option: replication-options-slave. - (line 753) + (line 762) * mysqld, report-port option: replication-options-slave. - (line 779) + (line 788) * mysqld, report-user option: replication-options-slave. - (line 802) + (line 817) * mysqld, role in MySQL Cluster: mysql-cluster-basics. (line 6) -* mysqld, safe-mode option: server-options. (line 1698) -* mysqld, safe-show-database option: server-options. (line 1708) +* mysqld, safe-mode option: server-options. (line 1702) +* mysqld, safe-show-database option: server-options. (line 1712) * mysqld, safe-user-create option <1>: privileges-options. (line 62) -* mysqld, safe-user-create option: server-options. (line 1730) +* mysqld, safe-user-create option: server-options. (line 1734) * mysqld, secure-auth option <1>: privileges-options. (line 77) -* mysqld, secure-auth option: server-options. (line 1755) +* mysqld, secure-auth option: server-options. (line 1759) * mysqld, secure-file-priv option <1>: privileges-options. (line 86) -* mysqld, secure-file-priv option: server-options. (line 1775) +* mysqld, secure-file-priv option: server-options. (line 1779) * mysqld, server-id option: replication-options. (line 21) * mysqld, server-id-bits option: mysql-cluster-program-options-mysqld. - (line 342) -* mysqld, shared-memory option: server-options. (line 1796) -* mysqld, shared-memory-base-name option: server-options. (line 1801) + (line 423) +* mysqld, shared-memory option: server-options. (line 1800) +* mysqld, shared-memory-base-name option: server-options. (line 1805) * mysqld, show-slave-auth-info option: replication-options-slave. - (line 828) -* mysqld, skip-concurrent-insert option: server-options. (line 1807) -* mysqld, skip-event-scheduler option: server-options. (line 1822) -* mysqld, skip-external-locking option: server-options. (line 1813) + (line 843) +* mysqld, skip-concurrent-insert option: server-options. (line 1811) +* mysqld, skip-event-scheduler option: server-options. (line 1826) +* mysqld, skip-external-locking option: server-options. (line 1817) * mysqld, skip-grant-tables option <1>: privileges-options. (line 93) -* mysqld, skip-grant-tables option: server-options. (line 1835) -* mysqld, skip-host-cache option: server-options. (line 1854) -* mysqld, skip-innodb option <1>: innodb-parameters. (line 212) -* mysqld, skip-innodb option: server-options. (line 1860) +* mysqld, skip-grant-tables option: server-options. (line 1839) +* mysqld, skip-host-cache option: server-options. (line 1858) +* mysqld, skip-innodb option <1>: innodb-parameters. (line 200) +* mysqld, skip-innodb option: server-options. (line 1864) * mysqld, skip-name-resolve option <1>: privileges-options. (line 112) -* mysqld, skip-name-resolve option: server-options. (line 1867) +* mysqld, skip-name-resolve option: server-options. (line 1871) * mysqld, skip-ndbcluster option: mysql-cluster-program-options-mysqld. - (line 387) + (line 468) * mysqld, skip-networking option <1>: privileges-options. (line 117) -* mysqld, skip-networking option: server-options. (line 1874) -* mysqld, skip-partition option: server-options. (line 1882) -* mysqld, skip-safemalloc option: server-options. (line 1943) +* mysqld, skip-networking option: server-options. (line 1878) +* mysqld, skip-partition option: server-options. (line 1886) +* mysqld, skip-safemalloc option: server-options. (line 1947) * mysqld, skip-show-database option <1>: privileges-options. (line 122) -* mysqld, skip-show-database option: server-options. (line 1959) +* mysqld, skip-show-database option: server-options. (line 1963) * mysqld, skip-slave-start option: replication-options-slave. - (line 845) -* mysqld, skip-stack-trace option: server-options. (line 1980) -* mysqld, skip-symbolic-links option: server-options. (line 1920) -* mysqld, skip-thread-priority option: server-options. (line 1993) + (line 860) +* mysqld, skip-stack-trace option: server-options. (line 1984) +* mysqld, skip-symbolic-links option: server-options. (line 1924) +* mysqld, skip-thread-priority option: server-options. (line 1997) * mysqld, slave-load-tmpdir option: replication-options-slave. - (line 882) + (line 897) * mysqld, slave-net-timeout option: replication-options-slave. - (line 920) + (line 935) * mysqld, slave-skip-errors option: replication-options-slave. - (line 947) + (line 962) * mysqld, slave_compressed_protocol option: replication-options-slave. - (line 861) -* mysqld, slow-query-log option: server-options. (line 2004) -* mysqld, slow-start-timeout option: server-options. (line 2026) -* mysqld, socket option: server-options. (line 2047) + (line 876) +* mysqld, slow-query-log option: server-options. (line 2008) +* mysqld, slow-start-timeout option: server-options. (line 2030) +* mysqld, socket option: server-options. (line 2051) * mysqld, sporadic-binlog-dump-fail option: replication-options-binary-log. - (line 401) -* mysqld, sql-mode option: server-options. (line 2074) + (line 425) +* mysqld, sql-mode option: server-options. (line 2078) * mysqld, SSL options <1>: privileges-options. (line 132) -* mysqld, SSL options: server-options. (line 1894) -* mysqld, standalone option: server-options. (line 1900) +* mysqld, SSL options: server-options. (line 1898) +* mysqld, standalone option: server-options. (line 1904) * mysqld, starting: changing-mysql-user. (line 6) -* mysqld, super-large-pages option: server-options. (line 1911) -* mysqld, symbolic-links option: server-options. (line 1920) -* mysqld, sysdate-is-now option: server-options. (line 2116) -* mysqld, tc-heuristic-recover option: server-options. (line 2136) -* mysqld, temp-pool option: server-options. (line 2152) -* mysqld, tmpdir option: server-options. (line 2197) -* mysqld, transaction-isolation option: server-options. (line 2172) -* mysqld, user option: server-options. (line 2231) -* mysqld, verbose option: server-options. (line 2266) -* mysqld, version option: server-options. (line 2270) +* mysqld, super-large-pages option: server-options. (line 1915) +* mysqld, symbolic-links option: server-options. (line 1924) +* mysqld, sysdate-is-now option: server-options. (line 2120) +* mysqld, tc-heuristic-recover option: server-options. (line 2140) +* mysqld, temp-pool option: server-options. (line 2156) +* mysqld, tmpdir option: server-options. (line 2201) +* mysqld, transaction-isolation option: server-options. (line 2176) +* mysqld, user option: server-options. (line 2235) +* mysqld, verbose option: server-options. (line 2270) +* mysqld, version option: server-options. (line 2274) * mysqld-version option, mysqld_safe: mysqld-safe. (line 205) * mysqld_multi <1>: mysqld-multi. (line 6) * mysqld_multi: programs-overview. (line 58) @@ -266683,8 +275532,9 @@ * mysqld_safe, syslog-tag option: mysqld-safe. (line 259) * mysqld_safe, timezone option: mysqld-safe. (line 267) * mysqld_safe, user option: mysqld-safe. (line 273) -* mysqldump <1>: mysqldump. (line 6) -* mysqldump <2>: programs-overview. (line 124) +* mysqldump <1>: glossary. (line 2868) +* mysqldump <2>: mysqldump. (line 6) +* mysqldump <3>: programs-overview. (line 124) * mysqldump: copying-databases. (line 45) * mysqldump, add-drop-database option: mysqldump. (line 340) * mysqldump, add-drop-table option: mysqldump. (line 349) @@ -266754,33 +275604,33 @@ * mysqldump, plugin-dir option: mysqldump. (line 836) * mysqldump, port option: mysqldump. (line 845) * mysqldump, problems <1>: view-restrictions. (line 82) -* mysqldump, problems: mysqldump. (line 1184) +* mysqldump, problems: mysqldump. (line 1191) * mysqldump, protocol option: mysqldump. (line 849) * mysqldump, quick option: mysqldump. (line 856) * mysqldump, quote-names option: mysqldump. (line 863) * mysqldump, replace option: mysqldump. (line 872) * mysqldump, result-file option: mysqldump. (line 877) * mysqldump, routines option: mysqldump. (line 885) -* mysqldump, set-charset option: mysqldump. (line 904) -* mysqldump, single-transaction option: mysqldump. (line 910) -* mysqldump, skip-comments option: mysqldump. (line 948) -* mysqldump, skip-opt option: mysqldump. (line 952) -* mysqldump, socket option: mysqldump. (line 956) -* mysqldump, SSL options: mysqldump. (line 961) -* mysqldump, tab option: mysqldump. (line 967) -* mysqldump, tables option: mysqldump. (line 991) -* mysqldump, triggers option: mysqldump. (line 997) -* mysqldump, tz-utc option: mysqldump. (line 1002) -* mysqldump, user option: mysqldump. (line 1015) +* mysqldump, set-charset option: mysqldump. (line 907) +* mysqldump, single-transaction option: mysqldump. (line 913) +* mysqldump, skip-comments option: mysqldump. (line 951) +* mysqldump, skip-opt option: mysqldump. (line 955) +* mysqldump, socket option: mysqldump. (line 959) +* mysqldump, SSL options: mysqldump. (line 964) +* mysqldump, tab option: mysqldump. (line 970) +* mysqldump, tables option: mysqldump. (line 994) +* mysqldump, triggers option: mysqldump. (line 1000) +* mysqldump, tz-utc option: mysqldump. (line 1005) +* mysqldump, user option: mysqldump. (line 1018) * mysqldump, using for backups: using-mysqldump. (line 14) -* mysqldump, verbose option: mysqldump. (line 1019) -* mysqldump, version option: mysqldump. (line 1023) +* mysqldump, verbose option: mysqldump. (line 1022) +* mysqldump, version option: mysqldump. (line 1026) * mysqldump, views <1>: view-restrictions. (line 82) -* mysqldump, views: mysqldump. (line 1184) -* mysqldump, where option: mysqldump. (line 1027) +* mysqldump, views: mysqldump. (line 1191) +* mysqldump, where option: mysqldump. (line 1030) * mysqldump, workarounds <1>: view-restrictions. (line 82) -* mysqldump, workarounds: mysqldump. (line 1184) -* mysqldump, xml option: mysqldump. (line 1039) +* mysqldump, workarounds: mysqldump. (line 1191) +* mysqldump, xml option: mysqldump. (line 1042) * mysqldumpslow <1>: mysqldumpslow. (line 6) * mysqldumpslow: programs-overview. (line 183) * mysqldumpslow, debug option: mysqldumpslow. (line 53) @@ -266941,7 +275791,7 @@ * named-commands option, mysql: mysql-command-options. (line 315) * named_pipe system variable: server-system-variables. - (line 3897) + (line 3909) * names: identifiers. (line 13) * names, case sensitivity: identifier-case-sensitivity. (line 6) @@ -266992,13 +275842,13 @@ * NDB utilities, security issues: mysql-cluster-security-mysql-security-procedures. (line 76) * NDB$MAX(): mysql-cluster-replication-conflict-resolution. - (line 269) + (line 274) * NDB$MAX_DELETE_WIN(): mysql-cluster-replication-conflict-resolution. - (line 288) + (line 293) * NDB$OLD: mysql-cluster-replication-conflict-resolution. - (line 248) -* NDB, creating large tables using: create-table. (line 789) -* NDB, MAX_ROWS: create-table. (line 789) + (line 253) +* NDB, creating large tables using: create-table. (line 790) +* NDB, MAX_ROWS: create-table. (line 790) * ndb-batch-size option, mysqld: mysql-cluster-program-options-mysqld. (line 23) * ndb-blob-read-batch-bytes option, mysqld: mysql-cluster-program-options-mysqld. @@ -267012,11 +275862,13 @@ * ndb-connectstring option, ndb_config: mysql-cluster-programs-ndb-config. (line 108) * ndb-log-apply-status option, mysqld: mysql-cluster-program-options-mysqld. - (line 231) + (line 282) +* ndb-log-empty-epochs option, mysqld: mysql-cluster-program-options-mysqld. + (line 393) * ndb-log-transaction-id option, mysqld: mysql-cluster-program-options-mysqld. - (line 269) + (line 320) * ndb-nodeid option, mysqld: mysql-cluster-program-options-mysqld. - (line 304) + (line 355) * ndb_apply_status table (MySQL Cluster replication) <1>: mysql-cluster-replication-failover. (line 10) * ndb_apply_status table (MySQL Cluster replication): mysql-cluster-replication-schema. @@ -267099,8 +275951,10 @@ (line 6) * ndb_error_reporter: mysql-cluster-programs. (line 32) +* ndb_log_empty_epochs system variable: mysql-cluster-system-variables. + (line 928) * ndb_log_transaction_id system variable: mysql-cluster-system-variables. - (line 431) + (line 498) * ndb_mgm <1>: mysql-cluster-programs-ndb-mgm. (line 6) * ndb_mgm: mysql-cluster-programs. @@ -267130,71 +275984,71 @@ * ndb_print_sys_file: mysql-cluster-programs. (line 32) * ndb_replication system table: mysql-cluster-replication-conflict-resolution. - (line 160) + (line 165) * ndb_restore: mysql-cluster-programs-ndb-restore. (line 6) * ndb_restore, -append option: mysql-cluster-programs-ndb-restore. - (line 448) + (line 446) * ndb_restore, -disable-indexes option: mysql-cluster-programs-ndb-restore. - (line 712) + (line 710) * ndb_restore, -dont_ignore_systab_0 option: mysql-cluster-programs-ndb-restore. - (line 479) + (line 477) * ndb_restore, -exclude-databases option: mysql-cluster-programs-ndb-restore. - (line 598) + (line 596) * ndb_restore, -exclude-missing-columns option: mysql-cluster-programs-ndb-restore. - (line 697) + (line 695) * ndb_restore, -exclude-tables option: mysql-cluster-programs-ndb-restore. - (line 608) + (line 606) * ndb_restore, -fields-enclosed-by option: mysql-cluster-programs-ndb-restore. - (line 379) + (line 377) * ndb_restore, -fields-optionally-enclosed-by option: mysql-cluster-programs-ndb-restore. - (line 393) + (line 391) * ndb_restore, -fields-terminated-by option: mysql-cluster-programs-ndb-restore. - (line 409) + (line 407) * ndb_restore, -hex option: mysql-cluster-programs-ndb-restore. - (line 424) + (line 422) * ndb_restore, -include-databases option: mysql-cluster-programs-ndb-restore. - (line 535) + (line 533) * ndb_restore, -include-tables option: mysql-cluster-programs-ndb-restore. - (line 545) + (line 543) * ndb_restore, -lossy-conversions option: mysql-cluster-programs-ndb-restore. (line 231) * ndb_restore, -ndb-nodegroup-map option: mysql-cluster-programs-ndb-restore. - (line 488) + (line 486) * ndb_restore, -no-binlog option: mysql-cluster-programs-ndb-restore. - (line 494) + (line 492) * ndb_restore, -no-restore-disk-objects option: mysql-cluster-programs-ndb-restore. - (line 500) + (line 498) * ndb_restore, -parallelism option: mysql-cluster-programs-ndb-restore. - (line 507) + (line 505) * ndb_restore, -print option: mysql-cluster-programs-ndb-restore. - (line 473) + (line 471) * ndb_restore, -print_data option: mysql-cluster-programs-ndb-restore. - (line 353) + (line 351) * ndb_restore, -print_log option: mysql-cluster-programs-ndb-restore. - (line 468) + (line 466) * ndb_restore, -print_metadata option: mysql-cluster-programs-ndb-restore. - (line 463) + (line 461) * ndb_restore, -progress-frequency option: mysql-cluster-programs-ndb-restore. - (line 513) + (line 511) * ndb_restore, -rebuild-indexes option: mysql-cluster-programs-ndb-restore. - (line 723) + (line 721) * ndb_restore, -rewrite-database option: mysql-cluster-programs-ndb-restore. - (line 756) + (line 754) * ndb_restore, -skip-broken-objects option: mysql-cluster-programs-ndb-restore. - (line 732) + (line 730) * ndb_restore, -skip-unknown-objects option: mysql-cluster-programs-ndb-restore. - (line 744) + (line 742) * ndb_restore, -tab option: mysql-cluster-programs-ndb-restore. - (line 367) + (line 365) * ndb_restore, -verbose option: mysql-cluster-programs-ndb-restore. - (line 519) + (line 517) * ndb_restore, and circular replication: mysql-cluster-replication-multi-master. - (line 70) + (line 69) * ndb_restore, attribute promotion: mysql-cluster-programs-ndb-restore. (line 201) * ndb_restore, errors: mysql-cluster-programs-ndb-restore. - (line 802) + (line 800) * ndb_schema table (MySQL Cluster replication): mysql-cluster-replication-schema. (line 99) * ndb_select_all <1>: mysql-cluster-programs-ndb-select-all. @@ -267264,7 +276118,7 @@ * ndb_waiter, wait-nodes option: mysql-cluster-programs-ndb-waiter. (line 93) * ndbcluster option, mysqld: mysql-cluster-program-options-mysqld. - (line 209) + (line 260) * NDBCLUSTER storage engine: mysql-cluster. (line 16) * ndbd <1>: mysql-cluster-programs-ndbd. (line 6) @@ -267286,26 +276140,31 @@ (line 6) * ndbmtd: mysql-cluster-programs. (line 32) -* ndbmtd, MaxNoOfExecutionThreads: mysql-cluster-programs-ndbmtd. - (line 60) +* ndbmtd, configuration: mysql-cluster-ndbd-definition. + (line 3330) +* ndbmtd, MaxNoOfExecutionThreads: mysql-cluster-ndbd-definition. + (line 3256) * ndbmtd, trace files: mysql-cluster-programs-ndbmtd. - (line 60) + (line 64) * negative values: number-literals. (line 6) +* neighbor page: glossary. (line 2883) * nested queries: subqueries. (line 20) * nested-loop join algorithm: nested-join-optimization. (line 167) * Nested-Loop join algorithm: nested-loop-joins. (line 6) * net etiquette: mailing-list-use. (line 6) * net_buffer_length system variable: server-system-variables. - (line 3913) + (line 3925) * net_buffer_length variable: mysql-command-options. (line 637) * net_read_timeout system variable: server-system-variables. - (line 3948) + (line 3960) * net_retry_count system variable: server-system-variables. - (line 3974) + (line 3986) * net_write_timeout system variable: server-system-variables. - (line 4008) + (line 4020) +* NetBeans: connector-cpp-apps-linux-netbeans. + (line 6) * netmask notation, in account names: account-names. (line 90) * network ports, and MySQL Cluster: mysql-cluster-security-networking-issues. (line 182) @@ -267314,22 +276173,23 @@ (line 10) * new procedures, adding: adding-procedures. (line 11) * new system variable: server-system-variables. - (line 4030) + (line 4042) * new users, adding: unix-postinstallation. (line 356) * newline (\n) <1>: load-data. (line 419) * newline (\n): string-literals. (line 72) +* next-key lock: glossary. (line 2898) * next-key lock, InnoDB <1>: innodb-next-key-locking. (line 6) * next-key lock, InnoDB <2>: innodb-record-level-locks. (line 6) * next-key lock, InnoDB <3>: innodb-transaction-model. - (line 74) -* next-key lock, InnoDB: innodb-parameters. (line 1164) + (line 71) +* next-key lock, InnoDB: innodb-parameters. (line 1135) * NFS, InnoDB <1>: innodb-restrictions. (line 16) * NFS, InnoDB: innodb-configuration. - (line 62) + (line 64) * nice option, mysqld_safe: mysqld-safe. (line 216) * no matching rows: no-matching-rows. (line 6) * no-auto-rehash option, mysql: mysql-command-options. @@ -267406,23 +276266,26 @@ * nodes, ndbinfo table: mysql-cluster-ndbinfo-nodes. (line 6) * noindices option, mysqlhotcopy: mysqlhotcopy. (line 134) +* non-blocking I/O: glossary. (line 2906) +* non-repeatable read: glossary. (line 2912) * nondelimited strings: date-and-time-literals. (line 116) * Nontransactional tables: non-transactional-tables. (line 6) * NoOfDiskPagesToDiskAfterRestartACC (DEPRECATED): mysql-cluster-ndbd-definition. - (line 2415) + (line 2383) * NoOfDiskPagesToDiskAfterRestartTUP (DEPRECATED): mysql-cluster-ndbd-definition. - (line 2372) + (line 2340) * NoOfDiskPagesToDiskDuringRestartACC: mysql-cluster-ndbd-definition. - (line 2470) + (line 2438) * NoOfDiskPagesToDiskDuringRestartTUP: mysql-cluster-ndbd-definition. - (line 2440) + (line 2408) * NoOfFragmentLogFiles: mysql-cluster-ndbd-definition. - (line 1021) + (line 1036) * NoOfReplicas: mysql-cluster-ndbd-definition. (line 202) * nopager command, mysql: mysql-commands. (line 138) +* normalized: glossary. (line 2934) * NOT BETWEEN: comparison-operators. (line 226) * not equal (!=): comparison-operators. @@ -267435,6 +276298,7 @@ (line 294) * NOT LIKE: string-comparison-functions. (line 156) +* NOT NULL constraint: glossary. (line 2966) * NOT NULL, constraint: constraint-invalid-data. (line 6) * NOT REGEXP: regexp. (line 28) @@ -267443,7 +276307,7 @@ (line 65) * notee command, mysql: mysql-commands. (line 144) * NOW(): date-and-time-functions. - (line 703) + (line 715) * NOWAIT (START BACKUP command): mysql-cluster-backup-using-management-client. (line 31) * nowait-nodes option, ndb_waiter: mysql-cluster-programs-ndb-waiter. @@ -267451,13 +276315,14 @@ * nowarning command, mysql: mysql-commands. (line 149) * NUL <1>: load-data. (line 417) * NUL: string-literals. (line 68) -* NULL <1>: problems-with-null. (line 6) +* NULL <1>: glossary. (line 2979) +* NULL <2>: problems-with-null. (line 6) * NULL: working-with-null. (line 6) * NULL value <1>: null-values. (line 6) * NULL value: working-with-null. (line 6) * NULL values, and AUTO_INCREMENT columns: problems-with-null. (line 71) -* NULL values, and indexes: create-table. (line 447) +* NULL values, and indexes: create-table. (line 448) * NULL values, and TIMESTAMP columns: problems-with-null. (line 71) * NULL values, vs. empty values: problems-with-null. (line 6) * NULL, ORDER BY <1>: select. (line 199) @@ -267472,7 +276337,7 @@ * NULLIF(): control-flow-functions. (line 119) * Numa: mysql-cluster-ndbd-definition. - (line 3246) + (line 3220) * number-char-cols option, mysqlslap: mysqlslap. (line 342) * number-int-cols option, mysqlslap: mysqlslap. (line 347) * number-of-queries option, mysqlslap: mysqlslap. (line 352) @@ -267508,35 +276373,38 @@ * ODBC compatibility <6>: identifier-qualifiers. (line 41) * ODBC compatibility: server-system-variables. - (line 5424) + (line 5429) * ODBC_INCLUDES= option, CMake: source-configuration-options. - (line 265) + (line 305) * ODBC_LIB_DIR option, CMake: source-configuration-options. - (line 270) + (line 310) * ODirect: mysql-cluster-ndbd-definition. - (line 1624) + (line 1639) +* off-page column: glossary. (line 3015) * offset option, mysqlbinlog: mysqlbinlog. (line 370) * OLAP: group-by-modifiers. (line 6) * old system variable: server-system-variables. - (line 4054) -* old-alter-table option, mysqld: server-options. (line 1417) + (line 4066) +* old-alter-table option, mysqld: server-options. (line 1421) * old-passwords option, mysqld <1>: privileges-options. (line 56) -* old-passwords option, mysqld: server-options. (line 1443) -* old-style-user-limits option, mysqld: server-options. (line 1465) +* old-passwords option, mysqld: server-options. (line 1447) +* old-style-user-limits option, mysqld: server-options. (line 1469) * old_alter_table system variable: server-system-variables. - (line 4077) + (line 4089) * OLD_PASSWORD(): encryption-functions. (line 304) * old_passwords system variable: server-system-variables. - (line 4103) + (line 4115) * old_server option, mysqlaccess: mysqlaccess. (line 103) * old_server option, mysqlhotcopy: mysqlhotcopy. (line 155) +* OLTP: glossary. (line 3026) * ON DUPLICATE KEY UPDATE: insert. (line 12) * one-database option, mysql: mysql-command-options. (line 346) -* one-thread option, mysqld: server-options. (line 1482) +* one-thread option, mysqld: server-options. (line 1486) * one_shot system variable: server-system-variables. - (line 4124) + (line 4136) +* online: glossary. (line 3045) * online location of manual: manual-info. (line 6) * online upgrades and downgrades (MySQL Cluster): mysql-cluster-rolling-restart. (line 6) @@ -267550,10 +276418,10 @@ * Open Source, defined: what-is-mysql. (line 39) * open tables <1>: table-cache. (line 6) * open tables: mysqladmin. (line 199) -* open-files-limit option, mysqld: server-options. (line 1497) +* open-files-limit option, mysqld: server-options. (line 1501) * open-files-limit option, mysqld_safe: mysqld-safe. (line 226) * open_files_limit system variable: server-system-variables. - (line 4129) + (line 4141) * open_files_limit variable: mysqlbinlog. (line 532) * OpenGIS: gis-introduction. (line 6) * Opening master dump table, thread state: slave-connection-thread-states. @@ -267583,6 +276451,7 @@ * operators, precedence: operator-precedence. (line 6) * opt option, mysqldump: mysqldump. (line 798) +* optimistic: glossary. (line 3067) * optimization: optimization. (line 22) * optimization, benchmarking: optimize-benchmarking. (line 14) @@ -267640,6 +276509,7 @@ * OPTIMIZE TABLE: optimize-table. (line 6) * OPTIMIZE TABLE, and partitioning: partitioning-maintenance. (line 6) +* optimizer: glossary. (line 3099) * Optimizer Statistics Estimation <1>: innodb-other-changes-statistics-estimation. (line 6) * Optimizer Statistics Estimation: innodb-other-changes-innodb_stats_on_metadata. @@ -267653,13 +276523,13 @@ * optimizer, switchable optimizations: switchable-optimizations. (line 6) * optimizer_prune_level system variable: server-system-variables. - (line 4155) + (line 4167) * optimizer_search_depth system variable: server-system-variables. - (line 4179) + (line 4191) * optimizer_switch system variable <1>: switchable-optimizations. (line 6) * optimizer_switch system variable: server-system-variables. - (line 4211) + (line 4223) * optimizing, DISTINCT: distinct-optimization. (line 6) * optimizing, filesort: order-by-optimization. @@ -267674,6 +276544,8 @@ (line 6) * optimizing, thread state: general-thread-states. (line 202) +* option: glossary. (line 3108) +* option file: glossary. (line 3119) * option files <1>: access-denied. (line 101) * option files: option-files. (line 11) * option files, escape sequences: option-files. (line 153) @@ -267704,13 +276576,13 @@ * OR, bitwise: bit-functions. (line 20) * OR, logical: logical-operators. (line 65) * Oracle compatibility <1>: describe. (line 39) -* Oracle compatibility <2>: alter-table. (line 287) +* Oracle compatibility <2>: alter-table. (line 291) * Oracle compatibility <3>: group-by-functions. (line 239) * Oracle compatibility: extensions-to-ansi. (line 96) * ORACLE SQL mode: server-sql-mode. (line 482) * ORD(): string-functions. (line 494) * ORDER BY <1>: select. (line 171) -* ORDER BY <2>: alter-table. (line 367) +* ORDER BY <2>: alter-table. (line 371) * ORDER BY: sorting-rows. (line 6) * ORDER BY, NULL <1>: select. (line 199) * ORDER BY, NULL: order-by-optimization. @@ -267727,6 +276599,7 @@ * OUTFILE: select-into. (line 24) * overflow handling: out-of-range-and-overflow. (line 6) +* overflow page: glossary. (line 3128) * Overlaps(): functions-that-test-spatial-relationships-between-geometries. (line 53) * OverloadLimit: mysql-cluster-tcp-definition. @@ -267734,8 +276607,11 @@ * overview: introduction. (line 18) * packages, list of: packages. (line 6) * PAD_CHAR_TO_FULL_LENGTH SQL mode: server-sql-mode. (line 320) +* page: glossary. (line 3140) +* page cleaner: glossary. (line 3167) +* page size: glossary. (line 3177) * page size, InnoDB <1>: innodb-restrictions. - (line 89) + (line 84) * page size, InnoDB: innodb-physical-structure. (line 6) * pager command, mysql: mysql-commands. (line 153) @@ -267747,10 +276623,15 @@ (line 66) * PARAMETERS, INFORMATION_SCHEMA table: parameters-table. (line 6) * parameters, server: server-parameters. (line 6) +* parent table: glossary. (line 3214) * parentheses ( and ): operator-precedence. (line 48) * parsable option, ndb_show_tables: mysql-cluster-programs-ndb-show-tables. (line 45) +* partial backup: glossary. (line 3227) +* partial index: glossary. (line 3236) +* partial trust: connector-net-medium-trust. + (line 6) * partial updates, and replication: replication-features-slaveerrors. (line 6) * PARTITION: partitioning. (line 14) @@ -267760,7 +276641,7 @@ (line 11) * partition management: partitioning-management. (line 13) -* partition option, mysqld: server-options. (line 1529) +* partition option, mysqld: server-options. (line 1533) * partition pruning: partitioning-pruning. (line 6) * partitioning: partitioning. (line 14) @@ -267770,7 +276651,7 @@ * partitioning keys and unique keys: partitioning-limitations-partitioning-keys-unique-keys. (line 6) * partitioning, advantages: partitioning-overview. - (line 139) + (line 142) * partitioning, and dates: partitioning-types. (line 53) * partitioning, and foreign keys: partitioning-limitations. (line 250) @@ -267900,7 +276781,8 @@ * pattern matching <1>: regexp. (line 6) * pattern matching: pattern-matching. (line 6) * performance: optimization. (line 22) -* Performance Schema <1>: performance-schema. (line 20) +* Performance Schema <1>: glossary. (line 3243) +* Performance Schema <2>: performance-schema. (line 20) * Performance Schema: innodb-performance-schema. (line 6) * Performance Schema, event filtering: performance-schema-filtering. @@ -267911,7 +276793,6 @@ * performance, disk I/O: disk-issues. (line 10) * performance, estimating: estimating-performance. (line 6) -* performance, improving: replication-faq. (line 22) * performance_schema database: performance-schema. (line 20) * performance_schema database, restrictions: performance-schema-restrictions. (line 6) @@ -267988,9 +276869,9 @@ * performance_timers table, performance_schema: performance-timers-table. (line 6) * PERIOD_ADD(): date-and-time-functions. - (line 747) + (line 759) * PERIOD_DIFF(): date-and-time-functions. - (line 756) + (line 768) * Perl API: apis-perl. (line 6) * Perl DBI/DBD, installation problems: perl-support-problems. (line 6) @@ -268005,16 +276886,21 @@ * perror, silent option: perror. (line 48) * perror, verbose option: perror. (line 52) * perror, version option: perror. (line 57) +* persistent statistics: glossary. (line 3253) +* pessimistic: glossary. (line 3264) +* phantom: glossary. (line 3281) * phantom rows: innodb-next-key-locking. (line 6) * PHP API: apis-php. (line 12) +* physical: glossary. (line 3304) +* physical backup: glossary. (line 3314) * PI(): mathematical-functions. (line 336) * pid-file option, mysql.server: mysql-server. (line 44) -* pid-file option, mysqld: server-options. (line 1550) +* pid-file option, mysqld: server-options. (line 1554) * pid-file option, mysqld_safe: mysqld-safe. (line 233) * pid_file system variable: server-system-variables. - (line 4271) + (line 4283) * Ping, thread command: thread-commands. (line 78) * pipe option: connecting. (line 141) * pipe option, mysql <1>: mysqlcheck. (line 343) @@ -268026,16 +276912,19 @@ * pipe option, mysqlshow: mysqlshow. (line 189) * pipe option, mysqlslap: mysqlslap. (line 380) * PIPES_AS_CONCAT SQL mode: server-sql-mode. (line 358) +* PITR: glossary. (line 3326) * plan option, mysqlaccess: mysqlaccess. (line 117) +* plan stability: glossary. (line 3332) * pluggable authentication, PAM: pam-authentication-plugin. (line 12) * pluggable authentication, restrictions: pluggable-authentication-restrictions. (line 6) * pluggable authentication, Windows: windows-authentication-plugin. (line 11) +* plugin: glossary. (line 3341) * plugin API <1>: plugin-api. (line 14) * plugin API: server-plugins. (line 11) -* plugin option prefix, mysqld: server-options. (line 1573) +* plugin option prefix, mysqld: server-options. (line 1577) * plugin services: plugin-services. (line 6) * plugin-dir option, mysql: mysql-command-options. (line 415) @@ -268049,9 +276938,9 @@ * plugin-dir option, mysqlshow: mysqlshow. (line 194) * plugin-dir option, mysqlslap: mysqlslap. (line 385) * plugin-ini option, mysql_plugin: mysql-plugin. (line 112) -* plugin-load option, mysqld: server-options. (line 1598) +* plugin-load option, mysqld: server-options. (line 1602) * plugin_dir system variable: server-system-variables. - (line 4291) + (line 4303) * plugindir option, mysql_config: mysql-config. (line 39) * plugins, activating: server-plugin-loading. (line 6) @@ -268079,6 +276968,7 @@ (line 6) * Point(): gis-mysql-specific-functions. (line 45) +* point-in-time recovery <1>: glossary. (line 3358) * point-in-time recovery: point-in-time-recovery. (line 11) * point-in-time recovery, using MySQL Cluster replication: mysql-cluster-replication-pitr. @@ -268108,7 +276998,7 @@ * port option, mysqladmin: mysqladmin. (line 403) * port option, mysqlbinlog: mysqlbinlog. (line 396) * port option, mysqlcheck: mysqlcheck. (line 357) -* port option, mysqld: server-options. (line 1647) +* port option, mysqld: server-options. (line 1651) * port option, mysqld_safe: mysqld-safe. (line 237) * port option, mysqldump: mysqldump. (line 845) * port option, mysqlhotcopy: mysqlhotcopy. (line 151) @@ -268116,9 +277006,9 @@ * port option, mysqlshow: mysqlshow. (line 203) * port option, mysqlslap: mysqlslap. (line 394) * port system variable: server-system-variables. - (line 4337) -* port-open-timeout option, mysqld: server-options. (line 1669) -* portability: optimize-overview. (line 108) + (line 4349) +* port-open-timeout option, mysqld: server-options. (line 1673) +* portability: optimize-overview. (line 106) * portability, types: other-vendor-data-types. (line 6) * porting, to other systems: porting. (line 12) @@ -268150,12 +277040,13 @@ * precision, arithmetic: precision-math. (line 14) * precision, numeric: data-types. (line 31) * preload_buffer_size system variable: server-system-variables. - (line 4358) + (line 4370) * PREPARE <1>: prepare. (line 6) * PREPARE: sql-syntax-prepared-statements. (line 13) * Prepare, thread command: thread-commands. (line 82) * PREPARE, XA transactions: xa-statements. (line 6) +* prepared backup: glossary. (line 3377) * prepared statements <1>: c-api-prepared-statements. (line 6) * prepared statements <2>: deallocate-prepare. (line 6) @@ -268165,14 +277056,17 @@ (line 13) * prepared statements, repreparation: statement-repreparation. (line 6) +* prepared statements, with Connector/Net: connector-net-programming-prepared. + (line 10) * preparing, thread state: general-thread-states. (line 206) * preview option, mysqlaccess: mysqlaccess. (line 121) -* PRIMARY KEY <1>: create-table. (line 389) -* PRIMARY KEY: alter-table. (line 348) +* primary key: glossary. (line 3390) +* PRIMARY KEY <1>: create-table. (line 390) +* PRIMARY KEY: alter-table. (line 352) * primary key, constraint: constraint-primary-key. (line 6) -* primary key, deleting: alter-table. (line 345) +* primary key, deleting: alter-table. (line 349) * primary keys, and partitioning keys: partitioning-limitations-partitioning-keys-unique-keys. (line 6) * print command, mysql: mysql-commands. (line 175) @@ -268203,7 +277097,7 @@ * problems, compiling: compilation-problems. (line 6) * problems, DATE columns: using-date. (line 6) -* problems, date values: datetime. (line 47) +* problems, date values: datetime. (line 58) * problems, installing on Solaris: solaris-installation. (line 11) * problems, installing Perl: perl-support-problems. @@ -268221,6 +277115,7 @@ * PROCEDURE: select. (line 333) * procedures, adding: adding-procedures. (line 11) * procedures, stored: stored-routines. (line 13) +* process: glossary. (line 3404) * process management (MySQL Cluster): mysql-cluster-programs. (line 32) * process support: supported-os. (line 6) @@ -268236,10 +277131,10 @@ (line 6) * Processlist, thread command: thread-commands. (line 86) * profiling session variable: server-system-variables. - (line 4381) + (line 4393) * PROFILING, INFORMATION_SCHEMA table: profiling-table. (line 6) * profiling_history_size session variable: server-system-variables. - (line 4389) + (line 4401) * program options (MySQL Cluster): mysql-cluster-program-options-common. (line 6) * program variables, setting: program-variables. (line 6) @@ -268268,26 +277163,33 @@ * protocol option, mysqlshow: mysqlshow. (line 207) * protocol option, mysqlslap: mysqlslap. (line 426) * protocol_version system variable: server-system-variables. - (line 4396) + (line 4408) +* Proxy: mysql-proxy. (line 15) * proxy_user session variable: server-system-variables. - (line 4409) + (line 4421) +* pseudo-record: glossary. (line 3415) * pseudo_thread_id system variable: server-system-variables. - (line 4427) + (line 4439) +* Pthreads: glossary. (line 3423) +* purge: glossary. (line 3431) * PURGE BINARY LOGS: purge-binary-logs. (line 6) +* purge buffering: glossary. (line 3441) * PURGE MASTER LOGS: purge-binary-logs. (line 6) * purge scheduling: innodb-improved-purge-scheduling. (line 6) +* purge thread: glossary. (line 3456) * Purging old relay logs, thread state: general-thread-states. (line 210) * Python API: apis-python. (line 6) * QUARTER(): date-and-time-functions. - (line 765) + (line 777) * queries, entering: entering-queries. (line 6) * queries, estimating performance: estimating-performance. (line 6) * queries, examples: examples. (line 18) * queries, speed of: select-optimization. (line 13) +* query: glossary. (line 3465) * Query Cache: query-cache. (line 13) * query cache, and ndbinfo database tables: mysql-cluster-ndbinfo. (line 111) @@ -268295,6 +277197,7 @@ (line 6) * query end, thread state: general-thread-states. (line 214) +* query execution plan <1>: glossary. (line 3482) * query execution plan: execution-plan-information. (line 13) * query option, mysqlslap: mysqlslap. (line 433) @@ -268302,19 +277205,19 @@ (line 146) * Query, thread command: thread-commands. (line 90) * query_alloc_block_size system variable: server-system-variables. - (line 4440) + (line 4452) * query_cache_limit system variable: server-system-variables. - (line 4478) + (line 4490) * query_cache_min_res_unit system variable: server-system-variables. - (line 4509) + (line 4521) * query_cache_size system variable: server-system-variables. - (line 4543) + (line 4555) * query_cache_type system variable: server-system-variables. - (line 4585) + (line 4597) * query_cache_wlock_invalidate system variable: server-system-variables. - (line 4627) + (line 4639) * query_prealloc_size system variable: server-system-variables. - (line 4653) + (line 4665) * questions: mysqladmin. (line 180) * questions, answering: mailing-list-use. (line 6) * Queueing master event to the relay log, thread state: slave-io-thread-states. @@ -268344,13 +277247,15 @@ * quoting, column alias: identifiers. (line 78) * RADIANS(): mathematical-functions. (line 360) +* RAID: glossary. (line 3497) * RAND(): mathematical-functions. (line 368) * rand_seed1 session variable: server-system-variables. - (line 4693) + (line 4705) * rand_seed2 session variable: server-system-variables. - (line 4707) -* range join type, optimizer: explain-output. (line 318) + (line 4719) +* random dive: glossary. (line 3506) +* range join type, optimizer: explain-output. (line 320) * range partitioning <1>: partitioning-columns. (line 11) * range partitioning: partitioning-range. (line 6) @@ -268359,17 +277264,22 @@ * range partitions, managing: partitioning-management-range-list. (line 6) * range_alloc_block_size system variable: server-system-variables. - (line 4711) + (line 4723) +* raw backup: glossary. (line 3524) * raw option, mysql: mysql-command-options. (line 447) * re-creating, grant tables: mysql-install-db-problems. (line 104) * read ahead: innodb-other-changes-readahead-counters. (line 6) +* READ COMMITTED: glossary. (line 3538) * READ COMMITTED, transaction isolation level: set-transaction. - (line 80) + (line 82) +* READ UNCOMMITTED: glossary. (line 3559) * READ UNCOMMITTED, transaction isolation level: set-transaction. - (line 72) + (line 74) +* read view: glossary. (line 3577) +* read-ahead: glossary. (line 3591) * read-ahead, linear: innodb-performance-read_ahead. (line 6) * read-ahead, random: innodb-performance-read_ahead. @@ -268382,11 +277292,11 @@ * read_buffer_size myisamchk variable: myisamchk-general-options. (line 53) * read_buffer_size system variable: server-system-variables. - (line 4737) + (line 4749) * read_only system variable: server-system-variables. - (line 4771) + (line 4783) * read_rnd_buffer_size system variable: server-system-variables. - (line 4843) + (line 4855) * Reading event from the relay log, thread state: slave-sql-thread-states. (line 13) * Reading from net, thread state: general-thread-states. @@ -268397,7 +277307,7 @@ (line 231) * REAL_AS_FLOAT SQL mode: server-sql-mode. (line 363) * RealtimeScheduler: mysql-cluster-ndbd-definition. - (line 3153) + (line 3127) * Rebuilding the index on master dump table, thread state: slave-connection-thread-states. (line 26) * ReceiveBufferMemory: mysql-cluster-tcp-definition. @@ -268411,13 +277321,14 @@ * Reconnecting after a failed master event read, thread state: slave-io-thread-states. (line 69) * reconnection, automatic: auto-reconnect. (line 6) +* record lock: glossary. (line 3608) * record-level locks, InnoDB <1>: innodb-next-key-locking. (line 6) * record-level locks, InnoDB <2>: innodb-record-level-locks. (line 6) * record-level locks, InnoDB <3>: innodb-transaction-model. - (line 74) -* record-level locks, InnoDB: innodb-parameters. (line 1164) + (line 71) +* record-level locks, InnoDB: innodb-parameters. (line 1135) * record_log_pos option, mysqlhotcopy: mysqlhotcopy. (line 167) * recover option, myisamchk: myisamchk-repair-options. (line 79) @@ -268428,18 +277339,22 @@ (line 11) * recovery, point in time: point-in-time-recovery. (line 11) +* redo log: glossary. (line 3618) * RedoBuffer: mysql-cluster-ndbd-definition. - (line 2668) + (line 2636) * RedoOverCommitCounter, data nodes: mysql-cluster-ndbd-definition. - (line 3709) + (line 3835) * RedoOverCommitLimit, data nodes: mysql-cluster-ndbd-definition. - (line 3732) + (line 3858) * reducing, data size: data-size. (line 6) -* ref join type, optimizer: explain-output. (line 253) +* redundant row format: glossary. (line 3638) +* ref join type, optimizer: explain-output. (line 255) * ref_or_null: is-null-optimization. (line 6) -* ref_or_null join type, optimizer: explain-output. (line 279) -* references: alter-table. (line 418) +* ref_or_null join type, optimizer: explain-output. (line 281) +* references: alter-table. (line 422) +* referential integrity <1>: glossary. (line 3650) +* referential integrity: innodb-default-se. (line 6) * REFERENTIAL_CONSTRAINTS, INFORMATION_SCHEMA table: referential-constraints-table. (line 6) * Refresh, thread command: thread-commands. (line 98) @@ -268452,30 +277367,31 @@ (line 25) * regular expression syntax: regexp. (line 6) * rehash command, mysql: mysql-commands. (line 192) +* relational: glossary. (line 3667) * relational databases, defined: what-is-mysql. (line 39) * relative option, mysqladmin: mysqladmin. (line 414) * relay-log option, mysqld: replication-options-slave. (line 233) * relay-log-index option, mysqld: replication-options-slave. - (line 278) + (line 287) * relay-log-info-file option, mysqld: replication-options-slave. - (line 315) + (line 324) * relay-log-purge option, mysqld: replication-options-slave. - (line 335) + (line 344) * relay-log-recovery option, mysqld: replication-options-slave. - (line 342) -* relay-log-space-limit option, mysqld: replication-options-slave. (line 351) +* relay-log-space-limit option, mysqld: replication-options-slave. + (line 360) * relay_log_index system variable: replication-options-slave. - (line 1049) + (line 1064) * relay_log_info_file system variable: replication-options-slave. - (line 1070) + (line 1085) * relay_log_purge system variable: server-system-variables. - (line 4879) + (line 4890) * relay_log_recovery system variable: replication-options-slave. - (line 1091) + (line 1106) * relay_log_space_limit system variable: server-system-variables. - (line 4899) + (line 4910) * release numbers: which-version. (line 18) * RELEASE SAVEPOINT: savepoint. (line 6) * RELEASE_LOCK(): miscellaneous-functions. @@ -268483,10 +277399,11 @@ * releases, naming scheme: choosing-version. (line 57) * releases, testing: choosing-version. (line 111) * releases, updating: many-versions. (line 6) +* relevance: glossary. (line 3701) * relnotes option, mysqlaccess: mysqlaccess. (line 126) * remote administration (MySQL Cluster), and security issues: mysql-cluster-security-networking-issues. (line 189) -* remove option, mysqld: server-options. (line 1688) +* remove option, mysqld: server-options. (line 1692) * Removing duplicates, thread state: general-thread-states. (line 223) * removing tmp table, thread state: general-thread-states. @@ -268520,8 +277437,9 @@ * REPEAT: repeat-statement. (line 6) * REPEAT(): string-functions. (line 533) * REPEAT, labels: statement-labels. (line 6) +* REPEATABLE READ: glossary. (line 3712) * REPEATABLE READ, transaction isolation level: set-transaction. - (line 115) + (line 117) * repertoire, character set <1>: charset-unicode-utf8. (line 34) * repertoire, character set: charset-repertoire. (line 6) @@ -268534,21 +277452,22 @@ * replicas (MySQL Cluster): mysql-cluster-nodes-groups. (line 6) * replicate-do-db option, mysqld: replication-options-slave. - (line 372) + (line 381) * replicate-do-table option, mysqld: replication-options-slave. - (line 556) + (line 565) * replicate-ignore-db option, mysqld: replication-options-slave. - (line 487) + (line 496) * replicate-ignore-table option, mysqld: replication-options-slave. - (line 578) + (line 587) * replicate-rewrite-db option, mysqld: replication-options-slave. - (line 601) + (line 610) * replicate-same-server-id option, mysqld: replication-options-slave. - (line 630) + (line 639) * replicate-wild-do-table option, mysqld: replication-options-slave. - (line 654) + (line 663) * replicate-wild-ignore-table option, mysqld: replication-options-slave. - (line 701) + (line 710) +* replication <1>: glossary. (line 3730) * replication: replication. (line 13) * replication filtering options, and case sensitivity: replication-rules. (line 56) @@ -268685,24 +277604,25 @@ (line 6) * replication, with differing tables on master and slave: replication-features-differing-tables. (line 11) +* replication, with ZFS: ha-zfs-replication. (line 12) * REPORT command (MySQL Cluster): mysql-cluster-mgm-client-commands. (line 112) * report-host option, mysqld: replication-options-slave. - (line 727) + (line 736) * report-password option, mysqld: replication-options-slave. - (line 753) + (line 762) * report-port option, mysqld: replication-options-slave. - (line 779) + (line 788) * report-user option, mysqld: replication-options-slave. - (line 802) + (line 817) * report_host system variable: server-system-variables. - (line 4929) + (line 4940) * report_password system variable: server-system-variables. - (line 4947) + (line 4958) * report_port system variable: server-system-variables. - (line 4966) + (line 4977) * report_user system variable: server-system-variables. - (line 4985) + (line 4997) * reporting, bugs: bug-reports. (line 6) * reporting, Connector/Net problems: connector-net-support. (line 12) @@ -268719,7 +277639,7 @@ * reserved words, and replication: replication-features-reserved-words. (line 6) * ReservedSendBufferMemory: mysql-cluster-ndbd-definition. - (line 3681) + (line 3803) * RESET MASTER: reset-master. (line 6) * RESET SLAVE: reset-slave. (line 6) * RESET SLAVE ALL: reset-slave. (line 6) @@ -268745,7 +277665,7 @@ * resource limits, user accounts <1>: grant. (line 492) * resource limits, user accounts <2>: user-resources. (line 6) * resource limits, user accounts: server-system-variables. - (line 3548) + (line 3560) * resources, ndbinfo table: mysql-cluster-ndbinfo-resources. (line 6) * RESTART command (MySQL Cluster): mysql-cluster-mgm-client-commands. @@ -268753,7 +277673,8 @@ * restarting, the server: unix-postinstallation. (line 248) * RestartOnErrorInsert: mysql-cluster-ndbd-definition. - (line 1657) + (line 1672) +* restore: glossary. (line 3743) * restoring backups, in MySQL Cluster: mysql-cluster-programs-ndb-restore. (line 6) * restoring from backup, in MySQL Cluster replication: mysql-cluster-replication-backups. @@ -268793,10 +277714,12 @@ * RIGHT OUTER JOIN: join. (line 6) * RIGHT(): string-functions. (line 562) * RLIKE: regexp. (line 32) +* rollback: glossary. (line 3758) * ROLLBACK <1>: commit. (line 6) * ROLLBACK: ansi-diff-transactions. (line 6) * rollback option, mysqlaccess: mysqlaccess. (line 134) +* rollback segment: glossary. (line 3771) * ROLLBACK TO SAVEPOINT: savepoint. (line 6) * ROLLBACK, XA transactions: xa-statements. (line 6) * Rolling back, thread state: general-thread-states. @@ -268814,15 +277737,20 @@ (line 137) * routines option, mysqldump: mysqldump. (line 885) * ROUTINES, INFORMATION_SCHEMA table: routines-table. (line 6) +* row: glossary. (line 3779) * ROW: row-subqueries. (line 6) +* row format: glossary. (line 3793) +* row lock: glossary. (line 3814) * row subqueries: row-subqueries. (line 6) +* row-based replication: glossary. (line 3827) * row-based replication, advantages: replication-sbr-rbr. (line 134) * row-based replication, disadvantages: replication-sbr-rbr. (line 170) +* row-level locking <1>: glossary. (line 3837) * row-level locking: internal-locking. (line 6) * ROW_COUNT(): information-functions. - (line 435) + (line 437) * ROW_FORMAT, COMPACT: innodb-row-format-antelope. (line 6) * ROW_FORMAT, COMPRESSED <1>: innodb-row-format-dynamic. @@ -268850,7 +277778,7 @@ * Rpl_semi_sync_master_clients status variable: server-status-variables. (line 1261) * rpl_semi_sync_master_enabled system variable: server-system-variables. - (line 5004) + (line 5016) * Rpl_semi_sync_master_net_avg_wait_time status variable: server-status-variables. (line 1268) * Rpl_semi_sync_master_net_wait_time status variable: server-status-variables. @@ -268866,9 +277794,9 @@ * Rpl_semi_sync_master_timefunc_failures status variable: server-status-variables. (line 1317) * rpl_semi_sync_master_timeout system variable: server-system-variables. - (line 5023) + (line 5035) * rpl_semi_sync_master_trace_level system variable: server-system-variables. - (line 5044) + (line 5056) * Rpl_semi_sync_master_tx_avg_wait_time status variable: server-status-variables. (line 1325) * Rpl_semi_sync_master_tx_wait_time status variable: server-status-variables. @@ -268876,7 +277804,7 @@ * Rpl_semi_sync_master_tx_waits status variable: server-status-variables. (line 1340) * rpl_semi_sync_master_wait_no_slave system variable: server-system-variables. - (line 5071) + (line 5083) * Rpl_semi_sync_master_wait_pos_backtraverse status variable: server-status-variables. (line 1347) * Rpl_semi_sync_master_wait_sessions status variable: server-status-variables. @@ -268884,11 +277812,11 @@ * Rpl_semi_sync_master_yes_tx status variable: server-status-variables. (line 1365) * rpl_semi_sync_slave_enabled system variable: server-system-variables. - (line 5104) + (line 5116) * Rpl_semi_sync_slave_status status variable: server-status-variables. (line 1373) * rpl_semi_sync_slave_trace_level system variable: server-system-variables. - (line 5123) + (line 5135) * Rpl_status status variable: server-status-variables. (line 1382) * RPM file: linux-installation-rpm. @@ -268906,33 +277834,37 @@ * running, batch mode: batch-mode. (line 6) * running, multiple servers: multiple-servers. (line 13) * running, queries: entering-queries. (line 6) +* rw-lock: glossary. (line 3849) * rwlock_instances table, performance_schema: rwlock-instances-table. (line 6) * safe statement (replication), defined: replication-rbr-safe-unsafe. (line 6) -* safe-mode option, mysqld: server-options. (line 1698) +* safe-mode option, mysqld: server-options. (line 1702) * safe-recover option, myisamchk: myisamchk-repair-options. (line 92) -* safe-show-database option, mysqld: server-options. (line 1708) +* safe-show-database option, mysqld: server-options. (line 1712) * safe-updates option: safe-updates. (line 6) * safe-updates option, mysql: mysql-command-options. (line 485) * safe-user-create option, mysqld <1>: privileges-options. (line 62) -* safe-user-create option, mysqld: server-options. (line 1730) +* safe-user-create option, mysqld: server-options. (line 1734) * Sakila: history. (line 6) * same value wins (conflict resolution): mysql-cluster-replication-conflict-resolution. - (line 258) + (line 263) +* savepoint: glossary. (line 3863) * SAVEPOINT: savepoint. (line 6) * Saving state, thread state: general-thread-states. (line 270) +* scalability: glossary. (line 3875) * scale, arithmetic: precision-math. (line 14) * scale, numeric: data-types. (line 37) * SchedulerExecutionTimer: mysql-cluster-ndbd-definition. - (line 3169) + (line 3143) * SchedulerSpinTimer: mysql-cluster-ndbd-definition. - (line 3190) + (line 3164) +* schema: glossary. (line 3887) * SCHEMA(): information-functions. - (line 513) + (line 515) * schema, altering: alter-database. (line 6) * schema, creating: create-database. (line 6) * schema, deleting: drop-database. (line 6) @@ -268949,6 +277881,7 @@ * scripts, mysql_install_db: mysql-install-db-problems. (line 6) * scripts, SQL: mysql. (line 15) +* search index: glossary. (line 3913) * Searching rows for update, thread state: general-thread-states. (line 277) * searching, and case sensitivity: case-sensitivity. (line 6) @@ -268957,20 +277890,21 @@ * searching, two keys: searching-on-two-keys. (line 6) * SEC_TO_TIME(): date-and-time-functions. - (line 779) + (line 791) * SECOND(): date-and-time-functions. - (line 772) + (line 784) +* secondary index: glossary. (line 3922) * secondary index, InnoDB: innodb-index-types. (line 6) * secure-auth option, mysql: mysql-command-options. (line 493) * secure-auth option, mysqld <1>: privileges-options. (line 77) -* secure-auth option, mysqld: server-options. (line 1755) +* secure-auth option, mysqld: server-options. (line 1759) * secure-file-priv option, mysqld <1>: privileges-options. (line 86) -* secure-file-priv option, mysqld: server-options. (line 1775) +* secure-file-priv option, mysqld: server-options. (line 1779) * secure_auth system variable: server-system-variables. - (line 5141) + (line 5153) * secure_file_priv system variable: server-system-variables. - (line 5170) + (line 5175) * securing a MySQL Cluster: mysql-cluster-security-mysql-security-procedures. (line 6) * security system: privilege-system. (line 16) @@ -268980,6 +277914,7 @@ (line 66) * security, and NDB utilities: mysql-cluster-security-mysql-security-procedures. (line 76) +* segment: glossary. (line 3944) * SELECT INTO TABLE: ansi-diff-select-into-table. (line 6) * SELECT speed: select-speed. (line 6) @@ -268991,7 +277926,9 @@ * select_limit variable: mysql-command-options. (line 642) * selecting, databases: creating-database. (line 6) -* semi-consistent read, InnoDB: innodb-parameters. (line 1164) +* selectivity: glossary. (line 3969) +* semi-consistent read: glossary. (line 3982) +* semi-consistent read, InnoDB: innodb-parameters. (line 1135) * semisynchronous replication: replication-semisync. (line 12) * semisynchronous replication plugins: semisynchronous-replication-plugins. @@ -269021,14 +277958,16 @@ * SEQUENCE: example-auto-increment. (line 6) * sequence emulation: information-functions. - (line 398) + (line 399) * sequences: example-auto-increment. (line 6) * SERIAL: numeric-type-overview. (line 6) -* SERIAL DEFAULT VALUE: data-type-defaults. (line 82) +* SERIAL DEFAULT VALUE: data-type-defaults. (line 83) +* SERIALIZABLE: glossary. (line 3998) * SERIALIZABLE, transaction isolation level: set-transaction. - (line 137) + (line 139) +* server: glossary. (line 4019) * server administration: mysqladmin. (line 6) * server plugins: server-plugins. (line 11) * server variable <1>: show-variables. (line 6) @@ -269056,13 +277995,13 @@ (line 21) * server-id-bits option, mysqlbinlog: mysqlbinlog. (line 432) * server-id-bits option, mysqld: mysql-cluster-program-options-mysqld. - (line 342) + (line 423) * server-side cursor, restrictions: cursor-restrictions. (line 6) * server_id system variable: server-system-variables. - (line 5192) + (line 5197) * server_id_bits system variable: mysql-cluster-system-variables. - (line 854) + (line 947) * ServerPort: mysql-cluster-ndbd-definition. (line 131) * servers, multiple: multiple-servers. (line 13) @@ -269070,67 +278009,67 @@ (line 49) * services, for plugins: plugin-services. (line 6) * session variable, autocommit: server-system-variables. - (line 695) + (line 703) * session variable, big_tables: server-system-variables. - (line 831) + (line 839) * session variable, error_count: server-system-variables. - (line 1674) + (line 1682) * session variable, external_user: server-system-variables. - (line 1734) + (line 1742) * session variable, foreign_key_checks: server-system-variables. - (line 1804) + (line 1812) * session variable, identity: server-system-variables. - (line 2134) + (line 2142) * session variable, insert_id: server-system-variables. - (line 2215) + (line 2223) * session variable, last_insert_id: server-system-variables. - (line 2549) + (line 2557) * session variable, profiling: server-system-variables. - (line 4381) + (line 4393) * session variable, profiling_history_size: server-system-variables. - (line 4389) + (line 4401) * session variable, proxy_user: server-system-variables. - (line 4409) + (line 4421) * session variable, rand_seed1: server-system-variables. - (line 4693) + (line 4705) * session variable, rand_seed2: server-system-variables. - (line 4707) + (line 4719) * session variable, sql_auto_is_null: server-system-variables. - (line 5424) + (line 5429) * session variable, sql_big_selects: server-system-variables. - (line 5467) + (line 5472) * session variable, sql_buffer_result: server-system-variables. - (line 5491) + (line 5496) * session variable, sql_notes: server-system-variables. - (line 5610) + (line 5616) * session variable, sql_quote_show_create: server-system-variables. - (line 5620) + (line 5626) * session variable, sql_safe_updates: server-system-variables. - (line 5629) + (line 5635) * session variable, sql_warnings: server-system-variables. - (line 5667) + (line 5673) * session variable, timestamp: server-system-variables. - (line 6322) + (line 6328) * session variable, transaction_allow_batching: mysql-cluster-system-variables. - (line 702) + (line 776) * session variable, unique_checks: server-system-variables. - (line 6528) + (line 6534) * session variable, warning_count: server-system-variables. - (line 6674) + (line 6678) * session variables, and replication: replication-features-variables. (line 6) * SESSION_STATUS, INFORMATION_SCHEMA table: status-table. (line 6) * SESSION_USER(): information-functions. - (line 517) + (line 519) * SESSION_VARIABLES, INFORMATION_SCHEMA table: variables-table. (line 6) -* SET: set-option. (line 6) +* SET: set-statement. (line 6) * SET data type <1>: set. (line 6) * SET data type: string-type-overview. (line 252) * SET GLOBAL sql_slave_skip_counter: set-global-sql-slave-skip-counter. (line 6) -* SET OPTION: set-option. (line 6) +* SET OPTION: set-statement. (line 6) * Set option, thread command: thread-commands. (line 111) * SET PASSWORD: set-password. (line 6) * SET PASSWORD statement: assigning-passwords. @@ -269139,13 +278078,13 @@ * SET statement, assignment operator: assignment-operators. (line 70) * SET TRANSACTION: set-transaction. (line 6) -* SET, CHARACTER SET <1>: set-option. (line 167) +* SET, CHARACTER SET <1>: set-statement. (line 167) * SET, CHARACTER SET: charset-connection. (line 6) -* SET, NAMES <1>: set-option. (line 183) +* SET, NAMES <1>: set-statement. (line 183) * SET, NAMES <2>: charset-applications. (line 6) * SET, NAMES: charset-connection. (line 6) -* SET, ONE_SHOT: set-option. (line 199) +* SET, ONE_SHOT: set-statement. (line 199) * SET, size: storage-requirements. (line 237) * set-auto-increment[ option, myisamchk: myisamchk-other-options. @@ -269153,7 +278092,7 @@ * set-character-set option, myisamchk: myisamchk-repair-options. (line 105) * set-charset option, mysqlbinlog: mysqlbinlog. (line 445) -* set-charset option, mysqldump: mysqldump. (line 904) +* set-charset option, mysqldump: mysqldump. (line 907) * set-collation option, myisamchk: myisamchk-repair-options. (line 110) * setting passwords: set-password. (line 6) @@ -269175,20 +278114,23 @@ (line 353) * SHA2(): encryption-functions. (line 375) +* shared lock: glossary. (line 4030) * shared memory transporter: mysql-cluster-shm-definition. (line 6) -* shared-memory option, mysqld: server-options. (line 1796) +* shared tablespace: glossary. (line 4039) +* shared-memory option, mysqld: server-options. (line 1800) * shared-memory-base-name option: connecting. (line 182) -* shared-memory-base-name option, mysqld: server-options. (line 1801) +* shared-memory-base-name option, mysqld: server-options. (line 1805) * shared-memory-base-name option, mysqlslap: mysqlslap. (line 404) * shared_memory system variable: server-system-variables. - (line 5217) + (line 5222) * shared_memory_base_name system variable: server-system-variables. - (line 5228) + (line 5233) * SharedBufferSize: mysql-cluster-sci-definition. (line 141) * SharedGlobalMemory: mysql-cluster-ndbd-definition. - (line 3300) + (line 3409) +* sharp checkpoint: glossary. (line 4045) * shell syntax: manual-conventions. (line 120) * ShmKey: mysql-cluster-shm-definition. (line 78) @@ -269322,13 +278264,14 @@ * SHOW, in MySQL Cluster management client: mysql-cluster-quick. (line 145) * show-slave-auth-info option, mysqld: replication-options-slave. - (line 828) + (line 843) * show-table-type option, mysqlshow: mysqlshow. (line 214) * show-temp-status option, ndb_show_tables: mysql-cluster-programs-ndb-show-tables. (line 50) * show-warnings option, mysql: mysql-command-options. (line 499) * showing, database information: mysqlshow. (line 6) +* shutdown: glossary. (line 4056) * SHUTDOWN command (MySQL Cluster): mysql-cluster-mgm-client-commands. (line 165) * Shutdown, thread command: thread-commands. (line 116) @@ -269371,97 +278314,101 @@ (line 141) * single user mode (MySQL Cluster), and ndb_restore: mysql-cluster-programs-ndb-restore. (line 19) -* single-transaction option, mysqldump: mysqldump. (line 910) +* single-transaction option, mysqldump: mysqldump. (line 913) * single-user option, ndb_waiter: mysql-cluster-programs-ndb-waiter. (line 77) * size of tables: table-size-limit. (line 6) * sizes, display: data-types. (line 31) * skip-column-names option, mysql: mysql-command-options. (line 517) -* skip-comments option, mysqldump: mysqldump. (line 948) -* skip-concurrent-insert option, mysqld: server-options. (line 1807) -* skip-event-scheduler option, mysqld: server-options. (line 1822) -* skip-external-locking option, mysqld: server-options. (line 1813) +* skip-comments option, mysqldump: mysqldump. (line 951) +* skip-concurrent-insert option, mysqld: server-options. (line 1811) +* skip-event-scheduler option, mysqld: server-options. (line 1826) +* skip-external-locking option, mysqld: server-options. (line 1817) * skip-grant-tables option, mysqld <1>: privileges-options. (line 93) -* skip-grant-tables option, mysqld: server-options. (line 1835) -* skip-host-cache option, mysqld: server-options. (line 1854) -* skip-innodb option, mysqld <1>: innodb-parameters. (line 212) -* skip-innodb option, mysqld: server-options. (line 1860) +* skip-grant-tables option, mysqld: server-options. (line 1839) +* skip-host-cache option, mysqld: server-options. (line 1858) +* skip-innodb option, mysqld <1>: innodb-parameters. (line 200) +* skip-innodb option, mysqld: server-options. (line 1864) * skip-kill-mysqld option, mysqld_safe: mysqld-safe. (line 243) * skip-line-numbers option, mysql: mysql-command-options. (line 521) * skip-name-resolve option, mysql_install_db: mysql-install-db. (line 74) * skip-name-resolve option, mysqld <1>: privileges-options. (line 112) -* skip-name-resolve option, mysqld: server-options. (line 1867) +* skip-name-resolve option, mysqld: server-options. (line 1871) * skip-ndbcluster option, mysqld: mysql-cluster-program-options-mysqld. - (line 387) + (line 468) * skip-networking option, mysqld <1>: privileges-options. (line 117) -* skip-networking option, mysqld: server-options. (line 1874) -* skip-opt option, mysqldump: mysqldump. (line 952) -* skip-partition option, mysqld: server-options. (line 1882) -* skip-safemalloc option, mysqld: server-options. (line 1943) +* skip-networking option, mysqld: server-options. (line 1878) +* skip-opt option, mysqldump: mysqldump. (line 955) +* skip-partition option, mysqld: server-options. (line 1886) +* skip-safemalloc option, mysqld: server-options. (line 1947) * skip-show-database option, mysqld <1>: privileges-options. (line 122) -* skip-show-database option, mysqld: server-options. (line 1959) +* skip-show-database option, mysqld: server-options. (line 1963) * skip-slave-start option, mysqld: replication-options-slave. - (line 845) -* skip-stack-trace option, mysqld: server-options. (line 1980) -* skip-symbolic-links option, mysqld: server-options. (line 1920) + (line 860) +* skip-stack-trace option, mysqld: server-options. (line 1984) +* skip-symbolic-links option, mysqld: server-options. (line 1924) * skip-syslog option, mysqld_safe: mysqld-safe. (line 253) -* skip-thread-priority option, mysqld: server-options. (line 1993) +* skip-thread-priority option, mysqld: server-options. (line 1997) * skip-use-db option, mysql_find_rows: mysql-find-rows. (line 43) * skip_external_locking system variable: server-system-variables. - (line 5241) + (line 5246) * skip_name_resolve system variable: server-system-variables. - (line 5247) + (line 5252) * skip_networking system variable: server-system-variables. - (line 5257) + (line 5262) * skip_show_database system variable: server-system-variables. - (line 5264) + (line 5269) * Slave has read all relay log; waiting for the slave I/O thread to update it, thread state: slave-sql-thread-states. (line 24) +* slave server: glossary. (line 4070) * slave-load-tmpdir option, mysqld: replication-options-slave. - (line 882) + (line 897) * slave-net-timeout option, mysqld: replication-options-slave. - (line 920) + (line 935) * slave-skip-errors option, mysqld: replication-options-slave. - (line 947) + (line 962) * slave_allow_batching: mysql-cluster-replication-starting. (line 87) * slave_compressed_protocol option, mysqld: replication-options-slave. - (line 861) + (line 876) * slave_compressed_protocol system variable: replication-options-slave. - (line 1121) + (line 1136) * slave_exec_mode system variable: replication-options-slave. - (line 1141) + (line 1156) * slave_load_tmpdir system variable: replication-options-slave. - (line 1170) + (line 1185) * slave_net_timeout system variable: replication-options-slave. - (line 1191) + (line 1206) * slave_skip_errors system variable: replication-options-slave. - (line 1214) + (line 1227) * slave_transaction_retries system variable: replication-options-slave. - (line 1232) + (line 1245) * slave_type_conversions system variable: replication-options-slave. - (line 1270) + (line 1283) * sleep option, mysqladmin: mysqladmin. (line 424) * SLEEP(): miscellaneous-functions. (line 220) * Sleep, thread command: thread-commands. (line 120) * slow queries: mysqladmin. (line 185) +* slow query log <1>: glossary. (line 4095) * slow query log: slow-query-log. (line 6) * slow query log, and replication: replication-features-logging. (line 6) -* slow-query-log option, mysqld: server-options. (line 2004) -* slow-start-timeout option, mysqld: server-options. (line 2026) +* slow shutdown: glossary. (line 4106) +* slow-query-log option, mysqld: server-options. (line 2008) +* slow-start-timeout option, mysqld: server-options. (line 2030) * slow_launch_time system variable: server-system-variables. - (line 5279) + (line 5284) * slow_query_log system variable: server-system-variables. - (line 5299) + (line 5304) * slow_query_log_file system variable: server-system-variables. - (line 5326) + (line 5331) * SMALLINT data type: numeric-type-overview. (line 106) +* snapshot: glossary. (line 4117) * SNAPSHOTEND (START BACKUP command): mysql-cluster-backup-using-management-client. (line 53) * SNAPSHOTSTART (START BACKUP command): mysql-cluster-backup-using-management-client. @@ -269477,15 +278424,15 @@ * socket option, mysqladmin: mysqladmin. (line 431) * socket option, mysqlbinlog: mysqlbinlog. (line 456) * socket option, mysqlcheck: mysqlcheck. (line 386) -* socket option, mysqld: server-options. (line 2047) +* socket option, mysqld: server-options. (line 2051) * socket option, mysqld_safe: mysqld-safe. (line 248) -* socket option, mysqldump: mysqldump. (line 956) +* socket option, mysqldump: mysqldump. (line 959) * socket option, mysqlhotcopy: mysqlhotcopy. (line 185) * socket option, mysqlimport: mysqlimport. (line 296) * socket option, mysqlshow: mysqlshow. (line 219) * socket option, mysqlslap: mysqlslap. (line 442) * socket system variable: server-system-variables. - (line 5347) + (line 5352) * Solaris installation problems: solaris-installation. (line 11) * Solaris troubleshooting: compilation-problems. @@ -269505,7 +278452,7 @@ * sort_buffer_size myisamchk variable: myisamchk-general-options. (line 53) * sort_buffer_size system variable: server-system-variables. - (line 5374) + (line 5379) * sort_key_blocks myisamchk variable: myisamchk-general-options. (line 53) * Sorting for group, thread state: general-thread-states. @@ -269535,8 +278482,12 @@ * speed, of queries <1>: select-speed. (line 6) * speed, of queries: select-optimization. (line 13) +* spin: glossary. (line 4127) * sporadic-binlog-dump-fail option, mysqld: replication-options-binary-log. - (line 401) + (line 425) +* SQL: glossary. (line 4140) +* SQL Editor: connector-net-sql-editor. + (line 6) * SQL mode: server-sql-mode. (line 6) * SQL mode, ALLOW_INVALID_DATES: server-sql-mode. (line 91) * SQL mode, and partitioning <1>: partitioning-limitations. @@ -269591,54 +278542,59 @@ (line 15) * SQL, defined: what-is-mysql. (line 39) * SQL-92, extensions to: compatibility. (line 15) -* sql-mode option, mysqld: server-options. (line 2074) +* sql-mode option, mysqld: server-options. (line 2078) * sql_auto_is_null session variable: server-system-variables. - (line 5424) + (line 5429) * SQL_BIG_RESULT: select. (line 390) * sql_big_selects session variable: server-system-variables. - (line 5467) + (line 5472) * SQL_BUFFER_RESULT: select. (line 399) * sql_buffer_result session variable: server-system-variables. - (line 5491) + (line 5496) * SQL_CACHE <1>: select. (line 411) * SQL_CACHE: query-cache-in-select. (line 9) * SQL_CALC_FOUND_ROWS: select. (line 406) * sql_log_bin system variable: server-system-variables. - (line 5509) + (line 5515) * sql_log_off system variable: server-system-variables. - (line 5530) + (line 5536) * sql_log_update system variable: server-system-variables. - (line 5549) + (line 5555) * sql_mode system variable: server-system-variables. - (line 5567) + (line 5573) * SQL_NO_CACHE <1>: select. (line 411) * SQL_NO_CACHE: query-cache-in-select. (line 9) * sql_notes session variable: server-system-variables. - (line 5610) + (line 5616) * sql_quote_show_create session variable: server-system-variables. - (line 5620) + (line 5626) * sql_safe_updates session variable: server-system-variables. - (line 5629) + (line 5635) * sql_select_limit system variable: server-system-variables. - (line 5638) + (line 5644) * sql_slave_skip_counter: set-global-sql-slave-skip-counter. (line 6) * sql_slave_skip_counter system variable: replication-options-slave. - (line 1304) + (line 1317) * SQL_SMALL_RESULT: select. (line 390) * sql_warnings session variable: server-system-variables. - (line 5667) + (line 5673) * SQRT(): mathematical-functions. (line 538) * square brackets: data-types. (line 41) * srcdir option, mysql_install_db: mysql-install-db. (line 79) * SRID(): general-geometry-property-functions. (line 51) +* SSD: glossary. (line 4149) * SSH: windows-and-ssh. (line 6) +* SSL <1>: connector-net-connection-options. + (line 6) * SSL: secure-using-ssl. (line 6) * SSL and X509 Basics: secure-connections. (line 13) +* SSL certificates: connector-net-connection-options. + (line 6) * SSL command options: ssl-options. (line 6) * ssl option: ssl-options. (line 36) * SSL options: connecting. (line 204) @@ -269647,8 +278603,8 @@ * SSL options, mysqladmin: mysqladmin. (line 436) * SSL options, mysqlcheck: mysqlcheck. (line 391) * SSL options, mysqld <1>: privileges-options. (line 132) -* SSL options, mysqld: server-options. (line 1894) -* SSL options, mysqldump: mysqldump. (line 961) +* SSL options, mysqld: server-options. (line 1898) +* SSL options, mysqldump: mysqldump. (line 964) * SSL options, mysqlimport: mysqlimport. (line 301) * SSL options, mysqlshow: mysqlshow. (line 224) * SSL options, mysqlslap: mysqlslap. (line 447) @@ -269660,16 +278616,16 @@ * ssl-key option: ssl-options. (line 98) * ssl-verify-server-cert option: ssl-options. (line 111) * ssl_ca system variable: server-system-variables. - (line 5673) + (line 5679) * ssl_capath system variable: server-system-variables. - (line 5692) + (line 5698) * ssl_cert system variable: server-system-variables. - (line 5712) + (line 5718) * ssl_cipher system variable: server-system-variables. - (line 5732) + (line 5738) * ssl_key system variable: server-system-variables. - (line 5751) -* standalone option, mysqld: server-options. (line 1900) + (line 5757) +* standalone option, mysqld: server-options. (line 1904) * Standard Monitor, InnoDB: innodb-monitors. (line 12) * Standard SQL, differences from <1>: grant. (line 637) * Standard SQL, differences from: differences-from-ansi. @@ -269698,9 +278654,9 @@ * start-position option, mysqlbinlog: mysqlbinlog. (line 475) * start_row option, mysql_find_rows: mysql-find-rows. (line 47) * StartFailRetryDelay: mysql-cluster-ndbd-definition. - (line 3771) + (line 3897) * StartFailureTimeout: mysql-cluster-ndbd-definition. - (line 1825) + (line 1840) * Starting many servers: multiple-servers. (line 13) * starting, comments: ansi-diff-comments. (line 6) * starting, mysqld: changing-mysql-user. @@ -269709,11 +278665,11 @@ (line 54) * starting, the server automatically: automatic-start. (line 6) * StartNoNodeGroupTimeout: mysql-cluster-ndbd-definition. - (line 1849) + (line 1864) * StartPartialTimeout: mysql-cluster-ndbd-definition. - (line 1778) + (line 1793) * StartPartitionedTimeout: mysql-cluster-ndbd-definition. - (line 1802) + (line 1817) * StartPoint(): linestring-property-functions. (line 64) * STARTUP Events (MySQL Cluster): mysql-cluster-log-events. @@ -269726,8 +278682,9 @@ * startup parameters, tuning: system-optimization. (line 6) * StartupStatusReportFrequency: mysql-cluster-ndbd-definition. - (line 2904) + (line 2872) * statefile option, comp_err: comp-err. (line 66) +* statement-based replication: glossary. (line 4160) * statement-based replication, advantages: replication-sbr-rbr. (line 24) * statement-based replication, disadvantages: replication-sbr-rbr. @@ -269798,16 +278755,19 @@ * STDDEV(): group-by-functions. (line 239) * STDDEV_POP(): group-by-functions. (line 247) * STDDEV_SAMP(): group-by-functions. (line 255) +* stemming: glossary. (line 4170) * STOP command (MySQL Cluster): mysql-cluster-mgm-client-commands. (line 47) * STOP SLAVE: stop-slave. (line 6) * stop-datetime option, mysqlbinlog: mysqlbinlog. (line 484) * stop-position option, mysqlbinlog: mysqlbinlog. (line 494) * StopOnError: mysql-cluster-ndbd-definition. - (line 1554) + (line 1569) * stopping, the server: automatic-start. (line 6) +* stopword: glossary. (line 4181) * stopword list, user-defined: fulltext-fine-tuning. (line 40) +* storage engine: glossary. (line 4191) * storage engine plugins: storage-engine-plugins. (line 6) * storage engine, ARCHIVE: archive-storage-engine. @@ -269835,36 +278795,43 @@ (line 6) * storage space, minimizing: data-size. (line 6) * storage_engine system variable: server-system-variables. - (line 5770) + (line 5776) * stored functions: stored-routines. (line 13) * stored functions, and INSERT DELAYED: insert. (line 230) * stored procedures: stored-routines. (line 13) +* stored procedures, calling from Connector/Net: connector-net-tutorials-stored-procedures. + (line 6) +* stored procedures, editing with Visual Studio: connector-net-visual-studio-editing-stored-procedures-and-functions. + (line 6) +* stored procedures, with Connector/Net: connector-net-programming-stored. + (line 10) * stored programs <1>: stored-programs-views. (line 16) * stored programs: sql-syntax-compound-statements. (line 16) -* stored routine, restrictions: stored-program-restrictions. - (line 6) * stored routines, and replication: replication-features-invoked. (line 6) * stored routines, LAST_INSERT_ID(): stored-routines-last-insert-id. (line 6) * stored routines, metadata: stored-routines-metadata. (line 6) +* stored routines, restrictions: stored-program-restrictions. + (line 6) * storing result in query cache, thread state: query-cache-thread-states. (line 29) * storing row into queue, thread state: delayed-insert-thread-states. (line 39) * STR_TO_DATE(): date-and-time-functions. - (line 792) + (line 804) * STRAIGHT_JOIN <1>: join. (line 6) * STRAIGHT_JOIN <2>: select. (line 373) * STRAIGHT_JOIN <3>: left-join-optimization. (line 38) -* STRAIGHT_JOIN <4>: explain-output. (line 710) +* STRAIGHT_JOIN <4>: explain-output. (line 712) * STRAIGHT_JOIN: using-explain. (line 30) * STRCMP(): string-comparison-functions. (line 182) +* strict mode <1>: glossary. (line 4209) * strict mode: innodb-other-changes-strict-mode. (line 6) * strict SQL mode: server-sql-mode. (line 86) @@ -269885,14 +278852,15 @@ (line 138) * string types: string-types. (line 14) * StringMemory: mysql-cluster-ndbd-definition. - (line 468) + (line 483) * strings, defined: string-literals. (line 6) * strings, escape sequences: string-literals. (line 6) * strings, nondelimited: date-and-time-literals. (line 116) * striping, defined: disk-issues. (line 40) * SUBDATE(): date-and-time-functions. - (line 855) + (line 867) +* sublist: glossary. (line 4224) * SUBPARTITION BY KEY, known issues: partitioning-limitations. (line 341) * subpartitioning: partitioning-subpartitions. @@ -269925,36 +278893,37 @@ * SUBSTRING(): string-functions. (line 649) * SUBSTRING_INDEX(): string-functions. (line 682) * SUBTIME(): date-and-time-functions. - (line 873) + (line 885) * subtraction (-): arithmetic-functions. (line 62) * suffix option, mysqlhotcopy: mysqlhotcopy. (line 189) * SUM(): group-by-functions. (line 262) * SUM(DISTINCT): group-by-functions. (line 262) -* super-large-pages option, mysqld: server-options. (line 1911) +* super-large-pages option, mysqld: server-options. (line 1915) * superuser: default-privileges. (line 6) * superuser option, mysqlaccess: mysqlaccess. (line 148) * support, for operating systems: supported-os. (line 6) * suppression, default values: constraint-invalid-data. (line 6) +* supremum record: glossary. (line 4235) * Sybase compatibility: use. (line 27) * symbolic links <1>: windows-symbolic-links. (line 6) * symbolic links: symbolic-links. (line 12) -* symbolic-links option, mysqld: server-options. (line 1920) +* symbolic-links option, mysqld: server-options. (line 1924) * symbols-file option, resolve_stack_dump: resolve-stack-dump. (line 29) * SymDifference(): spatial-operators. (line 31) * sync_binlog system variable: replication-options-binary-log. - (line 827) + (line 859) * sync_frm system variable: server-system-variables. - (line 5799) + (line 5805) * sync_master_info system variable: replication-options-slave. - (line 1326) + (line 1339) * sync_relay_log system variable: replication-options-slave. - (line 1363) + (line 1376) * sync_relay_log_info system variable: replication-options-slave. - (line 1404) + (line 1417) * synchronization of master and slave, in MySQL Cluster Replication: mysql-cluster-replication-auto-sync. (line 6) * Syncing ndb table schema operation and binlog, thread state: mysql-cluster-thread-states. @@ -269962,10 +278931,10 @@ * syntax conventions: manual-conventions. (line 8) * syntax, regular expression: regexp. (line 6) * SYSCONFDIR option, CMake: source-configuration-options. - (line 275) + (line 315) * SYSDATE(): date-and-time-functions. - (line 884) -* sysdate-is-now option, mysqld: server-options. (line 2116) + (line 896) +* sysdate-is-now option, mysqld: server-options. (line 2120) * syslog option, mysqld_safe: mysqld-safe. (line 253) * syslog-tag option, mysqld_safe: mysqld-safe. (line 259) * system command, mysql: mysql-commands. (line 210) @@ -269976,7 +278945,8 @@ * system option, ndb_config: mysql-cluster-programs-ndb-config. (line 243) * system table, optimizer <1>: select. (line 379) -* system table, optimizer: explain-output. (line 210) +* system table, optimizer: explain-output. (line 212) +* system tablespace: glossary. (line 4247) * system variable <1>: show-variables. (line 6) * system variable <2>: using-system-variables. (line 11) @@ -269985,390 +278955,392 @@ * system variable, and replication: replication-features-variables. (line 6) * system variable, authentication_windows_log_level: server-system-variables. - (line 620) + (line 628) * system variable, authentication_windows_use_principal_name: server-system-variables. - (line 654) + (line 662) * system variable, auto_increment_increment: replication-options-master. (line 21) * system variable, auto_increment_offset: replication-options-master. (line 222) * system variable, automatic_sp_privileges: server-system-variables. - (line 746) + (line 754) * system variable, back_log: server-system-variables. - (line 773) + (line 781) * system variable, basedir: server-system-variables. - (line 809) + (line 817) * system variable, binlog_cache_size: replication-options-binary-log. - (line 423) + (line 447) * system variable, binlog_direct_non_transactional_updates: replication-options-binary-log. - (line 473) + (line 497) * system variable, binlog_format: replication-options-binary-log. - (line 531) + (line 555) * system variable, binlog_stmt_cache_size: replication-options-binary-log. - (line 778) + (line 810) * system variable, bulk_insert_buffer_size: server-system-variables. - (line 846) + (line 854) * system variable, character_set_client: server-system-variables. - (line 882) + (line 890) * system variable, character_set_connection: server-system-variables. - (line 921) + (line 929) * system variable, character_set_database: server-system-variables. - (line 936) + (line 944) * system variable, character_set_filesystem: server-system-variables. - (line 975) + (line 983) * system variable, character_set_results: server-system-variables. - (line 1004) + (line 1012) * system variable, character_set_server: server-system-variables. - (line 1019) + (line 1027) * system variable, character_set_system: server-system-variables. - (line 1038) + (line 1046) * system variable, character_sets_dir: server-system-variables. - (line 1052) + (line 1060) * system variable, collation_connection: server-system-variables. - (line 1071) + (line 1079) * system variable, collation_database: server-system-variables. - (line 1085) + (line 1093) * system variable, collation_server: server-system-variables. - (line 1124) + (line 1132) * system variable, completion_type: server-system-variables. - (line 1143) + (line 1151) * system variable, concurrent_insert: server-system-variables. - (line 1203) + (line 1211) * system variable, connect_timeout: server-system-variables. - (line 1259) + (line 1267) * system variable, datadir: server-system-variables. - (line 1284) + (line 1292) * system variable, date_format: server-system-variables. - (line 1305) + (line 1313) * system variable, datetime_format: server-system-variables. - (line 1309) + (line 1317) * system variable, debug: server-system-variables. - (line 1313) + (line 1321) * system variable, debug_sync: server-system-variables. - (line 1363) + (line 1371) * system variable, default_storage_engine: server-system-variables. - (line 1397) + (line 1405) * system variable, default_week_format: server-system-variables. - (line 1429) + (line 1437) * system variable, delay_key_write: server-system-variables. - (line 1452) + (line 1460) * system variable, delayed_insert_limit: server-system-variables. - (line 1500) + (line 1508) * system variable, delayed_insert_timeout: server-system-variables. - (line 1534) + (line 1542) * system variable, delayed_queue_size: server-system-variables. - (line 1555) + (line 1563) * system variable, div_precision_increment: server-system-variables. - (line 1589) + (line 1597) * system variable, engine_condition_pushdown: server-system-variables. - (line 1629) + (line 1637) * system variable, event_scheduler: server-system-variables. - (line 1680) + (line 1688) * system variable, expire_logs_days: server-system-variables. - (line 1706) + (line 1714) * system variable, flush: server-system-variables. - (line 1753) + (line 1761) * system variable, flush_time: server-system-variables. - (line 1775) + (line 1783) * system variable, ft_boolean_syntax: server-system-variables. - (line 1825) + (line 1833) * system variable, ft_max_word_len: server-system-variables. - (line 1862) + (line 1870) * system variable, ft_min_word_len: server-system-variables. - (line 1887) + (line 1895) * system variable, ft_query_expansion_limit: server-system-variables. - (line 1913) + (line 1921) * system variable, ft_stopword_file: server-system-variables. - (line 1935) + (line 1943) * system variable, general_log: server-system-variables. - (line 1967) + (line 1975) * system variable, general_log_file: server-system-variables. - (line 1991) + (line 1999) * system variable, group_concat_max_len: server-system-variables. - (line 2013) + (line 2021) * system variable, have_compress: server-system-variables. - (line 2045) + (line 2053) * system variable, have_crypt: server-system-variables. - (line 2051) + (line 2059) * system variable, have_csv: server-system-variables. - (line 2056) -* system variable, have_dynamic_loading: server-system-variables. (line 2064) +* system variable, have_dynamic_loading: server-system-variables. + (line 2072) * system variable, have_geometry: server-system-variables. - (line 2069) + (line 2077) * system variable, have_innodb: server-system-variables. - (line 2073) -* system variable, have_openssl: server-system-variables. (line 2081) +* system variable, have_openssl: server-system-variables. + (line 2089) * system variable, have_partitioning: server-system-variables. - (line 2085) + (line 2093) * system variable, have_profiling: server-system-variables. - (line 2089) + (line 2097) * system variable, have_query_cache: server-system-variables. - (line 2094) -* system variable, have_rtree_keys: server-system-variables. (line 2102) +* system variable, have_rtree_keys: server-system-variables. + (line 2110) * system variable, have_ssl: server-system-variables. - (line 2107) + (line 2115) * system variable, have_symlink: server-system-variables. - (line 2114) + (line 2122) * system variable, hostname: server-system-variables. - (line 2121) -* system variable, ignore_builtin_innodb: innodb-parameters. (line 219) + (line 2129) +* system variable, ignore_builtin_innodb: innodb-parameters. (line 207) * system variable, init_connect: server-system-variables. - (line 2141) + (line 2149) * system variable, init_file: server-system-variables. - (line 2183) + (line 2191) * system variable, init_slave: replication-options-slave. - (line 1020) + (line 1035) * system variable, innodb_adaptive_flushing: innodb-parameters. - (line 227) + (line 215) * system variable, innodb_adaptive_hash_index: innodb-parameters. - (line 249) + (line 237) * system variable, innodb_additional_mem_pool_size: innodb-parameters. - (line 271) + (line 259) * system variable, innodb_autoextend_increment: innodb-parameters. - (line 299) + (line 287) * system variable, innodb_autoinc_lock_mode: innodb-parameters. - (line 327) + (line 315) * system variable, innodb_buffer_pool_instances: innodb-parameters. - (line 354) + (line 342) * system variable, innodb_buffer_pool_size: innodb-parameters. - (line 392) + (line 380) * system variable, innodb_change_buffering: innodb-parameters. - (line 442) -* system variable, innodb_checksums: innodb-parameters. (line 487) + (line 430) +* system variable, innodb_checksums: innodb-parameters. (line 475) * system variable, innodb_commit_concurrency: innodb-parameters. - (line 511) + (line 499) * system variable, innodb_concurrency_tickets: innodb-parameters. - (line 538) -* system variable, innodb_data_file_path: innodb-parameters. (line 568) -* system variable, innodb_data_home_dir: innodb-parameters. (line 597) -* system variable, innodb_doublewrite: innodb-parameters. (line 621) -* system variable, innodb_fast_shutdown: innodb-parameters. (line 644) -* system variable, innodb_file_format: innodb-parameters. (line 688) + (line 526) +* system variable, innodb_data_file_path: innodb-parameters. (line 556) +* system variable, innodb_data_home_dir: innodb-parameters. (line 585) +* system variable, innodb_doublewrite: innodb-parameters. (line 609) +* system variable, innodb_fast_shutdown: innodb-parameters. (line 632) +* system variable, innodb_file_format: innodb-parameters. (line 669) * system variable, innodb_file_format_check: innodb-parameters. - (line 727) + (line 706) * system variable, innodb_file_format_max: innodb-parameters. - (line 773) -* system variable, innodb_file_per_table: innodb-parameters. (line 801) + (line 758) +* system variable, innodb_file_per_table: innodb-parameters. (line 786) * system variable, innodb_flush_log_at_trx_commit: innodb-parameters. - (line 836) -* system variable, innodb_flush_method: innodb-parameters. (line 896) -* system variable, innodb_force_recovery: innodb-parameters. (line 948) -* system variable, innodb_io_capacity: innodb-parameters. (line 982) + (line 819) +* system variable, innodb_flush_method: innodb-parameters. (line 878) +* system variable, innodb_force_recovery: innodb-parameters. (line 930) +* system variable, innodb_io_capacity: innodb-parameters. (line 964) * system variable, innodb_lock_wait_timeout: innodb-parameters. - (line 1096) + (line 1069) * system variable, innodb_locks_unsafe_for_binlog: innodb-parameters. - (line 1146) + (line 1117) * system variable, innodb_log_buffer_size: innodb-parameters. - (line 1317) -* system variable, innodb_log_file_size: innodb-parameters. (line 1343) + (line 1288) +* system variable, innodb_log_file_size: innodb-parameters. (line 1314) * system variable, innodb_log_files_in_group: innodb-parameters. - (line 1371) + (line 1342) * system variable, innodb_log_group_home_dir: innodb-parameters. - (line 1394) + (line 1365) * system variable, innodb_max_dirty_pages_pct: innodb-parameters. - (line 1417) -* system variable, innodb_max_purge_lag: innodb-parameters. (line 1441) + (line 1387) +* system variable, innodb_max_purge_lag: innodb-parameters. (line 1411) * system variable, innodb_mirrored_log_groups: innodb-parameters. - (line 1493) -* system variable, innodb_old_blocks_pct: innodb-parameters. (line 1498) + (line 1461) +* system variable, innodb_old_blocks_pct: innodb-parameters. (line 1466) * system variable, innodb_old_blocks_time: innodb-parameters. - (line 1520) -* system variable, innodb_open_files: innodb-parameters. (line 1549) + (line 1488) +* system variable, innodb_open_files: innodb-parameters. (line 1517) * system variable, innodb_purge_batch_size: innodb-parameters. - (line 1578) -* system variable, innodb_purge_threads: innodb-parameters. (line 1604) + (line 1544) +* system variable, innodb_purge_threads: innodb-parameters. (line 1570) * system variable, innodb_read_ahead_threshold: innodb-parameters. - (line 1633) + (line 1599) * system variable, innodb_read_io_threads: innodb-parameters. - (line 1661) + (line 1627) * system variable, innodb_replication_delay: innodb-parameters. - (line 1683) + (line 1649) * system variable, innodb_rollback_on_timeout: innodb-parameters. - (line 1705) + (line 1671) * system variable, innodb_spin_wait_delay: innodb-parameters. - (line 1754) -* system variable, innodb_stats_method: innodb-parameters. (line 1776) + (line 1719) +* system variable, innodb_stats_method: innodb-parameters. (line 1741) * system variable, innodb_stats_on_metadata: innodb-parameters. - (line 1809) + (line 1774) * system variable, innodb_stats_sample_pages: innodb-parameters. - (line 1840) -* system variable, innodb_strict_mode: innodb-parameters. (line 1865) -* system variable, innodb_support_xa: innodb-parameters. (line 1888) + (line 1805) +* system variable, innodb_strict_mode: innodb-parameters. (line 1830) +* system variable, innodb_support_xa: innodb-parameters. (line 1853) * system variable, innodb_sync_spin_loops: innodb-parameters. - (line 1928) -* system variable, innodb_table_locks: innodb-parameters. (line 1950) + (line 1893) +* system variable, innodb_table_locks: innodb-parameters. (line 1915) * system variable, innodb_thread_concurrency: innodb-parameters. - (line 1982) + (line 1947) * system variable, innodb_thread_sleep_delay: innodb-parameters. - (line 2018) -* system variable, innodb_use_native_aio: innodb-parameters. (line 2039) -* system variable, innodb_use_sys_malloc: innodb-parameters. (line 2065) -* system variable, innodb_version: innodb-parameters. (line 2086) + (line 1983) +* system variable, innodb_use_native_aio: innodb-parameters. (line 2004) +* system variable, innodb_use_sys_malloc: innodb-parameters. (line 2038) +* system variable, innodb_version: innodb-parameters. (line 2059) * system variable, innodb_write_io_threads: innodb-parameters. - (line 2090) + (line 2063) * system variable, interactive_timeout: server-system-variables. - (line 2221) + (line 2229) * system variable, join_buffer_size: server-system-variables. - (line 2246) + (line 2254) * system variable, keep_files_on_create: server-system-variables. - (line 2280) + (line 2288) * system variable, key_buffer_size: server-system-variables. - (line 2312) + (line 2320) * system variable, key_cache_age_threshold: server-system-variables. - (line 2393) + (line 2401) * system variable, key_cache_block_size: server-system-variables. - (line 2428) + (line 2436) * system variable, key_cache_division_limit: server-system-variables. - (line 2451) + (line 2459) * system variable, language: server-system-variables. - (line 2475) + (line 2483) * system variable, large_files_support: server-system-variables. - (line 2501) + (line 2509) * system variable, large_page_size: server-system-variables. - (line 2532) + (line 2540) * system variable, large_pages: server-system-variables. - (line 2511) + (line 2519) * system variable, lc_messages: server-system-variables. - (line 2557) + (line 2565) * system variable, lc_messages_dir: server-system-variables. - (line 2579) + (line 2587) * system variable, lc_time_names: server-system-variables. - (line 2600) + (line 2608) * system variable, license: server-system-variables. - (line 2620) + (line 2628) * system variable, local_infile: server-system-variables. - (line 2634) + (line 2642) * system variable, lock_wait_timeout: server-system-variables. - (line 2648) + (line 2656) * system variable, locked_in_memory: server-system-variables. - (line 2692) + (line 2700) * system variable, log: server-system-variables. - (line 2702) -* system variable, log_bin: server-system-variables. (line 2710) +* system variable, log_bin: server-system-variables. + (line 2718) * system variable, log_bin_trust_function_creators: server-system-variables. - (line 2725) + (line 2733) * system variable, log_bin_use_v1_row_events: replication-options-binary-log. - (line 602) + (line 634) * system variable, log_error: server-system-variables. - (line 2756) + (line 2764) * system variable, log_output: server-system-variables. - (line 2775) + (line 2783) * system variable, log_queries_not_using_indexes: server-system-variables. - (line 2805) + (line 2813) * system variable, log_slave_updates: server-system-variables. - (line 2825) + (line 2833) * system variable, log_slow_admin_statements: server-system-variables. - (line 2832) + (line 2840) * system variable, log_slow_queries: server-system-variables. - (line 2865) + (line 2873) * system variable, log_slow_slave_statements: server-system-variables. - (line 2849) + (line 2857) * system variable, log_warnings: server-system-variables. - (line 2891) + (line 2899) * system variable, long_query_time: server-system-variables. - (line 2922) + (line 2930) * system variable, low_priority_updates: server-system-variables. - (line 2953) + (line 2961) * system variable, lower_case_file_system: server-system-variables. - (line 2979) + (line 2987) * system variable, lower_case_table_names: server-system-variables. - (line 3001) + (line 3009) * system variable, max_allowed_packet: server-system-variables. - (line 3048) + (line 3056) * system variable, max_binlog_cache_size: replication-options-binary-log. - (line 661) + (line 693) * system variable, max_binlog_size: replication-options-binary-log. - (line 745) + (line 777) * system variable, max_binlog_stmt_cache_size: replication-options-binary-log. - (line 707) + (line 739) * system variable, max_connect_errors: server-system-variables. - (line 3093) + (line 3101) * system variable, max_connections: server-system-variables. - (line 3130) + (line 3138) * system variable, max_delayed_threads: server-system-variables. - (line 3157) + (line 3165) * system variable, max_error_count: server-system-variables. - (line 3188) + (line 3196) * system variable, max_heap_table_size: server-system-variables. - (line 3212) + (line 3220) * system variable, max_insert_delayed_threads: server-system-variables. - (line 3257) + (line 3269) * system variable, max_join_size: server-system-variables. - (line 3271) + (line 3283) * system variable, max_length_for_sort_data: server-system-variables. - (line 3313) + (line 3325) * system variable, max_long_data_size: server-system-variables. - (line 3336) + (line 3348) * system variable, max_prepared_stmt_count: server-system-variables. - (line 3366) + (line 3378) * system variable, max_relay_log_size: server-system-variables. - (line 3396) + (line 3408) * system variable, max_seeks_for_key: server-system-variables. - (line 3426) + (line 3438) * system variable, max_sort_length: server-system-variables. - (line 3463) + (line 3475) * system variable, max_sp_recursion_depth: server-system-variables. - (line 3487) + (line 3499) * system variable, max_tmp_tables: server-system-variables. - (line 3516) + (line 3528) * system variable, max_user_connections: server-system-variables. - (line 3548) + (line 3560) * system variable, max_write_lock_count: server-system-variables. - (line 3588) + (line 3600) * system variable, metadata_locks_cache_size: server-system-variables. - (line 3619) + (line 3631) * system variable, min_examined_row_limit: server-system-variables. - (line 3640) + (line 3652) * system variable, myisam_data_pointer_size: server-system-variables. - (line 3670) + (line 3682) * system variable, myisam_max_sort_file_size: server-system-variables. - (line 3694) + (line 3706) * system variable, myisam_mmap_size: server-system-variables. - (line 3723) + (line 3735) * system variable, myisam_recover_options: server-system-variables. - (line 3758) + (line 3770) * system variable, myisam_repair_threads: server-system-variables. - (line 3768) + (line 3780) * system variable, myisam_sort_buffer_size: server-system-variables. - (line 3805) + (line 3817) * system variable, myisam_stats_method: server-system-variables. - (line 3844) + (line 3856) * system variable, myisam_use_mmap: server-system-variables. - (line 3878) + (line 3890) * system variable, named_pipe: server-system-variables. - (line 3897) + (line 3909) +* system variable, ndb_log_empty_epochs: mysql-cluster-system-variables. + (line 928) * system variable, ndb_log_transaction_id: mysql-cluster-system-variables. - (line 431) + (line 498) * system variable, net_buffer_length: server-system-variables. - (line 3913) + (line 3925) * system variable, net_read_timeout: server-system-variables. - (line 3948) + (line 3960) * system variable, net_retry_count: server-system-variables. - (line 3974) + (line 3986) * system variable, net_write_timeout: server-system-variables. - (line 4008) + (line 4020) * system variable, new: server-system-variables. - (line 4030) + (line 4042) * system variable, old: server-system-variables. - (line 4054) + (line 4066) * system variable, old_alter_table: server-system-variables. - (line 4077) + (line 4089) * system variable, old_passwords: server-system-variables. - (line 4103) + (line 4115) * system variable, one_shot: server-system-variables. - (line 4124) + (line 4136) * system variable, open_files_limit: server-system-variables. - (line 4129) + (line 4141) * system variable, optimizer_prune_level: server-system-variables. - (line 4155) + (line 4167) * system variable, optimizer_search_depth: server-system-variables. - (line 4179) + (line 4191) * system variable, optimizer_switch: server-system-variables. - (line 4211) + (line 4223) * system variable, performance_schema: performance-schema-system-variables. (line 67) * system variable, performance_schema_events_waits_history_long_size: performance-schema-system-variables. @@ -270402,231 +279374,239 @@ * system variable, performance_schema_max_thread_instances: performance-schema-system-variables. (line 138) * system variable, pid_file: server-system-variables. - (line 4271) + (line 4283) * system variable, plugin_dir: server-system-variables. - (line 4291) + (line 4303) * system variable, port: server-system-variables. - (line 4337) + (line 4349) * system variable, preload_buffer_size: server-system-variables. - (line 4358) + (line 4370) * system variable, protocol_version: server-system-variables. - (line 4396) + (line 4408) * system variable, pseudo_thread_id: server-system-variables. - (line 4427) + (line 4439) * system variable, query_alloc_block_size: server-system-variables. - (line 4440) + (line 4452) * system variable, query_cache_limit: server-system-variables. - (line 4478) + (line 4490) * system variable, query_cache_min_res_unit: server-system-variables. - (line 4509) + (line 4521) * system variable, query_cache_size: server-system-variables. - (line 4543) + (line 4555) * system variable, query_cache_type: server-system-variables. - (line 4585) + (line 4597) * system variable, query_cache_wlock_invalidate: server-system-variables. - (line 4627) + (line 4639) * system variable, query_prealloc_size: server-system-variables. - (line 4653) + (line 4665) * system variable, range_alloc_block_size: server-system-variables. - (line 4711) + (line 4723) * system variable, read_buffer_size: server-system-variables. - (line 4737) + (line 4749) * system variable, read_only: server-system-variables. - (line 4771) + (line 4783) * system variable, read_rnd_buffer_size: server-system-variables. - (line 4843) + (line 4855) * system variable, relay_log_index: replication-options-slave. - (line 1049) + (line 1064) * system variable, relay_log_info_file: replication-options-slave. - (line 1070) + (line 1085) * system variable, relay_log_purge: server-system-variables. - (line 4879) + (line 4890) * system variable, relay_log_recovery: replication-options-slave. - (line 1091) + (line 1106) * system variable, relay_log_space_limit: server-system-variables. - (line 4899) + (line 4910) * system variable, report_host: server-system-variables. - (line 4929) + (line 4940) * system variable, report_password: server-system-variables. - (line 4947) + (line 4958) * system variable, report_port: server-system-variables. - (line 4966) + (line 4977) * system variable, report_user: server-system-variables. - (line 4985) + (line 4997) * system variable, rpl_semi_sync_master_enabled: server-system-variables. - (line 5004) + (line 5016) * system variable, rpl_semi_sync_master_timeout: server-system-variables. - (line 5023) + (line 5035) * system variable, rpl_semi_sync_master_trace_level: server-system-variables. - (line 5044) + (line 5056) * system variable, rpl_semi_sync_master_wait_no_slave: server-system-variables. - (line 5071) + (line 5083) * system variable, rpl_semi_sync_slave_enabled: server-system-variables. - (line 5104) + (line 5116) * system variable, rpl_semi_sync_slave_trace_level: server-system-variables. - (line 5123) + (line 5135) * system variable, secure_auth: server-system-variables. - (line 5141) + (line 5153) * system variable, secure_file_priv: server-system-variables. - (line 5170) + (line 5175) * system variable, server_id: server-system-variables. - (line 5192) + (line 5197) * system variable, server_id_bits: mysql-cluster-system-variables. - (line 854) + (line 947) * system variable, shared_memory: server-system-variables. - (line 5217) + (line 5222) * system variable, shared_memory_base_name: server-system-variables. - (line 5228) + (line 5233) * system variable, skip_external_locking: server-system-variables. - (line 5241) + (line 5246) * system variable, skip_name_resolve: server-system-variables. - (line 5247) + (line 5252) * system variable, skip_networking: server-system-variables. - (line 5257) + (line 5262) * system variable, skip_show_database: server-system-variables. - (line 5264) + (line 5269) * system variable, slave_compressed_protocol: replication-options-slave. - (line 1121) + (line 1136) * system variable, slave_exec_mode: replication-options-slave. - (line 1141) + (line 1156) * system variable, slave_load_tmpdir: replication-options-slave. - (line 1170) + (line 1185) * system variable, slave_net_timeout: replication-options-slave. - (line 1191) + (line 1206) * system variable, slave_skip_errors: replication-options-slave. - (line 1214) + (line 1227) * system variable, slave_transaction_retries: replication-options-slave. - (line 1232) + (line 1245) * system variable, slave_type_conversions: replication-options-slave. - (line 1270) + (line 1283) * system variable, slow_launch_time: server-system-variables. - (line 5279) + (line 5284) * system variable, slow_query_log: server-system-variables. - (line 5299) + (line 5304) * system variable, slow_query_log_file: server-system-variables. - (line 5326) + (line 5331) * system variable, socket: server-system-variables. - (line 5347) + (line 5352) * system variable, sort_buffer_size: server-system-variables. - (line 5374) + (line 5379) * system variable, sql_log_bin: server-system-variables. - (line 5509) + (line 5515) * system variable, sql_log_off: server-system-variables. - (line 5530) + (line 5536) * system variable, sql_log_update: server-system-variables. - (line 5549) + (line 5555) * system variable, sql_mode: server-system-variables. - (line 5567) + (line 5573) * system variable, sql_select_limit: server-system-variables. - (line 5638) + (line 5644) * system variable, sql_slave_skip_counter: replication-options-slave. - (line 1304) + (line 1317) * system variable, ssl_ca: server-system-variables. - (line 5673) + (line 5679) * system variable, ssl_capath: server-system-variables. - (line 5692) + (line 5698) * system variable, ssl_cert: server-system-variables. - (line 5712) + (line 5718) * system variable, ssl_cipher: server-system-variables. - (line 5732) + (line 5738) * system variable, ssl_key: server-system-variables. - (line 5751) + (line 5757) * system variable, storage_engine: server-system-variables. - (line 5770) + (line 5776) * system variable, sync_binlog: replication-options-binary-log. - (line 827) + (line 859) * system variable, sync_frm: server-system-variables. - (line 5799) + (line 5805) * system variable, sync_master_info: replication-options-slave. - (line 1326) + (line 1339) * system variable, sync_relay_log: replication-options-slave. - (line 1363) + (line 1376) * system variable, sync_relay_log_info: replication-options-slave. - (line 1404) + (line 1417) * system variable, system_time_zone: server-system-variables. - (line 5821) + (line 5827) * system variable, table_definition_cache: server-system-variables. - (line 5846) + (line 5852) * system variable, table_lock_wait_timeout: server-system-variables. - (line 5873) + (line 5879) * system variable, table_open_cache: server-system-variables. - (line 5895) + (line 5901) * system variable, table_type: server-system-variables. - (line 5923) + (line 5929) * system variable, thread_cache_size: server-system-variables. - (line 5928) + (line 5934) * system variable, thread_concurrency: server-system-variables. - (line 5962) + (line 5968) * system variable, thread_handling: server-system-variables. - (line 5988) + (line 5994) * system variable, thread_pool_algorithm: server-system-variables. - (line 6029) + (line 6035) * system variable, thread_pool_high_priority_connection: server-system-variables. - (line 6065) + (line 6071) * system variable, thread_pool_max_unused_threads: server-system-variables. - (line 6095) + (line 6101) * system variable, thread_pool_prio_kickup_timer: server-system-variables. - (line 6136) + (line 6142) * system variable, thread_pool_size: server-system-variables. - (line 6165) + (line 6171) * system variable, thread_pool_stall_limit: server-system-variables. - (line 6196) + (line 6202) * system variable, thread_stack: server-system-variables. - (line 6231) + (line 6237) * system variable, time_format: server-system-variables. - (line 6271) + (line 6277) * system variable, time_zone: server-system-variables. - (line 6275) + (line 6281) * system variable, timed_mutexes: server-system-variables. - (line 6297) + (line 6303) * system variable, tmp_table_size: server-system-variables. - (line 6336) + (line 6342) * system variable, tmpdir: server-system-variables. - (line 6374) + (line 6380) * system variable, transaction_alloc_block_size: server-system-variables. - (line 6410) + (line 6416) * system variable, transaction_prealloc_size: server-system-variables. - (line 6447) + (line 6453) * system variable, tx_isolation: server-system-variables. - (line 6492) + (line 6498) * system variable, updatable_views_with_limit: server-system-variables. - (line 6552) + (line 6558) * system variable, version: server-system-variables. - (line 6585) + (line 6591) * system variable, version_comment: server-system-variables. - (line 6593) + (line 6599) * system variable, version_compile_machine: server-system-variables. - (line 6609) + (line 6615) * system variable, version_compile_os: server-system-variables. - (line 6622) + (line 6628) * system variable, wait_timeout: server-system-variables. - (line 6635) + (line 6641) * system, privilege: privilege-system. (line 16) * system, security: security. (line 15) * system_time_zone system variable: server-system-variables. - (line 5821) + (line 5827) * SYSTEM_USER(): information-functions. - (line 521) + (line 523) * tab (\t) <1>: load-data. (line 421) * tab (\t): string-literals. (line 74) -* tab option, mysqldump: mysqldump. (line 967) -* Table 'mysql.proxies_priv' doesn't exist <1>: news-5-5-7. (line 116) +* tab option, mysqldump: mysqldump. (line 970) +* table: glossary. (line 4279) +* Table 'mysql.proxies_priv' doesn't exist <1>: news-5-5-7. (line 90) * Table 'mysql.proxies_priv' doesn't exist <2>: upgrading-from-5-4. (line 108) * Table 'mysql.proxies_priv' doesn't exist: upgrading-from-previous-series. (line 145) * table aliases: select. (line 162) +* table cache <1>: connector-net-programming-tablecaching. + (line 6) * table cache: table-cache. (line 6) * table description, myisamchk: myisamchk-table-info. (line 6) +* Table Designer: connector-net-visual-studio-editing-tables. + (line 14) * Table Dump, thread command: thread-commands. (line 128) * table is full <1>: full-table. (line 6) * table is full: server-system-variables. - (line 833) + (line 841) +* Table is full errors (MySQL Cluster): mysql-cluster-ndbd-definition. + (line 399) +* table lock: glossary. (line 4326) * Table lock, thread state: general-thread-states. (line 333) * Table Monitor, InnoDB <1>: innodb-troubleshooting-datadict. - (line 60) + (line 58) * Table Monitor, InnoDB: innodb-monitors. (line 12) * table names, case sensitivity: identifier-case-sensitivity. (line 6) @@ -270636,6 +279616,7 @@ * table option, mysqlaccess: mysqlaccess. (line 152) * table scan: innodb-performance-midpoint_insertion. (line 6) +* table type: glossary. (line 4344) * table types, choosing: storage-engines. (line 22) * table, changing <1>: alter-table-problems. (line 6) @@ -270647,18 +279628,20 @@ (line 24) * table-level locking: internal-locking. (line 6) * table_definition_cache system variable: server-system-variables. - (line 5846) + (line 5852) * table_lock_wait_timeout system variable: server-system-variables. - (line 5873) + (line 5879) * table_open_cache: table-cache. (line 6) * table_open_cache system variable: server-system-variables. - (line 5895) + (line 5901) * TABLE_PRIVILEGES, INFORMATION_SCHEMA table: table-privileges-table. (line 6) * table_type system variable: server-system-variables. - (line 5923) + (line 5929) +* TableDirect commands: connector-net-connection-options. + (line 6) * tables option, mysqlcheck: mysqlcheck. (line 397) -* tables option, mysqldump: mysqldump. (line 991) +* tables option, mysqldump: mysqldump. (line 994) * tables, BLACKHOLE: blackhole-storage-engine. (line 6) * tables, checking: myisamchk-check-options. @@ -270666,12 +279649,12 @@ * tables, closing: table-cache. (line 6) * tables, compressed: myisampack. (line 6) * tables, compressed format: compressed-format. (line 6) -* tables, const: explain-output. (line 215) +* tables, const: explain-output. (line 217) * tables, constant: where-optimizations. (line 89) * tables, copying <1>: create-table-select. (line 6) -* tables, copying: create-table. (line 1306) +* tables, copying: create-table. (line 1307) * tables, counting rows: counting-rows. (line 6) * tables, creating: creating-tables. (line 6) * tables, CSV: csv-storage-engine. (line 11) @@ -270733,21 +279716,23 @@ * tables, sorting rows: sorting-rows. (line 6) * tables, symbolic links: symbolic-links-to-tables. (line 6) -* tables, system: explain-output. (line 210) +* tables, system: explain-output. (line 212) * tables, too many: creating-many-tables. (line 6) * tables, unique ID for last row: getting-unique-id. (line 6) * tables, updating: ansi-diff-transactions. (line 6) +* tablespace: glossary. (line 4353) +* tablespace dictionary: glossary. (line 4374) * Tablespace Monitor, InnoDB <1>: innodb-monitors. (line 12) -* Tablespace Monitor, InnoDB <2>: innodb-file-space. (line 60) -* Tablespace Monitor, InnoDB: innodb-backup. (line 122) +* Tablespace Monitor, InnoDB <2>: innodb-file-space. (line 59) +* Tablespace Monitor, InnoDB: innodb-backup. (line 116) * TABLESPACE, INFORMATION_SCHEMA table: tablespaces-table. (line 6) * TAN(): mathematical-functions. (line 549) * tar, problems on Solaris: solaris-installation. (line 11) -* tc-heuristic-recover option, mysqld: server-options. (line 2136) +* tc-heuristic-recover option, mysqld: server-options. (line 2140) * Tcl API: apis-tcl. (line 6) * tcp-ip option, mysqld_multi: mysqld-multi. (line 140) * TCP/IP <1>: windows-testing. (line 6) @@ -270756,10 +279741,11 @@ * tee command, mysql: mysql-commands. (line 216) * tee option, mysql: mysql-command-options. (line 543) -* temp-pool option, mysqld: server-options. (line 2152) +* temp-pool option, mysqld: server-options. (line 2156) * temporary file, write access: mysql-install-db-problems. (line 70) * temporary files: temporary-files. (line 6) +* temporary table: glossary. (line 4389) * temporary tables, and replication: replication-features-temptables. (line 6) * temporary tables, internal: internal-temporary-tables. @@ -270774,8 +279760,9 @@ (line 54) * testing, of MySQL releases: choosing-version. (line 111) * testing, postinstallation: postinstallation. (line 11) -* TEXT columns, default values: blob. (line 53) -* TEXT columns, indexing <1>: create-table. (line 468) +* text collection: glossary. (line 4407) +* TEXT columns, default values: blob. (line 49) +* TEXT columns, indexing <1>: create-table. (line 469) * TEXT columns, indexing: column-indexes. (line 18) * TEXT data type <1>: blob. (line 6) * TEXT data type: string-type-overview. @@ -270784,6 +279771,7 @@ * text files, importing: batch-commands. (line 6) * TEXT, size: storage-requirements. (line 181) +* thread: glossary. (line 4413) * thread cache: connection-threads. (line 6) * thread command, Binlog Dump: thread-commands. (line 8) * thread command, Change user: thread-commands. (line 13) @@ -271119,28 +280107,30 @@ (line 6) * thread support: supported-os. (line 6) * thread_cache_size system variable: server-system-variables. - (line 5928) + (line 5934) * thread_concurrency system variable: server-system-variables. - (line 5962) + (line 5968) * thread_handling system variable: server-system-variables. - (line 5988) + (line 5994) * thread_pool_algorithm system variable: server-system-variables. - (line 6029) + (line 6035) * thread_pool_high_priority_connection system variable: server-system-variables. - (line 6065) + (line 6071) * thread_pool_max_unused_threads system variable: server-system-variables. - (line 6095) + (line 6101) * thread_pool_prio_kickup_timer system variable: server-system-variables. - (line 6136) + (line 6142) * thread_pool_size system variable: server-system-variables. - (line 6165) + (line 6171) * thread_pool_stall_limit system variable: server-system-variables. - (line 6196) + (line 6202) * thread_stack system variable: server-system-variables. - (line 6231) + (line 6237) +* ThreadConfig: mysql-cluster-ndbd-definition. + (line 3330) * threaded clients: threaded-clients. (line 6) * ThreadPool: mysql-cluster-ndbd-definition. - (line 3329) + (line 3438) * threads <1>: mysql-internals. (line 11) * threads <2>: show-processlist. (line 6) * threads: mysqladmin. (line 176) @@ -271149,9 +280139,11 @@ * threads, monitoring <1>: processlist-table. (line 6) * threads, monitoring <2>: show-processlist. (line 6) * threads, monitoring: thread-information. (line 19) +* TIME columns, with Connector/Net: connector-net-programming-datetime. + (line 14) * TIME data type <1>: time. (line 6) * TIME data type: date-and-time-type-overview. - (line 63) + (line 61) * time literals: date-and-time-literals. (line 6) * time representation, Event Scheduler: events-metadata. (line 21) @@ -271167,39 +280159,39 @@ * time zones, support: time-zone-support. (line 11) * time zones, upgrading: time-zone-upgrades. (line 6) * TIME(): date-and-time-functions. - (line 928) + (line 940) * Time, thread command: thread-commands. (line 132) * time_format system variable: server-system-variables. - (line 6271) + (line 6277) * TIME_FORMAT(): date-and-time-functions. - (line 1011) + (line 1028) * TIME_TO_SEC(): date-and-time-functions. - (line 1026) + (line 1043) * time_zone system variable: server-system-variables. - (line 6275) + (line 6281) * TimeBetweenEpochs: mysql-cluster-ndbd-definition. - (line 2105) + (line 2122) * TimeBetweenEpochsTimeout: mysql-cluster-ndbd-definition. - (line 2132) + (line 2142) * TimeBetweenGlobalCheckpoints: mysql-cluster-ndbd-definition. - (line 2072) + (line 2089) * TimeBetweenInactiveTransactionAbortCheck: mysql-cluster-ndbd-definition. - (line 2236) + (line 2204) * TimeBetweenLocalCheckpoints: mysql-cluster-ndbd-definition. - (line 2041) + (line 2058) * TimeBetweenWatchDogCheck: mysql-cluster-ndbd-definition. - (line 1734) + (line 1749) * TimeBetweenWatchDogCheckInitial: mysql-cluster-ndbd-definition. - (line 1759) + (line 1774) * timed_mutexes system variable: server-system-variables. - (line 6297) + (line 6303) * TIMEDIFF(): date-and-time-functions. - (line 942) + (line 954) * timeout <1>: insert-delayed. (line 139) * timeout <2>: miscellaneous-functions. (line 42) * timeout: server-system-variables. - (line 1259) + (line 1267) * timeout option, ndb_waiter: mysql-cluster-programs-ndb-waiter. (line 71) * timeout, connect_timeout variable <1>: mysqladmin. (line 469) @@ -271208,13 +280200,13 @@ * timeout, shutdown_timeout variable: mysqladmin. (line 474) * timeouts (replication): replication-features-timeout. (line 6) -* TIMESTAMP data type <1>: datetime. (line 10) +* TIMESTAMP data type <1>: datetime. (line 6) * TIMESTAMP data type: date-and-time-type-overview. (line 31) * timestamp session variable: server-system-variables. - (line 6322) + (line 6328) * TIMESTAMP(): date-and-time-functions. - (line 955) + (line 972) * TIMESTAMP, and logs: upgrading-from-previous-series. (line 306) * TIMESTAMP, and NULL values: problems-with-null. (line 71) @@ -271224,10 +280216,12 @@ (line 6) * TIMESTAMP, and replication: upgrading-from-previous-series. (line 306) +* TIMESTAMP, initialization and updating: timestamp-initialization. + (line 6) * TIMESTAMPADD(): date-and-time-functions. - (line 967) + (line 984) * TIMESTAMPDIFF(): date-and-time-functions. - (line 988) + (line 1005) * timezone option, mysqld_safe: mysqld-safe. (line 267) * TINYBLOB data type: string-type-overview. (line 165) @@ -271238,7 +280232,7 @@ * tips, optimization: miscellaneous-optimization-tips. (line 6) * tmp_table_size system variable: server-system-variables. - (line 6336) + (line 6342) * TMPDIR environment variable <1>: temporary-files. (line 6) * TMPDIR environment variable <2>: programs-overview. (line 289) * TMPDIR environment variable <3>: environment-variables. @@ -271249,15 +280243,15 @@ (line 121) * tmpdir option, myisampack: myisampack. (line 101) * tmpdir option, mysql_upgrade: mysql-upgrade. (line 149) -* tmpdir option, mysqld: server-options. (line 2197) +* tmpdir option, mysqld: server-options. (line 2201) * tmpdir option, mysqlhotcopy: mysqlhotcopy. (line 193) * tmpdir system variable: server-system-variables. - (line 6374) + (line 6380) * to-last-log option, mysqlbinlog: mysqlbinlog. (line 503) * TO_DAYS(): date-and-time-functions. - (line 1035) + (line 1052) * TO_SECONDS(): date-and-time-functions. - (line 1092) + (line 1109) * TODO, symlinks: symbolic-links-to-tables. (line 73) * tools, command-line: mysql. (line 15) @@ -271265,49 +280259,55 @@ (line 6) * tools, mysqld_multi: mysqld-multi. (line 6) * tools, mysqld_safe: mysqld-safe. (line 6) +* torn page: glossary. (line 4422) * TotalSendBufferMemory, API and SQL nodes: mysql-cluster-api-definition. (line 247) * TotalSendBufferMemory, data nodes: mysql-cluster-ndbd-definition. - (line 3671) + (line 3789) * TotalSendBufferMemory, management nodes: mysql-cluster-mgm-definition. (line 269) * Touches(): functions-that-test-spatial-relationships-between-geometries. (line 60) +* TPS: glossary. (line 4433) * trace DBI method: using-gdb-on-mysqld. (line 89) * trace files (MySQL Cluster): mysql-cluster-programs-ndbd. (line 387) * trace files, ndbmtd: mysql-cluster-programs-ndbmtd. - (line 60) + (line 64) +* tracing, with Connector/Net: connector-net-programming-tracing. + (line 11) * TRADITIONAL SQL mode: server-sql-mode. (line 72) +* transaction: glossary. (line 4443) +* transaction ID: glossary. (line 4459) * transaction isolation level: set-transaction. (line 6) * transaction isolation level, READ COMMITTED: set-transaction. - (line 80) + (line 82) * transaction isolation level, READ UNCOMMITTED: set-transaction. - (line 72) + (line 74) * transaction isolation level, REPEATABLE READ: set-transaction. - (line 115) + (line 117) * transaction isolation level, SERIALIZABLE: set-transaction. - (line 137) -* transaction-isolation option, mysqld: server-options. (line 2172) + (line 139) +* transaction-isolation option, mysqld: server-options. (line 2176) * transaction-safe tables <1>: innodb-storage-engine. (line 24) * transaction-safe tables: ansi-diff-transactions. (line 6) * transaction_alloc_block_size system variable: server-system-variables. - (line 6410) + (line 6416) * transaction_allow_batching session variable (MySQL Cluster): mysql-cluster-system-variables. - (line 702) + (line 776) * transaction_prealloc_size system variable: server-system-variables. - (line 6447) + (line 6453) * transactional option, ndb_delete_all: mysql-cluster-programs-ndb-delete-all. (line 21) * TransactionBufferMemory: mysql-cluster-ndbd-definition. - (line 835) + (line 849) * TransactionDeadlockDetectionTimeout: mysql-cluster-ndbd-definition. - (line 2276) + (line 2244) * TransactionInactiveTimeout: mysql-cluster-ndbd-definition. - (line 2255) + (line 2223) * transactions, and replication <1>: replication-features-transactions. (line 6) * transactions, and replication: replication-features-timeout. @@ -271329,25 +280329,34 @@ * triggers <2>: stored-programs-views. (line 16) * triggers: show-triggers. (line 6) -* triggers option, mysqldump: mysqldump. (line 997) +* triggers option, mysqldump: mysqldump. (line 1000) * triggers, and INSERT DELAYED: insert. (line 230) * triggers, and replication <1>: replication-features-triggers. (line 6) * triggers, and replication: replication-features-invoked. (line 6) +* triggers, editing with Visual Studio: connector-net-visual-studio-editing-triggers. + (line 6) * TRIGGERS, INFORMATION_SCHEMA table: triggers-table. (line 6) * triggers, LAST_INSERT_ID(): stored-routines-last-insert-id. (line 6) * triggers, metadata: trigger-metadata. (line 6) * TRIM(): string-functions. (line 698) +* troubleshooting: glossary. (line 4485) +* troubleshooting, Connector/J: connector-j-usagenotes-troubleshooting. + (line 6) +* troubleshooting, Connector/ODBC connection problems: connector-odbc-configuration-dsn-windows-problems. + (line 6) * troubleshooting, FreeBSD: compilation-problems. (line 72) +* troubleshooting, PHP: apis-php-problems. (line 6) * troubleshooting, Solaris: compilation-problems. (line 72) * TRUE <1>: boolean-literals. (line 6) * TRUE: number-literals. (line 6) * TRUE, testing for: comparison-operators. (line 130) +* truncate: glossary. (line 4490) * TRUNCATE TABLE <1>: innodb-other-changes-truncate. (line 6) * TRUNCATE TABLE: truncate-table. (line 6) @@ -271362,13 +280371,15 @@ * TRUNCATE(): mathematical-functions. (line 558) * tuning: optimization. (line 22) +* tuple: glossary. (line 4511) * tupscan option, ndb_select_all: mysql-cluster-programs-ndb-select-all. (line 73) * tutorial: tutorial. (line 16) +* two-phase commit: glossary. (line 4522) * TwoPassInitialNodeRestartCopy: mysql-cluster-ndbd-definition. - (line 3237) + (line 3211) * tx_isolation system variable: server-system-variables. - (line 6492) + (line 6498) * type codes, C prepared statement API: c-api-prepared-statement-type-codes. (line 6) * type conversions <1>: comparison-operators. @@ -271380,13 +280391,15 @@ (line 260) * type option, ndb_show_tables: mysql-cluster-programs-ndb-show-tables. (line 54) -* types, column: data-types. (line 29) -* types, columns: choosing-types. (line 6) +* Types class: connector-net-ref-types. + (line 12) +* types, columns <1>: choosing-types. (line 6) +* types, columns: data-types. (line 29) * types, data: data-types. (line 29) * types, date: storage-requirements. (line 125) * types, Date and Time: date-and-time-types. - (line 15) + (line 16) * types, numeric: storage-requirements. (line 83) * types, of tables: storage-engines. (line 22) @@ -271401,7 +280414,7 @@ * TZ environment variable <1>: timezone-problems. (line 6) * TZ environment variable: environment-variables. (line 18) -* tz-utc option, mysqldump: mysqldump. (line 1002) +* tz-utc option, mysqldump: mysqldump. (line 1005) * UCASE(): string-functions. (line 717) * UCS-2: charset. (line 23) * ucs2 character set: charset-unicode-ucs2. @@ -271428,10 +280441,12 @@ (line 403) * UNCOMPRESSED_LENGTH(): encryption-functions. (line 416) +* undo: glossary. (line 4534) +* undo log: glossary. (line 4545) * UndoDataBuffer: mysql-cluster-ndbd-definition. - (line 2627) + (line 2595) * UndoIndexBuffer: mysql-cluster-ndbd-definition. - (line 2581) + (line 2549) * UNHEX(): string-functions. (line 721) * Unicode: charset. (line 23) * Unicode Collation Algorithm: charset-unicode-sets. @@ -271444,20 +280459,23 @@ * UNION: searching-on-two-keys. (line 6) * Union(): spatial-operators. (line 36) -* UNIQUE: alter-table. (line 348) +* UNIQUE: alter-table. (line 352) +* unique constraint: glossary. (line 4560) * unique ID: getting-unique-id. (line 6) +* unique index: glossary. (line 4572) +* unique key: glossary. (line 4586) * unique key, constraint: constraint-primary-key. (line 6) * unique keys, and partitioning keys: partitioning-limitations-partitioning-keys-unique-keys. (line 6) * unique_checks session variable: server-system-variables. - (line 6528) -* unique_subquery join type, optimizer: explain-output. (line 300) + (line 6534) +* unique_subquery join type, optimizer: explain-output. (line 302) * Unix <1>: connector-net. (line 18) * Unix: connector-odbc. (line 17) * Unix, compiling clients on: building-clients. (line 25) * UNIX_TIMESTAMP(): date-and-time-functions. - (line 1152) + (line 1169) * UNKNOWN, testing for: comparison-operators. (line 130) * unloading, tables: retrieving-data. (line 18) @@ -271478,7 +280496,7 @@ * UNTIL: repeat-statement. (line 6) * updatable views: view-updatability. (line 6) * updatable_views_with_limit system variable: server-system-variables. - (line 6552) + (line 6558) * UPDATE <1>: update. (line 6) * UPDATE: ansi-diff-update. (line 6) * update, thread state: delayed-insert-thread-states. @@ -271497,7 +280515,11 @@ (line 341) * upgrade-system-tables option, mysql_upgrade: mysql-upgrade. (line 153) -* upgrades, MySQL Cluster: mysql-cluster-rolling-restart. +* upgrades and downgrades (MySQL Cluster), compatibility between versions: mysql-cluster-upgrade-downgrade. + (line 6) +* upgrades, MySQL Cluster <1>: mysql-cluster-rolling-restart. + (line 6) +* upgrades, MySQL Cluster: mysql-cluster-upgrade-downgrade. (line 6) * upgrading <1>: upgrading. (line 11) * upgrading: upgrading-downgrading. @@ -271528,7 +280550,7 @@ * user accounts, resource limits <1>: grant. (line 492) * user accounts, resource limits <2>: user-resources. (line 6) * user accounts, resource limits: server-system-variables. - (line 3548) + (line 3560) * USER environment variable <1>: connecting. (line 231) * USER environment variable: environment-variables. (line 18) @@ -271551,10 +280573,10 @@ * user option, mysqladmin: mysqladmin. (line 442) * user option, mysqlbinlog: mysqlbinlog. (line 511) * user option, mysqlcheck: mysqlcheck. (line 408) -* user option, mysqld: server-options. (line 2231) +* user option, mysqld: server-options. (line 2235) * user option, mysqld_multi: mysqld-multi. (line 148) * user option, mysqld_safe: mysqld-safe. (line 273) -* user option, mysqldump: mysqldump. (line 1015) +* user option, mysqldump: mysqldump. (line 1018) * user option, mysqlhotcopy: mysqlhotcopy. (line 197) * user option, mysqlimport: mysqlimport. (line 307) * user option, mysqlshow: mysqlshow. (line 234) @@ -271571,12 +280593,14 @@ * user variables, and replication: replication-features-variables. (line 6) * USER(): information-functions. - (line 525) + (line 527) * User-defined functions <1>: drop-function-udf. (line 6) * User-defined functions: create-function-udf. (line 6) * user-defined functions, adding <1>: adding-udf. (line 15) * user-defined functions, adding: adding-functions. (line 12) +* user-defined functions, editing with Visual Studio: connector-net-visual-studio-editing-user-defined-functions-udf. + (line 6) * USER_PRIVILEGES, INFORMATION_SCHEMA table: user-privileges-table. (line 6) * users, adding: unix-postinstallation. @@ -271589,11 +280613,11 @@ * using MySQL Cluster programs: mysql-cluster-programs. (line 32) * UTC_DATE(): date-and-time-functions. - (line 1210) + (line 1227) * UTC_TIME(): date-and-time-functions. - (line 1219) + (line 1236) * UTC_TIMESTAMP(): date-and-time-functions. - (line 1228) + (line 1245) * UTF-8: charset. (line 23) * utf16 character set: charset-unicode-utf16. (line 6) @@ -271659,9 +280683,9 @@ * verbose option, mysqladmin: mysqladmin. (line 446) * verbose option, mysqlbinlog: mysqlbinlog. (line 515) * verbose option, mysqlcheck: mysqlcheck. (line 412) -* verbose option, mysqld: server-options. (line 2266) +* verbose option, mysqld: server-options. (line 2270) * verbose option, mysqld_multi: mysqld-multi. (line 153) -* verbose option, mysqldump: mysqldump. (line 1019) +* verbose option, mysqldump: mysqldump. (line 1022) * verbose option, mysqldumpslow: mysqldumpslow. (line 103) * verbose option, mysqlimport: mysqlimport. (line 315) * verbose option, mysqlshow: mysqlshow. (line 238) @@ -271685,9 +280709,9 @@ * version option, mysqladmin: mysqladmin. (line 450) * version option, mysqlbinlog: mysqlbinlog. (line 525) * version option, mysqlcheck: mysqlcheck. (line 417) -* version option, mysqld: server-options. (line 2270) +* version option, mysqld: server-options. (line 2274) * version option, mysqld_multi: mysqld-multi. (line 157) -* version option, mysqldump: mysqldump. (line 1023) +* version option, mysqldump: mysqldump. (line 1026) * version option, mysqlimport: mysqlimport. (line 319) * version option, mysqlshow: mysqlshow. (line 244) * version option, mysqlslap: mysqlslap. (line 463) @@ -271697,20 +280721,21 @@ * version option, resolve_stack_dump: resolve-stack-dump. (line 33) * version option, resolveip: resolveip. (line 23) * version system variable: server-system-variables. - (line 6585) + (line 6591) * VERSION(): information-functions. - (line 542) + (line 544) * version, choosing: which-version. (line 18) * version, latest: getting-mysql. (line 6) * version_comment system variable: server-system-variables. - (line 6593) + (line 6599) * version_compile_machine system variable: server-system-variables. - (line 6609) + (line 6615) * version_compile_os system variable: server-system-variables. - (line 6622) + (line 6628) * vertical option, mysql: mysql-command-options. (line 568) * vertical option, mysqladmin: mysqladmin. (line 454) +* victim: glossary. (line 4598) * Vietnamese: faqs-cjk. (line 6) * view, restrictions: view-restrictions. (line 6) * views <1>: views. (line 13) @@ -271731,6 +280756,9 @@ (line 6) * Visual Objects: connector-odbc-usagenotes-apptips-microsoft-visualobjects. (line 6) +* Visual Studio: connector-net-visual-studio. + (line 22) +* wait: glossary. (line 4610) * WAIT COMPLETED (START BACKUP command): mysql-cluster-backup-using-management-client. (line 48) * wait option, myisamchk: myisamchk-general-options. @@ -271744,7 +280772,7 @@ * wait-nodes option, ndb_waiter: mysql-cluster-programs-ndb-waiter. (line 93) * wait_timeout system variable: server-system-variables. - (line 6635) + (line 6641) * Waiting for all running commits to finish, thread state: general-thread-states. (line 367) * Waiting for commit lock, thread state: general-thread-states. @@ -271825,20 +280853,24 @@ (line 37) * Waiting to reconnect after a failed master event read, thread state: slave-io-thread-states. (line 62) +* warm backup: glossary. (line 4628) +* warm up: glossary. (line 4638) * warning_count session variable: server-system-variables. - (line 6674) + (line 6678) * warnings command, mysql: mysql-commands. (line 234) +* Website Configuration Tool: connector-net-website-config. + (line 6) * WEEK(): date-and-time-functions. - (line 1237) + (line 1254) * WEEKDAY(): date-and-time-functions. - (line 1296) + (line 1313) * WEEKOFYEAR(): date-and-time-functions. - (line 1306) + (line 1323) * Well-Known Binary format: gis-wkb-format. (line 6) * Well-Known Text format: gis-wkt-format. (line 6) * WHERE: where-optimizations. (line 6) -* where option, mysqldump: mysqldump. (line 1027) +* where option, mysqldump: mysqldump. (line 1030) * WHERE, with SHOW <1>: extended-show. (line 6) * WHERE, with SHOW: information-schema. (line 41) * WHILE: while-statement. (line 6) @@ -271853,7 +280885,8 @@ * wildcards, in mysql.host table: request-access. (line 26) * wildcards, in mysql.procs_priv table: request-access. (line 59) * wildcards, in mysql.tables_priv table: request-access. (line 59) -* Windows <1>: connector-net. (line 18) +* Windows <1>: glossary. (line 4659) +* Windows <2>: connector-net. (line 18) * Windows: connector-odbc. (line 17) * windows option, mysql_install_db: mysql-install-db. (line 99) * Windows, compiling clients on: building-clients. (line 39) @@ -271862,31 +280895,53 @@ * Windows, pluggable authentication: windows-authentication-plugin. (line 11) * Windows, upgrading: windows-upgrading. (line 6) +* WITH_BUNDLED_LIBEVENT option, CMake: source-configuration-options. + (line 595) +* WITH_BUNDLED_MEMCACHED option, CMake: source-configuration-options. + (line 602) +* WITH_CLASSPATH option, CMake: source-configuration-options. + (line 613) * WITH_COMMENT option, CMake: source-configuration-options. - (line 432) + (line 479) * WITH_DEBUG option, CMake: source-configuration-options. - (line 436) + (line 483) * WITH_EMBEDDED_SERVER option, CMake: source-configuration-options. - (line 446) + (line 493) +* WITH_ERROR_INSERT option, CMake: source-configuration-options. + (line 618) * WITH_EXTRA_CHARSETS option, CMake: source-configuration-options. - (line 450) + (line 497) * WITH_LIBWRAP option, CMake: source-configuration-options. - (line 460) + (line 507) +* WITH_NDB_BINLOG option, CMake: source-configuration-options. + (line 635) +* WITH_NDB_DEBUG option, CMake: source-configuration-options. + (line 640) +* WITH_NDB_PORT option, CMake: source-configuration-options. + (line 645) +* WITH_NDB_TEST option, CMake: source-configuration-options. + (line 652) +* WITH_NDBCLUSTER_STORAGE_ENGINE option, CMake: source-configuration-options. + (line 624) +* WITH_NDBMTD option, CMake: source-configuration-options. + (line 630) * WITH_READLINE option, CMake: source-configuration-options. - (line 464) + (line 511) * WITH_SSL option, CMake: source-configuration-options. - (line 469) + (line 516) * WITH_UNIXODBC option, CMake: source-configuration-options. - (line 284) + (line 324) * WITH_ZLIB option, CMake: source-configuration-options. - (line 485) + (line 532) * Within(): functions-that-test-spatial-relationships-between-geometries. (line 67) * WKB format: gis-wkb-format. (line 6) * WKT format: gis-wkt-format. (line 6) +* workload: glossary. (line 4671) * wrappers, Eiffel: apis-eiffel. (line 6) * write access, tmp: mysql-install-db-problems. (line 70) +* write combining: glossary. (line 4682) * write-binlog option, mysql_upgrade: mysql-upgrade. (line 166) * write-binlog option, mysqlcheck: mysqlcheck. (line 421) * write_buffer_size myisamchk variable: myisamchk-general-options. @@ -271896,6 +280951,7 @@ * X(): point-property-functions. (line 9) * X509/Certificate: secure-basics. (line 31) +* XA: glossary. (line 4696) * XA BEGIN: xa-statements. (line 6) * XA COMMIT: xa-statements. (line 6) * XA PREPARE: xa-statements. (line 6) @@ -271908,7 +280964,7 @@ * xid, XA transaction identifier: xa-statements. (line 6) * xml option, mysql: mysql-command-options. (line 579) -* xml option, mysqldump: mysqldump. (line 1039) +* xml option, mysqldump: mysqldump. (line 1042) * xml option, ndb_config: mysql-cluster-programs-ndb-config. (line 374) * XOR, bitwise: bit-functions. (line 38) @@ -271919,6389 +280975,6808 @@ * yaSSL: secure-connections. (line 13) * YEAR data type <1>: year. (line 6) * YEAR data type: date-and-time-type-overview. - (line 70) + (line 68) * YEAR(): date-and-time-functions. - (line 1315) + (line 1332) * YEARWEEK(): date-and-time-functions. - (line 1323) + (line 1340) * Yen sign (Japanese): faqs-cjk. (line 6) +* young: glossary. (line 4711) * ZEROFILL <1>: c-api-prepared-statement-problems. (line 13) * ZEROFILL <2>: numeric-types. (line 15) * ZEROFILL: numeric-type-overview. (line 6) +* ZFS: ha-zfs-replication. (line 12) * | (bitwise OR): bit-functions. (line 20) * || (logical OR): logical-operators. (line 65) -* ~: bit-functions. (line 75) +* ~ (invert bits): bit-functions. (line 75)  Tag Table: Node: Top167 -Node: preface1961 -Ref: legalnotice3008 -Node: introduction8530 -Node: manual-info11294 -Node: manual-conventions13455 -Node: what-is18585 -Node: what-is-mysql18966 -Node: history23173 -Node: features24331 -Node: mysql-nutshell33830 -Node: smp-improvements48349 -Node: innodb-io-changes49368 -Node: monitoring-improvements52310 -Node: solaris-enhancements54237 -Node: development-history55735 -Node: information-sources57377 -Node: mailing-lists57986 -Node: mailing-list-use63009 -Node: forums64114 -Node: irc64661 -Node: mysql-enterprise-information65621 -Node: bug-reports66411 -Node: compatibility83786 -Node: standards86555 -Node: sql-mode86868 -Node: ansi-mode87857 -Node: extensions-to-ansi89054 -Node: differences-from-ansi98842 -Node: ansi-diff-select-into-table100027 -Node: ansi-diff-update100957 -Node: ansi-diff-transactions101570 -Node: ansi-diff-foreign-keys110496 -Node: ansi-diff-comments115298 -Node: constraints117967 -Node: constraint-primary-key119933 -Node: constraint-invalid-data121303 -Node: constraint-enum127124 -Node: credits129740 -Node: contributors130272 -Node: documenters-translators139082 -Node: packages141499 -Node: tools-used-to-create-mysql142700 -Node: supporters143730 -Node: installing144668 -Node: general-installation-issues150102 -Node: supported-os151185 -Node: which-version154796 -Node: choosing-version155546 -Node: choosing-distribution-format161688 -Node: many-versions164793 -Node: getting-mysql166653 -Node: verifying-package-integrity167298 -Node: verifying-md5-checksum168679 -Node: checking-gpg-signature170377 -Node: checking-rpm-signature176555 -Node: installation-layouts177947 -Node: compiler-characteristics178829 -Node: binary-installation179384 -Ref: binary-installation-layout182075 -Ref: binary-installation-createsysuser184408 -Ref: binary-installation-unpack185310 -Ref: binary-installation-postinstall186729 -Node: windows-installation187170 -Node: windows-installation-layout192709 -Node: windows-choosing-package194810 -Node: mi197230 -Ref: mui-welcome198856 -Ref: mi-license-agreement199373 -Ref: mi-find-latest-products-win199722 -Ref: mi-choose-setup-page-win200026 -Ref: mi-check-requirements-win200555 -Ref: mi-installation-progress-win200768 -Ref: mi-installation-progress-status-win200933 -Ref: mi-initial-configuration-overview201148 -Ref: mi-mysql-server-configuration-choice201375 -Ref: mi-201524 -Ref: mi-installation-complete-win201870 -Ref: mi-maintenance202118 -Node: windows-using-installer202453 -Ref: installer-windows-workflow-installer203896 -Node: windows-install-wizard206068 -Node: mysql-install-wizard-starting208802 -Node: mysql-install-wizard-install-type210521 -Node: mysql-install-wizard-custom-install211995 -Node: mysql-install-wizard-confirmation-dialog213002 -Node: mysql-install-wizard-changes213935 -Node: mysql-install-wizard-upgrading217411 -Node: windows-installer-msi-quiet218245 -Node: windows-installer-uninstalling220399 -Node: mysql-config-wizard222444 -Node: mysql-config-wizard-starting224119 -Node: mysql-config-wizard-maintenance227338 -Node: mysql-config-wizard-configuration-type228679 -Node: mysql-config-wizard-server-type230452 -Node: mysql-config-wizard-database-usage232136 -Node: mysql-config-wizard-tablespace234329 -Node: mysql-config-wizard-connections235426 -Node: mysql-config-wizard-networking236875 -Node: mysql-config-wizard-character-set238161 -Node: mysql-config-wizard-service239366 -Node: mysql-config-wizard-security241435 -Node: mysql-config-wizard-confirmation243423 -Node: mysql-config-wizard-cmdline245237 -Node: windows-install-archive252680 -Node: windows-extract-archive253956 -Node: windows-create-option-file255141 -Node: windows-select-server258417 -Node: windows-server-first-start259899 -Node: windows-start-command-line263508 -Node: mysql-installation-windows-path265768 -Node: windows-start-service267876 -Node: windows-testing276493 -Node: windows-troubleshooting278019 -Node: windows-upgrading283142 -Node: windows-postinstallation286504 -Node: macosx-installation291015 -Node: macosx-installation-notes293623 -Node: macosx-installation-pkg297399 -Ref: mysql-installation-layout-macosx298981 -Node: macosx-installation-startupitem301964 -Node: macosx-installation-prefpane304463 -Node: macosx-installation-server307581 -Node: linux-installation310106 -Node: linux-installation-rpm312181 -Ref: mysql-installation-layout-linuxrpm312926 -Node: linux-installation-native322311 -Node: solaris-installation334643 -Node: solaris-installation-pkg338005 -Node: solaris-installation-opensolaris340842 -Node: hpux-installation343973 -Node: hpux-installation-general344955 -Node: hpux-installation-depot345995 -Node: freebsd-installation347950 -Node: source-installation349891 -Node: source-installation-layout357211 -Node: installing-source-distribution357890 -Node: installing-development-tree367809 -Node: source-configuration-options372350 -Ref: cmake-general-options380038 -Ref: option_cmake_build_config380064 -Ref: option_cmake_cmake_build_type380267 -Ref: option_cmake_cpack_monolithic_install380723 -Ref: cmake-installation-layout-options381135 -Ref: option_cmake_cmake_install_prefix381460 -Ref: option_cmake_install_bindir381620 -Ref: option_cmake_install_docdir381693 -Ref: option_cmake_install_docreadmedir381766 -Ref: option_cmake_install_includedir381846 -Ref: option_cmake_install_infodir381922 -Ref: option_cmake_install_layout381993 -Ref: option_cmake_install_libdir382552 -Ref: option_cmake_install_mandir382625 -Ref: option_cmake_install_mysqlsharedir382697 -Ref: option_cmake_install_mysqltestdir382781 -Ref: option_cmake_install_plugindir382873 -Ref: option_cmake_install_sbindir383038 -Ref: option_cmake_install_scriptdir383133 -Ref: option_cmake_install_sharedir383238 -Ref: option_cmake_install_sqlbenchdir383318 -Ref: option_cmake_install_supportfilesdir383492 -Ref: option_cmake_mysql_datadir383580 -Ref: option_cmake_odbc_includes383742 -Ref: option_cmake_odbc_lib_dir383882 -Ref: option_cmake_sysconfdir384020 -Ref: option_cmake_with_unixodbc384320 -Ref: option_cmake_storage_engine_options384394 -Ref: cmake-feature-options386284 -Ref: option_cmake_default_charset386310 -Ref: option_cmake_default_collation387114 -Ref: option_cmake_enable_debug_sync387455 -Ref: option_cmake_enable_downloads388374 -Ref: option_cmake_enable_dtrace388595 -Ref: option_cmake_enable_gcov388742 -Ref: option_cmake_enabled_local_infile388824 -Ref: option_cmake_enabled_profiling389171 -Ref: option_cmake_mysql_maintainer_mode389360 -Ref: option_cmake_mysql_tcp_port389552 -Ref: option_cmake_mysql_unix_addr389762 -Ref: option_cmake_with_comment390037 -Ref: option_cmake_with_debug390131 -Ref: option_cmake_with_embedded_server390535 -Ref: option_cmake_with_extra_charsets390636 -Ref: option_cmake_with_libwrap390866 -Ref: option_cmake_with_readline390954 -Ref: option_cmake_with_ssl391064 -Ref: option_cmake_with_zlib391518 -Ref: cmake-compiler-flags391963 -Ref: option_cmake_disable_grant_options392308 -Ref: option_cmake_have_embedded_privilege_control392502 -Node: compilation-problems392683 -Node: source-configuration-third-party396459 -Node: postinstallation397423 -Node: unix-postinstallation398879 -Node: mysql-install-db-problems415617 -Node: automatic-start422618 -Node: starting-server430729 -Node: default-privileges438291 -Node: upgrading-downgrading450010 -Node: upgrading450556 -Node: upgrading-from-previous-series456962 -Node: upgrading-from-5-4482206 -Node: downgrading494192 -Node: downgrading-to-previous-series497946 -Node: checking-table-incompatibilities498572 -Node: rebuilding-tables504806 -Node: copying-databases508512 -Node: environment-variables511510 -Node: perl-support515363 -Node: perl-installation516915 -Node: activestate-perl519791 -Node: perl-support-problems520956 -Node: tutorial523642 -Node: connecting-disconnecting525667 -Node: entering-queries528406 -Node: database-use537183 -Node: creating-database540422 -Node: creating-tables542842 -Node: loading-tables547282 -Node: retrieving-data550893 -Node: selecting-all552101 -Node: selecting-rows554320 -Node: selecting-columns558122 -Node: sorting-rows560270 -Node: date-calculations563168 -Node: working-with-null570791 -Node: pattern-matching573336 -Node: counting-rows580843 -Node: multiple-tables585883 -Node: getting-information591209 -Node: batch-mode594263 -Node: examples597482 -Node: example-maximum-column599688 -Node: example-maximum-row600045 -Node: example-maximum-column-group601187 -Node: example-maximum-column-group-row601726 -Node: example-user-variables603407 -Node: example-foreign-keys604500 -Node: searching-on-two-keys608759 -Node: calculating-days609707 -Node: example-auto-increment610884 -Node: apache615690 -Node: programs616588 -Node: programs-overview617677 -Node: programs-using628762 -Node: invoking-programs629178 -Node: connecting632639 -Ref: option_general_host638303 -Ref: option_general_password638428 -Ref: option_general_pipe638721 -Ref: option_general_port638912 -Ref: option_general_protocol639074 -Ref: option_general_shared-memory-base-name640426 -Ref: option_general_socket640766 -Ref: option_general_user641496 -Node: program-options642635 -Node: command-line-options645685 -Node: option-modifiers650807 -Node: option-files652987 -Node: option-file-options664783 -Ref: option_general_defaults-extra-file665724 -Ref: option_general_defaults-file666161 -Ref: option_general_defaults-group-suffix666525 -Ref: option_general_no-defaults666965 -Ref: option_general_print-defaults667191 -Node: option-files-preconfigured667294 -Node: program-variables668281 -Node: option-defaults-equals671548 -Node: setting-environment-variables680133 -Node: programs-server683108 -Node: mysqld683748 -Node: mysqld-safe685192 -Ref: option_mysqld_safe_help691707 -Ref: option_mysqld_safe_basedir691762 -Ref: option_mysqld_safe_core-file-size691838 -Ref: option_mysqld_safe_datadir692005 -Ref: option_mysqld_safe_defaults-extra-file692067 -Ref: option_mysqld_safe_defaults-file692359 -Ref: option_mysqld_safe_ledir692548 -Ref: option_mysqld_safe_log-error692735 -Ref: option_mysqld_safe_malloc-lib692834 -Ref: option_mysqld_safe_mysqld695060 -Ref: option_mysqld_safe_mysqld-version695488 -Ref: option_mysqld_safe_nice696022 -Ref: option_mysqld_safe_no-defaults696141 -Ref: option_mysqld_safe_open-files-limit696270 -Ref: option_mysqld_safe_pid-file696540 -Ref: option_mysqld_safe_port696614 -Ref: option_mysqld_safe_skip-kill-mysqld696832 -Ref: option_mysqld_safe_socket696975 -Ref: option_mysqld_safe_syslog697095 -Ref: option_mysqld_safe_syslog-tag697340 -Ref: option_mysqld_safe_timezone697685 -Ref: option_mysqld_safe_user697888 -Node: mysql-server702328 -Ref: option_mysql_server_basedir703983 -Ref: option_mysql_server_datadir704059 -Ref: option_mysql_server_pid-file704127 -Ref: option_mysql_server_service-startup-timeout704243 -Ref: option_mysql_server_use-mysqld_safe704610 -Ref: option_mysql_server_user704728 -Node: mysqld-multi704818 -Ref: option_mysqld_multi_no-defaults707668 -Ref: option_mysqld_multi_defaults-file707723 -Ref: option_mysqld_multi_defaults-extra-file707793 -Ref: option_mysqld_multi_help708759 -Ref: option_mysqld_multi_config-file708814 -Ref: option_mysqld_multi_example709019 -Ref: option_mysqld_multi_log709074 -Ref: option_mysqld_multi_mysqladmin709194 -Ref: option_mysqld_multi_mysqld709308 -Ref: option_mysqld_multi_no-log710019 -Ref: option_mysqld_multi_password710152 -Ref: option_mysqld_multi_silent710379 -Ref: option_mysqld_multi_tcp-ip710434 -Ref: option_mysqld_multi_user710788 -Ref: option_mysqld_multi_verbose710913 -Ref: option_mysqld_multi_version710955 -Node: programs-installation717093 -Node: comp-err717963 -Ref: option_comp_err_help718965 -Ref: option_comp_err_charset719026 -Ref: option_comp_err_debug719141 -Ref: option_comp_err_debug-info719328 -Ref: option_comp_err_header_file719419 -Ref: option_comp_err_in_file719542 -Ref: option_comp_err_name_file719668 -Ref: option_comp_err_out_dir719788 -Ref: option_comp_err_out_file719905 -Ref: option_comp_err_statefile720015 -Ref: option_comp_err_version720142 -Node: mysqlbug720206 -Node: mysql-install-db720658 -Ref: option_mysql_install_db_basedir723217 -Ref: option_mysql_install_db_force723293 -Ref: option_mysql_install_db_datadir723496 -Ref: option_mysql_install_db_rpm723580 -Ref: option_mysql_install_db_skip-name-resolve723696 -Ref: option_mysql_install_db_srcdir723864 -Ref: option_mysql_install_db_user724096 -Ref: option_mysql_install_db_verbose724475 -Ref: option_mysql_install_db_windows724566 -Node: mysql-plugin724665 -Ref: option_mysql_plugin_help728286 -Ref: option_mysql_plugin_basedir728347 -Ref: option_mysql_plugin_datadir728415 -Ref: option_mysql_plugin_my-print-defaults728483 -Ref: option_mysql_plugin_mysqld728610 -Ref: option_mysql_plugin_no-defaults728698 -Ref: option_mysql_plugin_plugin-dir729059 -Ref: option_mysql_plugin_plugin-ini729132 -Ref: option_mysql_plugin_print-defaults729476 -Ref: option_mysql_plugin_verbose729996 -Ref: option_mysql_plugin_version730181 -Node: mysql-secure-installation730245 -Node: mysql-tzinfo-to-sql731481 -Node: mysql-upgrade733648 -Ref: option_mysql_upgrade_help738301 -Ref: option_mysql_upgrade_basedir738362 -Ref: option_mysql_upgrade_datadir738507 -Ref: option_mysql_upgrade_debug-check738638 -Ref: option_mysql_upgrade_debug-info738724 -Ref: option_mysql_upgrade_default-auth738851 -Ref: option_mysql_upgrade_force739022 -Ref: option_mysql_upgrade_plugin-dir739258 -Ref: option_mysql_upgrade_tmpdir739616 -Ref: option_mysql_upgrade_upgrade-system-tables739724 -Ref: option_mysql_upgrade_user739822 -Ref: option_mysql_upgrade_verbose739967 -Ref: option_mysql_upgrade_write-binlog740058 -Node: programs-client740347 -Node: mysql741160 -Node: mysql-command-options743365 -Ref: option_mysql_help754291 -Ref: option_mysql_auto-rehash754352 -Ref: option_mysql_auto-vertical-output755007 -Ref: option_mysql_batch755287 -Ref: option_mysql_bind-address755662 -Ref: option_mysql_character-sets-dir756055 -Ref: option_mysql_column-names756186 -Ref: option_mysql_column-type-info756247 -Ref: option_mysql_comments756316 -Ref: option_mysql_compress756514 -Ref: option_mysql_database756644 -Ref: option_mysql_debug756757 -Ref: option_mysql_debug-check756945 -Ref: option_mysql_debug-info757031 -Ref: option_mysql_default-auth757158 -Ref: option_mysql_default-character-set757328 -Ref: option_mysql_delimiter757936 -Ref: option_mysql_disable-named-commands758049 -Ref: option_mysql_execute758426 -Ref: option_mysql_force758713 -Ref: option_mysql_host758780 -Ref: option_mysql_html758875 -Ref: option_mysql_ignore-spaces758924 -Ref: option_mysql_line-numbers759120 -Ref: option_mysql_local-infile759227 -Ref: option_mysql_named-commands759586 -Ref: option_mysql_no-auto-rehash759885 -Ref: option_mysql_no-beep760019 -Ref: option_mysql_no-named-commands760081 -Ref: option_mysql_no-pager760229 -Ref: option_mysql_no-tee760363 -Ref: option_mysql_one-database760488 -Ref: option_mysql_pager762388 -Ref: option_mysql_password762814 -Ref: option_mysql_pipe763377 -Ref: option_mysql_plugin-dir763536 -Ref: option_mysql_port763872 -Ref: option_mysql_prompt763968 -Ref: option_mysql_protocol764169 -Ref: option_mysql_quick764482 -Ref: option_mysql_raw764716 -Ref: option_mysql_reconnect765672 -Ref: option_mysql_safe-updates765915 -Ref: option_mysql_secure-auth766303 -Ref: option_mysql_show-warnings766486 -Ref: option_mysql_sigint-ignore766639 -Ref: option_mysql_silent766738 -Ref: option_mysql_skip-column-names767068 -Ref: option_mysql_skip-line-numbers767147 -Ref: option_mysql_socket767305 -Ref: option_mysql_ssl767462 -Ref: option_mysql_table767656 -Ref: option_mysql_tee767823 -Ref: option_mysql_unbuffered768004 -Ref: option_mysql_user768073 -Ref: option_mysql_verbose768179 -Ref: option_mysql_version768436 -Ref: option_mysql_vertical768505 -Ref: option_mysql_wait768721 -Ref: option_mysql_xml768831 -Ref: option_mysql_connect_timeout770164 -Ref: option_mysql_max_allowed_packet770273 -Ref: option_mysql_max_join_size770402 -Ref: option_mysql_select_limit770650 -Node: mysql-commands770792 -Node: mysql-history-file785816 -Node: mysql-server-side-help787078 -Node: batch-commands789457 -Node: mysql-tips791253 -Node: vertical-query-results791685 -Node: safe-updates792925 -Node: mysql-reconnect794727 -Node: mysqladmin796393 -Ref: command_mysqladmin_db_name797084 -Ref: command_mysqladmin_debug797151 -Ref: command_mysqladmin_drop797329 -Ref: command_mysqladmin_extended-status797411 -Ref: command_mysqladmin_flush-hosts797496 -Ref: command_mysqladmin_flush-logs797564 -Ref: command_mysqladmin_flush-privileges797606 -Ref: command_mysqladmin_flush-status797682 -Ref: command_mysqladmin_flush-tables797734 -Ref: command_mysqladmin_flush-threads797780 -Ref: command_mysqladmin_kill797833 -Ref: command_mysqladmin_old-password797966 -Ref: command_mysqladmin_password798158 -Ref: command_mysqladmin_ping800026 -Ref: command_mysqladmin_processlist800389 -Ref: command_mysqladmin_reload800704 -Ref: command_mysqladmin_refresh800751 -Ref: command_mysqladmin_shutdown800821 -Ref: command_mysqladmin_start-slave800862 -Ref: command_mysqladmin_status800926 -Ref: command_mysqladmin_stop-slave800987 -Ref: command_mysqladmin_variables801049 -Ref: command_mysqladmin_version801128 -Ref: option_mysqladmin_help809351 -Ref: option_mysqladmin_bind-address809412 -Ref: option_mysqladmin_character-sets-dir809804 -Ref: option_mysqladmin_compress809935 -Ref: option_mysqladmin_count810065 -Ref: option_mysqladmin_debug810201 -Ref: option_mysqladmin_debug-check810399 -Ref: option_mysqladmin_debug-info810485 -Ref: option_mysqladmin_default-auth810606 -Ref: option_mysqladmin_default-character-set810776 -Ref: option_mysqladmin_force810915 -Ref: option_mysqladmin_host811067 -Ref: option_mysqladmin_no-beep811162 -Ref: option_mysqladmin_password811306 -Ref: option_mysqladmin_pipe811879 -Ref: option_mysqladmin_plugin-dir812038 -Ref: option_mysqladmin_port812384 -Ref: option_mysqladmin_protocol812480 -Ref: option_mysqladmin_relative812793 -Ref: option_mysqladmin_silent812991 -Ref: option_mysqladmin_sleep813088 -Ref: option_mysqladmin_socket813379 -Ref: option_mysqladmin_ssl813536 -Ref: option_mysqladmin_user813730 -Ref: option_mysqladmin_verbose813836 -Ref: option_mysqladmin_version813933 -Ref: option_mysqladmin_vertical814002 -Ref: option_mysqladmin_wait814127 -Ref: option_mysqladmin_connect_timeout814505 -Ref: option_mysqladmin_shutdown_timeout814637 -Node: mysqlcheck814765 -Ref: option_mysqlcheck_help826511 -Ref: option_mysqlcheck_all-databases826572 -Ref: option_mysqlcheck_all-in-1826755 -Ref: option_mysqlcheck_analyze826951 -Ref: option_mysqlcheck_auto-repair827002 -Ref: option_mysqlcheck_bind-address827158 -Ref: option_mysqlcheck_character-sets-dir827550 -Ref: option_mysqlcheck_check827681 -Ref: option_mysqlcheck_check-only-changed827770 -Ref: option_mysqlcheck_check-upgrade827913 -Ref: option_mysqlcheck_compress828203 -Ref: option_mysqlcheck_databases828327 -Ref: option_mysqlcheck_debug828637 -Ref: option_mysqlcheck_debug-check828808 -Ref: option_mysqlcheck_debug-info828894 -Ref: option_mysqlcheck_default-character-set829015 -Ref: option_mysqlcheck_extended829154 -Ref: option_mysqlcheck_default-auth829482 -Ref: option_mysqlcheck_fast829653 -Ref: option_mysqlcheck_fix-db-names829735 -Ref: option_mysqlcheck_fix-table-names829874 -Ref: option_mysqlcheck_force830045 -Ref: option_mysqlcheck_host830112 -Ref: option_mysqlcheck_medium-check830207 -Ref: option_mysqlcheck_optimize830393 -Ref: option_mysqlcheck_password830446 -Ref: option_mysqlcheck_pipe831019 -Ref: option_mysqlcheck_plugin-dir831178 -Ref: option_mysqlcheck_port831525 -Ref: option_mysqlcheck_protocol831621 -Ref: option_mysqlcheck_quick831934 -Ref: option_mysqlcheck_repair832261 -Ref: option_mysqlcheck_silent832382 -Ref: option_mysqlcheck_socket832452 -Ref: option_mysqlcheck_ssl832609 -Ref: option_mysqlcheck_tables832803 -Ref: option_mysqlcheck_use-frm832944 -Ref: option_mysqlcheck_user833140 -Ref: option_mysqlcheck_verbose833246 -Ref: option_mysqlcheck_version833361 -Ref: option_mysqlcheck_write-binlog833430 -Node: mysqldump834011 -Ref: option_mysqldump_help855972 -Ref: option_mysqldump_add-drop-database856033 -Ref: option_mysqldump_add-drop-table856427 -Ref: option_mysqldump_add-drop-trigger856572 -Ref: option_mysqldump_add-locks856901 -Ref: option_mysqldump_all-databases857148 -Ref: option_mysqldump_all-tablespaces857330 -Ref: option_mysqldump_allow-keywords857671 -Ref: option_mysqldump_apply-slave-statements857821 -Ref: option_mysqldump_bind-address858168 -Ref: option_mysqldump_character-sets-dir858558 -Ref: option_mysqldump_comments858689 -Ref: option_mysqldump_compact858932 -Ref: option_mysqldump_compatible859141 -Ref: option_mysqldump_complete-insert860057 -Ref: option_mysqldump_compress860177 -Ref: option_mysqldump_create-options860307 -Ref: option_mysqldump_databases860440 -Ref: option_mysqldump_debug860863 -Ref: option_mysqldump_debug-check861066 -Ref: option_mysqldump_debug-info861152 -Ref: option_mysqldump_default-auth861273 -Ref: option_mysqldump_default-character-set861443 -Ref: option_mysqldump_delayed-insert861705 -Ref: option_mysqldump_delete-master-logs861849 -Ref: option_mysqldump_disable-keys862128 -Ref: option_mysqldump_dump-date862544 -Ref: option_mysqldump_dump-slave863098 -Ref: option_mysqldump_events864150 -Ref: option_mysqldump_extended-insert864256 -Ref: option_mysqldump_fields864477 -Ref: option_mysqldump_first-slave864816 -Ref: option_mysqldump_flush-logs864940 -Ref: option_mysqldump_flush-privileges865580 -Ref: option_mysqldump_force865905 -Ref: option_mysqldump_host866500 -Ref: option_mysqldump_hex-blob866637 -Ref: option_mysqldump_include-master-host-port866930 -Ref: option_mysqldump_ignore-table867258 -Ref: option_mysqldump_insert-ignore867519 -Ref: option_mysqldump_lines-terminated-by867651 -Ref: option_mysqldump_lock-all-tables867871 -Ref: option_mysqldump_lock-tables868128 -Ref: option_mysqldump_log-error868800 -Ref: option_mysqldump_master-data868937 -Ref: option_mysqldump_no-autocommit872275 -Ref: option_mysqldump_no-create-db872453 -Ref: option_mysqldump_no-create-info872680 -Ref: option_mysqldump_no-data873051 -Ref: option_mysqldump_no-set-names873362 -Ref: option_mysqldump_no-tablespaces873448 -Ref: option_mysqldump_opt873688 -Ref: option_mysqldump_order-by-primary874286 -Ref: option_mysqldump_password874581 -Ref: option_mysqldump_pipe875152 -Ref: option_mysqldump_plugin-dir875311 -Ref: option_mysqldump_port875655 -Ref: option_mysqldump_protocol875751 -Ref: option_mysqldump_quick876064 -Ref: option_mysqldump_quote-names876349 -Ref: option_mysqldump_replace876772 -Ref: option_mysqldump_result-file876894 -Ref: option_mysqldump_routines877260 -Ref: option_mysqldump_set-charset878201 -Ref: option_mysqldump_single-transaction878393 -Ref: option_mysqldump_skip-comments880323 -Ref: option_mysqldump_skip-opt880403 -Ref: option_mysqldump_socket880473 -Ref: option_mysqldump_ssl880630 -Ref: option_mysqldump_tab880824 -Ref: option_mysqldump_tables881887 -Ref: option_mysqldump_triggers882059 -Ref: option_mysqldump_tz-utc882214 -Ref: option_mysqldump_user882895 -Ref: option_mysqldump_verbose883001 -Ref: option_mysqldump_version883098 -Ref: option_mysqldump_where883167 -Ref: option_mysqldump_xml883523 -Ref: option_mysqldump_net_buffer_length886652 -Node: mysqlimport889794 -Ref: option_mysqlimport_help898200 -Ref: option_mysqlimport_bind-address898261 -Ref: option_mysqlimport_character-sets-dir898655 -Ref: option_mysqlimport_columns898786 -Ref: option_mysqlimport_compress899013 -Ref: option_mysqlimport_debug899143 -Ref: option_mysqlimport_debug-check899314 -Ref: option_mysqlimport_debug-info899400 -Ref: option_mysqlimport_default-character-set899521 -Ref: option_mysqlimport_default-auth899660 -Ref: option_mysqlimport_delete899831 -Ref: option_mysqlimport_fields899909 -Ref: option_mysqlimport_force900197 -Ref: option_mysqlimport_host900434 -Ref: option_mysqlimport_ignore900571 -Ref: option_mysqlimport_ignore-lines900649 -Ref: option_mysqlimport_lines-terminated-by900724 -Ref: option_mysqlimport_local901164 -Ref: option_mysqlimport_lock-tables901240 -Ref: option_mysqlimport_low-priority901405 -Ref: option_mysqlimport_password901600 -Ref: option_mysqlimport_pipe902175 -Ref: option_mysqlimport_plugin-dir902334 -Ref: option_mysqlimport_port902688 -Ref: option_mysqlimport_protocol902784 -Ref: option_mysqlimport_replace903097 -Ref: option_mysqlimport_silent903612 -Ref: option_mysqlimport_socket903694 -Ref: option_mysqlimport_ssl903851 -Ref: option_mysqlimport_user904045 -Ref: option_mysqlimport_use-threads904151 -Ref: option_mysqlimport_verbose904222 -Ref: option_mysqlimport_version904319 -Node: mysqlshow905198 -Ref: option_mysqlshow_help912011 -Ref: option_mysqlshow_bind-address912072 -Ref: option_mysqlshow_character-sets-dir912462 -Ref: option_mysqlshow_compress912593 -Ref: option_mysqlshow_count912723 -Ref: option_mysqlshow_debug912828 -Ref: option_mysqlshow_debug-check912999 -Ref: option_mysqlshow_debug-info913085 -Ref: option_mysqlshow_default-character-set913206 -Ref: option_mysqlshow_default-auth913345 -Ref: option_mysqlshow_host913516 -Ref: option_mysqlshow_keys913611 -Ref: option_mysqlshow_password913659 -Ref: option_mysqlshow_pipe914230 -Ref: option_mysqlshow_plugin-dir914389 -Ref: option_mysqlshow_port914734 -Ref: option_mysqlshow_protocol914830 -Ref: option_mysqlshow_show-table-type915143 -Ref: option_mysqlshow_socket915309 -Ref: option_mysqlshow_ssl915466 -Ref: option_mysqlshow_status915660 -Ref: option_mysqlshow_user915734 -Ref: option_mysqlshow_verbose915840 -Ref: option_mysqlshow_version916025 -Node: mysqlslap916089 -Ref: option_mysqlslap_help929069 -Ref: option_mysqlslap_auto-generate-sql929130 -Ref: option_mysqlslap_auto-generate-sql-add-autoincrement929276 -Ref: option_mysqlslap_auto-generate-sql-execute-number929395 -Ref: option_mysqlslap_auto-generate-sql-guid-primary929499 -Ref: option_mysqlslap_auto-generate-sql-load-type929611 -Ref: option_mysqlslap_auto-generate-sql-secondary-indexes929916 -Ref: option_mysqlslap_auto-generate-sql-unique-query-number930081 -Ref: option_mysqlslap_auto-generate-sql-unique-write-number930431 -Ref: option_mysqlslap_auto-generate-sql-write-number930592 -Ref: option_mysqlslap_commit930710 -Ref: option_mysqlslap_compress930831 -Ref: option_mysqlslap_concurrency930961 -Ref: option_mysqlslap_create931091 -Ref: option_mysqlslap_create-and-drop-schema931201 -Ref: option_mysqlslap_create-schema931410 -Ref: option_mysqlslap_csv931712 -Ref: option_mysqlslap_debug931882 -Ref: option_mysqlslap_debug-check932079 -Ref: option_mysqlslap_debug-info932165 -Ref: option_mysqlslap_default-auth932292 -Ref: option_mysqlslap_delimiter932463 -Ref: option_mysqlslap_detach932592 -Ref: option_mysqlslap_engine932739 -Ref: option_mysqlslap_host932840 -Ref: option_mysqlslap_iterations932935 -Ref: option_mysqlslap_number-char-cols933011 -Ref: option_mysqlslap_number-int-cols933151 -Ref: option_mysqlslap_number-of-queries933295 -Ref: option_mysqlslap_only-print933806 -Ref: option_mysqlslap_password933936 -Ref: option_mysqlslap_pipe934507 -Ref: option_mysqlslap_plugin-dir934666 -Ref: option_mysqlslap_port935011 -Ref: option_mysqlslap_post-query935107 -Ref: option_mysqlslap_shared-memory-base-name935289 -Ref: option_mysqlslap_post-system935523 -Ref: option_mysqlslap_pre-query935683 -Ref: option_mysqlslap_pre-system935858 -Ref: option_mysqlslap_protocol936011 -Ref: option_mysqlslap_query936324 -Ref: option_mysqlslap_silent936466 -Ref: option_mysqlslap_socket936520 -Ref: option_mysqlslap_ssl936677 -Ref: option_mysqlslap_user936871 -Ref: option_mysqlslap_verbose936977 -Ref: option_mysqlslap_version937162 -Node: programs-admin-utils937226 -Node: innochecksum938916 -Ref: option_innochecksum_count940452 -Ref: option_innochecksum_debug940520 -Ref: option_innochecksum_end940582 -Ref: option_innochecksum_page940629 -Ref: option_innochecksum_start940680 -Ref: option_innochecksum_verbose940729 -Node: myisam-ftdump940803 -Ref: option_myisam_ftdump_help943173 -Ref: option_myisam_ftdump_count943239 -Ref: option_myisam_ftdump_dump943327 -Ref: option_myisam_ftdump_length943412 -Ref: option_myisam_ftdump_stats943474 -Ref: option_myisam_ftdump_verbose943606 -Node: myisamchk943693 -Node: myisamchk-general-options957561 -Ref: option_myisamchk_help958026 -Ref: option_myisamchk_HELP958134 -Ref: option_myisamchk_debug958240 -Ref: option_myisamchk_silent958433 -Ref: option_myisamchk_verbose958600 -Ref: option_myisamchk_version958806 -Ref: option_myisamchk_wait958875 -Node: myisamchk-check-options963172 -Ref: option_myisamchk_check963475 -Ref: option_myisamchk_check-only-changed963635 -Ref: option_myisamchk_extend-check963735 -Ref: option_myisamchk_fast964414 -Ref: option_myisamchk_force964495 -Ref: option_myisamchk_information964718 -Ref: option_myisamchk_medium-check964817 -Ref: option_myisamchk_read-only965006 -Ref: option_myisamchk_update-state965302 -Node: myisamchk-repair-options965689 -Ref: option_myisamchk_backup966077 -Ref: option_myisamchk_character-sets-dir966164 -Ref: option_myisamchk_correct-checksum966295 -Ref: option_myisamchk_data-file-length966377 -Ref: option_myisamchk_keys-used967022 -Ref: option_myisamchk_no-symlinks967468 -Ref: option_myisamchk_max-record-length967752 -Ref: option_myisamchk_parallel-recover967905 -Ref: option_myisamchk_quick968109 -Ref: option_myisamchk_recover968363 -Ref: option_myisamchk_safe-recover968934 -Ref: option_myisamchk_set-character-set969530 -Ref: option_myisamchk_set-collation969689 -Ref: option_myisamchk_sort-recover969866 -Ref: option_myisamchk_tmpdir970027 -Ref: option_myisamchk_unpack970512 -Node: myisamchk-other-options970605 -Ref: option_myisamchk_analyze970921 -Ref: option_myisamchk_block-search971340 -Ref: option_myisamchk_description971451 -Ref: option_myisamchk_set-auto-increment971664 -Ref: option_myisamchk_sort-index972033 -Ref: option_myisamchk_sort-records972186 -Node: myisamchk-table-info973176 -Node: myisamchk-memory987473 -Node: myisamlog990522 -Ref: option_myisamlog_help991408 -Ref: option_myisamlog_files991509 -Ref: option_myisamlog_information991571 -Ref: option_myisamlog_offset991631 -Ref: option_myisamlog_path991685 -Ref: option_myisamlog_recovery991736 -Ref: option_myisamlog_record-position991784 -Ref: option_myisamlog_update991879 -Ref: option_myisamlog_verbose991926 -Ref: option_myisamlog_write992084 -Ref: option_myisamlog_version992137 -Node: myisampack992179 -Ref: option_myisampack_help994160 -Ref: option_myisampack_backup994221 -Ref: option_myisampack_character-sets-dir994327 -Ref: option_myisampack_debug994458 -Ref: option_myisampack_force994629 -Ref: option_myisampack_join995262 -Ref: option_myisampack_silent995976 -Ref: option_myisampack_test996056 -Ref: option_myisampack_tmpdir996138 -Ref: option_myisampack_verbose996286 -Ref: option_myisampack_version996414 -Ref: option_myisampack_wait996483 -Node: mysqlaccess1007613 -Ref: option_mysqlaccess_help1011670 -Ref: option_mysqlaccess_brief1011731 -Ref: option_mysqlaccess_commit1011808 -Ref: option_mysqlaccess_copy1012079 -Ref: option_mysqlaccess_db1012155 -Ref: option_mysqlaccess_debug1012224 -Ref: option_mysqlaccess_host1012307 -Ref: option_mysqlaccess_howto1012402 -Ref: option_mysqlaccess_old_server1012507 -Ref: option_mysqlaccess_password1012665 -Ref: option_mysqlaccess_plan1013044 -Ref: option_mysqlaccess_preview1013117 -Ref: option_mysqlaccess_relnotes1013230 -Ref: option_mysqlaccess_rhost1013283 -Ref: option_mysqlaccess_rollback1013379 -Ref: option_mysqlaccess_spassword1013465 -Ref: option_mysqlaccess_superuser1013868 -Ref: option_mysqlaccess_table1013976 -Ref: option_mysqlaccess_user1014039 -Ref: option_mysqlaccess_version1014134 -Node: mysqlbinlog1014764 -Ref: option_mysqlbinlog_help1024565 -Ref: option_mysqlbinlog_base64-output1024626 -Ref: option_mysqlbinlog_bind-address1026835 -Ref: option_mysqlbinlog_character-sets-dir1027094 -Ref: option_mysqlbinlog_database1027225 -Ref: option_mysqlbinlog_debug1030845 -Ref: option_mysqlbinlog_debug-check1031044 -Ref: option_mysqlbinlog_debug-info1031130 -Ref: option_mysqlbinlog_default-auth1031251 -Ref: option_mysqlbinlog_disable-log-bin1031422 -Ref: option_mysqlbinlog_force-read1032084 -Ref: option_mysqlbinlog_hexdump1032384 -Ref: option_mysqlbinlog_host1032570 -Ref: option_mysqlbinlog_local-load1032678 -Ref: option_mysqlbinlog_offset1032973 -Ref: option_mysqlbinlog_password1033044 -Ref: option_mysqlbinlog_plugin-dir1033619 -Ref: option_mysqlbinlog_port1033973 -Ref: option_mysqlbinlog_position1034084 -Ref: option_mysqlbinlog_protocol1034202 -Ref: option_mysqlbinlog_read-from-remote-server1034515 -Ref: option_mysqlbinlog_result-file1034979 -Ref: option_mysqlbinlog_server-id1035057 -Ref: option_mysqlbinlog_server-id-bits1035168 -Ref: option_mysqlbinlog_set-charset1035737 -Ref: option_mysqlbinlog_short-form1035905 -Ref: option_mysqlbinlog_socket1036122 -Ref: option_mysqlbinlog_start-datetime1036279 -Ref: option_mysqlbinlog_start-position1036890 -Ref: option_mysqlbinlog_stop-datetime1037203 -Ref: option_mysqlbinlog_stop-position1037613 -Ref: option_mysqlbinlog_to-last-log1037915 -Ref: option_mysqlbinlog_user1038242 -Ref: option_mysqlbinlog_verbose1038353 -Ref: option_mysqlbinlog_version1038716 -Ref: option_mysqlbinlog_open_files_limit1038862 -Node: mysqlbinlog-hexdump1042840 -Node: mysqlbinlog-row-events1053626 -Node: mysqldumpslow1062566 -Ref: option_mysqldumpslow_help1064903 -Ref: option_mysqldumpslow_abstract1064958 -Ref: option_mysqldumpslow_debug1065033 -Ref: option_mysqldumpslow_grep1065081 -Ref: option_mysqldumpslow_host1065168 -Ref: option_mysqldumpslow_instance1065321 -Ref: option_mysqldumpslow_lock1065436 -Ref: option_mysqldumpslow_abstract-numbers1065497 -Ref: option_mysqldumpslow_reverse1065571 -Ref: option_mysqldumpslow_sort1065613 -Ref: option_mysqldumpslow_top1066064 -Ref: option_mysqldumpslow_verbose1066132 -Node: mysqlhotcopy1066732 -Ref: option_mysqlhotcopy_help1071374 -Ref: option_mysqlhotcopy_addtodest1071435 -Ref: option_mysqlhotcopy_allowold1071538 -Ref: option_mysqlhotcopy_checkpoint1071640 -Ref: option_mysqlhotcopy_chroot1071772 -Ref: option_mysqlhotcopy_debug1071981 -Ref: option_mysqlhotcopy_dryrun1072025 -Ref: option_mysqlhotcopy_flushlog1072095 -Ref: option_mysqlhotcopy_host1072161 -Ref: option_mysqlhotcopy_keepold1072386 -Ref: option_mysqlhotcopy_method1072462 -Ref: option_mysqlhotcopy_noindices1072561 -Ref: option_mysqlhotcopy_password1072841 -Ref: option_mysqlhotcopy_port1073238 -Ref: option_mysqlhotcopy_old_server1073351 -Ref: option_mysqlhotcopy_quiet1073687 -Ref: option_mysqlhotcopy_record_log_pos1073745 -Ref: option_mysqlhotcopy_regexp1073884 -Ref: option_mysqlhotcopy_resetmaster1073989 -Ref: option_mysqlhotcopy_resetslave1074069 -Ref: option_mysqlhotcopy_socket1074156 -Ref: option_mysqlhotcopy_suffix1074256 -Ref: option_mysqlhotcopy_tmpdir1074333 -Ref: option_mysqlhotcopy_user1074410 -Node: mysql-convert-table-format1074744 -Ref: option_mysql_convert_table_format_help1075729 -Ref: option_mysql_convert_table_format_force1075784 -Ref: option_mysql_convert_table_format_host1075838 -Ref: option_mysql_convert_table_format_password1075917 -Ref: option_mysql_convert_table_format_port1076310 -Ref: option_mysql_convert_table_format_socket1076391 -Ref: option_mysql_convert_table_format_type1076481 -Ref: option_mysql_convert_table_format_user1076644 -Ref: option_mysql_convert_table_format_verbose1076734 -Ref: option_mysql_convert_table_format_version1076825 -Node: mysql-find-rows1076883 -Ref: option_mysql_find_rows_help1078158 -Ref: option_mysql_find_rows_regexp1078230 -Ref: option_mysql_find_rows_rows1078302 -Ref: option_mysql_find_rows_skip-use-db1078359 -Ref: option_mysql_find_rows_start_row1078443 -Node: mysql-fix-extensions1078495 -Node: mysql-setpermission1079447 -Ref: option_mysql_setpermission_help1080704 -Ref: option_mysql_setpermission_host1080759 -Ref: option_mysql_setpermission_password1080838 -Ref: option_mysql_setpermission_port1081231 -Ref: option_mysql_setpermission_socket1081312 -Ref: option_mysql_setpermission_user1081402 -Node: mysql-waitpid1081487 -Ref: option_mysql_waitpid_help1082569 -Ref: option_mysql_waitpid_verbose1082636 -Ref: option_mysql_waitpid_version1082764 -Node: mysql-zap1082828 -Ref: option_mysql_zap_help1083928 -Ref: option_mysql_zap_force1083995 -Ref: option_mysql_zap_test1084112 -Node: programs-development1084200 -Node: msql2mysql1086131 -Node: mysql-config1087277 -Ref: option_mysql_config_cflags1087732 -Ref: option_mysql_config_include1088138 -Ref: option_mysql_config_libmysqld-libs1088209 -Ref: option_mysql_config_libs1088331 -Ref: option_mysql_config_libs_r1088428 -Ref: option_mysql_config_plugindir1088539 -Ref: option_mysql_config_port1088643 -Ref: option_mysql_config_socket1088729 -Ref: option_mysql_config_version1088815 -Node: my-print-defaults1090340 -Ref: option_my_print_defaults_help1091370 -Ref: option_my_print_defaults_config-file1091431 -Ref: option_my_print_defaults_debug1091554 -Ref: option_my_print_defaults_defaults-extra-file1091755 -Ref: option_my_print_defaults_defaults-group-suffix1091949 -Ref: option_my_print_defaults_no-defaults1092106 -Ref: option_my_print_defaults_verbose1092165 -Ref: option_my_print_defaults_version1092262 -Node: resolve-stack-dump1092326 -Ref: option_resolve_stack_dump_help1093175 -Ref: option_resolve_stack_dump_numeric-dump-file1093236 -Ref: option_resolve_stack_dump_symbols-file1093339 -Ref: option_resolve_stack_dump_version1093423 -Node: programs-miscellaneous1093487 -Node: perror1093885 -Ref: option_perror_help1095143 -Ref: option_perror_ndb1095220 -Ref: option_perror_silent1095297 -Ref: option_perror_verbose1095370 -Ref: option_perror_version1095480 -Node: replace-utility1095544 -Ref: option_replace_help1097080 -Ref: option_replace_debug1097137 -Ref: option_replace_silent1097186 -Ref: option_replace_verbose1097263 -Ref: option_replace_version1097347 -Node: resolveip1097398 -Ref: option_resolveip_help1097894 -Ref: option_resolveip_silent1097971 -Ref: option_resolveip_version1098035 -Node: server-administration1098099 -Node: mysqld-server1099100 -Node: mysqld-option-tables1100344 -Node: server-options1189903 -Ref: option_mysqld_help1193228 -Ref: option_mysqld_allow-suspicious-udfs1193567 -Ref: option_mysqld_ansi1194410 -Ref: option_mysqld_basedir1194834 -Ref: option_mysqld_big-tables1195627 -Ref: option_mysqld_bind-address1196641 -Ref: option_mysqld_binlog-format1197587 -Ref: option_mysqld_bootstrap1198935 -Ref: option_mysqld_character-sets-dir1199456 -Ref: option_mysqld_character-set-client-handshake1200248 -Ref: option_mysqld_character-set-filesystem1200974 -Ref: option_mysqld_character-set-server1201814 -Ref: option_mysqld_chroot1202776 -Ref: option_mysqld_collation-server1203588 -Ref: option_mysqld_console1204368 -Ref: option_mysqld_core-file1204791 -Ref: option_mysqld_datadir1206213 -Ref: option_mysqld_debug1206928 -Ref: option_mysqld_debug-sync-timeout1208470 -Ref: option_mysqld_default-character-set1209708 -Ref: option_mysqld_default-collation1210491 -Ref: option_mysqld_default-storage-engine1211164 -Ref: option_mysqld_default-time-zone1212329 -Ref: option_mysqld_delay-key-write1212998 -Ref: option_mysqld_des-key-file1214484 -Ref: option_mysqld_enable-named-pipe1214840 -Ref: option_mysqld_enable-pstack1215272 -Ref: option_mysqld_engine-condition-pushdown1215860 -Ref: option_mysqld_event-scheduler1216948 -Ref: option_mysqld_exit-info1217894 -Ref: option_mysqld_external-locking1218556 -Ref: option_mysqld_flush1219624 -Ref: option_mysqld_gdb1220398 -Ref: option_mysqld_general-log1221050 -Ref: option_mysqld_init-file1221916 -Ref: option_mysqld_install1222948 -Ref: option_mysqld_install-manual1223358 -Ref: option_mysqld_language1223831 -Ref: option_mysqld_large-pages1225048 -Ref: option_mysqld_lc-messages1226425 -Ref: option_mysqld_lc-messages-dir1227336 -Ref: option_mysqld_log1228222 -Ref: option_mysqld_log-error1229700 -Ref: option_mysqld_log-isam1230564 -Ref: option_mysqld_log-long-format1231069 -Ref: option_mysqld_log-output1231881 -Ref: option_mysqld_log-queries-not-using-indexes1233659 -Ref: option_mysqld_log-short-format1234783 -Ref: option_mysqld_log-slow-admin-statements1235338 -Ref: option_mysqld_log-slow-queries1236005 -Ref: option_mysqld_log-tc1237596 -Ref: option_mysqld_log-tc-size1238370 -Ref: option_mysqld_log-warnings1239303 -Ref: option_mysqld_low-priority-updates1241385 -Ref: option_mysqld_min-examined-row-limit1242646 -Ref: option_mysqld_memlock1243930 -Ref: option_mysqld_myisam-block-size1245673 -Ref: option_mysqld_myisam-recover1246301 -Ref: option_mysqld_myisam-recover-options1246494 -Ref: option_mysqld_old-alter-table1249595 -Ref: option_mysqld_old-passwords1250721 -Ref: option_mysqld_old-style-user-limits1251625 -Ref: option_mysqld_one-thread1252318 -Ref: option_mysqld_open-files-limit1252850 -Ref: option_mysqld_partition1254313 -Ref: option_mysqld_pid-file1255092 -Ref: option_mysqld_plugin1256038 -Ref: option_mysqld_plugin-load1257343 -Ref: option_mysqld_port1259637 -Ref: option_mysqld_port-open-timeout1260482 -Ref: option_mysqld_remove1261293 -Ref: option_mysqld_safe-mode1261637 -Ref: option_mysqld_safe-show-database1261904 -Ref: option_mysqld_safe-user-create1262838 -Ref: option_mysqld_secure-auth1263932 -Ref: option_mysqld_secure-file-priv1264680 -Ref: option_mysqld_shared-memory1265551 -Ref: option_mysqld_shared-memory-base-name1265680 -Ref: option_mysqld_skip-concurrent-insert1265899 -Ref: option_mysqld_skip-external-locking1266137 -Ref: option_mysqld_skip-event-scheduler1266489 -Ref: option_mysqld_skip-grant-tables1267002 -Ref: option_mysqld_skip-host-cache1267976 -Ref: option_mysqld_skip-name-resolve1268454 -Ref: option_mysqld_skip-networking1268711 -Ref: option_mysqld_skip-partition1269051 -Ref: option_mysqld_standalone1269661 -Ref: option_mysqld_super-large-pages1269985 -Ref: option_mysqld_symbolic-links1270374 -Ref: option_mysqld_skip-safemalloc1271409 -Ref: option_mysqld_skip-show-database1272059 -Ref: option_mysqld_skip-stack-trace1273035 -Ref: option_mysqld_skip-thread-priority1273539 -Ref: option_mysqld_slow-query-log1273937 -Ref: option_mysqld_slow-start-timeout1274821 -Ref: option_mysqld_socket1275744 -Ref: option_mysqld_sql-mode1276904 -Ref: option_mysqld_sysdate-is-now1278849 -Ref: option_mysqld_tc-heuristic-recover1279754 -Ref: option_mysqld_temp-pool1280382 -Ref: option_mysqld_transaction-isolation1281250 -Ref: option_mysqld_tmpdir1282356 -Ref: option_mysqld_user1284037 -Ref: option_mysqld_verbose1285738 -Ref: option_mysqld_version1285829 -Node: server-system-variables1286902 -Ref: sysvar_authentication_windows_log_level1327771 -Ref: sysvar_authentication_windows_use_principal_name1329140 -Ref: sysvar_autocommit1331148 -Ref: sysvar_automatic_sp_privileges1333238 -Ref: sysvar_back_log1334458 -Ref: sysvar_basedir1336139 -Ref: sysvar_big_tables1337001 -Ref: sysvar_bulk_insert_buffer_size1337588 -Ref: sysvar_character_set_client1339236 -Ref: sysvar_character_set_connection1341077 -Ref: sysvar_character_set_database1341647 -Ref: sysvar_character_set_filesystem1343264 -Ref: sysvar_character_set_results1344696 -Ref: sysvar_character_set_server1345244 -Ref: sysvar_character_set_system1345975 -Ref: sysvar_character_sets_dir1346464 -Ref: sysvar_collation_connection1347209 -Ref: sysvar_collation_database1347692 -Ref: sysvar_collation_server1349289 -Ref: sysvar_completion_type1349992 -Ref: sysvar_concurrent_insert1352767 -Ref: sysvar_connect_timeout1355186 -Ref: sysvar_datadir1356209 -Ref: sysvar_date_format1356959 -Ref: sysvar_datetime_format1357011 -Ref: sysvar_debug1357067 -Ref: sysvar_debug_sync1358687 -Ref: sysvar_default_storage_engine1360252 -Ref: sysvar_default_week_format1361595 -Ref: sysvar_delay_key_write1362515 -Ref: sysvar_delayed_insert_limit1364580 -Ref: sysvar_delayed_insert_timeout1366052 -Ref: sysvar_delayed_queue_size1366918 -Ref: sysvar_div_precision_increment1368389 -Ref: sysvar_engine_condition_pushdown1369922 -Ref: sysvar_error_count1372069 -Ref: sysvar_event_scheduler1372243 -Ref: sysvar_expire_logs_days1373354 -Ref: sysvar_external_user1374520 -Ref: sysvar_flush1375250 -Ref: sysvar_flush_time1376148 -Ref: sysvar_foreign_key_checks1377339 -Ref: sysvar_ft_boolean_syntax1378295 -Ref: sysvar_ft_max_word_len1379751 -Ref: sysvar_ft_min_word_len1380618 -Ref: sysvar_ft_query_expansion_limit1381528 -Ref: sysvar_ft_stopword_file1382437 -Ref: sysvar_general_log1383814 -Ref: sysvar_general_log_file1384843 -Ref: sysvar_group_concat_max_len1385737 -Ref: sysvar_have_compress1387076 -Ref: sysvar_have_crypt1387266 -Ref: sysvar_have_csv1387422 -Ref: sysvar_have_dynamic_loading1387637 -Ref: sysvar_have_geometry1387761 -Ref: sysvar_have_innodb1387852 -Ref: sysvar_have_openssl1388099 -Ref: sysvar_have_partitioning1388169 -Ref: sysvar_have_profiling1388258 -Ref: sysvar_have_query_cache1388373 -Ref: sysvar_have_rtree_keys1388599 -Ref: sysvar_have_ssl1388745 -Ref: sysvar_have_symlink1389044 -Ref: sysvar_hostname1389296 -Ref: sysvar_identity1389719 -Ref: sysvar_init_connect1389959 -Ref: sysvar_init_file1391840 -Ref: sysvar_insert_id1393144 -Ref: sysvar_interactive_timeout1393371 -Ref: sysvar_join_buffer_size1394434 -Ref: sysvar_keep_files_on_create1396194 -Ref: sysvar_key_buffer_size1397700 -Ref: sysvar_key_cache_age_threshold1401929 -Ref: sysvar_key_cache_block_size1403473 -Ref: sysvar_key_cache_division_limit1404408 -Ref: sysvar_language1405486 -Ref: sysvar_large_files_support1406506 -Ref: sysvar_large_pages1406809 -Ref: sysvar_large_page_size1407603 -Ref: sysvar_last_insert_id1408262 -Ref: sysvar_lc_messages1408588 -Ref: sysvar_lc_messages_dir1409480 -Ref: sysvar_lc_time_names1410357 -Ref: sysvar_license1411215 -Ref: sysvar_local_infile1411648 -Ref: sysvar_lock_wait_timeout1412134 -Ref: sysvar_locked_in_memory1414131 -Ref: sysvar_log1414414 -Ref: sysvar_log_bin1414627 -Ref: sysvar_log_bin_trust_function_creators1415140 -Ref: sysvar_log_error1416761 -Ref: sysvar_log_output1417428 -Ref: sysvar_log_queries_not_using_indexes1418786 -Ref: sysvar_log_slave_updates1419643 -Ref: sysvar_log_slow_admin_statements1419918 -Ref: sysvar_log_slow_slave_statements1420635 -Ref: sysvar_log_slow_queries1421254 -Ref: sysvar_log_warnings1422271 -Ref: sysvar_long_query_time1423646 -Ref: sysvar_low_priority_updates1425140 -Ref: sysvar_lower_case_file_system1426307 -Ref: sysvar_lower_case_table_names1427322 -Ref: sysvar_max_allowed_packet1429629 -Ref: sysvar_max_connect_errors1431642 -Ref: sysvar_max_connections1433349 -Ref: sysvar_max_delayed_threads1434442 -Ref: sysvar_max_error_count1435809 -Ref: sysvar_max_heap_table_size1436792 -Ref: sysvar_max_insert_delayed_threads1438861 -Ref: sysvar_max_join_size1439370 -Ref: sysvar_max_length_for_sort_data1441264 -Ref: sysvar_max_long_data_size1442245 -Ref: sysvar_max_prepared_stmt_count1443554 -Ref: sysvar_max_relay_log_size1445002 -Ref: sysvar_max_seeks_for_key1446436 -Ref: sysvar_max_sort_length1448109 -Ref: sysvar_max_sp_recursion_depth1449092 -Ref: sysvar_max_tmp_tables1450366 -Ref: sysvar_max_user_connections1451690 -Ref: sysvar_max_write_lock_count1453385 -Ref: sysvar_metadata_locks_cache_size1454694 -Ref: sysvar_min_examined_row_limit1455560 -Ref: sysvar_myisam_data_pointer_size1456798 -Ref: sysvar_myisam_max_sort_file_size1457868 -Ref: sysvar_myisam_mmap_size1459270 -Ref: sysvar_myisam_recover_options1460795 -Ref: sysvar_myisam_repair_threads1461105 -Ref: sysvar_myisam_sort_buffer_size1462601 -Ref: sysvar_myisam_stats_method1464322 -Ref: sysvar_myisam_use_mmap1465924 -Ref: sysvar_named_pipe1466650 -Ref: sysvar_net_buffer_length1467189 -Ref: sysvar_net_read_timeout1468719 -Ref: sysvar_net_retry_count1469843 -Ref: sysvar_net_write_timeout1471260 -Ref: sysvar_new1472159 -Ref: sysvar_old1473056 -Ref: sysvar_old_alter_table1474029 -Ref: sysvar_old_passwords1475157 -Ref: sysvar_one_shot1475962 -Ref: sysvar_open_files_limit1476102 -Ref: sysvar_optimizer_prune_level1477249 -Ref: sysvar_optimizer_search_depth1478343 -Ref: sysvar_optimizer_switch1479895 -Ref: sysvar_pid_file1482658 -Ref: sysvar_plugin_dir1483405 -Ref: sysvar_port1485384 -Ref: sysvar_preload_buffer_size1486166 -Ref: sysvar_profiling1487099 -Ref: sysvar_profiling_history_size1487413 -Ref: sysvar_protocol_version1487696 -Ref: sysvar_proxy_user1488146 -Ref: sysvar_pseudo_thread_id1488766 -Ref: sysvar_query_alloc_block_size1489190 -Ref: sysvar_query_cache_limit1490828 -Ref: sysvar_query_cache_min_res_unit1492097 -Ref: sysvar_query_cache_size1493593 -Ref: sysvar_query_cache_type1495581 -Ref: sysvar_query_cache_wlock_invalidate1497434 -Ref: sysvar_query_prealloc_size1498696 -Ref: sysvar_rand_seed11500467 -Ref: sysvar_rand_seed21501129 -Ref: sysvar_range_alloc_block_size1501193 -Ref: sysvar_read_buffer_size1502238 -Ref: sysvar_read_only1503747 -Ref: sysvar_read_rnd_buffer_size1507308 -Ref: sysvar_relay_log_purge1508934 -Ref: sysvar_relay_log_space_limit1509734 -Ref: sysvar_report_host1510985 -Ref: sysvar_report_password1511634 -Ref: sysvar_report_port1512385 -Ref: sysvar_report_user1513070 -Ref: sysvar_rpl_semi_sync_master_enabled1513784 -Ref: sysvar_rpl_semi_sync_master_timeout1514554 -Ref: sysvar_rpl_semi_sync_master_trace_level1515394 -Ref: sysvar_rpl_semi_sync_master_wait_no_slave1516362 -Ref: sysvar_rpl_semi_sync_slave_enabled1517890 -Ref: sysvar_rpl_semi_sync_slave_trace_level1518655 -Ref: sysvar_secure_auth1519371 -Ref: sysvar_secure_file_priv1520579 -Ref: sysvar_server_id1521501 -Ref: sysvar_shared_memory1522517 -Ref: sysvar_shared_memory_base_name1522833 -Ref: sysvar_skip_external_locking1523339 -Ref: sysvar_skip_name_resolve1523560 -Ref: sysvar_skip_networking1523984 -Ref: sysvar_skip_show_database1524288 -Ref: sysvar_slow_launch_time1525083 -Ref: sysvar_slow_query_log1525885 -Ref: sysvar_slow_query_log_file1527039 -Ref: sysvar_socket1527906 -Ref: sysvar_sort_buffer_size1528998 -Ref: sysvar_sql_auto_is_null1531426 -Ref: sysvar_sql_big_selects1533226 -Ref: sysvar_sql_buffer_result1534253 -Ref: sysvar_sql_log_bin1534979 -Ref: sysvar_sql_log_off1535811 -Ref: sysvar_sql_log_update1536573 -Ref: sysvar_sql_mode1537223 -Ref: sysvar_sql_notes1539187 -Ref: sysvar_sql_quote_show_create1539647 -Ref: sysvar_sql_safe_updates1540082 -Ref: sysvar_sql_select_limit1540508 -Ref: sysvar_sql_warnings1541840 -Ref: sysvar_ssl_ca1542075 -Ref: sysvar_ssl_capath1542742 -Ref: sysvar_ssl_cert1543470 -Ref: sysvar_ssl_cipher1544185 -Ref: sysvar_ssl_key1544882 -Ref: sysvar_storage_engine1545540 -Ref: sysvar_sync_frm1546663 -Ref: sysvar_system_time_zone1547497 -Ref: sysvar_table_definition_cache1548597 -Ref: sysvar_table_lock_wait_timeout1549806 -Ref: sysvar_table_open_cache1550704 -Ref: sysvar_table_type1552036 -Ref: sysvar_thread_cache_size1552139 -Ref: sysvar_thread_concurrency1553857 -Ref: sysvar_thread_handling1554974 -Ref: sysvar_thread_pool_algorithm1556828 -Ref: sysvar_thread_pool_high_priority_connection1558407 -Ref: sysvar_thread_pool_max_unused_threads1559799 -Ref: sysvar_thread_pool_prio_kickup_timer1561790 -Ref: sysvar_thread_pool_size1563132 -Ref: sysvar_thread_pool_stall_limit1564496 -Ref: sysvar_thread_stack1566203 -Ref: sysvar_time_format1567967 -Ref: sysvar_time_zone1568019 -Ref: sysvar_timed_mutexes1568945 -Ref: sysvar_timestamp1570039 -Ref: sysvar_tmp_table_size1570670 -Ref: sysvar_tmpdir1572359 -Ref: sysvar_transaction_alloc_block_size1574122 -Ref: sysvar_transaction_prealloc_size1575728 -Ref: sysvar_tx_isolation1577788 -Ref: sysvar_unique_checks1579232 -Ref: sysvar_updatable_views_with_limit1580279 -Ref: sysvar_version1581711 -Ref: sysvar_version_comment1582055 -Ref: sysvar_version_compile_machine1582662 -Ref: sysvar_version_compile_os1583126 -Ref: sysvar_wait_timeout1583568 -Ref: sysvar_warning_count1585257 -Node: using-system-variables1585451 -Node: structured-system-variables1597720 -Node: dynamic-system-variables1602895 -Node: server-status-variables1623249 -Ref: statvar_Aborted_clients1658486 -Ref: statvar_Aborted_connects1658670 -Ref: statvar_Binlog_cache_disk_use1658804 -Ref: statvar_Binlog_cache_use1659379 -Ref: statvar_Binlog_stmt_cache_disk_use1659470 -Ref: statvar_Binlog_stmt_cache_use1659717 -Ref: statvar_Bytes_received1659843 -Ref: statvar_Bytes_sent1659920 -Ref: statvar_Com_xxx1659987 -Ref: statvar_Compression1662278 -Ref: statvar_Connections1662388 -Ref: statvar_Created_tmp_disk_tables1662495 -Ref: statvar_Created_tmp_files1663476 -Ref: statvar_Created_tmp_tables1663571 -Ref: statvar_Delayed_errors1664163 -Ref: statvar_Delayed_insert_threads1664333 -Ref: statvar_Delayed_writes1664455 -Ref: statvar_Flush_commands1664559 -Ref: statvar_Handler_commit1665015 -Ref: statvar_Handler_delete1665105 -Ref: statvar_Handler_prepare1665196 -Ref: statvar_Handler_read_first1665291 -Ref: statvar_Handler_read_key1665555 -Ref: statvar_Handler_read_last1665753 -Ref: statvar_Handler_read_next1666121 -Ref: statvar_Handler_read_prev1666343 -Ref: statvar_Handler_read_rnd1666508 -Ref: statvar_Handler_read_rnd_next1666838 -Ref: statvar_Handler_rollback1667161 -Ref: statvar_Handler_savepoint1667275 -Ref: statvar_Handler_savepoint_rollback1667374 -Ref: statvar_Handler_update1667494 -Ref: statvar_Handler_write1667575 -Ref: statvar_Innodb_buffer_pool_pages_data1667655 -Ref: statvar_Innodb_buffer_pool_pages_dirty1667754 -Ref: statvar_Innodb_buffer_pool_pages_flushed1667837 -Ref: statvar_Innodb_buffer_pool_pages_free1667932 -Ref: statvar_Innodb_buffer_pool_pages_latched1668003 -Ref: statvar_Innodb_buffer_pool_pages_misc1668362 -Ref: statvar_Innodb_buffer_pool_pages_total1668707 -Ref: statvar_Innodb_buffer_pool_read_ahead1668798 -Ref: statvar_Innodb_buffer_pool_read_ahead_evicted1668940 -Ref: statvar_Innodb_buffer_pool_read_requests1669166 -Ref: statvar_Innodb_buffer_pool_reads1669269 -Ref: statvar_Innodb_buffer_pool_wait_free1669436 -Ref: statvar_Innodb_buffer_pool_write_requests1669844 -Ref: statvar_Innodb_data_fsyncs1669945 -Ref: statvar_Innodb_data_pending_fsyncs1670022 -Ref: statvar_Innodb_data_pending_reads1670116 -Ref: statvar_Innodb_data_pending_writes1670194 -Ref: statvar_Innodb_data_read1670274 -Ref: statvar_Innodb_data_reads1670360 -Ref: statvar_Innodb_data_writes1670425 -Ref: statvar_Innodb_data_written1670492 -Ref: statvar_Innodb_dblwr_pages_written1670572 -Ref: statvar_Innodb_dblwr_writes1670718 -Ref: statvar_Innodb_have_atomic_builtins1670849 -Ref: statvar_Innodb_log_waits1670957 -Ref: statvar_Innodb_log_write_requests1671112 -Ref: statvar_Innodb_log_writes1671187 -Ref: statvar_Innodb_os_log_fsyncs1671267 -Ref: statvar_Innodb_os_log_pending_fsyncs1671356 -Ref: statvar_Innodb_os_log_pending_writes1671453 -Ref: statvar_Innodb_os_log_written1671536 -Ref: statvar_Innodb_page_size1671618 -Ref: statvar_Innodb_pages_created1671805 -Ref: statvar_Innodb_pages_read1671870 -Ref: statvar_Innodb_pages_written1671929 -Ref: statvar_Innodb_row_lock_current_waits1671994 -Ref: statvar_Innodb_row_lock_time1672091 -Ref: statvar_Innodb_row_lock_time_avg1672189 -Ref: statvar_Innodb_row_lock_time_max1672286 -Ref: statvar_Innodb_row_lock_waits1672383 -Ref: statvar_Innodb_rows_deleted1672473 -Ref: statvar_Innodb_rows_inserted1672557 -Ref: statvar_Innodb_rows_read1672643 -Ref: statvar_Innodb_rows_updated1672721 -Ref: statvar_Innodb_truncated_status_writes1672803 -Ref: statvar_Key_blocks_not_flushed1673123 -Ref: statvar_Key_blocks_unused1673265 -Ref: statvar_Key_blocks_used1673503 -Ref: statvar_Key_read_requests1673704 -Ref: statvar_Key_reads1673796 -Ref: statvar_Key_write_requests1674047 -Ref: statvar_Key_writes1674139 -Ref: statvar_Last_query_cost1674219 -Ref: statvar_Max_used_connections1674780 -Ref: statvar_Not_flushed_delayed_rows1674918 -Ref: statvar_Open_files1675055 -Ref: statvar_Open_streams1675405 -Ref: statvar_Open_table_definitions1675496 -Ref: statvar_Open_tables1675569 -Ref: statvar_Opened_files1675632 -Ref: statvar_Opened_table_definitions1675851 -Ref: statvar_Opened_tables1675941 -Ref: statvar_Prepared_stmt_count1676236 -Ref: statvar_Qcache_free_blocks1676418 -Ref: statvar_Qcache_free_memory1676505 -Ref: statvar_Qcache_hits1676586 -Ref: statvar_Qcache_inserts1676645 -Ref: statvar_Qcache_lowmem_prunes1676723 -Ref: statvar_Qcache_not_cached1676848 -Ref: statvar_Qcache_queries_in_cache1676988 -Ref: statvar_Qcache_total_blocks1677080 -Ref: statvar_Queries1677162 -Ref: statvar_Questions1677408 -Ref: statvar_Rpl_semi_sync_master_clients1677772 -Ref: statvar_Rpl_semi_sync_master_net_avg_wait_time1677965 -Ref: statvar_Rpl_semi_sync_master_net_wait_time1678205 -Ref: statvar_Rpl_semi_sync_master_net_waits1678434 -Ref: statvar_Rpl_semi_sync_master_no_times1678654 -Ref: statvar_Rpl_semi_sync_master_no_tx1678886 -Ref: statvar_Rpl_semi_sync_master_status1679118 -Ref: statvar_Rpl_semi_sync_master_timefunc_failures1679596 -Ref: statvar_Rpl_semi_sync_master_tx_avg_wait_time1679858 -Ref: statvar_Rpl_semi_sync_master_tx_wait_time1680100 -Ref: statvar_Rpl_semi_sync_master_tx_waits1680327 -Ref: statvar_Rpl_semi_sync_master_wait_pos_backtraverse1680545 -Ref: statvar_Rpl_semi_sync_master_wait_sessions1681009 -Ref: statvar_Rpl_semi_sync_master_yes_tx1681230 -Ref: statvar_Rpl_semi_sync_slave_status1681459 -Ref: statvar_Rpl_status1681794 -Ref: statvar_Select_full_join1681933 -Ref: statvar_Select_full_range_join1682132 -Ref: statvar_Select_range1682237 -Ref: statvar_Select_range_check1682399 -Ref: statvar_Select_scan1682590 -Ref: statvar_Slave_heartbeat_period1682678 -Ref: statvar_Slave_open_temp_tables1682799 -Ref: statvar_Slave_received_heartbeats1683043 -Ref: statvar_Slave_retried_transactions1683317 -Ref: statvar_Slave_running1683468 -Ref: statvar_Slow_launch_threads1683671 -Ref: statvar_Slow_queries1683797 -Ref: statvar_Sort_merge_passes1683933 -Ref: statvar_Sort_range1684150 -Ref: statvar_Sort_rows1684225 -Ref: statvar_Sort_scan1684277 -Ref: statvar_Ssl_accept_renegotiates1684360 -Ref: statvar_Ssl_accepts1684460 -Ref: statvar_Ssl_callback_cache_hits1684527 -Ref: statvar_Ssl_cipher1684601 -Ref: statvar_Ssl_cipher_list1684683 -Ref: statvar_Ssl_client_connects1684748 -Ref: statvar_Ssl_connect_renegotiates1684847 -Ref: statvar_Ssl_ctx_verify_depth1684978 -Ref: statvar_Ssl_ctx_verify_mode1685103 -Ref: statvar_Ssl_default_timeout1685173 -Ref: statvar_Ssl_finished_accepts1685233 -Ref: statvar_Ssl_finished_connects1685325 -Ref: statvar_Ssl_session_cache_hits1685436 -Ref: statvar_Ssl_session_cache_misses1685512 -Ref: statvar_Ssl_session_cache_mode1685592 -Ref: statvar_Ssl_session_cache_overflows1685658 -Ref: statvar_Ssl_session_cache_size1685744 -Ref: statvar_Ssl_session_cache_timeouts1685810 -Ref: statvar_Ssl_sessions_reused1685894 -Ref: statvar_Ssl_used_session_cache_entries1685982 -Ref: statvar_Ssl_verify_depth1686074 -Ref: statvar_Ssl_verify_mode1686162 -Ref: statvar_Ssl_version1686248 -Ref: statvar_Table_locks_immediate1686299 -Ref: statvar_Table_locks_waited1686423 -Ref: statvar_Tc_log_max_pages_used1686734 -Ref: statvar_Tc_log_page_size1687580 -Ref: statvar_Tc_log_page_waits1687860 -Ref: statvar_Threads_cached1688429 -Ref: statvar_Threads_connected1688502 -Ref: statvar_Threads_created1688577 -Ref: statvar_Threads_running1688835 -Ref: statvar_Uptime1688911 -Ref: statvar_Uptime_since_flush_status1688984 -Node: server-sql-mode1689095 -Ref: sqlmode_allow_invalid_dates1692743 -Ref: sqlmode_ansi_quotes1693702 -Ref: sqlmode_error_for_division_by_zero1694069 -Ref: sqlmode_high_not_precedence1694531 -Ref: sqlmode_ignore_space1695143 -Ref: sqlmode_no_auto_create_user1696162 -Ref: sqlmode_no_auto_value_on_zero1696597 -Ref: sqlmode_no_backslash_escapes1697614 -Ref: sqlmode_no_dir_in_create1697830 -Ref: sqlmode_no_engine_substitution1698009 -Ref: sqlmode_no_field_options1698817 -Ref: sqlmode_no_key_options1699037 -Ref: sqlmode_no_table_options1699254 -Ref: sqlmode_no_unsigned_subtraction1699492 -Ref: sqlmode_no_zero_date1701601 -Ref: sqlmode_no_zero_in_date1701833 -Ref: sqlmode_only_full_group_by1702236 -Ref: sqlmode_pad_char_to_full_length1702725 -Ref: sqlmode_pipes_as_concat1704096 -Ref: sqlmode_real_as_float1704234 -Ref: sqlmode_strict_all_tables1704457 -Ref: sqlmode_strict_trans_tables1704600 -Ref: sqlmode_ansi1707693 -Ref: sqlmode_db21708488 -Ref: sqlmode_maxdb1708634 -Ref: sqlmode_mssql1708810 -Ref: sqlmode_mysql3231708958 -Ref: sqlmode_mysql401709039 -Ref: sqlmode_oracle1709119 -Ref: sqlmode_postgresql1709296 -Ref: sqlmode_traditional1709449 -Node: server-plugins1709657 -Node: server-plugin-loading1710313 -Ref: server-plugin-installing1710870 -Ref: server-plugin-activating1715069 -Ref: server-plugin-uninstalling1719071 -Node: obtaining-plugin-information1720392 -Node: server-side-help-support1723195 -Node: server-signal-response1724873 -Node: server-shutdown1726652 -Node: server-logs1730709 -Node: log-destinations1733469 -Node: error-log1741244 -Node: query-log1745989 -Node: binary-log1749590 -Node: binary-log-formats1762360 -Node: binary-log-setting1764424 -Node: binary-log-mixed1768669 -Node: binary-log-mysql-database1791638 -Node: slow-query-log1793370 -Node: log-file-maintenance1797726 -Node: security1802320 -Node: security-guidelines1803335 -Node: password-security1812674 -Node: password-security-admin1813464 -Node: password-security-user1815203 -Node: password-hashing1820064 -Node: application-password-use1834024 -Node: security-against-attack1835500 -Node: privileges-options1842378 -Ref: option_mysqld_local-infile1845462 -Ref: option_mysqld_ssl_xxxx1848964 -Node: load-data-local1849157 -Node: changing-mysql-user1852547 -Node: privilege-system1854865 -Node: privileges-provided1859439 -Ref: priv_all1864018 -Ref: priv_alter1864319 -Ref: priv_alter-routine1864651 -Ref: priv_create1864764 -Ref: priv_create-routine1864845 -Ref: priv_create-tablespace1864952 -Ref: priv_create-temporary-tables1865067 -Ref: priv_create-user1865918 -Ref: priv_create-view1866119 -Ref: priv_delete1866208 -Ref: priv_drop1866297 -Ref: priv_event1866779 -Ref: priv_execute1866883 -Ref: priv_file1866986 -Ref: priv_grant-option1867713 -Ref: priv_index1867865 -Ref: priv_insert1868130 -Ref: priv_lock-tables1868413 -Ref: priv_process1868693 -Ref: priv_proxy1869103 -Ref: priv_references1869271 -Ref: priv_reload1869326 -Ref: priv_replication-client1870141 -Ref: priv_replication-slave1870310 -Ref: priv_select1870589 -Ref: priv_show-databases1871489 -Ref: priv_show-view1871902 -Ref: priv_shutdown1871999 -Ref: priv_super1872152 -Ref: priv_trigger1873186 -Ref: priv_update1873349 -Ref: priv_usage1873436 -Node: grant-table-structure1875331 -Node: account-names1890389 -Node: connection-access1895954 -Node: request-access1904579 -Node: privilege-changes1913237 -Node: access-denied1915550 -Node: user-account-management1934078 -Node: user-names1935467 -Node: adding-users1942121 -Node: removing-users1954082 -Node: user-resources1954372 -Node: assigning-passwords1961871 -Node: pluggable-authentication1966878 -Node: native-authentication-plugins1977207 -Node: pam-authentication-plugin1979634 -Node: pam-authentication-plugin-installation1982882 -Node: pam-authentication-plugin-usage1984120 -Node: pam-authentication-unix-without-proxy1991781 -Node: pam-authentication-ldap-without-proxy1993780 -Node: pam-authentication-unix-with-proxy1994913 -Node: pam-authentication-plugin-debugging1999830 -Node: windows-authentication-plugin2004811 -Node: windows-authentication-plugin-installation2008031 -Node: windows-authentication-plugin-usage2009202 -Node: clear-text-authentication-plugin2018192 -Node: socket-authentication-plugin2020149 -Node: test-authentication-plugin2022785 -Node: proxy-users2024459 -Node: secure-connections2035455 -Node: secure-basics2037021 -Node: secure-using-ssl2039332 -Node: ssl-options2045580 -Ref: option_general_ssl2047714 -Ref: option_general_ssl-ca2049117 -Ref: option_general_ssl-capath2049211 -Ref: option_general_ssl-cert2049340 -Ref: option_general_ssl-cipher2049463 -Ref: option_general_ssl-key2050195 -Ref: option_general_ssl-verify-server-cert2050754 -Node: secure-create-certs2051645 -Node: windows-and-ssh2064749 -Node: account-activity-auditing2066499 -Node: multiple-servers2071586 -Node: multiple-data-directories2076813 -Node: multiple-windows-servers2080585 -Node: multiple-windows-command-line-servers2081574 -Node: multiple-windows-services2084615 -Node: multiple-unix-servers2088964 -Node: multiple-server-clients2092911 -Node: dba-dtrace-server2095697 -Ref: figure-dtrace-server-overview2096886 -Node: dba-dtrace-mysqld-ref2098154 -Node: dba-dtrace-ref-connection2103174 -Node: dba-dtrace-ref-command2106831 -Node: dba-dtrace-ref-query2110317 -Node: dba-dtrace-ref-query-parsing2113094 -Node: dba-dtrace-ref-querycache2115127 -Node: dba-dtrace-ref-queryexec2118079 -Node: dba-dtrace-ref-rowlevel2120504 -Node: dba-dtrace-ref-readrow2124317 -Node: dba-dtrace-ref-index2125544 -Node: dba-dtrace-ref-lock2126302 -Node: dba-dtrace-ref-filesort2130348 -Node: dba-dtrace-ref-statement2133219 -Node: dba-dtrace-ref-network2141368 -Node: dba-dtrace-ref-keycache2145164 -Node: backup-and-recovery2148662 -Node: backup-types2151831 -Node: backup-methods2162473 -Node: backup-strategy-example2169689 -Node: backup-policy2173189 -Node: recovery-from-backups2180709 -Node: backup-strategy-summary2182741 -Node: using-mysqldump2183787 -Node: mysqldump-sql-format2185931 -Node: reloading-sql-format-dumps2188989 -Node: mysqldump-delimited-text2190297 -Node: reloading-delimited-text-dumps2194565 -Node: mysqldump-tips2196177 -Node: mysqldump-copying-database2197065 -Node: mysqldump-copying-to-other-server2197610 -Node: mysqldump-stored-programs2198863 -Node: mysqldump-definition-data-dumps2199733 -Node: mysqldump-upgrade-testing2200753 -Node: point-in-time-recovery2202109 -Node: point-in-time-recovery-times2206863 -Node: point-in-time-recovery-positions2209011 -Node: myisam-table-maintenance2211363 -Node: myisam-crash-recovery2214049 -Node: myisam-check2217586 -Node: myisam-repair2219439 -Node: myisam-optimization2227137 -Node: myisam-maintenance-schedule2228784 -Node: optimization2231278 -Node: optimize-overview2232928 -Ref: portability2238111 -Node: statement-optimization2238426 -Node: select-optimization2239405 -Node: select-speed2242985 -Node: where-optimizations2243615 -Node: limit-optimization2248642 -Node: how-to-avoid-table-scan2250963 -Node: non-select-optimization2255363 -Node: insert-speed2256544 -Node: update-speed2258736 -Node: delete-speed2259635 -Node: permission-optimization2260358 -Node: information-schema-optimization2261256 -Node: miscellaneous-optimization-tips2276261 -Node: optimization-indexes2278784 -Node: mysql-indexes2280137 -Node: optimizing-primary-keys2284268 -Node: optimizing-foreign-keys2285201 -Node: column-indexes2286158 -Node: multiple-column-indexes2288600 -Node: verifying-index-usage2292508 -Node: myisam-index-statistics2292890 -Node: index-btree-hash2299082 -Node: optimizing-database-structure2303364 -Node: data-size2304225 -Node: optimize-data-types2311269 -Node: optimize-numeric2311676 -Node: optimize-character2312632 -Node: optimize-blob2314695 -Node: optimize-multi-tables2316462 -Node: table-cache2317138 -Node: creating-many-tables2322528 -Node: internal-temporary-tables2323206 -Node: optimizing-innodb2325948 -Node: optimizing-innodb-storage-layout2327226 -Node: optimizing-innodb-transaction-management2330149 -Node: optimizing-innodb-logging2334662 -Node: optimizing-innodb-bulk-data-loading2335379 -Node: optimizing-innodb-queries2337667 -Node: optimizing-innodb-ddl-operations2339709 -Node: optimizing-innodb-diskio2341162 -Node: optimizing-innodb-configuration-variables2344207 -Node: optimizing-innodb-many-tables2350129 -Node: optimizing-myisam2350940 -Node: optimizing-queries-myisam2351661 -Node: optimizing-myisam-bulk-data-loading2357772 -Node: repair-table-speed2363109 -Node: optimizing-memory-tables2367932 -Node: execution-plan-information2369287 -Node: using-explain2370548 -Node: explain-output2372760 -Ref: explain-output-columns2374575 -Ref: explain-output-column-table2374987 -Ref: explain_id2375498 -Ref: explain_select_type2375640 -Ref: explain_table2377648 -Ref: explain_type2377714 -Ref: explain_possible_keys2377821 -Ref: explain_key2378700 -Ref: explain_key_len2380148 -Ref: explain_ref2380437 -Ref: explain_rows2380594 -Ref: explain_extra2381232 -Ref: explain-join-types2381413 -Ref: jointype_system2381618 -Ref: jointype_const2381739 -Ref: jointype_eq_ref2382384 -Ref: jointype_ref2383284 -Ref: jointype_fulltext2384223 -Ref: jointype_ref_or_null2384295 -Ref: jointype_index_merge2384751 -Ref: jointype_unique_subquery2385085 -Ref: jointype_index_subquery2385392 -Ref: jointype_range2385655 -Ref: jointype_index2386449 -Ref: jointype_all2386763 -Ref: explain-extra-information2387156 -Ref: explain-output-interpretation2396021 -Node: estimating-performance2402753 -Node: controlling-optimizer2404586 -Node: controlling-query-plan-evaluation2405080 -Node: switchable-optimizations2408137 -Node: buffering-caching2412581 -Node: innodb-buffer-pool2413351 -Node: myisam-key-cache2423384 -Node: shared-key-cache2427260 -Node: multiple-key-caches2428087 -Node: midpoint-insertion2433583 -Node: index-preloading2436130 -Node: key-cache-block-size2437939 -Node: key-cache-restructuring2438862 -Node: query-cache2440241 -Node: query-cache-operation2444598 -Node: query-cache-in-select2449561 -Node: query-cache-configuration2450176 -Node: query-cache-status-and-maintenance2457049 -Node: locking-issues2459892 -Node: internal-locking2461278 -Node: table-locking2468389 -Node: concurrent-inserts2474127 -Node: metadata-locking2477112 -Node: external-locking2478990 -Node: optimizing-the-server2483574 -Node: system-optimization2484620 -Node: server-parameters2487204 -Node: disk-issues2513708 -Node: symbolic-links2518396 -Node: symbolic-links-to-databases2519218 -Node: symbolic-links-to-tables2520585 -Node: windows-symbolic-links2524878 -Node: optimizing-memory2527107 -Node: memory-use2527414 -Node: large-page-support2533174 -Node: optimizing-network2538165 -Node: connection-threads2538496 -Node: dns2542144 -Node: thread-pool-plugin2544056 -Node: thread-pool-installation2546285 -Node: thread-pool-operation2550395 -Node: thread-pool-tuning2560008 -Node: optimize-benchmarking2565911 -Node: select-benchmarking2568066 -Node: mysql-benchmarks2569250 -Node: custom-benchmarks2571669 -Node: monitoring-performance-schema2573693 -Node: thread-information2574169 -Node: thread-commands2577229 -Node: general-thread-states2579817 -Node: delayed-insert-thread-states2594535 -Node: query-cache-thread-states2597658 -Node: master-thread-states2599054 -Node: slave-io-thread-states2600389 -Node: slave-sql-thread-states2603621 -Node: slave-connection-thread-states2604975 -Node: mysql-cluster-thread-states2605867 -Node: event-scheduler-thread-states2606953 -Node: optimization-internals2607905 -Node: range-optimization2609212 -Node: range-access-single-part2609890 -Node: range-access-multi-part2614366 -Node: index-merge-optimization2619650 -Node: index-merge-intersection2622511 -Node: index-merge-union2624166 -Node: index-merge-sort-union2625223 -Node: condition-pushdown-optimization2625987 -Node: is-null-optimization2630835 -Node: left-join-optimization2632990 -Node: nested-loop-joins2635974 -Node: nested-join-optimization2639690 -Node: outer-join-simplification2653420 -Node: order-by-optimization2659186 -Node: group-by-optimization2668341 -Node: loose-index-scan2669926 -Node: tight-index-scan2674636 -Node: distinct-optimization2676751 -Node: in-subquery-optimization2678270 -Node: language-structure2690563 -Node: literals2691311 -Node: string-literals2692095 -Ref: character-escape-sequences2694633 -Node: number-literals2699023 -Node: date-and-time-literals2699644 -Ref: date-and-time-standard-sql-literals2700378 -Ref: date-and-time-string-numeric-literals2700912 -Node: hexadecimal-literals2706875 -Node: boolean-literals2708497 -Node: bit-field-literals2708860 -Node: null-values2710436 -Node: identifiers2711062 -Node: identifier-qualifiers2716942 -Node: identifier-case-sensitivity2719096 -Node: identifier-mapping2726359 -Node: function-resolution2732879 -Node: reserved-words2743137 -Node: user-variables2750540 -Node: expressions2758644 -Node: comments2762612 -Node: globalization2765469 -Node: charset2766559 -Node: charset-general2769042 -Node: charset-mysql2771733 -Node: charset-syntax2777053 -Node: charset-server2778752 -Node: charset-database2780907 -Node: charset-table2783390 -Node: charset-column2785050 -Node: charset-literal2788396 -Node: charset-national2793161 -Node: charset-examples2794218 -Node: charset-compatibility2796513 -Node: charset-connection2796849 -Node: charset-applications2806422 -Node: charset-errors2812323 -Node: charset-collations2816420 -Node: charset-collation-names2817263 -Node: charset-collate2817752 -Node: charset-collate-precedence2819088 -Node: charset-collation-charset2819460 -Node: charset-collation-expressions2820130 -Node: charset-binary-collations2824330 -Node: charset-binary-op2830120 -Node: charset-collation-effect2832259 -Node: charset-collation-information-schema2835291 -Node: charset-repertoire2840270 -Node: charset-operations2845196 -Node: charset-result2845691 -Node: charset-convert2848687 -Node: charset-show2850173 -Node: charset-unicode2855219 -Node: charset-unicode-ucs22860392 -Node: charset-unicode-utf162861158 -Node: charset-unicode-utf322863762 -Node: charset-unicode-utf82865414 -Node: charset-unicode-utf8mb32866971 -Node: charset-unicode-utf8mb42868637 -Node: charset-unicode-upgrading2870421 -Node: charset-metadata2877723 -Node: charset-conversion2881904 -Node: charset-charsets2885976 -Node: charset-unicode-sets2890594 -Node: charset-we-sets2901169 -Node: charset-ce-sets2904915 -Node: charset-se-me-sets2906506 -Node: charset-baltic-sets2908108 -Node: charset-cyrillic-sets2908934 -Node: charset-asian-sets2910183 -Node: charset-cp9322912622 -Node: error-message-language2919168 -Node: adding-character-set2922430 -Node: character-arrays2929067 -Node: string-collating2932235 -Node: multi-byte-characters2933279 -Node: adding-collation2934150 -Node: charset-collation-implementations2937334 -Node: adding-collation-choosing-id2941424 -Node: adding-collation-simple-8bit2943522 -Node: adding-collation-unicode-uca2947348 -Node: ldml-collation-example2948853 -Node: ldml-rules2954771 -Node: charset-configuration2957594 -Node: time-zone-support2960891 -Node: time-zone-upgrades2968507 -Node: time-zone-leap-seconds2974032 -Node: locale-support2976109 -Node: data-types2983413 -Node: data-type-overview2985287 -Node: numeric-type-overview2985680 -Node: date-and-time-type-overview2996455 -Node: string-type-overview3000518 -Node: data-type-defaults3012010 -Node: numeric-types3015701 -Node: integer-types3017763 -Node: fixed-point-types3019618 -Node: floating-point-types3021879 -Node: bit-type3023795 -Node: numeric-type-attributes3024567 -Node: out-of-range-and-overflow3027572 -Node: date-and-time-types3032183 -Node: datetime3037394 -Node: timestamp3041210 -Node: time3051089 -Node: year3053454 -Node: fractional-seconds3055256 -Node: date-and-time-type-conversion3056101 -Node: two-digit-years3059391 -Node: string-types3060999 -Node: char3061823 -Node: binary-varbinary3067468 -Node: blob3071923 -Node: enum3078478 -Node: set3084960 -Node: storage-requirements3091018 -Node: choosing-types3103010 -Node: other-vendor-data-types3104215 -Node: functions3106830 -Node: func-op-summary-ref3110118 -Node: type-conversion3129713 -Node: non-typed-operators3138676 -Node: operator-precedence3141450 -Node: comparison-operators3143254 -Ref: operator_equal3146209 -Ref: operator_equal-to3146522 -Ref: operator_not-equal3146940 -Ref: operator_less-than-or-equal3147168 -Ref: operator_less-than3147264 -Ref: operator_greater-than-or-equal3147347 -Ref: operator_greater-than3147444 -Ref: operator_is3147530 -Ref: operator_is-not3147758 -Ref: operator_is-null3148007 -Ref: operator_is-not-null3149923 -Ref: operator_between3150089 -Ref: operator_not-between3151387 -Ref: function_coalesce3151485 -Ref: function_greatest3151760 -Ref: function_in3152231 -Ref: function_not-in3153812 -Ref: function_isnull3153900 -Ref: function_interval3154412 -Ref: function_least3154956 -Node: logical-operators3156496 -Ref: operator_not3157445 -Ref: operator_and3157972 -Ref: operator_or3158439 -Ref: operator_xor3159026 -Node: assignment-operators3159540 -Ref: operator_assign-value3160076 -Ref: operator_assign-equal3162131 -Node: control-flow-functions3163870 -Ref: operator_case3164326 -Ref: function_if3165881 -Ref: function_ifnull3167160 -Ref: function_nullif3168521 -Node: string-functions3168906 -Ref: function_ascii3174265 -Ref: function_bin3174702 -Ref: function_bit-length3174987 -Ref: function_char3175133 -Ref: function_char-length3177071 -Ref: function_character-length3177361 -Ref: function_concat3177453 -Ref: function_concat-ws3178433 -Ref: function_elt3179216 -Ref: function_export-set3179613 -Ref: function_field3180519 -Ref: function_find-in-set3181235 -Ref: function_format3181960 -Ref: function_hex3182891 -Ref: function_insert3183652 -Ref: function_instr3184386 -Ref: function_lcase3184882 -Ref: function_left3184946 -Ref: function_length3185150 -Ref: function_load-file3185490 -Ref: function_locate3186387 -Ref: function_lower3187064 -Ref: function_lpad3188080 -Ref: function_ltrim3188432 -Ref: function_make-set3188634 -Ref: function_mid3189319 -Ref: function_octet-length3189413 -Ref: function_ord3189492 -Ref: function_position3190002 -Ref: function_quote3190106 -Ref: function_repeat3190850 -Ref: function_replace3191138 -Ref: function_reverse3191506 -Ref: function_right3191708 -Ref: function_rpad3191954 -Ref: function_rtrim3192346 -Ref: function_soundex3192550 -Ref: operator_sounds-like3194113 -Ref: function_space3194207 -Ref: function_substr3194347 -Ref: function_substring3194505 -Ref: function_substring-index3195932 -Ref: function_trim3196625 -Ref: function_ucase3197334 -Ref: function_unhex3197398 -Ref: function_upper3199217 -Node: string-comparison-functions3199838 -Ref: operator_like3200606 -Ref: operator_not-like3205947 -Ref: function_strcmp3207013 -Node: regexp3208807 -Ref: operator_not-regexp3209918 -Ref: operator_regexp3210020 -Node: numeric-functions3223309 -Node: arithmetic-functions3226469 -Ref: operator_plus3228901 -Ref: operator_minus3228981 -Ref: operator_unary-minus3229065 -Ref: operator_times3229441 -Ref: operator_divide3229952 -Ref: operator_div3230310 -Ref: operator_mod3230947 -Node: mathematical-functions3231145 -Ref: function_abs3233870 -Ref: function_acos3234123 -Ref: function_asin3234462 -Ref: function_atan3235281 -Ref: function_atan23235521 -Ref: function_ceil3235928 -Ref: function_ceiling3235990 -Ref: function_conv3236380 -Ref: function_cos3237218 -Ref: function_cot3237354 -Ref: function_crc323237534 -Ref: function_degrees3237937 -Ref: function_exp3238154 -Ref: function_floor3238548 -Ref: function_ln3239419 -Ref: function_log3239819 -Ref: function_log23240668 -Ref: function_log103241013 -Ref: function_mod3241315 -Ref: function_oct3241947 -Ref: function_pi3242229 -Ref: function_pow3242559 -Ref: function_power3242751 -Ref: function_radians3242808 -Ref: function_rand3243016 -Ref: function_round3246456 -Ref: function_sign3248858 -Ref: function_sin3249170 -Ref: function_sqrt3249386 -Ref: function_tan3249649 -Ref: function_truncate3249878 -Node: date-and-time-functions3250583 -Ref: function_adddate3257421 -Ref: function_addtime3258178 -Ref: function_convert-tz3258590 -Ref: function_curdate3259606 -Ref: function_current-date3259930 -Ref: function_curtime3260042 -Ref: function_current-time3260426 -Ref: function_current-timestamp3260538 -Ref: function_date3260671 -Ref: function_datediff3260849 -Ref: function_date-add3261300 -Ref: function_date-format3268740 -Ref: function_date-sub3272411 -Ref: function_day3272498 -Ref: function_dayname3272564 -Ref: function_dayofmonth3272848 -Ref: function_dayofweek3273114 -Ref: function_dayofyear3273366 -Ref: function_extract3273536 -Ref: function_from-days3274172 -Ref: function_from-unixtime3274527 -Ref: function_get-format3275858 -Ref: function_hour3277711 -Ref: function_last-day3278104 -Ref: function_localtime3278615 -Ref: function_localtimestamp3278711 -Ref: function_makedate3278827 -Ref: function_maketime3279273 -Ref: function_microsecond3279476 -Ref: function_minute3279804 -Ref: function_month3279966 -Ref: function_monthname3280237 -Ref: function_now3280528 -Ref: function_period-add3282663 -Ref: function_period-diff3282936 -Ref: function_quarter3283231 -Ref: function_second3283398 -Ref: function_sec-to-time3283549 -Ref: function_str-to-date3284019 -Ref: function_subdate3286781 -Ref: function_subtime3287547 -Ref: function_sysdate3287992 -Ref: function_time3290182 -Ref: function_timediff3290692 -Ref: function_timestamp3291218 -Ref: function_timestampadd3291738 -Ref: function_timestampdiff3292622 -Ref: function_time-format3293637 -Ref: function_time-to-sec3294253 -Ref: function_to-days3294487 -Ref: function_to-seconds3296723 -Ref: function_unix-timestamp3299174 -Ref: function_utc-date3302035 -Ref: function_utc-time3302334 -Ref: function_utc-timestamp3302639 -Ref: function_week3303011 -Ref: function_weekday3305614 -Ref: function_weekofyear3305882 -Ref: function_year3306161 -Ref: function_yearweek3306349 -Node: mysql-calendar3306920 -Node: fulltext-search3308838 -Ref: function_match3309474 -Node: fulltext-natural-language3312756 -Node: fulltext-boolean3323681 -Node: fulltext-query-expansion3330805 -Node: fulltext-stopwords3333952 -Node: fulltext-restrictions3342520 -Node: fulltext-fine-tuning3344326 -Node: full-text-adding-collation3352071 -Node: cast-functions3356434 -Ref: operator_binary3356862 -Ref: function_cast3357853 -Ref: function_convert3358063 -Node: xml-functions3364081 -Ref: function_extractvalue3370281 -Ref: function_updatexml3376147 -Node: bit-functions3396099 -Ref: operator_bitwise-or3396773 -Ref: operator_bitwise-and3396908 -Ref: operator_bitwise-xor3397044 -Ref: operator_left-shift3397286 -Ref: operator_right-shift3397647 -Ref: operator_bitwise-invert3398009 -Ref: function_bit-count3398147 -Node: encryption-functions3398317 -Ref: function_aes-decrypt3403216 -Ref: function_aes-encrypt3403427 -Ref: function_compress3404918 -Ref: function_decode3406406 -Ref: function_des-decrypt3406581 -Ref: function_des-encrypt3407487 -Ref: function_encode3409552 -Ref: function_encrypt3409864 -Ref: function_md53410728 -Ref: function_old-password3411566 -Ref: function_password3412173 -Ref: function_sha13413626 -Ref: function_sha23414695 -Ref: function_uncompress3415980 -Ref: function_uncompressed-length3416487 -Node: information-functions3416712 -Ref: function_benchmark3418342 -Ref: function_charset3420785 -Ref: function_coercibility3421091 -Ref: function_collation3422061 -Ref: function_connection-id3422307 -Ref: function_current-user3422564 -Ref: function_database3423933 -Ref: function_found-rows3424457 -Ref: function_last-insert-id3428501 -Ref: function_row-count3435947 -Ref: function_schema3439088 -Ref: function_session-user3439157 -Ref: function_system-user3439231 -Ref: function_user3439303 -Ref: function_version3439836 -Node: miscellaneous-functions3440404 -Ref: function_default3441867 -Ref: function_get-lock3442268 -Ref: function_inet-aton3445207 -Ref: function_inet-ntoa3446259 -Ref: function_is-free-lock3446738 -Ref: function_is-used-lock3447211 -Ref: function_master-pos-wait3447629 -Ref: function_name-const3448817 -Ref: function_release-lock3449492 -Ref: function_sleep3450222 -Ref: function_uuid3450663 -Ref: function_uuid-short3452731 -Ref: function_values3453794 -Node: group-by-functions-and-modifiers3454664 -Node: group-by-functions3455133 -Ref: function_avg3457996 -Ref: function_bit-and3458362 -Ref: function_bit-or3458717 -Ref: function_bit-xor3458945 -Ref: function_count3459175 -Ref: function_count-distinct3460423 -Ref: function_group-concat3460938 -Ref: function_max3463455 -Ref: function_min3464331 -Ref: function_std3465207 -Ref: function_stddev3465460 -Ref: function_stddev-pop3465735 -Ref: function_stddev-samp3466012 -Ref: function_sum3466199 -Ref: function_var-pop3466462 -Ref: function_var-samp3466806 -Ref: function_variance3467002 -Node: group-by-modifiers3467250 -Node: group-by-hidden-columns3475209 -Node: spatial-extensions3479296 -Node: gis-introduction3481188 -Node: opengis-geometry-model3483493 -Node: gis-geometry-class-hierarchy3484773 -Node: gis-class-geometry3487419 -Node: gis-class-point3490974 -Node: gis-class-curve3491607 -Node: gis-class-linestring3492454 -Node: gis-class-surface3493141 -Node: gis-class-polygon3493864 -Node: gis-class-geometrycollection3495091 -Node: gis-class-multipoint3495924 -Node: gis-class-multicurve3496699 -Node: gis-class-multilinestring3497661 -Node: gis-class-multisurface3498100 -Node: gis-class-multipolygon3498682 -Node: supported-spatial-data-formats3500157 -Node: gis-wkt-format3500841 -Node: gis-wkb-format3503260 -Node: creating-a-spatially-enabled-mysql-database3505020 -Node: mysql-spatial-datatypes3505758 -Node: creating-spatial-values3506746 -Node: gis-wkt-functions3507424 -Ref: function_geomcollfromtext3508076 -Ref: function_geomfromtext3508251 -Ref: function_linefromtext3508407 -Ref: function_mlinefromtext3508557 -Ref: function_mpointfromtext3508718 -Ref: function_mpolyfromtext3508870 -Ref: function_pointfromtext3509025 -Ref: function_polyfromtext3509132 -Ref: function_bdmpolyfromtext3509554 -Ref: function_bdpolyfromtext3509750 -Node: gis-wkb-functions3509935 -Ref: function_geomcollfromwkb3510665 -Ref: function_geomfromwkb3510838 -Ref: function_linefromwkb3510992 -Ref: function_mlinefromwkb3511140 -Ref: function_mpointfromwkb3511299 -Ref: function_mpolyfromwkb3511449 -Ref: function_pointfromwkb3511602 -Ref: function_polyfromwkb3511708 -Ref: function_bdmpolyfromwkb3512116 -Ref: function_bdpolyfromwkb3512311 -Node: gis-mysql-specific-functions3512495 -Ref: function_geometrycollection3513291 -Ref: function_linestring3513371 -Ref: function_multilinestring3513576 -Ref: function_multipoint3513712 -Ref: function_multipolygon3513828 -Ref: function_point3513964 -Ref: function_polygon3514034 -Node: creating-spatial-columns3514297 -Node: populating-spatial-columns3515265 -Node: fetching-spatial-data3518213 -Node: spatial-analysis-functions3519138 -Node: functions-to-convert-geometries-between-formats3520569 -Ref: function_asbinary3520975 -Ref: function_astext3521162 -Node: geometry-property-functions3522187 -Node: general-geometry-property-functions3523277 -Ref: function_dimension3523635 -Ref: function_envelope3524209 -Ref: function_geometrytype3524924 -Ref: function_srid3525474 -Ref: function_boundary3526219 -Ref: function_isempty3526345 -Ref: function_issimple3526555 -Node: point-property-functions3527183 -Ref: function_x3527512 -Ref: function_y3527851 -Node: linestring-property-functions3528185 -Ref: function_endpoint3528590 -Ref: function_glength3529060 -Ref: function_numpoints3529615 -Ref: function_pointn3530036 -Ref: function_startpoint3530528 -Ref: function_isring3531111 -Node: multilinestring-property-functions3531387 -Ref: function_isclosed3532328 -Node: polygon-property-functions3532917 -Ref: function_area3533212 -Ref: function_exteriorring3533692 -Ref: function_interiorringn3534254 -Ref: function_numinteriorrings3534880 -Node: multipolygon-property-functions3535405 -Ref: function_centroid3536345 -Node: geometrycollection-property-functions3536647 -Ref: function_geometryn3536943 -Ref: function_numgeometries3537497 -Node: functions-that-create-new-geometries-from-existing-ones3537977 -Node: functions-that-produce-new-geometries3538605 -Node: spatial-operators3539277 -Ref: function_buffer3539668 -Ref: function_convexhull3539829 -Ref: function_difference3539939 -Ref: function_intersection3540071 -Ref: function_symdifference3540208 -Ref: function_union3540353 -Node: functions-for-testing-spatial-relations-between-geometric-objects3540470 -Node: relations-on-geometry-mbr3541191 -Ref: function_mbrcontains3541791 -Ref: function_mbrdisjoint3542497 -Ref: function_mbrequal3542668 -Ref: function_mbrintersects3542817 -Ref: function_mbroverlaps3542968 -Ref: function_mbrtouches3543312 -Ref: function_mbrwithin3543660 -Node: functions-that-test-spatial-relationships-between-geometries3544359 -Ref: function_contains3545088 -Ref: function_crosses3545238 -Ref: function_disjoint3545865 -Ref: function_equals3545991 -Ref: function_intersects3546084 -Ref: function_overlaps3546180 -Ref: function_touches3546469 -Ref: function_within3546763 -Node: optimizing-spatial-analysis3546908 -Node: creating-spatial-indexes3548507 -Node: using-a-spatial-index3551034 -Node: mysql-gis-conformance-and-compatibility3557697 -Node: precision-math3558698 -Node: precision-math-numbers3561167 -Node: precision-math-decimal-changes3562793 -Node: precision-math-expressions3566648 -Node: precision-math-rounding3571430 -Node: precision-math-examples3573420 -Node: sql-syntax3582176 -Node: sql-syntax-data-definition3582930 -Node: alter-database3585042 -Node: alter-event3588528 -Node: alter-logfile-group3593223 -Node: alter-function3596946 -Node: alter-procedure3598080 -Node: alter-server3599185 -Node: alter-table3599894 -Node: alter-table-partition-operations3624946 -Node: alter-table-online-operations3637639 -Ref: alter-table-online-limitations3642728 -Node: alter-table-examples3648575 -Node: alter-tablespace3655024 -Node: alter-view3658498 -Node: create-database3659461 -Node: create-event3661587 -Node: create-function3677234 -Node: create-index3677751 -Node: create-logfile-group3688778 -Node: create-procedure3692671 -Node: create-server3710503 -Node: create-table3713165 -Node: create-table-select3774232 -Node: silent-column-changes3784369 -Node: create-tablespace3787436 -Node: create-trigger3793813 -Node: create-view3803115 -Node: drop-database3816766 -Node: drop-event3818704 -Node: drop-function3819374 -Node: drop-index3819857 -Node: drop-logfile-group3821939 -Node: drop-procedure3822916 -Node: drop-server3823978 -Node: drop-table3824611 -Node: drop-tablespace3826527 -Node: drop-trigger3827521 -Node: drop-view3828688 -Node: rename-table3829522 -Node: truncate-table3831882 -Node: sql-syntax-data-manipulation3835445 -Node: call3836213 -Node: delete3842842 -Node: do3854797 -Node: handler3855297 -Node: insert3860814 -Node: insert-select3875048 -Node: insert-delayed3878588 -Node: insert-on-duplicate3887560 -Node: load-data3890923 -Node: load-xml3920860 -Node: replace3936204 -Node: select3940381 -Node: select-into3959333 -Node: join3965854 -Node: index-hints3985572 -Node: union3991552 -Node: subqueries3997192 -Node: scalar-subqueries4000982 -Node: comparisons-using-subqueries4003313 -Node: any-in-some-subqueries4004859 -Node: all-subqueries4006975 -Node: row-subqueries4008680 -Node: exists-and-not-exists-subqueries4011180 -Node: correlated-subqueries4013260 -Node: from-clause-subqueries4015400 -Node: subquery-errors4021858 -Node: optimizing-subqueries4024655 -Node: rewriting-subqueries4028760 -Node: update4030386 -Node: sql-syntax-transactions4037208 -Node: commit4038285 -Node: cannot-roll-back4045948 -Node: implicit-commit4046676 -Node: savepoint4052751 -Node: lock-tables4055036 -Node: lock-tables-and-transactions4065893 -Node: lock-tables-and-triggers4068978 -Node: lock-tables-restrictions4071169 -Node: set-transaction4075615 -Ref: isolevel_read-uncommitted4078356 -Ref: isolevel_read-committed4078699 -Ref: isolevel_repeatable-read4080430 -Ref: isolevel_serializable4081647 -Node: xa4082292 -Node: xa-statements4088032 -Node: xa-states4092264 -Node: sql-syntax-replication4095242 -Node: replication-master-sql4095794 -Node: purge-binary-logs4096785 -Node: reset-master4099837 -Node: set-sql-log-bin4101930 -Node: replication-slave-sql4102341 -Node: change-master-to4103286 -Node: master-pos-wait4115186 -Node: reset-slave4115677 -Node: set-global-sql-slave-skip-counter4117418 -Node: start-slave4118864 -Node: stop-slave4122935 -Node: sql-syntax-prepared-statements4123960 -Node: prepare4132530 -Node: execute4134072 -Node: deallocate-prepare4135030 -Node: statement-repreparation4135607 -Node: sql-syntax-compound-statements4137809 -Node: begin-end4138990 -Node: statement-labels4140792 -Node: declare4142460 -Node: stored-program-variables4143248 -Node: declare-local-variable4144596 -Node: local-variable-scope4145783 -Node: flow-control-statements4148283 -Node: case-statement4149606 -Node: if-statement4152097 -Node: iterate-statement4154575 -Node: leave-statement4155057 -Node: loop-statement4155691 -Node: repeat-statement4156874 -Node: return4158094 -Node: while-statement4158734 -Node: cursors4159525 -Node: close4161058 -Node: declare-cursor4161495 -Node: fetch4162604 -Node: open4163434 -Node: condition-handling4163669 -Node: declare-condition4165015 -Node: declare-handler4167147 -Node: resignal4174548 -Node: resignal-alone4178143 -Node: resignal-with-new-signal4180560 -Node: resignal-with-condition4182141 -Node: resignal-handler4184622 -Node: signal4186059 -Node: signal-condition-information-items4194367 -Node: signal-effects4197643 -Node: sql-syntax-server-administration4199686 -Node: account-management-sql4200282 -Node: create-user4201414 -Node: drop-user4205275 -Node: grant4206742 -Ref: grant-privileges4210049 -Ref: grant-global-privileges4215293 -Ref: grant-database-privileges4215905 -Ref: grant-table-privileges4216699 -Ref: grant-column-privileges4217388 -Ref: grant-routine-privileges4217876 -Ref: grant-proxy-privileges4218643 -Ref: grant-accounts-passwords4220887 -Ref: grant-other-characteristics4225963 -Ref: grant-mysql-vs-standard-sql4234167 -Node: rename-user4236029 -Node: revoke4237385 -Node: set-password4239670 -Node: table-maintenance-sql4242491 -Node: analyze-table4242993 -Node: check-table4245053 -Node: checksum-table4252963 -Node: optimize-table4254838 -Node: repair-table4259360 -Node: plugin-sql4265425 -Node: create-function-udf4265923 -Node: drop-function-udf4268869 -Node: install-plugin4269848 -Node: uninstall-plugin4274526 -Node: set-option4276295 -Node: show4286623 -Node: show-authors4291833 -Node: show-binary-logs4292185 -Node: show-binlog-events4292938 -Node: show-character-set4294377 -Node: show-collation4295674 -Node: show-columns4298516 -Node: show-contributors4303210 -Node: show-create-database4303651 -Node: show-create-event4304775 -Node: show-create-function4306739 -Node: show-create-procedure4307119 -Node: show-create-table4309213 -Node: show-create-trigger4310089 -Node: show-create-view4311102 -Node: show-databases4313791 -Node: show-engine4315008 -Ref: show-engine-ndb-status4320681 -Node: show-engines4327466 -Node: show-errors4331640 -Node: show-events4332826 -Node: show-function-code4337574 -Node: show-function-status4337933 -Node: show-grants4338333 -Node: show-index4340335 -Node: show-master-status4342981 -Node: show-open-tables4343721 -Node: show-plugins4345451 -Node: show-privileges4347895 -Node: show-procedure-code4349338 -Node: show-procedure-status4351697 -Node: show-processlist4353542 -Node: show-profile4358606 -Node: show-profiles4359059 -Node: show-relaylog-events4365617 -Node: show-slave-hosts4366743 -Node: show-slave-status4368291 -Node: show-status4382188 -Node: show-table-status4385374 -Node: show-tables4390596 -Node: show-triggers4391621 -Node: show-variables4394475 -Node: show-warnings4400760 -Node: other-administrative-sql4406497 -Node: binlog4407002 -Node: cache-index4407595 -Node: flush4412155 -Node: kill4424028 -Node: load-index4427075 -Node: reset4430337 -Node: sql-syntax-utility4431266 -Node: describe4431637 -Node: explain4433737 -Node: help4435176 -Node: use4440942 -Node: storage-engines4441947 -Node: storage-engine-setting4454741 -Node: pluggable-storage-overview4457737 -Ref: figure-storage-engine-architecture4458829 -Node: pluggable-storage4460149 -Node: pluggable-storage-common-layer4461743 -Node: innodb-storage-engine4465086 -Node: innodb-default-se4473709 -Node: innodb-configuration4484954 -Node: innodb-multiple-tablespaces4498595 -Node: innodb-raw-devices4504727 -Node: innodb-init4507027 -Node: error-creating-innodb4510363 -Node: innodb-parameters4512283 -Ref: option_mysqld_ignore-builtin-innodb4523464 -Ref: option_mysqld_innodb4524770 -Ref: option_mysqld_innodb-status-file4525327 -Ref: sysvar_ignore_builtin_innodb4526465 -Ref: sysvar_innodb_adaptive_flushing4526803 -Ref: sysvar_innodb_adaptive_hash_index4527785 -Ref: sysvar_innodb_additional_mem_pool_size4528741 -Ref: sysvar_innodb_autoextend_increment4530095 -Ref: sysvar_innodb_autoinc_lock_mode4531400 -Ref: sysvar_innodb_buffer_pool_instances4532559 -Ref: sysvar_innodb_buffer_pool_size4534464 -Ref: sysvar_innodb_change_buffering4536778 -Ref: sysvar_innodb_checksums4538957 -Ref: sysvar_innodb_commit_concurrency4539996 -Ref: sysvar_innodb_concurrency_tickets4541146 -Ref: sysvar_innodb_data_file_path4542651 -Ref: sysvar_innodb_data_home_dir4544110 -Ref: sysvar_innodb_doublewrite4545187 -Ref: sysvar_innodb_fast_shutdown4546177 -Ref: sysvar_innodb_file_format4548264 -Ref: sysvar_innodb_file_format_check4549985 -Ref: sysvar_innodb_file_format_max4552225 -Ref: sysvar_innodb_file_per_table4553428 -Ref: sysvar_innodb_flush_log_at_trx_commit4555050 -Ref: sysvar_innodb_flush_method4558228 -Ref: sysvar_innodb_force_recovery4561057 -Ref: sysvar_innodb_io_capacity4562489 -Ref: sysvar_innodb_large_prefix4566205 -Ref: sysvar_innodb_lock_wait_timeout4568102 -Ref: sysvar_innodb_locks_unsafe_for_binlog4570441 -Ref: sysvar_innodb_log_buffer_size4578529 -Ref: sysvar_innodb_log_file_size4579710 -Ref: sysvar_innodb_log_files_in_group4581004 -Ref: sysvar_innodb_log_group_home_dir4581965 -Ref: sysvar_innodb_max_dirty_pages_pct4582991 -Ref: sysvar_innodb_max_purge_lag4584051 -Ref: sysvar_innodb_mirrored_log_groups4586464 -Ref: sysvar_innodb_old_blocks_pct4586607 -Ref: sysvar_innodb_old_blocks_time4587553 -Ref: sysvar_innodb_open_files4588968 -Ref: sysvar_innodb_purge_batch_size4590243 -Ref: sysvar_innodb_purge_threads4591401 -Ref: sysvar_innodb_read_ahead_threshold4592754 -Ref: sysvar_innodb_read_io_threads4594078 -Ref: sysvar_innodb_replication_delay4594962 -Ref: sysvar_innodb_rollback_on_timeout4595876 -Ref: sysvar_innodb_rollback_segments4596892 -Ref: sysvar_innodb_spin_wait_delay4598074 -Ref: sysvar_innodb_stats_method4598951 -Ref: sysvar_innodb_stats_on_metadata4600496 -Ref: sysvar_innodb_stats_sample_pages4602034 -Ref: sysvar_innodb_strict_mode4603120 -Ref: sysvar_innodb_support_xa4604100 -Ref: sysvar_innodb_sync_spin_loops4606078 -Ref: sysvar_innodb_table_locks4607008 -Ref: sysvar_innodb_thread_concurrency4608478 -Ref: sysvar_innodb_thread_sleep_delay4610192 -Ref: sysvar_innodb_use_native_aio4611073 -Ref: sysvar_innodb_use_sys_malloc4612171 -Ref: sysvar_innodb_version4613037 -Ref: sysvar_innodb_write_io_threads4613126 -Node: using-innodb-tables4615822 -Node: innodb-transactions-with-different-apis4617801 -Node: converting-tables-to-innodb4620014 -Node: innodb-auto-increment-handling4623065 -Node: innodb-auto-increment-traditional4623962 -Node: innodb-auto-increment-configurable4628170 -Node: innodb-foreign-key-constraints4646184 -Node: innodb-and-mysql-replication4662347 -Node: innodb-data-log-reconfiguration4666888 -Node: innodb-backup4670818 -Node: innodb-recovery4677388 -Node: forcing-innodb-recovery4678777 -Node: innodb-checkpoints4682454 -Node: innodb-migration4684623 -Node: innodb-transaction-model4686253 -Node: innodb-lock-modes4690733 -Node: innodb-consistent-read4695833 -Node: innodb-locking-reads4700737 -Node: innodb-record-level-locks4705954 -Node: innodb-next-key-locking4710616 -Node: innodb-locks-set4713923 -Node: innodb-implicit-commit4723858 -Node: innodb-deadlock-detection4724708 -Node: innodb-deadlocks4726276 -Node: innodb-multi-versioning4729820 -Node: innodb-table-and-index4733465 -Node: innodb-index-types4734540 -Node: innodb-physical-structure4737329 -Node: innodb-insert-buffering4738702 -Node: innodb-adaptive-hash4741194 -Node: innodb-physical-record4742413 -Node: innodb-disk-management4748051 -Node: innodb-disk-io4748983 -Node: innodb-file-space4751269 -Node: innodb-file-defragmenting4755569 -Node: innodb-error-handling4757257 -Node: innodb-error-codes4760308 -Node: operating-system-error-codes4762342 -Ref: operating-system-error-codes-linux4762678 -Ref: operating-system-error-codes-windows4764350 -Node: innodb-tuning-troubleshooting4768251 -Node: innodb-tuning4768827 -Node: innodb-monitors4769253 -Node: innodb-standard-monitor4775131 -Node: innodb-tablespace-monitor4788844 -Node: innodb-table-monitor4794664 -Node: innodb-troubleshooting4804043 -Node: innodb-troubleshooting-datadict4805950 -Node: innodb-restrictions4810491 -Node: innodb-5-54821833 -Node: innodb-introduction4823032 -Node: innodb-introduction-features4824005 -Node: innodb-introduction-obtaining4826617 -Node: innodb-introduction-version4827517 -Node: innodb-introduction-restrictions4829177 -Node: innodb-create-index4832083 -Node: innodb-create-index-overview4833087 -Node: innodb-create-index-examples4835092 -Node: innodb-create-index-implementation4837886 -Node: innodb-create-index-concurrency4839635 -Node: innodb-create-index-recovery4842057 -Node: innodb-create-index-limitations4844253 -Node: innodb-compression4847192 -Node: innodb-compression-background4847958 -Node: innodb-compression-usage4850498 -Node: innodb-compression-enabling4852701 -Node: innodb-compression-syntax-warnings4856384 -Ref: innodb-compression-create-and-alter-options-table4857607 -Ref: innodb-compression-create-and-alter-errors-table4860274 -Node: innodb-compression-tuning4862552 -Ref: innodb-compression-tuning-when4863348 -Ref: innodb-compression-tuning-when-data4863887 -Ref: innodb-compression-application4866559 -Ref: innodb-compression-in-database4866892 -Ref: innodb-compression-in-application4867480 -Ref: innodb-compression-hybrid4867963 -Ref: innodb-compression-tuning-when-workload4868408 -Ref: innodb-compression-tuning-when-config4870149 -Ref: innodb-compression-tuning-when-size4871130 -Ref: innodb-compression-tuning-monitoring4871975 -Node: innodb-compression-internals4875024 -Ref: innodb-compression-internals-algorithms4875446 -Ref: innodb-compression-internals-storage4877149 -Ref: innodb-compression-internals-storage-btree4878198 -Ref: innodb-compression-internals-storage-blobs4880672 -Ref: innodb-compression-internals-pool4883476 -Ref: innodb-compression-internals-log4885624 -Node: innodb-file-format4886713 -Ref: innodb-file-format-named4888071 -Node: innodb-file-format-enabling4888752 -Node: innodb-file-format-compatibility4889746 -Node: innodb-file-format-compatibility-checking4895025 -Ref: innodb-file-format-compatibility-table4899771 -Node: innodb-file-format-compatibility-checking-table-access4905819 -Node: innodb-file-format-identifying4908797 -Node: innodb-file-format-downgrading4910931 -Node: innodb-file-format-future4911620 -Node: innodb-row-format4912657 -Node: innodb-row-format-overview4913601 -Node: innodb-row-format-specification4915712 -Node: innodb-row-format-dynamic4916123 -Node: innodb-row-format-antelope4917816 -Node: innodb-information-schema4919329 -Node: innodb-information-schema-compression-tables4921111 -Node: innodb-information-schema-innodb_cmp4922067 -Node: innodb-information-schema-innodb_cmpmem4923344 -Node: innodb-information-schema-examples-compression-sect4925616 -Ref: innodb-information-schema-examples-compression4925911 -Ref: innodb-information-schema-sample-innodb_cmp4926489 -Ref: innodb-information-schema-sample-innodb_cmpmem4928724 -Node: innodb-information-schema-transactions4930099 -Node: innodb-information-schema-innodb_trx4931025 -Node: innodb-information-schema-innodb_locks4931597 -Node: innodb-information-schema-innodb_lock_waits4932977 -Node: innodb-information-schema-examples4934052 -Ref: innodb-information-schema-examples-simple-blocking4934328 -Ref: innodb-information-schema-examples-simple-blocking-trx4938162 -Ref: innodb-information-schema-examples-simple-blocking-locks4939237 -Ref: innodb-information-schema-examples-simple-blocking-waits4940027 -Ref: innodb-information-schema-sample-locks4940220 -Ref: innodb-information-schema-sample-processlist4942024 -Ref: innodb-information-schema-sample-innodb_trx4944120 -Ref: innodb-information-schema-sample-innodb_lock_waits4947556 -Ref: innodb-information-schema-sample-innodb_locks4948138 -Node: innodb-information-schema-notes4952886 -Node: innodb-information-schema-understanding_innodb_locking4953481 -Node: innodb-information-schema-rapidly_changing_internal_data4955434 -Node: innodb-information-schema-note_inconsistency4957733 -Node: innodb-performance4959360 -Node: innodb-performance-overview4961805 -Node: innodb-performance-latching4963107 -Node: innodb-performance-use_sys_malloc4967076 -Node: innodb-performance-change_buffering4970385 -Node: innodb-performance-adaptive_hash_index4973658 -Node: innodb-performance-thread_concurrency4975876 -Ref: innodb-thread-concurrency-table4978070 -Node: innodb-performance-read_ahead4980794 -Node: innodb-performance-multiple_io_threads4983945 -Node: innodb-performance-aio-linux4986172 -Node: innodb-performance-group_commit4987600 -Node: innodb-performance-thread_io_rate4989616 -Node: innodb-performance-adaptive_flushing4991749 -Node: innodb-performance-pause_instruction4994873 -Node: innodb-performance-spin_lock_polling4996310 -Node: innodb-performance-midpoint_insertion4998362 -Node: innodb-performance-recovery5004782 -Node: innodb-performance-schema5005764 -Node: innodb-multiple-buffer-pools5009391 -Node: innodb-multiple-rollback-segments5011227 -Node: innodb-improved-purge-scheduling5013152 -Node: innodb-improved-log-sys-mutex5014658 -Node: innodb-separate-flush-list-mutex5015971 -Node: innodb-other-changes5016814 -Node: innodb-other-changes-file-formats5018450 -Node: innodb-other-changes-dynamic-parameters5020045 -Node: innodb-other-changes-innodb_file_per_table5021061 -Node: innodb-other-changes-innodb_stats_on_metadata5023646 -Node: innodb-other-changes-innodb_lock_wait_timeout5024553 -Node: innodb-other-changes-innodb_adaptive_hash_index5026022 -Node: innodb-other-changes-truncate5027229 -Node: innodb-other-changes-strict-mode5029216 -Node: innodb-other-changes-statistics-estimation5031892 -Node: innodb-other-changes-drop-index5035995 -Node: innodb-other-changes-show-mutex5038490 -Node: innodb-other-changes-readahead-counters5039859 -Node: innodb-installation5041643 -Node: innodb-upgrading5043649 -Node: innodb-downgrading5044199 -Node: innodb-downgrading-overview5044457 -Node: innodb-changes5044997 -Node: innodb-changes-1x5045430 -Node: innodb-changes-115045804 -Node: innodb-changes-10x5049027 -Node: innodb-contrib5049597 -Node: innodb-contrib-google5050221 -Node: innodb-contrib-percona5053470 -Node: innodb-contrib-sun_microsystems5056077 -Node: innodb-parameter-changes5058640 -Node: innodb-parameters-new5059056 -Ref: innodb-new-parameter-summary-table5059437 -Node: innodb-parameters-deprecated5068645 -Node: innodb-parameters-new-defaults5069299 -Ref: innodb-parameters-new-defaults-table5069633 -Node: myisam-storage-engine5070052 -Node: myisam-start5079931 -Node: key-space5085581 -Node: myisam-table-formats5086712 -Node: static-format5087908 -Node: dynamic-format5090313 -Node: compressed-format5093529 -Node: myisam-table-problems5095474 -Node: corrupted-myisam-tables5096034 -Node: myisam-table-close5098169 -Node: memory-storage-engine5100851 -Ref: memory-compared-cluster5103369 -Node: csv-storage-engine5115038 -Node: se-csv-repair5117104 -Node: se-csv-limitations5120088 -Node: archive-storage-engine5120567 -Node: blackhole-storage-engine5126742 -Node: merge-storage-engine5132883 -Node: merge-table-advantages5139965 -Node: merge-table-problems5143747 -Node: federated-storage-engine5151076 -Node: federated-description5152295 -Ref: figure-se-federated-structure5153963 -Node: federated-create5155239 -Node: federated-create-connection5157417 -Node: federated-create-server5160024 -Node: federated-usagenotes5163287 -Node: federated-storage-engine-resources5168342 -Node: example-storage-engine5168762 -Node: storage-engines-other5170110 -Node: ha-overview5172976 -Ref: figure_ha-cost-vs-nines5175981 -Ref: figure_ha-application-architecture-mapping5176283 -Ref: ha-availability-comparison5176461 -Node: ha-ovm-template5180800 -Node: ha-drbd5183292 -Ref: ha-drbd-overview5184846 -Node: ha-drbd-install5185865 -Node: ha-drbd-install-os5189771 -Node: ha-drbd-install-drbd5196887 -Node: ha-drbd-install-drbd-primary5199776 -Node: ha-drbd-install-drbd-secondary5205021 -Node: ha-drbd-install-drbd-using5207120 -Node: ha-drbd-install-drbd-management5209501 -Node: ha-drbd-install-drbd-othercfg5211257 -Node: ha-drbd-install-mysql5213048 -Node: ha-drbd-performance5215561 -Ref: ha-drbd-performance-sepinterface5216506 -Node: ha-drbd-performance-bonded5217095 -Node: ha-drbd-performance-syncrate5222927 -Node: ha-heartbeat5226499 -Ref: ha-heartbeat-overview5228614 -Node: ha-heartbeat-config5229834 -Node: ha-heartbeat-drbd5234325 -Node: ha-heartbeat-drbd-dopd5238827 -Node: ha-heartbeat-errors5241453 -Node: ha-vm5242760 -Node: ha-vm-aws-setup5246164 -Node: ha-vm-aws-instance5250115 -Node: ha-vm-aws-deploy5252075 -Node: ha-zfs-replication5256251 -Node: ha-zfs-config5261078 -Node: ha-zfs-mysql5264440 -Node: ha-zfs-mysql-recovery5266115 -Node: ha-memcached5267920 -Ref: ha-memcached-fig-overview5270005 -Node: ha-memcached-install5272219 -Node: ha-memcached-using5275361 -Node: ha-memcached-using-deployment5285604 -Node: ha-memcached-using-namespaces5287928 -Node: ha-memcached-using-expiry5289362 -Node: ha-memcached-using-hashtypes5291615 -Ref: ha-memcached-using-hashtypes-fig-selection5293581 -Ref: ha-memcached-using-hashtypes-fig-addselect5296765 -Node: ha-memcached-using-dtrace5299999 -Node: ha-memcached-using-memory5308123 -Ref: ha-memcached-fig-slabs5310364 -Node: ha-memcached-using-threads5312245 -Node: ha-memcached-using-logs5314050 -Node: ha-memcached-interfaces5323281 -Ref: ha-memcached-fig-basicflow5325188 -Node: ha-memcached-interfaces-libmemcached5328163 -Node: ha-memcached-interfaces-libmemcached-base5332224 -Node: ha-memcached-interfaces-libmemcached-servers5333396 -Node: ha-memcached-interfaces-libmemcached-set5336735 -Node: ha-memcached-interfaces-libmemcached-get5341815 -Node: ha-memcached-interfaces-libmemcached-behaviors5346407 -Node: ha-memcached-interfaces-libmemcached-utilities5350449 -Node: ha-memcached-interfaces-perl5352296 -Node: ha-memcached-interfaces-python5359015 -Node: ha-memcached-interfaces-php5365138 -Node: ha-memcached-interfaces-ruby5372453 -Node: ha-memcached-interfaces-java5375246 -Node: ha-memcached-interfaces-mysqludf5379031 -Node: ha-memcached-interfaces-protocol5385893 -Node: ha-memcached-interfaces-protocol-tcp5386370 -Ref: ha-memcached-interfaces-protocol-responses5395653 -Node: ha-memcached-stats5397155 -Node: ha-memcached-stats-general5403014 -Node: ha-memcached-stats-slabs5409061 -Node: ha-memcached-stats-items5413251 -Node: ha-memcached-stats-sizes5415774 -Node: ha-memcached-stats-detail5417099 -Node: ha-memcached-stats-memcached-tool5419290 -Node: ha-memcached-faq5425159 -Ref: qandaitem-15-6-5-1-15429329 -Ref: qandaitem-15-6-5-1-25429666 -Ref: qandaitem-15-6-5-1-35429893 -Ref: qandaitem-15-6-5-1-45430088 -Ref: qandaitem-15-6-5-1-55430727 -Ref: qandaitem-15-6-5-1-65430997 -Ref: qandaitem-15-6-5-1-75431707 -Ref: qandaitem-15-6-5-1-85432513 -Ref: qandaitem-15-6-5-1-95433181 -Ref: qandaitem-15-6-5-1-105433459 -Ref: qandaitem-15-6-5-1-115434204 -Ref: qandaitem-15-6-5-1-125434519 -Ref: qandaitem-15-6-5-1-135434896 -Ref: qandaitem-15-6-5-1-145435232 -Ref: qandaitem-15-6-5-1-155435593 -Ref: qandaitem-15-6-5-1-165436584 -Ref: qandaitem-15-6-5-1-175437157 -Ref: qandaitem-15-6-5-1-185437646 -Ref: qandaitem-15-6-5-1-195438224 -Ref: qandaitem-15-6-5-1-205438286 -Ref: qandaitem-15-6-5-1-215438893 -Ref: qandaitem-15-6-5-1-225439643 -Ref: qandaitem-15-6-5-1-235439883 -Ref: qandaitem-15-6-5-1-245440451 -Ref: qandaitem-15-6-5-1-255441450 -Ref: qandaitem-15-6-5-1-265442001 -Ref: qandaitem-15-6-5-1-275442700 -Ref: qandaitem-15-6-5-1-285442929 -Ref: qandaitem-15-6-5-1-295444513 -Ref: qandaitem-15-6-5-1-305444845 -Node: mysql-proxy5446487 -Node: mysql-proxy-platforms5449074 -Node: mysql-proxy-install5450114 -Node: mysql-proxy-install-binary5451212 -Node: mysql-proxy-install-source5453070 -Node: mysql-proxy-install-cvs5454645 -Node: mysql-proxy-configuration-windows5456512 -Node: mysql-proxy-configuration5458639 -Ref: option_mysql-proxy_help5465599 -Ref: option_mysql-proxy_help-admin5465852 -Ref: option_mysql-proxy_help-all5466084 -Ref: option_mysql-proxy_help-proxy5466296 -Ref: option_mysql-proxy_admin-address5466528 -Ref: option_mysql-proxy_admin-lua-script5467090 -Ref: option_mysql-proxy_admin-password5467656 -Ref: option_mysql-proxy_admin-username5468315 -Ref: option_mysql-proxy_basedir5469016 -Ref: option_mysql-proxy_daemon5469715 -Ref: option_mysql-proxy_defaults-file5469929 -Ref: option_mysql-proxy_event-threads5470229 -Ref: option_mysql-proxy_keepalive5470742 -Ref: option_mysql-proxy_log-backtrace-on-crash5471327 -Ref: option_mysql-proxy_log-file5471672 -Ref: option_mysql-proxy_log-level5472259 -Ref: option_mysql-proxy_log-use-syslog5473071 -Ref: option_mysql-proxy_lua-cpath5473328 -Ref: option_mysql-proxy_lua-path5473855 -Ref: option_mysql-proxy_max-open-files5474343 -Ref: option_mysql-proxy_no-proxy5474910 -Ref: option_mysql-proxy_plugin-dir5475125 -Ref: option_mysql-proxy_plugins5475653 -Ref: option_mysql-proxy_proxy-address5476088 -Ref: option_mysql-proxy_proxy-read-only-backend-addresses5476770 -Ref: option_mysql-proxy_proxy-backend-addresses5478459 -Ref: option_mysql-proxy_proxy-pool-no-change-user5480024 -Ref: option_mysql-proxy_proxy-skip-profiling5480451 -Ref: option_mysql-proxy_proxy-fix-bug-253715480788 -Ref: option_mysql-proxy_proxy-lua-script5481488 -Ref: option_mysql-proxy_pid-file5482449 -Ref: option_mysql-proxy_user5482940 -Ref: option_mysql-proxy_version5483380 -Node: mysql-proxy-scripting5484965 -Node: mysql-proxy-scripting-injection5489804 -Node: mysql-proxy-scripting-structures5492649 -Ref: mysql-proxy-scripting-structures-proxy5493302 -Ref: mysql-proxy-scripting-structures-connection5494359 -Ref: mysql-proxy-scripting-structures-backends5496636 -Ref: mysql-proxy-scripting-structures-queries5497934 -Ref: mysql-proxy-scripting-structures-response5500532 -Ref: mysql-proxy-scripting-structures-resultset5503454 -Ref: mysql-proxy-scripting-structures-return-states5505389 -Ref: mysql-proxy-scripting-structures-packet-states5506212 -Ref: mysql-proxy-scripting-structures-backend-states5506546 -Ref: mysql-proxy-scripting-structures-command-constants5507160 -Ref: mysql-proxy-scripting-structures-type-constants5508765 -Node: mysql-proxy-scripting-connect-server5509999 -Node: mysql-proxy-scripting-read-handshake5511501 -Node: mysql-proxy-scripting-read-auth5513645 -Node: mysql-proxy-scripting-read-auth-result5515087 -Node: mysql-proxy-scripting-read-query5516723 -Node: mysql-proxy-scripting-read-query-result5520137 -Node: mysql-proxy-using5524827 -Node: mysql-proxy-using-admin5527286 -Node: mysql-proxy-faq5539971 -Ref: qandaitem-15-7-6-1-15544805 -Ref: qandaitem-15-7-6-1-25545244 -Ref: qandaitem-15-7-6-1-35545455 -Ref: qandaitem-15-7-6-1-45545642 -Ref: qandaitem-15-7-6-1-55545922 -Ref: qandaitem-15-7-6-1-65546257 -Ref: qandaitem-15-7-6-1-75546506 -Ref: qandaitem-15-7-6-1-85546746 -Ref: qandaitem-15-7-6-1-95547062 -Ref: qandaitem-15-7-6-1-105547236 -Ref: qandaitem-15-7-6-1-115547466 -Ref: qandaitem-15-7-6-1-125547583 -Ref: qandaitem-15-7-6-1-135547833 -Ref: qandaitem-15-7-6-1-145548151 -Ref: qandaitem-15-7-6-1-155548351 -Ref: qandaitem-15-7-6-1-165548626 -Ref: qandaitem-15-7-6-1-175548850 -Ref: qandaitem-15-7-6-1-185549097 -Ref: qandaitem-15-7-6-1-195549317 -Ref: qandaitem-15-7-6-1-205549548 -Ref: qandaitem-15-7-6-1-215549753 -Ref: qandaitem-15-7-6-1-225549930 -Ref: qandaitem-15-7-6-1-235550123 -Ref: qandaitem-15-7-6-1-245550468 -Ref: qandaitem-15-7-6-1-255550641 -Ref: qandaitem-15-7-6-1-265551008 -Ref: qandaitem-15-7-6-1-275551342 -Ref: qandaitem-15-7-6-1-285551587 -Ref: qandaitem-15-7-6-1-295551892 -Ref: qandaitem-15-7-6-1-305552154 -Ref: qandaitem-15-7-6-1-315552336 -Ref: qandaitem-15-7-6-1-325552619 -Ref: qandaitem-15-7-6-1-335552744 -Ref: qandaitem-15-7-6-1-345553054 -Ref: qandaitem-15-7-6-1-355553279 -Ref: qandaitem-15-7-6-1-365553570 -Ref: qandaitem-15-7-6-1-375553785 -Node: replication5554081 -Node: replication-configuration5558595 -Node: replication-howto5562394 -Node: replication-howto-masterbaseconfig5566745 -Node: replication-howto-slavebaseconfig5568794 -Node: replication-howto-repuser5570329 -Node: replication-howto-masterstatus5572056 -Node: replication-howto-mysqldump5575862 -Node: replication-howto-rawdata5578134 -Node: replication-howto-newservers5582253 -Node: replication-howto-existingdata5584163 -Node: replication-howto-additionalslaves5588775 -Node: replication-howto-slaveinit5592733 -Node: replication-formats5593951 -Node: replication-sbr-rbr5597934 -Ref: replication-sbr-rbr-sbr-advantages5598910 -Ref: replication-sbr-rbr-sbr-disadvantages5599379 -Ref: replication-sbr-rbr-rbr-advantages5603219 -Ref: replication-sbr-rbr-rbr-disadvantages5604806 -Node: replication-rbr-usage5606622 -Node: replication-rbr-safe-unsafe5612843 -Ref: replication-rbr-safe-unsafe-not5615043 -Node: replication-options5617501 -Ref: option_mysqld_server-id5618563 -Node: replication-options-table5619998 -Node: replication-options-master5632006 -Ref: sysvar_auto_increment_increment5632998 -Ref: sysvar_auto_increment_offset5641213 -Node: replication-options-slave5642274 -Ref: replication-optvars-slaves5643274 -Ref: option_mysqld_abort-slave-event-count5643703 -Ref: option_mysqld_disconnect-slave-event-count5644992 -Ref: option_mysqld_log-slave-updates5645580 -Ref: option_mysqld_log-slow-slave-statements5647437 -Ref: option_mysqld_master-info-file5649781 -Ref: option_mysqld_master-retry-count5650533 -Ref: option_mysqld_max-relay-log-size5651999 -Ref: option_mysqld_read-only5652189 -Ref: option_mysqld_relay-log5652524 -Ref: option_mysqld_relay-log-index5654573 -Ref: option_mysqld_relay-log-info-file5656299 -Ref: option_mysqld_relay-log-purge5657162 -Ref: option_mysqld_relay-log-recovery5657436 -Ref: option_mysqld_relay-log-space-limit5657862 -Ref: option_mysqld_replicate-do-db5659079 -Ref: option_mysqld_replicate-ignore-db5664195 -Ref: option_mysqld_replicate-do-table5667152 -Ref: option_mysqld_replicate-ignore-table5668177 -Ref: option_mysqld_replicate-rewrite-db5669284 -Ref: option_mysqld_replicate-same-server-id5670671 -Ref: option_mysqld_replicate-wild-do-table5671852 -Ref: option_mysqld_replicate-wild-ignore-table5674273 -Ref: option_mysqld_report-host5675473 -Ref: option_mysqld_report-password5676679 -Ref: option_mysqld_report-port5677835 -Ref: option_mysqld_report-user5678809 -Ref: option_mysqld_show-slave-auth-info5679934 -Ref: option_mysqld_skip-slave-start5680602 -Ref: option_mysqld_slave_compressed_protocol5681208 -Ref: option_mysqld_slave-load-tmpdir5682106 -Ref: option_mysqld_slave-net-timeout5684025 -Ref: option_mysqld_slave-skip-errors5685271 -Ref: replication-optvars-slaves-obsolete5686822 -Ref: option_mysqld_master-host5687238 -Ref: option_mysqld_master-user5687261 -Ref: option_mysqld_master-password5687284 -Ref: option_mysqld_master-port5687311 -Ref: option_mysqld_master-connect-retry5687334 -Ref: option_mysqld_master-ssl5687366 -Ref: option_mysqld_master-ssl-ca5687388 -Ref: option_mysqld_master-ssl-capath5687413 -Ref: option_mysqld_master-ssl-cert5687442 -Ref: option_mysqld_master-ssl-cipher5687469 -Ref: option_mysqld_master-ssl-key5687498 -Ref: replication-sysvars-slaves5687519 -Ref: sysvar_init_slave5687847 -Ref: sysvar_relay_log_index5688949 -Ref: sysvar_relay_log_info_file5689803 -Ref: sysvar_relay_log_recovery5690662 -Ref: sysvar_rpl_recovery_rank5691855 -Ref: sysvar_slave_compressed_protocol5691942 -Ref: sysvar_slave_exec_mode5692774 -Ref: sysvar_slave_load_tmpdir5693964 -Ref: sysvar_slave_net_timeout5694825 -Ref: sysvar_slave_skip_errors5695793 -Ref: sysvar_slave_transaction_retries5696561 -Ref: sysvar_slave_type_conversions5698296 -Ref: sysvar_sql_slave_skip_counter5699860 -Ref: sysvar_sync_master_info5700690 -Ref: sysvar_sync_relay_log5702357 -Ref: sysvar_sync_relay_log_info5704328 -Node: replication-options-binary-log5706038 -Ref: replication-optvars-binlog5706680 -Ref: option_mysqld_binlog-row-event-max-size5706897 -Ref: option_mysqld_log-bin5708195 -Ref: option_mysqld_log-bin-index5709455 -Ref: option_mysqld_log-bin-trust-function-creators5710144 -Ref: option_mysqld_log-bin-use-v1-row-events5711282 -Ref: option_mysqld_binlog-do-db5714411 -Ref: option_mysqld_binlog-ignore-db5720163 -Ref: option_mysqld_max-binlog-dump-events5723345 -Ref: option_mysqld_sporadic-binlog-dump-fail5723911 -Ref: replication-sysvars-binlog5724480 -Ref: sysvar_binlog_cache_size5724798 -Ref: sysvar_binlog_direct_non_transactional_updates5727153 -Ref: sysvar_binlog_format5730042 -Ref: sysvar_log_bin_use_v1_row_events5732732 -Ref: sysvar_max_binlog_cache_size5735379 -Ref: sysvar_max_binlog_stmt_cache_size5737602 -Ref: sysvar_max_binlog_size5739420 -Ref: sysvar_binlog_stmt_cache_size5740830 -Ref: sysvar_sync_binlog5743225 -Node: replication-administration5745167 -Node: replication-administration-status5745777 -Node: replication-administration-pausing5752383 -Node: replication-implementation5754473 -Node: replication-implementation-details5757130 -Node: slave-logs5762796 -Node: slave-logs-relaylog5764036 -Node: slave-logs-status5767435 -Node: replication-rules5773098 -Node: replication-rules-db-options5776187 -Node: replication-rules-table-options5779873 -Node: replication-rules-examples5783169 -Node: replication-solutions5786351 -Node: replication-solutions-backups5788645 -Node: replication-solutions-backups-mysqldump5790679 -Node: replication-solutions-backups-rawdata5793386 -Node: replication-solutions-backups-read-only5796241 -Node: replication-solutions-diffengines5800369 -Node: replication-solutions-scaleout5804508 -Ref: figure_replication-scaleout5805701 -Node: replication-solutions-partitioning5807686 -Ref: figure_replication-multi-db5808302 -Node: replication-solutions-performance5810531 -Ref: figure_replication-performance5811676 -Node: replication-solutions-switch5813932 -Ref: figure_replication-redundancy-before5815541 -Ref: figure_replication-redundancy-after5818708 -Node: replication-solutions-ssl5820050 -Node: replication-semisync5824201 -Node: replication-semisync-interface5829970 -Node: replication-semisync-installation5832633 -Node: replication-semisync-monitoring5837776 -Node: replication-notes5839641 -Node: replication-features5840207 -Node: replication-features-auto-increment5844857 -Node: replication-features-charset5847291 -Node: replication-features-create-if-not-exists5849543 -Node: replication-features-create-select5850772 -Node: replication-features-drop-if-exists5854476 -Node: replication-features-differing-tables5855384 -Node: replication-features-more-columns5856443 -Node: replication-features-different-data-types5861267 -Ref: replication-features-attribute-promotion5863744 -Ref: replication-features-type-conversions-old5870824 -Node: replication-features-directory5874349 -Node: replication-features-invoked5875342 -Node: replication-features-floatvalues5880464 -Node: replication-features-flush5881340 -Node: replication-features-functions5882782 -Node: replication-features-limit5889678 -Node: replication-features-load-data5890758 -Node: replication-features-logging5891748 -Node: replication-features-repair-table5892191 -Node: replication-features-shutdowns5893154 -Node: replication-features-max-allowed-packet5895780 -Node: replication-features-memory5897037 -Node: replication-features-temptables5899350 -Node: replication-features-mysqldb5901654 -Node: replication-features-optimizer5902387 -Node: replication-features-reserved-words5903149 -Node: replication-features-set-password5905256 -Node: replication-features-slaveerrors5905770 -Node: replication-features-sql-mode5908117 -Node: replication-features-timeout5909193 -Node: replication-features-timestamp5910068 -Node: replication-features-timezone5911001 -Node: replication-features-transactions5912044 -Ref: replication-features-transactions-trx-nontrx-mixed5913820 -Node: replication-features-triggers5918249 -Node: replication-features-views5919699 -Node: replication-features-truncate5920329 -Node: replication-features-variables5921501 -Node: replication-compatibility5925192 -Node: replication-upgrade5929510 -Node: replication-faq5933478 -Ref: qandaitem-16-4-4-1-15935259 -Ref: qandaitem-16-4-4-1-25936099 -Ref: qandaitem-16-4-4-1-35936450 -Ref: qandaitem-16-4-4-1-45937617 -Ref: qandaitem-16-4-4-1-55938620 -Ref: qandaitem-16-4-4-1-65940006 -Ref: qandaitem-16-4-4-1-75940594 -Ref: qandaitem-16-4-4-1-85940818 -Ref: qandaitem-16-4-4-1-95943857 -Ref: qandaitem-16-4-4-1-105944583 -Ref: qandaitem-16-4-4-1-115945086 -Ref: qandaitem-16-4-4-1-125945205 -Ref: qandaitem-16-4-4-1-135945470 -Ref: qandaitem-16-4-4-1-145945626 -Node: replication-problems5945793 -Node: replication-bugs5950959 -Node: mysql-cluster5953634 -Node: mysql-cluster-overview5962970 -Node: mysql-cluster-basics5967941 -Node: mysql-cluster-nodes-groups5978696 -Ref: mysql-cluster-nodes-groups-nodegroup5979949 -Ref: mysql-cluster-nodes-groups-partition5980929 -Ref: mysql-cluster-nodes-groups-user-partitioning5981316 -Ref: mysql-cluster-nodes-groups-replica5982791 -Node: mysql-cluster-overview-requirements5985435 -Ref: mysql-cluster-network-latency-issues5988617 -Node: mysql-cluster-development5991996 -Node: mysql-cluster-development-5-5-ndb-7-25994481 -Node: mysql-cluster-compared6002068 -Node: mysql-cluster-ndb-innodb-engines6005872 -Node: mysql-cluster-ndb-innodb-workloads6015491 -Node: mysql-cluster-ndb-innodb-usage6017374 -Node: mysql-cluster-limitations6019512 -Node: mysql-cluster-limitations-syntax6022005 -Node: mysql-cluster-limitations-limits6029065 -Node: mysql-cluster-limitations-transactions6033016 -Node: mysql-cluster-limitations-error-handling6040252 -Node: mysql-cluster-limitations-database-objects6041309 -Node: mysql-cluster-limitations-unsupported6043257 -Node: mysql-cluster-limitations-performance6045141 -Node: mysql-cluster-limitations-exclusive-to-cluster6046348 -Node: mysql-cluster-limitations-disk-data6048611 -Node: mysql-cluster-limitations-multiple-nodes6049908 -Node: mysql-cluster-limitations-resolved6052641 -Node: mysql-cluster-installation6061741 -Node: mysql-cluster-install-linux6068291 -Node: mysql-cluster-install-linux-binary6070441 -Node: mysql-cluster-install-linux-rpm6076247 -Node: mysql-cluster-install-linux-source6082987 -Node: mysql-cluster-install-windows6087473 -Node: mysql-cluster-install-windows-binary6088579 -Node: mysql-cluster-install-windows-source6101604 -Node: mysql-cluster-install-windows-initial-start6103605 -Node: mysql-cluster-install-windows-service6112482 -Node: mysql-cluster-install-configuration6119858 -Node: mysql-cluster-install-first-start6125596 -Node: mysql-cluster-install-example-data6128558 -Node: mysql-cluster-install-shutdown-restart6138266 -Node: mysql-cluster-configuration6141192 -Node: mysql-cluster-quick6143367 -Node: mysql-cluster-config-file6148968 -Node: mysql-cluster-config-example6154502 -Ref: mysql-cluster-config-ini-sections6160642 -Node: mysql-cluster-config-starting6162989 -Node: mysql-cluster-connectstring6170826 -Node: mysql-cluster-computer-definition6175620 -Ref: ndbparam-computer-id6176081 -Ref: ndbparam-computer-hostname6176840 -Node: mysql-cluster-mgm-definition6177246 -Ref: ndbparam-mgmd-id6177920 -Ref: ndbparam-mgmd-nodeid6179186 -Ref: ndbparam-mgmd-executeoncomputer6180437 -Ref: ndbparam-mgmd-portnumber6180933 -Ref: ndbparam-mgmd-hostname6181461 -Ref: ndbparam-mgmd-logdestination6182046 -Ref: ndbparam-mgmd-arbitrationrank6184185 -Ref: ndbparam-mgmd-arbitrationdelay6185731 -Ref: ndbparam-mgmd-datadir6186372 -Ref: ndbparam-mgmd-heartbeatthreadpriority6187227 -Ref: ndbparam-mgmd-totalsendbuffermemory6187728 -Node: mysql-cluster-ndbd-definition6188764 -Ref: mysql-cluster-identifying-data-nodes6191084 -Ref: ndbparam-ndbd-id6191245 -Ref: ndbparam-ndbd-nodeid6192206 -Ref: ndbparam-ndbd-executeoncomputer6193114 -Ref: ndbparam-ndbd-hostname6193585 -Ref: ndbparam-ndbd-serverport6194167 -Ref: ndbparam-ndbd-tcpbind_inaddr_any6195703 -Ref: ndbparam-ndbd-nodegroup6195916 -Ref: ndbparam-ndbd-noofreplicas6197380 -Ref: ndbparam-ndbd-datadir6200806 -Ref: ndbparam-ndbd-filesystempath6201380 -Ref: ndbparam-ndbd-backupdatadir6202443 -Ref: mysql-cluster-data-memory-index-memory-string-memory6203343 -Ref: ndbparam-ndbd-datamemory6203724 -Ref: ndbparam-ndbd-indexmemory6208326 -Ref: ndbparam-ndbd-stringmemory6209401 -Ref: ndbparam-ndbd-minfreepct6213760 -Ref: mysql-cluster-transaction-parameters6215293 -Ref: ndbparam-ndbd-maxnoofconcurrenttransactions6216078 -Ref: ndbparam-ndbd-maxnoofconcurrentoperations6218082 -Ref: ndbparam-ndbd-maxnooflocaloperations6221097 -Ref: ndbparam-ndbd-maxdmloperationspertransaction6221906 -Ref: mysql-cluster-transaction-temporary-storage6223081 -Ref: ndbparam-ndbd-maxnoofconcurrentindexoperations6223701 -Ref: ndbparam-ndbd-maxnooffiredtriggers6225003 -Ref: ndbparam-ndbd-transactionbuffermemory6226300 -Ref: mysql-cluster-scans-and-buffering6227582 -Ref: ndbparam-ndbd-maxnoofconcurrentscans6228075 -Ref: ndbparam-ndbd-maxnooflocalscans6229715 -Ref: ndbparam-ndbd-batchsizeperlocalscan6230590 -Ref: ndbparam-ndbd-longmessagebuffer6231247 -Ref: ndbparam-ndbd-maxparallelscansperfragment6232160 -Ref: mysql-cluster-memory-allocation6233633 -Ref: ndbparam-ndbd-maxallocate6233656 -Ref: mysql-cluster-logging-and-checkpointing6234198 -Ref: ndbparam-ndbd-nooffragmentlogfiles6234302 -Ref: ndbparam-ndbd-fragmentlogfilesize6236738 -Ref: ndbparam-ndbd-initfragmentlogfiles6237831 -Ref: ndbparam-ndbd-maxnoofopenfiles6239081 -Ref: ndbparam-ndbd-initialnoofopenfiles6239784 -Ref: ndbparam-ndbd-maxnoofsavedmessages6240335 -Ref: ndbparam-ndbd-maxlcpstartdelay6240978 -Ref: mysql-cluster-metadata-objects6243006 -Ref: ndbparam-ndbd-maxnoofattributes6243362 -Ref: ndbparam-ndbd-maxnooftables6245929 -Ref: ndbparam-ndbd-maxnooforderedindexes6247584 -Ref: ndbparam-ndbd-maxnoofuniquehashindexes6248690 -Ref: ndbparam-ndbd-maxnooftriggers6249683 -Ref: ndbparam-ndbd-maxnoofindexes6250614 -Ref: ndbparam-ndbd-maxnoofsubscriptions6251005 -Ref: ndbparam-ndbd-maxnoofsubscribers6252196 -Ref: ndbparam-ndbd-maxnoofconcurrentsuboperations6254011 -Ref: mysql-cluster-boolean-parameters6255129 -Ref: ndbparam-ndbd-lockpagesinmainmemory6255376 -Ref: ndbparam-ndbd-stoponerror6257176 -Ref: ndbparam-ndbd-crashoncorruptedtuple6257767 -Ref: ndbparam-ndbd-diskless6258678 -Ref: ndbparam-ndbd-odirect6259857 -Ref: ndbparam-ndbd-restartonerrorinsert6261180 -Ref: ndbparam-ndbd-compressedbackup6261829 -Ref: ndbparam-ndbd-compressedlcp6262811 -Ref: mysql-cluster-timeouts-intervals-disk-paging6263803 -Ref: ndbparam-ndbd-timebetweenwatchdogcheck6264099 -Ref: ndbparam-ndbd-timebetweenwatchdogcheckinitial6265121 -Ref: ndbparam-ndbd-startpartialtimeout6265901 -Ref: ndbparam-ndbd-startpartitionedtimeout6266824 -Ref: ndbparam-ndbd-startfailuretimeout6267708 -Ref: ndbparam-ndbd-startnonodegrouptimeout6268753 -Ref: ndbparam-ndbd-heartbeatintervaldbdb6269996 -Ref: ndbparam-ndbd-heartbeatintervaldbapi6271422 -Ref: ndbparam-ndbd-heartbeatorder6272694 -Ref: ndbparam-ndbd-connectcheckintervaldelay6277138 -Ref: ndbparam-ndbd-timebetweenlocalcheckpoints6277861 -Ref: ndbparam-ndbd-timebetweenglobalcheckpoints6279383 -Ref: ndbparam-ndbd-timebetweenepochs6280955 -Ref: ndbparam-ndbd-timebetweenepochstimeout6281986 -Ref: ndbparam-ndbd-maxbufferedepochs6285281 -Ref: ndbparam-ndbd-timebetweeninactivetransactionabortcheck6286637 -Ref: ndbparam-ndbd-transactioninactivetimeout6287419 -Ref: ndbparam-ndbd-transactiondeadlockdetectiontimeout6288269 -Ref: ndbparam-ndbd-disksyncsize6289472 -Ref: ndbparam-ndbd-diskcheckpointspeed6290361 -Ref: ndbparam-ndbd-diskcheckpointspeedinrestart6291220 -Ref: ndbparam-ndbd-noofdiskpagestodiskafterrestarttup6291848 -Ref: ndbparam-ndbd-noofdiskpagestodiskafterrestartacc6293818 -Ref: ndbparam-ndbd-noofdiskpagestodiskduringrestarttup6294671 -Ref: ndbparam-ndbd-noofdiskpagestodiskduringrestartacc6295848 -Ref: ndbparam-ndbd-arbitrationtimeout6296829 -Ref: ndbparam-ndbd-arbitration6297594 -Ref: mysql-cluster-buffering-and-logging6299765 -Ref: ndbparam-ndbd-undoindexbuffer6300273 -Ref: ndbparam-ndbd-undodatabuffer6302402 -Ref: ndbparam-ndbd-redobuffer6304072 -Ref: mysql-cluster-controlling-log-messages6305285 -Ref: ndbparam-ndbd-loglevelstartup6306070 -Ref: ndbparam-ndbd-loglevelshutdown6306595 -Ref: ndbparam-ndbd-loglevelstatistic6307131 -Ref: ndbparam-ndbd-loglevelcheckpoint6307760 -Ref: ndbparam-ndbd-loglevelnoderestart6308336 -Ref: ndbparam-ndbd-loglevelconnection6308854 -Ref: ndbparam-ndbd-loglevelerror6309392 -Ref: ndbparam-ndbd-loglevelcongestion6310022 -Ref: ndbparam-ndbd-loglevelinfo6310624 -Ref: ndbparam-ndbd-memreportfrequency6311168 -Ref: ndbparam-ndbd-startupstatusreportfrequency6312861 -Ref: ndbparam-ndbd-dicttrace6314495 -Ref: mysql-cluster-backup-parameters6314846 -Ref: ndbparam-ndbd-backupdatabuffersize6314986 -Ref: ndbparam-ndbd-backuplogbuffersize6316034 -Ref: ndbparam-ndbd-backupmemory6317687 -Ref: ndbparam-ndbd-backupreportfrequency6318513 -Ref: ndbparam-ndbd-backupwritesize6319377 -Ref: ndbparam-ndbd-backupmaxwritesize6319966 -Ref: mysql-cluster-realtime-performance-parameters6320853 -Ref: ndbparam-ndbd-lockexecutethreadtocpu6321151 -Ref: ndbparam-ndbd-lockmaintthreadstocpu6322210 -Ref: ndbparam-ndbd-realtimescheduler6322906 -Ref: ndbparam-ndbd-schedulerexecutiontimer6323440 -Ref: ndbparam-ndbd-schedulerspintimer6324300 -Ref: ndbparam-ndbd-buildindexthreads6324870 -Ref: ndbparam-ndbd-twopassinitialnoderestartcopy6326102 -Ref: ndbparam-ndbd-numa6326434 -Ref: mysql-cluster-ndbd-definition-disk-data-parameters6327304 -Ref: ndbparam-ndbd-diskpagebuffermemory6327423 -Ref: ndbparam-ndbd-sharedglobalmemory6328568 -Ref: ndbparam-ndbd-diskiothreadpool6329916 -Ref: mysql-cluster-ndbd-disk-data-filesystem-parameters6332623 -Ref: ndbparam-ndbd-filesystempathdd6332843 -Ref: ndbparam-ndbd-filesystempathdatafiles6334600 -Ref: ndbparam-ndbd-filesystempathundofiles6336104 -Ref: mysql-cluster-ndbd-disk-data-object-creation-parameters6337699 -Ref: ndbparam-ndbd-initiallogfilegroup6337952 -Ref: ndbparam-ndbd-initialtablespace6341001 -Ref: mysql-cluster-ndbd-definition-gcp-stop-errors6343673 -Ref: ndbparam-ndbd-totalsendbuffermemory6345755 -Ref: ndbparam-ndbd-reservedsendbuffermemory6346119 -Ref: mysql-cluster-redo-over-commit-handling6346570 -Ref: ndbparam-ndbd-redoovercommitcounter6347326 -Ref: ndbparam-ndbd-redoovercommitlimit6348289 -Ref: ndbparam-ndbd-startfailretrydelay6350114 -Ref: ndbparam-ndbd-maxstartfailretries6351578 -Node: mysql-cluster-api-definition6353029 -Ref: ndbparam-api-id6354256 -Ref: ndbparam-api-nodeid6355470 -Ref: ndbparam-api-executeoncomputer6356768 -Ref: ndbparam-api-hostname6357272 -Ref: ndbparam-api-arbitrationrank6358278 -Ref: ndbparam-api-arbitrationdelay6359524 -Ref: ndbparam-api-batchbytesize6360188 -Ref: ndbparam-api-batchsize6361390 -Ref: ndbparam-api-heartbeatthreadpriority6361976 -Ref: ndbparam-api-maxscanbatchsize6362482 -Ref: ndbparam-api-totalsendbuffermemory6363264 -Ref: ndbparam-api-autoreconnect6364230 -Ref: ndbparam-api-defaultoperationredoproblemaction6365478 -Node: mysql-cluster-tcp-definition6367980 -Ref: ndbparam-tcp-nodeid16369517 -Ref: ndbparam-tcp-nodeid26369863 -Ref: ndbparam-tcp-hostname16370510 -Ref: ndbparam-tcp-hostname26370859 -Ref: ndbparam-tcp-overloadlimit6371461 -Ref: ndbparam-tcp-sendbuffermemory6371971 -Ref: ndbparam-tcp-sendsignalid6373385 -Ref: ndbparam-tcp-checksum6374169 -Ref: ndbparam-tcp-portnumber6374916 -Ref: ndbparam-tcp-receivebuffermemory6375191 -Node: mysql-cluster-tcp-definition-direct6375821 -Node: mysql-cluster-shm-definition6377712 -Ref: ndbparam-shm-nodeid16378858 -Ref: ndbparam-shm-nodeid26379205 -Ref: ndbparam-shm-hostname16379710 -Ref: ndbparam-shm-hostname26380059 -Ref: ndbparam-shm-shmkey6380661 -Ref: ndbparam-shm-shmsize6381258 -Ref: ndbparam-shm-sendsignalid6381876 -Ref: ndbparam-shm-checksum6382566 -Ref: ndbparam-shm-signum6383291 -Node: mysql-cluster-sci-definition6384342 -Ref: ndbparam-sci-nodeid16385743 -Ref: ndbparam-sci-nodeid26386090 -Ref: ndbparam-sci-host1sciid06386595 -Ref: ndbparam-sci-host1sciid16387094 -Ref: ndbparam-sci-host2sciid06387736 -Ref: ndbparam-sci-host2sciid16388236 -Ref: ndbparam-sci-hostname16388773 -Ref: ndbparam-sci-hostname26389122 -Ref: ndbparam-sci-sharedbuffersize6389724 -Ref: ndbparam-sci-sendlimit6390581 -Ref: ndbparam-sci-sendsignalid6391309 -Ref: ndbparam-sci-checksum6391945 -Node: mysql-cluster-config-send-buffers6392660 -Node: mysql-cluster-params-overview6396281 -Node: mysql-cluster-params-ndbd6399704 -Node: mysql-cluster-params-mgmd6410943 -Node: mysql-cluster-params-api6413915 -Node: mysql-cluster-params-other6417245 -Node: mysql-cluster-options-variables6422259 -Node: mysql-cluster-option-tables6423275 -Node: mysql-cluster-program-options-mysqld6436031 -Ref: option_mysqld_ndb-batch-size6437219 -Ref: option_mysqld_ndb-cluster-connection-pool6437951 -Ref: option_mysqld_ndb-blob-read-batch-bytes6440640 -Ref: option_mysqld_ndb-blob-write-batch-bytes6442343 -Ref: option_mysqld_ndb-connectstring6444066 -Ref: option_mysqld_ndb-mgmd-host6444704 -Ref: option_mysqld_ndbcluster6445452 -Ref: option_mysqld_ndb-log-apply-status6446380 -Ref: option_mysqld_ndb-log-transaction-id6448163 -Ref: option_mysqld_ndb-nodeid6449663 -Ref: option_mysqld_server-id-bits6451292 -Ref: option_mysqld_skip-ndbcluster6453353 -Ref: option_mysqld_ndb-wait-connected6453947 -Ref: option_mysqld_ndb-wait-setup6455807 -Ref: option_mysqld_ndb_optimization_delay6457679 -Node: mysql-cluster-system-variables6458400 -Ref: sysvar_have_ndbcluster6459011 -Ref: sysvar_multi_range_count6459641 -Ref: sysvar_ndb_autoincrement_prefetch_sz6461080 -Ref: sysvar_ndb_cache_check_time6462671 -Ref: sysvar_ndb_extra_logging6463940 -Ref: sysvar_ndb_force_send6465433 -Ref: sysvar_ndb_index_stat_cache_entries6466264 -Ref: sysvar_ndb_index_stat_enable6467206 -Ref: sysvar_ndb_index_stat_update_freq6467758 -Ref: sysvar_ndb_join_pushdown6468669 -Ref: sysvar_ndb_log_apply_status6474034 -Ref: sysvar_ndb_log_bin6474841 -Ref: sysvar_ndb_log_binlog_index6475796 -Ref: sysvar_ndb_log_transaction_id6476870 -Ref: sysvar_ndb_optimized_node_selection6477915 -Ref: sysvar_ndb_report_thresh_binlog_epoch_slip6480492 -Ref: sysvar_ndb_report_thresh_binlog_mem_usage6481456 -Ref: sysvar_slave_allow_batching6482375 -Ref: sysvar_ndb_table_no_logging6483451 -Ref: sysvar_ndb_table_temporary6485535 -Ref: sysvar_ndb_use_copying_alter_table6486324 -Ref: sysvar_ndb_use_exact_count6486788 -Ref: sysvar_ndb_use_transactions6487550 -Ref: sysvar_transaction_allow_batching6488346 -Ref: sysvar_ndbinfo_database6489813 -Ref: sysvar_ndbinfo_max_bytes6490610 -Ref: sysvar_ndbinfo_max_rows6491315 -Ref: sysvar_ndbinfo_show_hidden6492015 -Ref: sysvar_ndbinfo_table_prefix6492860 -Ref: sysvar_ndbinfo_version6493992 -Ref: sysvar_server_id_bits6494509 -Node: mysql-cluster-status-variables6495659 -Ref: statvar_Handler_discover6496187 -Ref: statvar_Ndb_api_wait_exec_complete_count_session6496489 -Ref: statvar_Ndb_api_wait_exec_complete_count_slave6497271 -Ref: statvar_Ndb_api_wait_exec_complete_count6498080 -Ref: statvar_Ndb_api_wait_scan_result_count_session6498780 -Ref: statvar_Ndb_api_wait_scan_result_count_slave6499387 -Ref: statvar_Ndb_api_wait_scan_result_count6500015 -Ref: statvar_Ndb_api_wait_meta_request_count_session6500540 -Ref: statvar_Ndb_api_wait_meta_request_count_slave6501139 -Ref: statvar_Ndb_api_wait_meta_request_count6501764 -Ref: statvar_Ndb_api_wait_nanos_count_session6502286 -Ref: statvar_Ndb_api_wait_nanos_count_slave6502790 -Ref: statvar_Ndb_api_wait_nanos_count6503320 -Ref: statvar_Ndb_api_bytes_sent_count_session6503742 -Ref: statvar_Ndb_api_bytes_sent_count_slave6504210 -Ref: statvar_Ndb_api_bytes_sent_count6504699 -Ref: statvar_Ndb_api_bytes_received_count_session6505085 -Ref: statvar_Ndb_api_bytes_received_count_slave6505563 -Ref: statvar_Ndb_api_bytes_received_count6506067 -Ref: statvar_Ndb_api_trans_start_count_session6506463 -Ref: statvar_Ndb_api_trans_start_count_slave6506913 -Ref: statvar_Ndb_api_trans_start_count6507389 -Ref: statvar_Ndb_api_trans_commit_count_session6507757 -Ref: statvar_Ndb_api_trans_commit_count_slave6508210 -Ref: statvar_Ndb_api_trans_commit_count6508689 -Ref: statvar_Ndb_api_trans_abort_count_session6509065 -Ref: statvar_Ndb_api_trans_abort_count_slave6509515 -Ref: statvar_Ndb_api_trans_abort_count6509991 -Ref: statvar_Ndb_api_trans_close_count_session6510359 -Ref: statvar_Ndb_api_trans_close_count_slave6511000 -Ref: statvar_Ndb_api_trans_close_count6511657 -Ref: statvar_Ndb_api_pk_op_count_session6512194 -Ref: statvar_Ndb_api_pk_op_count_slave6512822 -Ref: statvar_Ndb_api_pk_op_count6513476 -Ref: statvar_Ndb_api_uk_op_count_session6514022 -Ref: statvar_Ndb_api_uk_op_count_slave6514491 -Ref: statvar_Ndb_api_uk_op_count6514986 -Ref: statvar_Ndb_api_table_scan_count_session6515373 -Ref: statvar_Ndb_api_table_scan_count_slave6515878 -Ref: statvar_Ndb_api_table_scan_count6516409 -Ref: statvar_Ndb_api_range_scan_count_session6516832 -Ref: statvar_Ndb_api_range_scan_count_slave6517300 -Ref: statvar_Ndb_api_range_scan_count6517789 -Ref: statvar_Ndb_api_pruned_scan_count_session6518175 -Ref: statvar_Ndb_api_pruned_scan_count_slave6518659 -Ref: statvar_Ndb_api_pruned_scan_count6519169 -Ref: statvar_Ndb_api_scan_batch_count_session6519571 -Ref: statvar_Ndb_api_scan_batch_count_slave6520097 -Ref: statvar_Ndb_api_scan_batch_count6520649 -Ref: statvar_Ndb_api_read_row_count_session6521098 -Ref: statvar_Ndb_api_read_row_count_slave6521672 -Ref: statvar_Ndb_api_read_row_count6522264 -Ref: statvar_Ndb_api_trans_local_read_row_count_session6522765 -Ref: statvar_Ndb_api_trans_local_read_row_count_slave6523351 -Ref: statvar_Ndb_api_trans_local_read_row_count6523955 -Ref: statvar_Ndb_api_event_data_count_injector6524468 -Ref: statvar_Ndb_api_event_data_count6524857 -Ref: statvar_Ndb_api_event_nondata_count_injector6525235 -Ref: statvar_Ndb_api_event_nondata_count6525647 -Ref: statvar_Ndb_api_event_bytes_count_injector6526048 -Ref: statvar_Ndb_api_event_bytes_count6526436 -Ref: statvar_Ndb_cluster_node_id6526813 -Ref: statvar_Ndb_config_from_host6527057 -Ref: statvar_Ndb_config_from_port6527388 -Ref: statvar_Ndb_conflict_fn_max6527735 -Ref: statvar_Ndb_conflict_fn_old6528148 -Ref: statvar_Ndb_conflict_fn_epoch6528545 -Ref: statvar_Ndb_conflict_fn_epoch_trans6528978 -Ref: statvar_Ndb_conflict_trans_row_conflict_count6529423 -Ref: statvar_Ndb_conflict_trans_row_reject_count6530094 -Ref: statvar_Ndb_conflict_trans_reject_count6530646 -Ref: statvar_Ndb_conflict_trans_detect_iter_count6531034 -Ref: statvar_Ndb_conflict_trans_conflict_commit_count6531482 -Ref: statvar_Ndb_execute_count6531860 -Ref: statvar_Ndb_number_of_data_nodes6531995 -Ref: statvar_Ndb_pushed_queries_defined6532248 -Ref: statvar_Ndb_pushed_queries_dropped6532545 -Ref: statvar_Ndb_pushed_queries_executed6532723 -Ref: statvar_Ndb_pushed_reads6532906 -Ref: statvar_Ndb_pruned_scan_count6533239 -Ref: statvar_Ndb_scan_count6533735 -Node: mysql-cluster-interconnects6533916 -Node: mysql-cluster-sci-sockets6536542 -Node: mysql-cluster-interconnects-performance6537831 -Node: mysql-cluster-programs6542062 -Node: mysql-cluster-programs-mysqld6545553 -Node: mysql-cluster-programs-ndbd6550942 -Ref: option_ndbd_bind-address6554557 -Ref: option_ndbd_daemon6555096 -Ref: option_ndbd_nodaemon6555927 -Ref: option_ndbd_foreground6557051 -Ref: option_ndbd_initial6557819 -Ref: option_ndbd_initial-start6560280 -Ref: option_ndbd_nowait-nodes6561663 -Ref: option_ndbd_nostart6563075 -Ref: option_ndbd_install6564041 -Ref: option_ndbd_remove6565680 -Node: mysql-cluster-programs-ndbmtd6571973 -Ref: ndbparam-ndbmtd-maxnoofexecutionthreads6575216 -Node: mysql-cluster-programs-ndb-mgmd6579698 -Ref: option_ndb_mgmd_bind-address6583897 -Ref: option_ndb_mgmd_no-nodeid-checks6584745 -Ref: option_ndb_mgmd_configdir6585170 -Ref: option_ndb_mgmd_config-cache6585793 -Ref: option_ndb_mgmd_config-file6588423 -Ref: option_ndb_mgmd_mycnf6589800 -Ref: option_ndb_mgmd_daemon6590201 -Ref: option_ndb_mgmd_interactive6590855 -Ref: option_ndb_mgmd_initial6591515 -Ref: option_ndb_mgmd_log-name6593328 -Ref: option_ndb_mgmd_nodaemon6593758 -Ref: option_ndb_mgmd_print-full-config6594623 -Ref: option_ndb_mgmd_reload6595474 -Ref: option_ndb_mgmd_nowait-nodes6597240 -Ref: option_ndb_mgmd_install6603894 -Ref: option_ndb_mgmd_remove6605466 -Node: mysql-cluster-programs-ndb-mgm6606174 -Ref: option_ndb_mgm_execute6607968 -Ref: option_ndb_mgm_try-reconnect6608983 -Node: mysql-cluster-programs-ndb-config6609818 -Ref: option_ndb_config_usage6613794 -Ref: option_ndb_config_config_from_node6614153 -Ref: option_ndb_config_version6614945 -Ref: option_ndb_config_ndb-connectstring6615256 -Ref: option_ndb_config_config-file6615549 -Ref: option_ndb_config_mycnf6616294 -Ref: option_ndb_config_query6616695 -Ref: option_ndb_config_host6617790 -Ref: option_ndb_config_id6619055 -Ref: option_ndb_config_nodeid6619072 -Ref: option_ndb_config_nodes6619278 -Ref: option_ndb_config_connections6619847 -Ref: option_ndb_config_system6620396 -Ref: option_ndb_config_type6620943 -Ref: option_ndb_config_fields6621596 -Ref: option_ndb_config_rows6622284 -Ref: option_ndb_config_configinfo6622954 -Ref: option_ndb_config_xml6624699 -Node: mysql-cluster-programs-ndb-cpcd6631954 -Node: mysql-cluster-programs-ndb-delete-all6632528 -Node: mysql-cluster-programs-ndb-desc6633603 -Ref: option_ndb_desc_extra-partition-info6639758 -Ref: option_ndb_desc_blob-info6639861 -Ref: option_ndb_desc_extra-node-info6640089 -Node: mysql-cluster-programs-ndb-drop-index6640514 -Node: mysql-cluster-programs-ndb-drop-table6642901 -Node: mysql-cluster-programs-ndb-error-reporter6643763 -Ref: option_ndb_error_reporter_fs6644981 -Node: mysql-cluster-programs-ndb-print-backup-file6645605 -Node: mysql-cluster-programs-ndb-print-schema-file6647228 -Node: mysql-cluster-programs-ndb-print-sys-file6648623 -Node: mysql-cluster-programs-ndbd-redo-log-reader6650301 -Ref: option_ndbd_redo_log_reader_noprint6652801 -Ref: option_ndbd_redo_log_reader_nocheck6653195 -Node: mysql-cluster-programs-ndb-restore6653916 -Ref: option_ndb_restore_connect6662820 -Ref: option_ndb_restore_nodeid6663954 -Ref: option_ndb_restore_skip-table-check6664601 -Ref: option_ndb_restore_promote-attributes6665734 -Ref: option_ndb_restore_lossy-conversions6667291 -Ref: option_ndb_restore_preserve-trailing-spaces6668259 -Ref: option_ndb_restore_backupid6668989 -Ref: option_ndb_restore_restore_epoch6669524 -Ref: option_ndb_restore_restore_data6669950 -Ref: option_ndb_restore_restore_meta6670091 -Ref: option_ndb_restore_backup_path6670221 -Ref: option_ndb_restore_no-upgrade6672799 -Ref: option_ndb_restore_print_data6673180 -Ref: option_ndb_restore_tab6673767 -Ref: option_ndb_restore_fields-enclosed-by6674186 -Ref: option_ndb_restore_fields-optionally-enclosed-by6674704 -Ref: option_ndb_restore_fields-terminated-by6675373 -Ref: option_ndb_restore_hex6675943 -Ref: option_ndb_restore_lines-terminated-by6676154 -Ref: option_ndb_restore_append6676721 -Ref: option_ndb_restore_print_metadata6677154 -Ref: option_ndb_restore_print_log6677286 -Ref: option_ndb_restore_print6677422 -Ref: option_ndb_restore_dont_ignore_systab_06677645 -Ref: option_ndb_restore_ndb-nodegroup-map6678061 -Ref: option_ndb_restore_no-binlog6678263 -Ref: option_ndb_restore_no-restore-disk-objects6678433 -Ref: option_ndb_restore_parallelism6678708 -Ref: option_ndb_restore_progress-frequency6678933 -Ref: option_ndb_restore_verbose6679108 -Ref: option_ndb_restore_include-databases6679607 -Ref: option_ndb_restore_include-tables6679949 -Ref: option_ndb_restore_exclude-databases6682604 -Ref: option_ndb_restore_exclude-tables6682946 -Ref: option_ndb_restore_exclude-missing-columns6687131 -Ref: option_ndb_restore_disable-indexes6687884 -Ref: option_ndb_restore_rebuild-indexes6688284 -Ref: option_ndb_restore_skip-broken-objects6688570 -Ref: option_ndb_restore_skip-unknown-objects6689022 -Ref: option_ndb_restore_rewrite-database6689459 -Node: mysql-cluster-programs-ndb-select-all6692362 -Ref: option_ndb_restore_order6693185 -Node: mysql-cluster-programs-ndb-select-count6696761 -Node: mysql-cluster-programs-ndb-show-tables6697866 -Ref: option_ndb_show_tables_database6699569 -Ref: option_ndb_show_tables_loops6699667 -Ref: option_ndb_show_tables_parsable6699884 -Ref: option_ndb_show_tables_show-temp-status6700034 -Ref: option_ndb_show_tables_type6700128 -Ref: option_ndb_show_tables_unqualified6700477 -Node: mysql-cluster-programs-ndb-size-pl6700958 -Ref: option_ndb_size_pl_options6704699 -Ref: option_ndb_size_pl_debugging6709328 -Ref: option_ndb_size_pl_format6709653 -Node: mysql-cluster-programs-ndb-waiter6710679 -Ref: mysql-cluster-programs-ndb-waiter-additional-options6713336 -Ref: option_ndb_waiter_no-contact6713365 -Ref: option_ndb_waiter_not-started6713588 -Ref: option_ndb_waiter_timeout6713807 -Ref: option_ndb_waiter_single-user6714016 -Ref: option_ndb_waiter_nowait-nodes6714106 -Ref: option_ndb_waiter_wait-nodes6714460 -Node: mysql-cluster-program-options-common6716565 -Ref: option_ndb_common_help6719003 -Ref: option_ndb_common_character-sets-dir6719316 -Ref: option_ndb_common_ndb-connectstring6719819 -Ref: option_ndb_common_core-file6720707 -Ref: option_ndb_common_debug6721767 -Ref: option_ndb_common_ndb-mgmd-host6722353 -Ref: option_ndb_common_ndb-nodeid6723101 -Ref: option_ndb_common_ndb-optimized-node-selection6723722 -Ref: option_ndb_common_version6724210 -Node: mysql-cluster-management6724862 -Node: mysql-cluster-start-phases6730591 -Node: mysql-cluster-mgm-client-commands6736967 -Node: mysql-cluster-backup6747311 -Node: mysql-cluster-backup-concepts6748707 -Node: mysql-cluster-backup-using-management-client6750558 -Node: mysql-cluster-backup-configuration6759063 -Node: mysql-cluster-backup-troubleshooting6760223 -Node: mysql-cluster-rolling-restart6761367 -Ref: mysql-cluster-rolling-restart-multiple-ndb-mgmd6766895 -Node: mysql-cluster-event-reports6768212 -Node: mysql-cluster-logging-management-commands6773396 -Node: mysql-cluster-log-events6776926 -Node: mysql-cluster-log-statistics6787756 -Node: mysql-cluster-logs-ndb-messages6796531 -Node: mysql-cluster-logs-cluster-log6797165 -Node: mysql-cluster-ndb-transporter-errors6843288 -Node: mysql-cluster-single-user-mode6849391 -Node: mysql-cluster-sql-statements6851760 -Node: mysql-cluster-ndbinfo6859394 -Node: mysql-cluster-ndbinfo-blocks6868842 -Node: mysql-cluster-ndbinfo-config-params6869969 -Node: mysql-cluster-ndbinfo-counters6871070 -Node: mysql-cluster-ndbinfo-diskpagebuffer6874217 -Node: mysql-cluster-ndbinfo-logbuffers6877587 -Node: mysql-cluster-ndbinfo-logspaces6878636 -Node: mysql-cluster-ndbinfo-memoryusage6879670 -Node: mysql-cluster-ndbinfo-nodes6882850 -Node: mysql-cluster-ndbinfo-resources6889080 -Node: mysql-cluster-ndbinfo-transporters6890550 -Node: mysql-cluster-security6894641 -Node: mysql-cluster-security-networking-issues6895550 -Node: mysql-cluster-security-mysql-privileges6905480 -Node: mysql-cluster-security-mysql-security-procedures6913038 -Node: mysql-cluster-disk-data6917316 -Node: mysql-cluster-disk-data-objects6918988 -Node: mysql-cluster-disk-data-symlinks6931890 -Node: mysql-cluster-disk-data-storage-requirements6936806 -Node: mysql-cluster-online-add-node6938870 -Node: mysql-cluster-online-add-node-remarks6939823 -Node: mysql-cluster-online-add-node-basics6949963 -Node: mysql-cluster-online-add-node-example6953991 -Node: mysql-cluster-privilege-distribution6974758 -Node: mysql-cluster-ndb-api-statistics6984761 -Node: mysql-cluster-replication7029456 -Ref: mysql-cluster-replication-ndb-non-ndb7033860 -Node: mysql-cluster-replication-abbreviations7034475 -Node: mysql-cluster-replication-general7036065 -Node: mysql-cluster-replication-issues7039750 -Ref: mysql-cluster-replication-ndb-to-non-ndb7048232 -Ref: mysql-cluster-replication-issues-filtering7052664 -Node: mysql-cluster-replication-schema7056614 -Node: mysql-cluster-replication-preparation7064622 -Node: mysql-cluster-replication-starting7070423 -Node: mysql-cluster-replication-two-channels7075286 -Node: mysql-cluster-replication-failover7078133 -Node: mysql-cluster-replication-backups7081599 -Node: mysql-cluster-replication-auto-sync7090208 -Node: mysql-cluster-replication-pitr7096349 -Node: mysql-cluster-replication-multi-master7099829 -Node: mysql-cluster-replication-conflict-resolution7106578 -Ref: option_mysqld_ndb-log-updated-only7111809 -Ref: option_mysqld_ndb-log-update-as-write7112961 -Ref: mysql-cluster-ndb-replication-table7113965 -Ref: mysql-cluster-replication-ndb-old7117291 -Ref: mysql-cluster-replication-ndb-max7117948 -Ref: mysql-cluster-replication-ndb-max-delete-win7118600 -Ref: mysql-cluster-replication-ndb-epoch7119690 -Ref: mysql-cluster-replication-ndb-epoch-statvars7124269 -Ref: mysql-cluster-replication-ndb-epoch-limitations7125057 -Ref: mysql-cluster-replication-ndb-epoch-trans7127211 -Node: mysql-cluster-news7135830 -Node: mysql-cluster-news-7-27137374 -Node: mysql-cluster-news-5-5-16-ndb-7-2-27138481 -Node: mysql-cluster-news-5-5-15-ndb-7-2-17139678 -Node: partitioning7150410 -Node: partitioning-overview7156627 -Node: partitioning-types7165683 -Node: partitioning-range7172513 -Ref: partitioning-time-intervals7182246 -Node: partitioning-list7186066 -Node: partitioning-columns7192348 -Node: partitioning-columns-range7194546 -Node: partitioning-columns-list7211840 -Node: partitioning-hash7216425 -Node: partitioning-linear-hash7223147 -Node: partitioning-key7226019 -Node: partitioning-subpartitions7230846 -Node: partitioning-handling-nulls7240083 -Node: partitioning-management7254302 -Node: partitioning-management-range-list7258026 -Node: partitioning-management-hash-key7274511 -Node: partitioning-maintenance7277375 -Node: partitioning-info7280537 -Node: partitioning-pruning7286479 -Node: partitioning-limitations7295483 -Ref: partitioning-limitations-file-system-ops7301911 -Ref: partitioning-limitations-max-partitions7304078 -Ref: partitioning-limitations-subpartitions7308782 -Node: partitioning-limitations-partitioning-keys-unique-keys7312388 -Node: partitioning-limitations-storage-engines7321088 -Node: partitioning-limitations-functions7324060 -Ref: partitioning-limitations-ceiling-floor7325845 -Ref: partitioning-limitations-extract7326441 -Node: stored-programs-views7326930 -Node: stored-programs-defining7329251 -Node: stored-routines7332273 -Node: stored-routines-syntax7335481 -Node: stored-routines-privileges7338596 -Node: stored-routines-metadata7340229 -Node: stored-routines-last-insert-id7341053 -Node: triggers7342049 -Node: trigger-syntax7344211 -Node: trigger-metadata7352126 -Node: events7352535 -Node: events-overview7354468 -Node: events-configuration7358609 -Ref: events-event-scheduler-option7359142 -Node: events-syntax7364705 -Node: events-metadata7365709 -Node: events-status-info7368322 -Node: events-privileges7370432 -Node: views7378427 -Node: view-syntax7379646 -Node: view-algorithms7380997 -Node: view-updatability7384638 -Node: view-metadata7390668 -Node: stored-programs-security7391065 -Node: stored-programs-logging7397143 -Node: information-schema7418165 -Node: character-sets-table7429660 -Node: collations-table7430550 -Node: collation-character-set-applicability-table7432192 -Node: columns-table7432993 -Node: column-privileges-table7435626 -Node: engines-table7437360 -Node: events-table7438301 -Node: files-table7448084 -Node: status-table7464354 -Node: variables-table7465270 -Node: key-column-usage-table7466238 -Node: parameters-table7468869 -Node: partitions-table7472712 -Node: plugins-table7482306 -Node: processlist-table7485741 -Node: profiling-table7487710 -Node: referential-constraints-table7490454 -Node: routines-table7492082 -Node: schemata-table7496952 -Node: schema-privileges-table7497886 -Node: statistics-table7498950 -Node: tables-table7500941 -Node: tablespaces-table7504873 -Node: table-constraints-table7505968 -Node: table-privileges-table7507325 -Node: triggers-table7508570 -Node: user-privileges-table7513955 -Node: views-table7514928 -Node: innodb-i_s-tables7519304 -Node: innodb-cmp-table7520953 -Ref: innodb-information-schema-innodb_cmp_columns_table7521379 -Node: innodb-cmpmem-table7525516 -Ref: innodb-information-schema-innodb_cmpmem_columns_table7525962 -Node: innodb-trx-table7530034 -Ref: innodb-information-schema-innodb_trx_columns_table7530530 -Node: innodb-locks-table7536667 -Ref: innodb-information-schema-innodb_locks_columns_table7537133 -Node: innodb-lock-waits-table7539943 -Ref: innodb-information-schema-innodb_lock_waits_columns_table7540373 -Node: thread-pool-i-s-tables7541184 -Node: tp-thread-state-table7543026 -Node: tp-thread-group-state-table7544867 -Node: tp-thread-group-stats-table7548336 -Node: other-information-schema-tables7552407 -Node: extended-show7552691 -Node: performance-schema7558812 -Node: performance-schema-quick-start7564620 -Node: performance-schema-configuration7582618 -Node: performance-schema-build-configuration7583955 -Node: performance-schema-startup-configuration7587253 -Node: performance-schema-runtime-configuration7591108 -Node: performance-schema-timing7594423 -Node: performance-schema-filtering7602935 -Node: performance-schema-pre-filtering7608689 -Node: performance-schema-filtering-names7612783 -Node: performance-schema-queries7614556 -Node: performance-schema-instrument-naming7615949 -Node: performance-schema-status-monitoring7619842 -Node: performance-schema-table-characteristics7629821 -Node: performance-schema-table-descriptions7631151 -Node: performance-schema-setup-tables7633236 -Node: setup-consumers-table7634573 -Node: setup-instruments-table7636321 -Node: setup-timers-table7639389 -Node: performance-schema-instance-tables7640961 -Node: cond-instances-table7642641 -Node: file-instances-table7643656 -Node: mutex-instances-table7644687 -Node: rwlock-instances-table7648319 -Node: performance-schema-waits-tables7650717 -Node: events-waits-current-table7651571 -Node: events-waits-history-table7655988 -Node: events-waits-history-long-table7656961 -Node: performance-schema-summary-tables7657937 -Node: event-wait-summary-tables7659899 -Node: file-summary-tables7663285 -Node: performance-schema-miscellaneous-tables7665505 -Node: performance-timers-table7666175 -Node: threads-table7668629 -Node: performance-schema-system-variables7670889 -Ref: sysvar_performance_schema7675850 -Ref: sysvar_performance_schema_events_waits_history_long_size7676159 -Ref: sysvar_performance_schema_events_waits_history_size7676330 -Ref: sysvar_performance_schema_max_cond_classes7676497 -Ref: sysvar_performance_schema_max_cond_instances7676593 -Ref: sysvar_performance_schema_max_file_classes7676700 -Ref: sysvar_performance_schema_max_file_handles7676791 -Ref: sysvar_performance_schema_max_file_instances7677210 -Ref: sysvar_performance_schema_max_mutex_classes7677312 -Ref: sysvar_performance_schema_max_mutex_instances7677405 -Ref: sysvar_performance_schema_max_rwlock_classes7677509 -Ref: sysvar_performance_schema_max_rwlock_instances7677604 -Ref: sysvar_performance_schema_max_table_handles7677710 -Ref: sysvar_performance_schema_max_table_instances7677806 -Ref: sysvar_performance_schema_max_thread_classes7677910 -Ref: sysvar_performance_schema_max_thread_instances7678005 -Node: performance-schema-status-variables7678620 -Ref: statvar_Performance_schema_xxx_classes_lost7680181 -Ref: statvar_Performance_schema_xxx_instances_lost7680286 -Ref: statvar_Performance_schema_xxx_handles_lost7680399 -Ref: statvar_Performance_schema_locker_lost7680509 -Node: performance-schema-and-plugins7681112 -Node: performance-schema-examples7682173 -Node: connectors-apis7685632 -Ref: connectors-apis-summary7690967 -Ref: connectors-apis-versions7695919 -Node: connector-odbc7697274 -Node: connector-odbc-versions7700192 -Node: connector-odbc-introduction7702920 -Node: connector-odbc-general-information7703833 -Node: connector-odbc-architecture7704695 -Node: connector-odbc-driver-manager7708513 -Node: connector-odbc-installation7710233 -Node: connector-odbc-installation-binary-windows7713972 -Node: connector-odbc-installation-binary-windows-installer7715987 -Node: connector-odbc-installation-binary-windows-dll7718221 -Node: connector-odbc-installation-binary-unix7721674 -Node: connector-odbc-installation-binary-unix-tarball7722582 -Node: connector-odbc-installation-binary-unix-rpm7723669 -Node: connector-odbc-installation-binary-macosx7725005 -Node: connector-odbc-installation-source-windows7729560 -Node: connector-odbc-installation-source-windows-5-1-building7731249 -Node: connector-odbc-installation-source-windows-3-51-building7732874 -Node: connector-odbc-installation-source-unix7735429 -Node: connector-odbc-installation-source-unix-cmake-options7738710 -Node: connector-odbc-installation-source-unix-configure-options7739672 -Node: connector-odbc-installation-source-unix-otheroptions7742330 -Node: connector-odbc-installation-source-unix-building7744501 -Node: connector-odbc-installation-source-unix-shared-libraries7745080 -Node: connector-odbc-installation-source-unix-installing7747626 -Node: connector-odbc-installation-source-unix-testing7748624 -Node: connector-odbc-installation-source-unix-macosx7749467 -Node: connector-odbc-installation-source-unix-hpux7751440 -Node: connector-odbc-installation-source-unix-aix7752798 -Node: connector-odbc-installation-source-development7753605 -Node: connector-odbc-configuration7756207 -Node: connector-odbc-configuration-dsn7757653 -Node: connector-odbc-configuration-connection-parameters7759082 -Node: connector-odbc-configuration-dsn-windows7774863 -Node: connector-odbc-configuration-dsn-windows-3-517778730 -Node: connector-odbc-configuration-dsn-windows-3-51-command-line7782211 -Node: connector-odbc-configuration-dsn-windows-5-17782777 -Node: connector-odbc-configuration-dsn-windows-5-1-command-line7786304 -Node: connector-odbc-configuration-dsn-windows-problems7786895 -Node: connector-odbc-configuration-dsn-macosx7788210 -Node: connector-odbc-configuration-dsn-unix7791121 -Node: connector-odbc-configuration-connection-without-dsn7793100 -Node: connector-odbc-configuration-connection-pooling7794625 -Node: connector-odbc-configuration-trace7795396 -Node: connector-odbc-configuration-trace-windows7796223 -Node: connector-odbc-configuration-trace-macosx7797299 -Node: connector-odbc-configuration-trace-unix7797998 -Node: connector-odbc-configuration-trace-log7799037 -Node: connector-odbc-examples7800135 -Node: connector-odbc-examples-overview7801279 -Node: connector-odbc-examples-walkthrough7802037 -Node: connector-odbc-examples-tools7804156 -Node: connector-odbc-examples-tools-with-access7806712 -Node: connector-odbc-examples-tools-with-access-export7807575 -Node: connector-odbc-examples-tools-with-access-import7809383 -Node: connector-odbc-examples-tools-with-access-linked-tables7810617 -Node: connector-odbc-examples-tools-with-wordexcel7814097 -Node: connector-odbc-examples-tools-with-crystalreports7817308 -Node: connector-odbc-examples-programming7822031 -Node: connector-odbc-examples-programming-vb7822850 -Node: connector-odbc-examples-programming-vb-ado7823575 -Node: connector-odbc-examples-programming-vb-dao7826502 -Node: connector-odbc-examples-programming-vb-rdo7828931 -Node: connector-odbc-examples-programming-net7831117 -Node: connector-odbc-examples-programming-net-csharp7831677 -Node: connector-odbc-examples-programming-net-vb7837625 -Node: connector-odbc-reference7841608 -Node: connector-odbc-reference-api7842282 -Node: connector-odbc-reference-datatypes7853795 -Node: connector-odbc-reference-errorcodes7856775 -Node: connector-odbc-usagenotes7860009 -Node: connector-odbc-usagenotes-functionality7860683 -Node: connector-odbc-usagenotes-functionality-last-insert-id7861444 -Node: connector-odbc-usagenotes-functionality-dynamic-cursor7863051 -Node: connector-odbc-usagenotes-functionality-performance7863740 -Node: connector-odbc-usagenotes-functionality-query-timeout7865335 -Node: connector-odbc-usagenotes-apptips7865860 -Node: connector-odbc-usagenotes-apptips-microsoft7867366 -Node: connector-odbc-usagenotes-apptips-microsoft-access7868616 -Node: connector-odbc-usagenotes-apptips-microsoft-excel7873121 -Node: connector-odbc-usagenotes-apptips-microsoft-visualbasic7874330 -Node: connector-odbc-usagenotes-apptips-microsoft-visualinterdev7875101 -Node: connector-odbc-usagenotes-apptips-microsoft-visualobjects7875695 -Node: connector-odbc-usagenotes-apptips-microsoft-ado7876068 -Node: connector-odbc-usagenotes-apptips-microsoft-asp7877669 -Node: connector-odbc-usagenotes-apptips-microsoft-vb-asp7878592 -Node: connector-odbc-usagenotes-apptips-borland7879326 -Node: connector-odbc-usagenotes-apptips-borland-builder7880235 -Node: connector-odbc-usagenotes-apptips-borland-delphi7880794 -Node: connector-odbc-usagenotes-apptips-borland-cppbuilder7882783 -Node: connector-odbc-usagenotes-apptips-coldfusion7883306 -Node: connector-odbc-usagenotes-apptips-openoffice7884727 -Node: connector-odbc-usagenotes-apptips-sambarserver7885272 -Node: connector-odbc-usagenotes-apptips-datajunction7885734 -Node: connector-odbc-usagenotes-apptips-vision7886244 -Node: connector-odbc-errors7886572 -Ref: qandaitem-22-1-7-3-1-17890919 -Ref: qandaitem-22-1-7-3-1-27891882 -Ref: qandaitem-22-1-7-3-1-37892231 -Ref: qandaitem-22-1-7-3-1-47893013 -Ref: qandaitem-22-1-7-3-1-57895013 -Ref: qandaitem-22-1-7-3-1-67895411 -Ref: qandaitem-22-1-7-3-1-77895669 -Ref: qandaitem-22-1-7-3-1-87895961 -Ref: qandaitem-22-1-7-3-1-97896224 -Ref: qandaitem-22-1-7-3-1-107896546 -Ref: qandaitem-22-1-7-3-1-117897010 -Ref: qandaitem-22-1-7-3-1-127897733 -Ref: qandaitem-22-1-7-3-1-137898040 -Ref: qandaitem-22-1-7-3-1-147898419 -Ref: qandaitem-22-1-7-3-1-157898818 -Ref: qandaitem-22-1-7-3-1-167899229 -Ref: qandaitem-22-1-7-3-1-177899778 -Ref: qandaitem-22-1-7-3-1-187900130 -Ref: qandaitem-22-1-7-3-1-197900530 -Ref: qandaitem-22-1-7-3-1-207901087 -Ref: qandaitem-22-1-7-3-1-217901495 -Ref: qandaitem-22-1-7-3-1-227902050 -Ref: qandaitem-22-1-7-3-1-237902348 -Ref: qandaitem-22-1-7-3-1-247902918 -Node: connector-odbc-support7903297 -Node: connector-odbc-support-community7904099 -Node: connector-odbc-support-bug-report7905015 -Node: connector-odbc-support-patch-submission7907527 -Node: connector-odbc-support-changehistory7907945 -Node: connector-odbc-support-credits7908332 -Node: connector-net7908683 -Node: connector-net-versions7911628 -Node: connector-net-installation7916367 -Node: connector-net-installation-windows7917188 -Node: connector-net-installation-binary-windows-installer7917943 -Node: connector-net-installation-binary-windows-zip7922240 -Node: connector-net-installation-unix7924596 -Node: connector-net-installation-source7926767 -Node: connector-net-visual-studio7928972 -Node: connector-net-visual-studio-making-a-connection7932007 -Ref: connector-net-visual-studio-add-connection7932835 -Ref: connector-net-visual-studio-choose-data-source7933138 -Ref: connector-net-visual-studio-add-connection-dialog7933472 -Ref: connector-net-visual-studio-new-data-connection7934064 -Node: connector-net-visual-studio-editing-tables7934679 -Ref: connector-net-visual-studio-editing-new-table7936008 -Ref: connector-net-visual-studio-choose-table-name7937086 -Ref: connector-net-visual-studio-newly-created-table7937184 -Ref: connector-net-visual-studio-table-desginer-menu-item7937355 -Node: connector-net-visual-studio-editing-tables-column-editor7937399 -Node: connector-net-visual-studio-editing-tables-indexes7938718 -Ref: connector-net-visual-studio-indexes-dialog7939295 -Node: connector-net-visual-studio-editing-tables-foreign-keys7939618 -Ref: connector-net-visual-studio-foreign-key-relationships7940596 -Node: connector-net-visual-studio-editing-tables-column-details7940648 -Node: connector-net-visual-studio-editing-tables-table-properties7941225 -Ref: connector-net-visual-studio-table-properties-menu7941655 -Ref: connector-net-visual-studio-selecting-table-properties7942021 -Node: connector-net-visual-studio-editing-views7942057 -Ref: connector-net-visual-studio-views-edit-sql7942531 -Ref: connector-net-visual-studio-views-sql-added7942610 -Ref: connector-net-visual-studio-views-sql-saved7943438 -Node: connector-net-visual-studio-editing-stored-procedures-and-functions7943472 -Ref: connector-net-visual-studio-stored-procedure-edit7944029 -Ref: connector-net-visual-studio-stored-procedure-saved7945545 -Node: connector-net-visual-studio-editing-triggers7945591 -Node: connector-net-visual-studio-editing-user-defined-functions-udf7947259 -Node: connector-net-visual-studio-cloning-database-objects7948662 -Node: connector-net-visual-studio-dropping-database-objects7949668 -Node: connector-net-visual-studio-entity-framework7950326 -Node: connector-net-website-config7952077 -Ref: connector-net-website-config-tool7952876 -Ref: connector-net-website-config-tool-membership7953025 -Ref: connector-net-website-config-tool-string-editor7953425 -Ref: connector-net-website-config-tool-options7954418 -Ref: connector-net-website-config-tool-roles7954651 -Ref: connector-net-website-config-tool-profiles7954876 -Ref: connector-net-website-config-tool-session-state7955067 -Ref: connector-net-website-config-tool-tables7955650 -Node: connector-net-sql-editor7955711 -Ref: connector-net-sql-editor-new-file-dialog7956137 -Ref: connector-net-sql-editor-query7956916 -Node: connector-net-ddl-t4-ef7957074 -Ref: connector-net-ddl-t4-ef-properties7957725 -Ref: connector-net-ddl-t4-ef-generate7958018 -Node: connector-net-tutorials7958086 -Node: connector-net-tutorials-intro7959238 -Node: connector-net-tutorials-connection7960944 -Node: connector-net-tutorials-sql-command7963265 -Node: connector-net-tutorials-data-adapter7969213 -Ref: connector-net-tutorials-17976273 -Node: connector-net-tutorials-parameters7976319 -Node: connector-net-tutorials-stored-procedures7979642 -Node: connector-net-tutorials-asp-roles7983505 -Ref: connector-net-tutorials-authentication-type7989347 -Ref: connector-net-tutorials-select-provider7989677 -Ref: connector-net-tutorials-tables7989974 -Ref: connector-net-tutorials-security-tab7990654 -Ref: connector-net-tutorials-create-user7991007 -Ref: connector-net-tutorials-users-roles-tables7991200 -Node: connector-net-tutorials-asp-provider-session-state7991401 -Node: connector-net-tutorials-asp-provider-profile7997908 -Ref: connector-net-tutorials-asp-provider-profile-simple-app8001208 -Node: connector-net-tutorials-entity-framework-winform-data-source8003613 -Ref: connector-net-visual-studio-entity-framework-add-entity-data-model8005174 -Ref: connector-net-visual-studio-entity-framework-entity-data-model-wizard-18005431 -Ref: connector-net-visual-studio-entity-framework-entity-data-model-wizard-28005827 -Ref: connector-net-visual-studio-entity-framework-entity-data-model-wizard-38006488 -Ref: connector-net-visual-studio-entity-framework-entity-data-model-diagram8006611 -Ref: connector-net-visual-studio-entity-framework-data-source-configuration-wizard-18007089 -Ref: connector-net-visual-studio-entity-framework-data-source-configuration-wizard-28007386 -Ref: connector-net-visual-studio-entity-framework-data-source-configuration-wizard-38007547 -Ref: connector-net-visual-studio-entity-framework-data-sources8007854 -Ref: connector-net-visual-studio-entity-framework-data-form-design8008349 -Ref: connector-net-visual-studio-entity-framework-form-add-code8008814 -Ref: connector-net-visual-studio-entity-framework-app-running-18008992 -Ref: connector-net-visual-studio-entity-framework-save-enabled8009619 -Ref: connector-net-visual-studio-entity-framework-form-add-code-save8009870 -Node: connector-net-tutorials-entity-framework-databinding-linq-entities8010075 -Ref: connector-net-visual-studio-entity-framework-tutorial-linq-18011494 -Ref: connector-net-visual-studio-entity-framework-tutorial-linq-28011773 -Ref: connector-net-visual-studio-entity-framework-tutorial-linq-38012102 -Ref: connector-net-visual-studio-entity-framework-tutorial-linq-48012200 -Ref: connector-net-visual-studio-entity-framework-tutorial-linq-58012352 -Ref: connector-net-visual-studio-entity-framework-tutorial-linq-68016393 -Ref: connector-net-visual-studio-entity-framework-tutorial-linq-78016562 -Node: connector-net-tutorials-ssl8016773 -Node: connector-net-tutorials-mysqlscript8023399 -Node: connector-net-tutorials-mysqlscript-delimiter8029036 -Node: connector-net-tutorials-efmodel-ddl8032906 -Node: connector-net-programming8035037 -Node: connector-net-programming-connecting8037687 -Node: connector-net-programming-connecting-connection-string8038428 -Node: connector-net-programming-connecting-open8040025 -Node: connector-net-programming-connecting-errors8042536 -Node: connector-net-programming-getschema8045310 -Node: connector-net-programming-getschema-collections8046865 -Node: connector-net-programming-mysqlcommand8049575 -Node: connector-net-programming-connection-pooling8052920 -Node: connector-net-programming-prepared8055790 -Node: connector-net-programming-prepared-preparing8056955 -Node: connector-net-programming-stored8059587 -Node: connector-net-programming-stored-using8061904 -Node: connector-net-programming-blob8070271 -Node: connector-net-programming-blob-serverprep8071392 -Node: connector-net-programming-blob-writing8073530 -Node: connector-net-programming-blob-reading8077075 -Node: connector-net-programming-crystal8080899 -Node: connector-net-programming-crystal-source8081622 -Node: connector-net-programming-crystal-creating8085117 -Node: connector-net-programming-crystal-displaying8086222 -Node: connector-net-programming-datetime8093953 -Node: connector-net-programming-datetime-problems8094943 -Node: connector-net-programming-datetime-restricting8095640 -Node: connector-net-programming-datetime-invalid8096690 -Node: connector-net-programming-datetime-null8098436 -Node: connector-net-programming-asp-provider8099479 -Node: connector-net-programming-binary-issues8107290 -Node: connector-net-using-character-sets8109195 -Node: connector-net-medium-trust8110727 -Node: connector-net-programming-tracing8111866 -Node: connector-net-programming-tracing-mysql8116973 -Node: connector-net-programming-tracing-mysql-custom-listeners8124252 -Node: connector-net-programming-bulk-loader8128160 -Node: connector-net-connection-options8131731 -Node: connector-net-ref8155065 -Node: connector-net-ref-mysqlclient8155551 -Node: connector-net-ref-mysqlclienthierarchy8160670 -Node: connector-net-ref-mysqlclient-mysqlcommand8161034 -Node: connector-net-ref-mysqlclient-mysqlcommandmembers8162216 -Node: connector-net-ref-mysqlclient-mysqlcommandconstructor8167941 -Node: connector-net-ref-mysqlclient-mysqlcommandconstructor18169467 -Node: connector-net-ref-mysqlclient-mysqlcommandconstructor28170277 -Node: connector-net-ref-mysqlclient-mysqlcommandconstructor38171060 -Node: connector-net-ref-mysqlclient-mysqlconnection8171989 -Node: connector-net-ref-mysqlclient-mysqlconnectionmembers8173193 -Node: connector-net-ref-mysqlclient-mysqlconnectionconstructor8179404 -Node: connector-net-ref-mysqlclient-mysqlconnectionconstructor18180573 -Node: connector-net-ref-mysqlclient-mysqlconnectionconstructor28181418 -Node: connector-net-ref-mysqlclient-mysqlconnection-connectionstring8182170 -Node: connector-net-ref-mysqlclient-mysqlconnection-connectiontimeout8182946 -Node: connector-net-ref-mysqlclient-mysqlconnection-database8183728 -Node: connector-net-ref-mysqlclient-mysqlconnection-datasource8184452 -Node: connector-net-ref-mysqlclient-mysqlconnection-serverthread8185132 -Node: connector-net-ref-mysqlclient-mysqlconnection-serverversion8185836 -Node: connector-net-ref-mysqlclient-mysqlconnection-state8186472 -Node: connector-net-ref-mysqlclient-mysqlconnection-usecompression8187205 -Node: connector-net-ref-mysqlclient-mysqlconnection-begintransaction-overloads8187948 -Node: connector-net-ref-mysqlclient-mysqlconnection-begintransaction-overload-18189033 -Node: connector-net-ref-mysqlclient-mysqltransaction8190017 -Node: connector-net-ref-mysqlclient-mysqltransactionmembers8191237 -Node: connector-net-ref-mysqlclient-mysqltransaction-connection8193708 -Node: connector-net-ref-mysqlclient-mysqltransaction-isolationlevel8195020 -Node: connector-net-ref-mysqlclient-mysqltransaction-commit8196071 -Node: connector-net-ref-mysqlclient-mysqltransaction-rollback8196790 -Node: connector-net-ref-mysqlclient-mysqlconnection-begintransaction-overload-28197451 -Node: connector-net-ref-mysqlclient-mysqlconnection-changedatabase8198342 -Node: connector-net-ref-mysqlclient-mysqlconnection-close8199193 -Node: connector-net-ref-mysqlclient-mysqlconnection-createcommand8199900 -Node: connector-net-ref-mysqlclient-mysqlconnection-open8200561 -Node: connector-net-ref-mysqlclient-mysqlconnection-ping8201251 -Node: connector-net-ref-mysqlclient-mysqlconnection-infomessage8201882 -Node: connector-net-ref-mysqlclient-mysqlinfomessageeventhandler8202682 -Node: connector-net-ref-mysqlclient-mysqlinfomessageeventargs8203832 -Node: connector-net-ref-mysqlclient-mysqlinfomessageeventargsmembers8205135 -Node: connector-net-ref-mysqlclient-mysqlinfomessageeventargsconstructor8207636 -Node: connector-net-ref-mysqlclient-mysqlinfomessageeventargs-errors8208460 -Node: connector-net-ref-mysqlclient-mysqlerror8209162 -Node: connector-net-ref-mysqlclient-mysqlerrormembers8210258 -Node: connector-net-ref-mysqlclient-mysqlerrorconstructor8212665 -Node: connector-net-ref-mysqlclient-mysqlerror-code8213444 -Node: connector-net-ref-mysqlclient-mysqlerror-level8214013 -Node: connector-net-ref-mysqlclient-mysqlerror-message8214586 -Node: connector-net-ref-mysqlclient-mysqlconnection-statechange8215115 -Node: connector-net-ref-mysqlclient-mysqlcommandconstructor48215732 -Node: connector-net-ref-mysqlclient-mysqlcommand-commandtext8216598 -Node: connector-net-ref-mysqlclient-mysqlcommand-commandtimeout8217312 -Node: connector-net-ref-mysqlclient-mysqlcommand-commandtype8218043 -Node: connector-net-ref-mysqlclient-mysqlcommand-connection8218779 -Node: connector-net-ref-mysqlclient-mysqlcommand-isprepared8219400 -Node: connector-net-ref-mysqlclient-mysqlcommand-parameters8220005 -Node: connector-net-ref-mysqlclient-mysqlparametercollection8220751 -Node: connector-net-ref-mysqlclient-mysqlparametercollectionmembers8222348 -Node: connector-net-ref-mysqlclient-mysqlparametercollectionconstructor8228687 -Node: connector-net-ref-mysqlclient-mysqlparametercollection-count8229499 -Node: connector-net-ref-mysqlclient-mysqlparametercollectionitem8230298 -Node: connector-net-ref-mysqlclient-mysqlparameter8231809 -Node: connector-net-ref-mysqlclient-mysqlparametermembers8233312 -Node: connector-net-ref-mysqlclient-mysqlparameterconstructor8239626 -Node: connector-net-ref-mysqlclient-mysqlparameterconstructor18242735 -Node: connector-net-ref-mysqlclient-mysqlparameterconstructor38243519 -Node: connector-net-ref-mysqlclient-mysqldbtype8244793 -Node: connector-net-ref-mysqlclient-mysqlparameterconstructor48251121 -Node: connector-net-ref-mysqlclient-mysqlparameterconstructor68252523 -Node: connector-net-ref-mysqlclient-mysqlparameter-value8255328 -Node: connector-net-ref-mysqlclient-mysqlparameterconstructor58256000 -Node: connector-net-ref-mysqlclient-mysqlparameterconstructor28257486 -Node: connector-net-ref-mysqlclient-mysqlparameter-dbtype8258640 -Node: connector-net-ref-mysqlclient-mysqlparameter-direction8259388 -Node: connector-net-ref-mysqlclient-mysqlparameter-isnullable8260354 -Node: connector-net-ref-mysqlclient-mysqlparameter-isunsigned8261151 -Node: connector-net-ref-mysqlclient-mysqlparameter-mysqldbtype8261765 -Node: connector-net-ref-mysqlclient-mysqlparameter-parametername8262449 -Node: connector-net-ref-mysqlclient-mysqlparameter-precision8263239 -Node: connector-net-ref-mysqlclient-mysqlparameter-scale8264094 -Node: connector-net-ref-mysqlclient-mysqlparameter-size8264906 -Node: connector-net-ref-mysqlclient-mysqlparameter-sourcecolumn8265659 -Node: connector-net-ref-mysqlclient-mysqlparameter-sourceversion8266570 -Node: connector-net-ref-mysqlclient-mysqlparameter-tostring8267460 -Node: connector-net-ref-mysqlclient-mysqlparametercollection-item18268185 -Node: connector-net-ref-mysqlclient-mysqlparametercollection-item28269130 -Node: connector-net-ref-mysqlclient-mysqlparametercollection-add-overloads8270025 -Node: connector-net-ref-mysqlclient-mysqlparametercollection-add-overload-28273553 -Node: connector-net-ref-mysqlclient-mysqlparametercollection-add-overload-18274925 -Node: connector-net-ref-mysqlclient-mysqlparametercollection-add-overload-48276346 -Node: connector-net-ref-mysqlclient-mysqlparametercollection-add-overload-58277836 -Node: connector-net-ref-mysqlclient-mysqlparametercollection-add-overload-68279432 -Node: connector-net-ref-mysqlclient-mysqlparametercollection-add-overload-38281170 -Node: connector-net-ref-mysqlclient-mysqlparametercollection-clear8282671 -Node: connector-net-ref-mysqlclient-mysqlparametercollection-contains-overloads8283478 -Node: connector-net-ref-mysqlclient-mysqlparametercollection-contains-overload-18284910 -Node: connector-net-ref-mysqlclient-mysqlparametercollection-contains-overload-28286306 -Node: connector-net-ref-mysqlclient-mysqlparametercollection-copyto8287676 -Node: connector-net-ref-mysqlclient-mysqlparametercollection-indexof-overloads8288709 -Node: connector-net-ref-mysqlclient-mysqlparametercollection-indexof-overload-18290128 -Node: connector-net-ref-mysqlclient-mysqlparametercollection-indexof-overload-28291524 -Node: connector-net-ref-mysqlclient-mysqlparametercollection-insert8292950 -Node: connector-net-ref-mysqlclient-mysqlparametercollection-remove8293944 -Node: connector-net-ref-mysqlclient-mysqlparametercollection-removeat-overloads8294864 -Node: connector-net-ref-mysqlclient-mysqlparametercollection-removeat-overload-18296243 -Node: connector-net-ref-mysqlclient-mysqlparametercollection-removeat-overload-28297467 -Node: connector-net-ref-mysqlclient-mysqlcommand-transaction8298719 -Node: connector-net-ref-mysqlclient-mysqlcommand-updatedrowsource8299354 -Node: connector-net-ref-mysqlclient-mysqlcommand-cancel8300128 -Node: connector-net-ref-mysqlclient-mysqlcommand-createparameter8301134 -Node: connector-net-ref-mysqlclient-mysqlcommand-executenonquery8302072 -Node: connector-net-ref-mysqlclient-mysqlcommand-executereader-overloads8302847 -Node: connector-net-ref-mysqlclient-mysqlcommand-executereader-overload-18303864 -Node: connector-net-ref-mysqlclient-mysqldatareader8304786 -Node: connector-net-ref-mysqlclient-mysqldatareadermembers8306202 -Node: connector-net-ref-mysqlclient-mysqldatareader-depth8317061 -Node: connector-net-ref-mysqlclient-mysqldatareader-fieldcount8317877 -Node: connector-net-ref-mysqlclient-mysqldatareader-hasrows8318644 -Node: connector-net-ref-mysqlclient-mysqldatareader-isclosed8319332 -Node: connector-net-ref-mysqlclient-mysqldatareaderitem8320096 -Node: connector-net-ref-mysqlclient-mysqldatareader-item18321346 -Node: connector-net-ref-mysqlclient-mysqldatareader-item28322376 -Node: connector-net-ref-mysqlclient-mysqldatareader-recordsaffected8323347 -Node: connector-net-ref-mysqlclient-mysqldatareader-close8324187 -Node: connector-net-ref-mysqlclient-mysqldatareader-getboolean8324926 -Node: connector-net-ref-mysqlclient-mysqldatareader-getbyte8325815 -Node: connector-net-ref-mysqlclient-mysqldatareader-getbytes8326683 -Node: connector-net-ref-mysqlclient-mysqldatareader-getchar8328197 -Node: connector-net-ref-mysqlclient-mysqldatareader-getchars8329075 -Node: connector-net-ref-mysqlclient-mysqldatareader-getdatatypename8330332 -Node: connector-net-ref-mysqlclient-mysqldatareader-getdatetime8331250 -Node: connector-net-ref-mysqlclient-mysqldatareader-getdecimal8332073 -Node: connector-net-ref-mysqlclient-mysqldatareader-getdouble8332886 -Node: connector-net-ref-mysqlclient-mysqldatareader-getfieldtype8333692 -Node: connector-net-ref-mysqlclient-mysqldatareader-getfloat8334595 -Node: connector-net-ref-mysqlclient-mysqldatareader-getguid8335390 -Node: connector-net-ref-mysqlclient-mysqldatareader-getint168336172 -Node: connector-net-ref-mysqlclient-mysqldatareader-getint328336962 -Node: connector-net-ref-mysqlclient-mysqldatareader-getint648337753 -Node: connector-net-ref-mysqlclient-mysqldatareader-getmysqldatetime8338550 -Node: connector-net-ref-mysqlclient-mysqldatareader-getname8339297 -Node: connector-net-ref-mysqlclient-mysqldatareader-getordinal8340166 -Node: connector-net-ref-mysqlclient-mysqldatareader-getschematable8341076 -Node: connector-net-ref-mysqlclient-mysqldatareader-getstring8341955 -Node: connector-net-ref-mysqlclient-mysqldatareader-gettimespan8342764 -Node: connector-net-ref-mysqlclient-mysqldatareader-getuint168343479 -Node: connector-net-ref-mysqlclient-mysqldatareader-getuint328344182 -Node: connector-net-ref-mysqlclient-mysqldatareader-getuint648344881 -Node: connector-net-ref-mysqlclient-mysqldatareader-getvalue8345580 -Node: connector-net-ref-mysqlclient-mysqldatareader-getvalues8346470 -Node: connector-net-ref-mysqlclient-mysqldatareader-isdbnull8347389 -Node: connector-net-ref-mysqlclient-mysqldatareader-nextresult8348302 -Node: connector-net-ref-mysqlclient-mysqldatareader-read8349155 -Node: connector-net-ref-mysqlclient-mysqlcommand-executereader-overload-28349863 -Node: connector-net-ref-mysqlclient-mysqlcommand-executescalar8350712 -Node: connector-net-ref-mysqlclient-mysqlcommand-prepare8351467 -Node: connector-net-ref-mysqlclient-mysqlcommandbuilder8352094 -Node: connector-net-ref-mysqlclient-mysqlcommandbuildermembers8353288 -Node: connector-net-ref-mysqlclient-mysqlcommandbuilder-deriveparameters-overloads8358518 -Node: connector-net-ref-mysqlclient-mysqlcommandbuilder-deriveparameters-overload-18360163 -Node: connector-net-ref-mysqlclient-mysqlcommandbuilder-deriveparameters-overload-28361843 -Node: connector-net-ref-mysqlclient-mysqlcommandbuilderconstructor8362807 -Node: connector-net-ref-mysqlclient-mysqlcommandbuilderconstructor18364533 -Node: connector-net-ref-mysqlclient-mysqlcommandbuilderconstructor38365432 -Node: connector-net-ref-mysqlclient-mysqldataadapter8366385 -Node: connector-net-ref-mysqlclient-mysqldataadaptermembers8367552 -Node: connector-net-ref-mysqlclient-mysqldataadapterconstructor8376268 -Node: connector-net-ref-mysqlclient-mysqldataadapterconstructor18377900 -Node: connector-net-ref-mysqlclient-mysqldataadapterconstructor28378760 -Node: connector-net-ref-mysqlclient-mysqldataadapterconstructor38379597 -Node: connector-net-ref-mysqlclient-mysqldataadapterconstructor48380509 -Node: connector-net-ref-mysqlclient-mysqldataadapter-deletecommand18381348 -Node: connector-net-ref-mysqlclient-mysqldataadapter-insertcommand18382022 -Node: connector-net-ref-mysqlclient-mysqldataadapter-selectcommand18382700 -Node: connector-net-ref-mysqlclient-mysqldataadapter-updatecommand18383378 -Node: connector-net-ref-mysqlclient-mysqldataadapter-rowupdated8384052 -Node: connector-net-ref-mysqlclient-mysqlrowupdatedeventhandler8386500 -Node: connector-net-ref-mysqlclient-mysqlrowupdatedeventargs8387570 -Node: connector-net-ref-mysqlclient-mysqlrowupdatedeventargsmembers8388903 -Node: connector-net-ref-mysqlclient-mysqlrowupdatedeventargsconstructor8392150 -Node: connector-net-ref-mysqlclient-mysqlrowupdatedeventargs-command18393485 -Node: connector-net-ref-mysqlclient-mysqldataadapter-rowupdating8394166 -Node: connector-net-ref-mysqlclient-mysqlrowupdatingeventhandler8396331 -Node: connector-net-ref-mysqlclient-mysqlrowupdatingeventargs8397413 -Node: connector-net-ref-mysqlclient-mysqlrowupdatingeventargsmembers8398762 -Node: connector-net-ref-mysqlclient-mysqlrowupdatingeventargsconstructor8401611 -Node: connector-net-ref-mysqlclient-mysqlrowupdatingeventargs-command18402938 -Node: connector-net-ref-mysqlclient-mysqlcommandbuilderconstructor48403627 -Node: connector-net-ref-mysqlclient-mysqlcommandbuilderconstructor28404555 -Node: connector-net-ref-mysqlclient-mysqlcommandbuilder-dataadapter8405338 -Node: connector-net-ref-mysqlclient-mysqlcommandbuilder-quoteprefix8406010 -Node: connector-net-ref-mysqlclient-mysqlcommandbuilder-quotesuffix8406663 -Node: connector-net-ref-mysqlclient-mysqlcommandbuilder-getdeletecommand8407321 -Node: connector-net-ref-mysqlclient-mysqlcommandbuilder-getinsertcommand8408049 -Node: connector-net-ref-mysqlclient-mysqlcommandbuilder-getupdatecommand8408782 -Node: connector-net-ref-mysqlclient-mysqlcommandbuilder-refreshschema8409512 -Node: connector-net-ref-mysqlclient-mysqlexception8410126 -Node: connector-net-ref-mysqlclient-mysqlexceptionmembers8411372 -Node: connector-net-ref-mysqlclient-mysqlexception-number8414823 -Node: connector-net-ref-mysqlclient-mysqlhelper8415403 -Node: connector-net-ref-mysqlclient-mysqlhelpermembers8416536 -Node: connector-net-ref-mysqlclient-mysqlhelper-executedatarow8420134 -Node: connector-net-ref-mysqlclient-mysqlhelper-executedataset-overloads8421421 -Node: connector-net-ref-mysqlclient-mysqlhelper-executedataset-overload-38423933 -Node: connector-net-ref-mysqlclient-mysqlhelper-executedataset-overload-48425353 -Node: connector-net-ref-mysqlclient-mysqlhelper-executedataset-overload-18426945 -Node: connector-net-ref-mysqlclient-mysqlhelper-executedataset-overload-28428250 -Node: connector-net-ref-mysqlclient-mysqlhelper-executenonquery-overloads8429650 -Node: connector-net-ref-mysqlclient-mysqlhelper-executenonquery-overload-18431393 -Node: connector-net-ref-mysqlclient-mysqlhelper-executenonquery-overload-28433057 -Node: connector-net-ref-mysqlclient-mysqlhelper-executereader-overloads8434650 -Node: connector-net-ref-mysqlclient-mysqlhelper-executereader-overload-18435859 -Node: connector-net-ref-mysqlclient-mysqlhelper-executereader-overload-28437150 -Node: connector-net-ref-mysqlclient-mysqlhelper-executescalar-overloads8438624 -Node: connector-net-ref-mysqlclient-mysqlhelper-executescalar-overload-38440410 -Node: connector-net-ref-mysqlclient-mysqlhelper-executescalar-overload-48441738 -Node: connector-net-ref-mysqlclient-mysqlhelper-executescalar-overload-18443238 -Node: connector-net-ref-mysqlclient-mysqlhelper-executescalar-overload-28444507 -Node: connector-net-ref-mysqlclient-mysqlhelper-updatedataset8445874 -Node: connector-net-ref-mysqlclient-mysqlerrorcode8447011 -Node: connector-net-ref-types8447976 -Node: connector-net-ref-typeshierarchy8448831 -Node: connector-net-ref-types-mysqlconversionexception8449163 -Node: connector-net-ref-types-mysqlconversionexceptionmembers8450392 -Node: connector-net-ref-types-mysqlconversionexceptionconstructor8454427 -Node: connector-net-ref-types-mysqldatetime8455064 -Node: connector-net-ref-types-mysqldatetimemembers8456185 -Node: connector-net-ref-types-mysqldatetime-op-explicit8461166 -Node: connector-net-ref-types-mysqldatetime-day8461888 -Node: connector-net-ref-types-mysqldatetime-hour8462456 -Node: connector-net-ref-types-mysqlvalue-isnull8463021 -Node: connector-net-ref-types-mysqlvalue8463627 -Node: connector-net-ref-types-mysqlvaluemembers8464594 -Node: connector-net-ref-types-mysqlvalue-numberformat8468294 -Node: connector-net-ref-types-mysqlvalueconstructor8468890 -Node: connector-net-ref-types-mysqlvalue-valueasobject8469516 -Node: connector-net-ref-types-mysqlvalue-tostring8470129 -Node: connector-net-ref-types-mysqlvalue-classtype8470752 -Node: connector-net-ref-types-mysqlvalue-dbtype8471336 -Node: connector-net-ref-types-mysqlvalue-mysqldbtype8471906 -Node: connector-net-ref-types-mysqlvalue-mysqltypename8472504 -Node: connector-net-ref-types-mysqlvalue-objectvalue8473120 -Node: connector-net-ref-types-mysqldatetime-isvaliddatetime8473630 -Node: connector-net-ref-types-mysqldatetime-minute8474296 -Node: connector-net-ref-types-mysqldatetime-month8474887 -Node: connector-net-ref-types-mysqldatetime-second8475464 -Node: connector-net-ref-types-mysqldatetime-year8476044 -Node: connector-net-ref-types-mysqldatetime-getdatetime8476620 -Node: connector-net-ref-types-mysqldatetime-tostring8477240 -Node: connector-net-support8477844 -Node: connector-net-support-community8478538 -Node: connector-net-support-bug-report8479132 -Node: connector-net-support-changehistory8480252 -Node: connector-net-faq8480587 -Ref: qandaitem-22-2-9-1-18480844 -Node: connector-j8484185 -Node: connector-j-versions8486877 -Node: connector-j-versions-java8489344 -Node: connector-j-installing8491090 -Node: connector-j-binary-installation8492271 -Node: connector-j-installing-classpath8494152 -Node: connector-j-installing-upgrading8497098 -Node: connector-j-installing-upgrading-3-0-to-3-18498085 -Node: connector-j-installing-upgrading-5-18503107 -Node: connector-j-installing-upgrading-issues8504400 -Node: connector-j-installing-source8505820 -Node: connector-j-examples8509895 -Node: connector-j-reference8510883 -Node: connector-j-reference-configuration-properties8511869 -Node: connector-j-reference-implementation-notes8591962 -Node: connector-j-reference-type-conversions8602447 -Node: connector-j-reference-charsets8608039 -Node: connector-j-reference-using-ssl8611562 -Node: connector-j-reference-replication-connection8620050 -Node: connector-j-reference-error-sqlstates8623980 -Node: connector-j-usagenotes8633359 -Node: connector-j-usagenotes-basic8633794 -Node: connector-j-usagenotes-connect-drivermanager8634436 -Ref: connector-j-examples-connection-drivermanager8636499 -Node: connector-j-usagenotes-statements8637756 -Ref: connector-j-examples-execute-select8639473 -Node: connector-j-usagenotes-statements-callable8640964 -Ref: connector-j-examples-stored-procedure8642114 -Ref: connector-j-examples-preparecall8642716 -Ref: connector-j-examples-output-param8643813 -Ref: connector-j-examples-callablestatement8645105 -Ref: connector-j-examples-retrieving-results-params8646127 -Node: connector-j-usagenotes-last-insert-id8646850 -Ref: connector-j-examples-autoincrement-getgeneratedkeys8648247 -Ref: connector-j-examples-autoincrement-select8650280 -Ref: connector-j-examples-autoincrement-updateable-resultsets8652088 -Node: connector-j-usagenotes-j2ee8654643 -Node: connector-j-usagenotes-j2ee-concepts8655360 -Node: connector-j-usagenotes-j2ee-concepts-connection-pooling8656007 -Ref: connector-j-examples-connectionpool-j2ee8659508 -Node: connector-j-usagenotes-j2ee-concepts-managing-load-balanced-connections8667384 -Node: connector-j-usagenotes-j2ee-concepts-load-balancing-failover8673879 -Node: connector-j-usagenotes-tomcat8679860 -Node: connector-j-usagenotes-jboss8686078 -Node: connector-j-usagenotes-spring-config8688489 -Node: connector-j-usagenotes-spring-config-jdbctemplate8693703 -Node: connector-j-usagenotes-spring-config-transactional8697246 -Node: connector-j-usagenotes-spring-config-connpooling8701829 -Node: connector-j-usagenotes-glassfish-config8704224 -Node: connector-j-usagenotes-glassfish-config-jsp8708357 -Node: connector-j-usagenotes-glassfish-config-servlet8713956 -Node: connector-j-usagenotes-troubleshooting8719735 -Ref: qandaitem-22-3-5-3-1-18723820 -Ref: qandaitem-22-3-5-3-1-28725161 -Ref: qandaitem-22-3-5-3-1-38725656 -Ref: qandaitem-22-3-5-3-1-48727493 -Ref: connector-j-examples-transaction-retry8728399 -Ref: qandaitem-22-3-5-3-1-58733102 -Ref: qandaitem-22-3-5-3-1-68734023 -Ref: qandaitem-22-3-5-3-1-78734500 -Ref: qandaitem-22-3-5-3-1-88735808 -Ref: qandaitem-22-3-5-3-1-98736654 -Ref: qandaitem-22-3-5-3-1-108737066 -Ref: qandaitem-22-3-5-3-1-118738029 -Ref: qandaitem-22-3-5-3-1-128738350 -Ref: qandaitem-22-3-5-3-1-138740793 -Ref: qandaitem-22-3-5-3-1-148744147 -Ref: qandaitem-22-3-5-3-1-158744330 -Ref: qandaitem-22-3-5-3-1-168744678 -Node: connector-j-support8745280 -Node: connector-j-support-community8745649 -Node: connector-j-support-bug-report8746561 -Node: connector-j-support-changelog8751453 -Node: connector-mxj8751761 -Node: connector-mxj-overview8753451 -Node: connector-mxj-versions8755581 -Node: connector-mxj-install8756855 -Node: connector-mxj-install-platforms8758210 -Node: connector-mxj-install-base8759568 -Node: connector-mxj-install-quickstart8762413 -Node: connector-mxj-install-class8765507 -Node: connector-mxj-install-jboss8766521 -Node: connector-mxj-installation-test8768224 -Node: connector-mxj-installation-test-requirements8768747 -Node: connector-mxj-installation-test-running8770170 -Node: connector-mxj-configuration8771805 -Node: connector-mxj-configuration-driver-launched8772241 -Node: connector-mxj-configuration-java-object8775206 -Node: connector-mxj-configuration-options8779727 -Node: connector-mxj-ref8781148 -Node: connector-mxj-ref-mysqldresource-ctor8781600 -Node: connector-mxj-ref-mysqldresource-methods8783136 -Node: connector-mxj-usagenotes8784941 -Node: connector-mxj-usagenotes-packaging8785611 -Node: connector-mxj-usagenotes-customdb8790427 -Node: connector-mxj-usagenotes-jmx-agent8792462 -Node: connector-mxj-usagenotes-standard-environment8794624 -Node: connector-mxj-samples8798466 -Node: connector-mxj-samples-jsp8798800 -Node: connector-mxj-support8806066 -Node: connector-mxj-support-community8806686 -Node: connector-mxj-support-bug-report8807543 -Node: connector-mxj-support-changelog8808434 -Node: connector-cpp8808765 -Node: connector-cpp-installation-binary8813794 -Ref: connector-cpp-installer-welcome-figure8817167 -Ref: connector-cpp-installer-overview-figure8817219 -Ref: connector-cpp-installer-custom-figure8817490 -Node: connector-cpp-installation-source8817547 -Node: connector-cpp-installation-source-unix8819524 -Node: connector-cpp-installation-source-windows8824981 -Node: connector-cpp-dynamic-linking-client-library8831185 -Node: connector-cpp-apps-windows-visual-studio8833519 -Ref: connector-cpp-menu-new-project8835266 -Ref: connector-cpp-new-project-wizard8835572 -Ref: connector-cpp-win32-application-wizard8835878 -Ref: connector-cpp-select-release-build8836048 -Ref: connector-cpp-menu-project-properties8836220 -Ref: connector-cpp-properties8836400 -Ref: connector-cpp-mysql-include-dir8836627 -Ref: connector-cpp-mysql-include-select-directory-dialog8836779 -Ref: connector-cpp-mysql-lib-opt-dir8837056 -Ref: connector-cpp-additional-library-dir8837212 -Ref: connector-cpp-additional-lib-dir-select8837423 -Ref: connector-cpp-application-build-static8837485 -Ref: connector-cpp-additional-dependencies8837844 -Ref: connector-cpp-additional-dependencies-added8837926 -Ref: connector-cpp-cppconn-public-func8838555 -Ref: connector-cpp-application-build-dynamic8838768 -Node: connector-cpp-apps-linux-netbeans8839519 -Ref: connector-cpp-netbeans8839946 -Ref: connector-cpp-netbeans-static-properties-include8841867 -Ref: connector-cpp-netbeans-static-properties-lib8843543 -Ref: connector-cpp-netbeans-dynamic-properties-lib8844557 -Ref: connector-cpp-netbeans-static-run8845006 -Node: connector-cpp-getting-started-examples8845264 -Node: connector-cpp-examples-connecting8848796 -Node: connector-cpp-examples-query8849682 -Node: connector-cpp-examples-results8850922 -Node: connector-cpp-examples-prepared-statements8852466 -Node: connector-cpp-examples-complete-example-18853771 -Node: connector-cpp-examples-complete-example-28857057 -Node: connector-cpp-tutorials8860654 -Node: connector-cpp-tutorials-stored-routines-statements8864351 -Node: connector-cpp-tutorials-stored-routines-prepared-statements8873104 -Node: connector-cpp-debug-tracing8880340 -Node: connector-cpp-usage-notes8884727 -Node: connector-cpp-bugs8897789 -Node: connector-cpp-requests8899865 -Node: connector-cpp-support8901104 -Node: connector-cpp-faq8901758 -Ref: qandaitem-22-5-12-1-18902246 -Ref: qandaitem-22-5-12-1-28902488 -Ref: qandaitem-22-5-12-1-38902615 -Ref: qandaitem-22-5-12-1-48902789 -Node: connector-c8902942 -Node: connector-c-building8904012 -Node: connector-c-testing8909043 -Node: connector-c-faq8909643 -Ref: qandaitem-22-6-3-1-18910267 -Ref: qandaitem-22-6-3-1-28910739 -Ref: qandaitem-22-6-3-1-38910849 -Ref: qandaitem-22-6-3-1-48911023 -Ref: qandaitem-22-6-3-1-58911422 -Ref: qandaitem-22-6-3-1-68911754 -Node: connector-ooo8912013 -Node: connector-ooo-installation8913665 -Ref: figure_connector-ooo-add-extension8914535 -Node: connector-ooo-getting-started8914609 -Ref: figure_connector-ooo-dbwizard18915496 -Ref: figure_connector-ooo-dbwizard28915661 -Ref: figure_connector-ooo-dbwizard38916003 -Ref: figure_connector-ooo-dbwizard48916433 -Ref: figure_connector-ooo-dbwizard58916878 -Ref: figure_connector-ooo-dbwizard68917148 -Node: connector-ooo-getting-started-examples8917306 -Ref: figure_connector-ooo-base8917815 -Node: connector-ooo-references8918010 -Node: connector-ooo-bugs8918322 -Node: connector-ooo-contact8918871 -Node: libmysqld8919174 -Node: libmysqld-compiling8921939 -Node: libmysqld-restrictions8924294 -Node: libmysqld-options8925439 -Node: libmysqld-example8926746 -Node: libmysqld-licensing8933891 -Node: c8934367 -Node: c-api-data-structures8938787 -Node: c-api-function-overview8953646 -Node: c-api-functions8973898 -Node: mysql-affected-rows8979171 -Node: mysql-autocommit8982203 -Node: mysql-change-user8982609 -Node: mysql-character-set-name8985042 -Node: mysql-close8985450 -Node: mysql-commit8985974 -Node: mysql-connect8986685 -Node: mysql-create-db8988133 -Node: mysql-data-seek8989180 -Node: mysql-debug8989934 -Node: mysql-drop-db8990652 -Node: mysql-dump-debug-info8991670 -Node: mysql-eof8992444 -Node: mysql-errno8995492 -Node: mysql-error8997046 -Node: mysql-escape-string8998352 -Node: mysql-fetch-field8999043 -Node: mysql-fetch-field-direct9000768 -Node: mysql-fetch-fields9001784 -Node: mysql-fetch-lengths9002593 -Node: mysql-fetch-row9004322 -Node: mysql-field-count9006454 -Node: mysql-field-seek9008835 -Node: mysql-field-tell9009449 -Node: mysql-free-result9009980 -Node: mysql-get-character-set-info9010670 -Node: mysql-get-client-info9011882 -Node: mysql-get-client-version9012328 -Node: mysql-get-host-info9013000 -Node: mysql-get-proto-info9013477 -Node: mysql-get-server-info9013929 -Node: mysql-get-server-version9014367 -Node: mysql-get-ssl-cipher9015043 -Node: mysql-hex-string9015631 -Node: mysql-info9017564 -Node: mysql-init9019107 -Node: mysql-insert-id9019929 -Node: mysql-kill9024957 -Node: mysql-library-end9025762 -Node: mysql-library-init9026772 -Node: mysql-list-dbs9030859 -Node: mysql-list-fields9032002 -Node: mysql-list-processes9033259 -Node: mysql-list-tables9034214 -Node: mysql-more-results9035333 -Node: mysql-next-result9036331 -Node: mysql-num-fields9039621 -Node: mysql-num-rows9042083 -Node: mysql-options9043310 -Node: mysql-ping9054477 -Node: mysql-query9056303 -Node: mysql-real-connect9057785 -Node: mysql-real-escape-string9069987 -Node: mysql-real-query9073056 -Node: mysql-refresh9074779 -Node: mysql-reload9076537 -Node: mysql-rollback9077387 -Node: mysql-row-seek9078113 -Node: mysql-row-tell9079208 -Node: mysql-select-db9079892 -Node: mysql-set-character-set9080903 -Node: mysql-set-local-infile-default9082117 -Node: mysql-set-local-infile-handler9082801 -Node: mysql-set-server-option9086697 -Node: mysql-shutdown9088731 -Node: mysql-sqlstate9089961 -Node: mysql-ssl-set9091658 -Node: mysql-stat9092958 -Node: mysql-store-result9093817 -Node: mysql-thread-id9097551 -Node: mysql-use-result9098231 -Node: mysql-warning-count9101822 -Node: c-api-prepared-statements9102221 -Node: c-api-prepared-statement-data-structures9104846 -Node: c-api-prepared-statement-type-codes9118334 -Node: c-api-prepared-statement-type-conversions9125331 -Node: c-api-prepared-statement-function-overview9130772 -Node: c-api-prepared-statement-functions9141602 -Node: mysql-stmt-affected-rows9143790 -Node: mysql-stmt-attr-get9144569 -Node: mysql-stmt-attr-set9145338 -Node: mysql-stmt-bind-param9149015 -Node: mysql-stmt-bind-result9150587 -Node: mysql-stmt-close9153124 -Node: mysql-stmt-data-seek9153948 -Node: mysql-stmt-errno9154747 -Node: mysql-stmt-error9155533 -Node: mysql-stmt-execute9156584 -Node: mysql-stmt-fetch9164921 -Node: mysql-stmt-fetch-column9176447 -Node: mysql-stmt-field-count9177503 -Node: mysql-stmt-free-result9178304 -Node: mysql-stmt-init9178916 -Node: mysql-stmt-insert-id9179549 -Node: mysql-stmt-next-result9180464 -Node: mysql-stmt-num-rows9183135 -Node: mysql-stmt-param-count9184352 -Node: mysql-stmt-param-metadata9184912 -Node: mysql-stmt-prepare9185292 -Node: mysql-stmt-reset9187933 -Node: mysql-stmt-result-metadata9189087 -Node: mysql-stmt-row-seek9191166 -Node: mysql-stmt-row-tell9192324 -Node: mysql-stmt-send-long-data9193036 -Node: mysql-stmt-sqlstate9197281 -Node: mysql-stmt-store-result9198226 -Node: c-api-thread-functions9201023 -Node: my-init9201594 -Node: mysql-thread-end9202680 -Node: mysql-thread-init9203228 -Node: mysql-thread-safe9204136 -Node: c-api-embedded-server-functions9204511 -Node: mysql-server-init9205504 -Node: mysql-server-end9206157 -Node: c-api-plugin-functions9206680 -Node: mysql-client-find-plugin9208125 -Node: mysql-client-register-plugin9209583 -Node: mysql-load-plugin9210687 -Node: mysql-load-plugin-v9212975 -Node: mysql-plugin-options9213555 -Node: c-api-problems9214421 -Node: null-mysql-store-result9214934 -Node: query-results9216483 -Node: getting-unique-id9218252 -Node: auto-reconnect9221384 -Node: c-api-multiple-queries9224467 -Node: c-api-prepared-statement-problems9232423 -Node: c-api-prepared-statement-date-handling9234018 -Node: c-api-prepared-call-statements9237573 -Node: building-clients9248125 -Node: c-api-linking-problems9250568 -Node: threaded-clients9254029 -Node: apis-php9257954 -Ref: php-api-copyright9260113 -Node: connector-php9260729 -Node: apis-php-problems9261300 -Node: php-mysql-mysqli9262918 -Node: apis-perl9263976 -Node: apis-python9265839 -Node: apis-ruby9266145 -Node: apis-ruby-mysqlruby9266870 -Node: apis-ruby-rubymysql9267244 -Node: apis-tcl9267662 -Node: apis-eiffel9267955 -Node: extending-mysql9268290 -Node: mysql-internals9268742 -Node: mysql-threads9269687 -Node: mysql-test-suite9272942 -Node: plugin-api9275726 -Node: plugin-api-characteristics9278024 -Node: plugin-api-components9281865 -Node: plugin-types9284965 -Node: storage-engine-plugins9285853 -Node: full-text-plugins9286449 -Node: daemon-plugins9290590 -Node: information-schema-plugins9291077 -Node: semisynchronous-replication-plugins9291695 -Node: audit-plugins9292467 -Node: authentication-plugins9294318 -Node: writing-plugins9295400 -Node: writing-plugins-overview9298533 -Node: plugin-data-structures9300594 -Node: server-plugin-descriptors9305465 -Node: plugin-status-system-variables9322932 -Node: client-plugin-descriptors9333710 -Node: compiling-plugin-libraries9339674 -Node: writing-full-text-plugins9342474 -Node: writing-daemon-plugins9366203 -Node: writing-information-schema-plugins9370536 -Node: writing-semisynchronous-replication-plugins9377581 -Node: writing-audit-plugins9382147 -Ref: audit-plugin-interface-changes9397080 -Node: writing-authentication-plugins9398284 -Node: writing-authentication-plugins-server-side9402592 -Node: writing-authentication-plugins-client-side9411138 -Node: writing-authentication-plugins-setup9413666 -Node: writing-authentication-plugins-proxy-users9416527 -Node: plugin-services9424090 -Node: adding-functions9428351 -Node: udf-features9430969 -Node: adding-udf9431859 -Node: udf-calling9437816 -Node: udf-aggr-calling9442770 -Node: udf-arguments9446283 -Node: udf-return-values9452659 -Node: udf-compiling9454845 -Node: udf-security9460934 -Node: adding-native-function9462452 -Node: adding-procedures9467025 -Node: procedure-analyse9467583 -Node: writing-a-procedure9469493 -Node: porting9469935 -Node: debugging-server9471476 -Node: compiling-for-debugging9473853 -Node: making-trace-files9475694 -Node: making-windows-dumps9477672 -Node: using-gdb-on-mysqld9479525 -Node: using-stack-trace9483026 -Node: using-log-files9488173 -Node: reproducible-test-case9491491 -Node: debugging-client9493913 -Node: the-dbug-package9495138 -Node: mysql-enterprise-monitor9499414 -Node: mysql-enterprise-backup9503784 -Node: workbench9505523 -Node: licenses-third-party9507498 -Node: license-ant-contrib9512018 -Node: license-antlr-3-39514790 -Node: license-boost9516634 -Node: license-dtoa9518414 -Node: license-libedit9519384 -Node: license-findgtest-cmake9525480 -Node: license-dbug9528221 -Node: license-getarg9529939 -Node: license-glib-proxy9531916 -Node: license-gnu-gpl-2-09533821 -Node: license-gnu-lgpl-2-19554276 -Node: license-gnu-libtool9583911 -Node: license-gnu-readline9586527 -Node: license-google-io-rate-patch9587602 -Node: license-google-tcmalloc9589592 -Node: license-google-smp-patch9591608 -Node: license-lib-sql9593519 -Node: license-libevent9594364 -Node: license-linux-pam9601150 -Node: license-lpeg9603536 -Node: license-lua9604994 -Node: license-luafilesystem9606399 -Node: license-md59607814 -Node: license-nt-servc9608827 -Node: license-openpam9609328 -Node: license-pcre9611498 -Node: license-percona-io-threads-patch9614512 -Node: license-regex9616483 -Node: license-us-secure-hash9617838 -Node: license-libstring9619846 -Node: license-sha1-in-c9621358 -Node: license-slf4j9621677 -Node: license-zlib9623193 -Node: license-zlib-net9625027 -Node: faqs9626907 -Node: faqs-general9628031 -Ref: qandaitem-B-1-1-19629037 -Ref: qandaitem-B-1-1-29629661 -Ref: qandaitem-B-1-1-39630410 -Ref: qandaitem-B-1-1-49630484 -Ref: qandaitem-B-1-1-59630921 -Ref: qandaitem-B-1-1-69631378 -Ref: qandaitem-B-1-1-79631864 -Ref: qandaitem-B-1-1-89632243 -Ref: qandaitem-B-1-1-99632429 -Ref: qandaitem-B-1-1-109632749 -Ref: qandaitem-B-1-1-119633166 -Node: faqs-storage-engines9633563 -Ref: qandaitem-B-2-1-19634149 -Ref: qandaitem-B-2-1-29634476 -Ref: qandaitem-B-2-1-39634624 -Ref: qandaitem-B-2-1-49634696 -Ref: qandaitem-B-2-1-59634991 -Node: faqs-sql-modes9635369 -Ref: qandaitem-B-3-1-19635987 -Ref: qandaitem-B-3-1-29636386 -Ref: qandaitem-B-3-1-39636560 -Ref: qandaitem-B-3-1-49636993 -Ref: qandaitem-B-3-1-59637287 -Ref: qandaitem-B-3-1-69637615 -Ref: qandaitem-B-3-1-79638060 -Node: faqs-stored-procs9638285 -Ref: qandaitem-B-4-1-19640884 -Ref: qandaitem-B-4-1-29641050 -Ref: qandaitem-B-4-1-39641176 -Ref: qandaitem-B-4-1-49641333 -Ref: qandaitem-B-4-1-59641721 -Ref: qandaitem-B-4-1-69642199 -Ref: qandaitem-B-4-1-79642857 -Ref: qandaitem-B-4-1-89643497 -Ref: qandaitem-B-4-1-99643630 -Ref: qandaitem-B-4-1-109643705 -Ref: qandaitem-B-4-1-119643880 -Ref: qandaitem-B-4-1-129644002 -Ref: qandaitem-B-4-1-139644200 -Ref: qandaitem-B-4-1-149644395 -Ref: qandaitem-B-4-1-159644844 -Ref: qandaitem-B-4-1-169644932 -Ref: qandaitem-B-4-1-179645114 -Ref: qandaitem-B-4-1-189645201 -Ref: qandaitem-B-4-1-199645349 -Ref: qandaitem-B-4-1-209645674 -Ref: qandaitem-B-4-1-219646183 -Ref: qandaitem-B-4-1-229646350 -Ref: qandaitem-B-4-1-239646658 -Ref: qandaitem-B-4-1-249647029 -Ref: qandaitem-B-4-1-259647448 -Ref: qandaitem-B-4-1-269648203 -Ref: qandaitem-B-4-1-279649533 -Ref: qandaitem-B-4-1-289649711 -Node: faqs-triggers9650318 -Ref: qandaitem-B-5-1-19651315 -Ref: qandaitem-B-5-1-29651412 -Ref: qandaitem-B-5-1-39651539 -Ref: qandaitem-B-5-1-49651811 -Ref: qandaitem-B-5-1-59652029 -Ref: qandaitem-B-5-1-69652469 -Ref: qandaitem-B-5-1-79653085 -Ref: qandaitem-B-5-1-89653221 -Ref: qandaitem-B-5-1-99653281 -Ref: qandaitem-B-5-1-109653575 -Ref: qandaitem-B-5-1-119653795 -Ref: qandaitem-B-5-1-129654005 -Ref: qandaitem-B-5-1-139654771 -Node: faqs-views9656911 -Ref: qandaitem-B-6-1-19657481 -Ref: qandaitem-B-6-1-29657569 -Ref: qandaitem-B-6-1-39657715 -Ref: qandaitem-B-6-1-49658045 -Ref: qandaitem-B-6-1-59658102 -Ref: qandaitem-B-6-1-69658162 -Node: faqs-information-schema9658444 -Ref: qandaitem-B-7-1-19659137 -Ref: qandaitem-B-7-1-29659260 -Ref: qandaitem-B-7-1-39659411 -Ref: qandaitem-B-7-1-49659804 -Ref: qandaitem-B-7-1-59660182 -Node: faqs-migration9660503 -Ref: qandaitem-B-8-1-19660908 -Ref: qandaitem-B-8-1-29661441 -Node: faqs-security9662420 -Ref: qandaitem-B-9-1-19663056 -Ref: qandaitem-B-9-1-29663624 -Ref: qandaitem-B-9-1-39664093 -Ref: qandaitem-B-9-1-49664480 -Ref: qandaitem-B-9-1-59664584 -Node: faqs-mysql-cluster9664688 -Ref: qandaitem-B-10-1-19665150 -Node: faqs-cjk9666256 -Ref: qandaitem-B-11-1-19668503 -Ref: qandaitem-B-11-1-29671430 -Ref: qandaitem-B-11-1-39677037 -Ref: qandaitem-B-11-1-49678044 -Ref: qandaitem-B-11-1-59680922 -Ref: qandaitem-B-11-1-69681239 -Ref: qandaitem-B-11-1-79681653 -Ref: qandaitem-B-11-1-89681890 -Ref: qandaitem-B-11-1-99682800 -Ref: qandaitem-B-11-1-109684554 -Ref: qandaitem-B-11-1-119687273 -Ref: qandaitem-B-11-1-129691753 -Ref: qandaitem-B-11-1-139693658 -Ref: qandaitem-B-11-1-149696510 -Ref: qandaitem-B-11-1-159699854 -Ref: qandaitem-B-11-1-169701799 -Ref: qandaitem-B-11-1-179702995 -Ref: qandaitem-B-11-1-189703467 -Ref: qandaitem-B-11-1-199704092 -Ref: qandaitem-B-11-1-209704412 -Node: faqs-connectors-apis9704869 -Node: faqs-replication9705397 -Node: faqs-mysql-drbd-heartbeat9705691 -Node: faqs-drbd9706460 -Ref: qandaitem-B-14-1-1-19707200 -Ref: qandaitem-B-14-1-1-29707657 -Ref: qandaitem-B-14-1-1-39708156 -Ref: qandaitem-B-14-1-1-49708229 -Ref: qandaitem-B-14-1-1-59708328 -Ref: qandaitem-B-14-1-1-69708500 -Node: drbd-linux-heartbeat9708641 -Ref: qandaitem-B-14-2-1-19709156 -Ref: qandaitem-B-14-2-1-29709250 -Ref: qandaitem-B-14-2-1-39709361 -Node: drbd-architecture9709545 -Ref: qandaitem-B-14-3-1-19710365 -Ref: qandaitem-B-14-3-1-29710534 -Ref: qandaitem-B-14-3-1-39710772 -Ref: qandaitem-B-14-3-1-49711217 -Ref: qandaitem-B-14-3-1-59711663 -Ref: qandaitem-B-14-3-1-69711826 -Ref: qandaitem-B-14-3-1-79711988 -Node: drbd-mysql-replication-scale9712433 -Ref: qandaitem-B-14-4-1-19713029 -Ref: qandaitem-B-14-4-1-29713501 -Ref: qandaitem-B-14-4-1-39713964 -Node: drbd-file-systems9715052 -Ref: qandaitem-B-14-5-1-19715442 -Node: drbd-lvm9715556 -Ref: qandaitem-B-14-6-1-19716065 -Ref: qandaitem-B-14-6-1-29716315 -Ref: qandaitem-B-14-6-1-39716632 -Node: drbd-virtualization9716845 -Ref: qandaitem-B-14-7-1-19717277 -Ref: qandaitem-B-14-7-1-29717389 -Node: drbd-security9717621 -Ref: qandaitem-B-14-8-1-19718075 -Ref: qandaitem-B-14-8-1-29718269 -Node: drbd-system-requirements9718410 -Ref: qandaitem-B-14-9-1-19718956 -Ref: qandaitem-B-14-9-1-29719819 -Ref: qandaitem-B-14-9-1-39720152 -Node: drbd-support-consulting9720348 -Ref: qandaitem-B-14-10-1-19721240 -Ref: qandaitem-B-14-10-1-29721586 -Ref: qandaitem-B-14-10-1-39722159 -Ref: qandaitem-B-14-10-1-49722416 -Ref: qandaitem-B-14-10-1-59722697 -Ref: qandaitem-B-14-10-1-69722829 -Node: error-handling9723045 -Node: error-sources9723914 -Node: error-types9725640 -Node: error-messages-server9727483 -Ref: error_er_hashchk9729770 -Ref: error_er_nisamchk9729847 -Ref: error_er_no9729925 -Ref: error_er_yes9729992 -Ref: error_er_cant_create_file9730061 -Ref: error_er_cant_create_table9730174 -Ref: error_er_cant_create_db9730289 -Ref: error_er_db_create_exists9730404 -Ref: error_er_db_drop_exists9730526 -Ref: error_er_db_drop_delete9730651 -Ref: error_er_db_drop_rmdir9730782 -Ref: error_er_cant_delete_file9730911 -Ref: error_er_cant_find_system_rec9731025 -Ref: error_er_cant_get_stat9731141 -Ref: error_er_cant_get_wd9731253 -Ref: error_er_cant_lock9731366 -Ref: error_er_cant_open_file9731465 -Ref: error_er_file_not_found9731575 -Ref: error_er_cant_read_dir9731685 -Ref: error_er_cant_set_wd9731795 -Ref: error_er_checkread9731905 -Ref: error_er_disk_full9732025 -Ref: error_er_dup_key9732154 -Ref: error_er_error_on_close9732264 -Ref: error_er_error_on_read9732375 -Ref: error_er_error_on_rename9732486 -Ref: error_er_error_on_write9732607 -Ref: error_er_file_used9732719 -Ref: error_er_filsort_abort9732820 -Ref: error_er_form_not_found9732908 -Ref: error_er_get_errno9733017 -Ref: error_er_illegal_ha9733121 -Ref: error_er_key_not_found9733248 -Ref: error_er_not_form_file9733349 -Ref: error_er_not_keyfile9733460 -Ref: error_er_old_keyfile9733585 -Ref: error_er_open_as_readonly9733698 -Ref: error_er_outofmemory9733800 -Ref: error_er_out_of_sortmemory9733940 -Ref: error_er_unexpected_eof9734088 -Ref: error_er_con_count_error9734220 -Ref: error_er_out_of_resources9734318 -Ref: error_er_bad_host_error9734589 -Ref: error_er_handshake_error9734701 -Ref: error_er_dbaccess_denied_error9734792 -Ref: error_er_access_denied_error9734925 -Ref: error_er_no_db_error9735060 -Ref: error_er_unknown_com_error9735154 -Ref: error_er_bad_null_error9735249 -Ref: error_er_bad_db_error9735352 -Ref: error_er_table_exists_error9735448 -Ref: error_er_bad_table_error9735554 -Ref: error_er_non_uniq_error9735650 -Ref: error_er_server_shutdown9735757 -Ref: error_er_bad_field_error9735862 -Ref: error_er_wrong_field_with_group9735967 -Ref: error_er_wrong_group_field9736074 -Ref: error_er_wrong_sum_select9736173 -Ref: error_er_wrong_value_count9736309 -Ref: error_er_too_long_ident9736427 -Ref: error_er_dup_fieldname9736536 -Ref: error_er_dup_keyname9736638 -Ref: error_er_dup_entry9736735 -Ref: error_er_wrong_field_spec9736838 -Ref: error_er_parse_error9736959 -Ref: error_er_empty_query9737056 -Ref: error_er_nonuniq_table9737145 -Ref: error_er_invalid_default9737249 -Ref: error_er_multiple_pri_key9737357 -Ref: error_er_too_many_keys9737464 -Ref: error_er_too_many_key_parts9737584 -Ref: error_er_too_long_key9737715 -Ref: error_er_key_column_does_not_exits9737844 -Ref: error_er_blob_used_as_key9737970 -Ref: error_er_too_big_fieldlength9738130 -Ref: error_er_wrong_auto_key9738292 -Ref: error_er_ready9738467 -Ref: error_er_normal_shutdown9738602 -Ref: error_er_got_signal9738699 -Ref: error_er_shutdown_complete9738800 -Ref: error_er_forcing_close9738901 -Ref: error_er_ipsock_error9739019 -Ref: error_er_no_such_index9739116 -Ref: error_er_wrong_field_terminators9739274 -Ref: error_er_blobs_and_no_terminated9739431 -Ref: error_er_textfile_not_readable9739597 -Ref: error_er_file_exists_error9739755 -Ref: error_er_load_info9739859 -Ref: error_er_alter_info9739983 -Ref: error_er_wrong_sub_key9740084 -Ref: error_er_cant_remove_all_fields9740327 -Ref: error_er_cant_drop_field_or_key9740486 -Ref: error_er_insert_info9740616 -Ref: error_er_update_table_used9740732 -Ref: error_er_no_such_thread9740878 -Ref: error_er_kill_denied_error9740977 -Ref: error_er_no_tables_used9741088 -Ref: error_er_too_big_set9741179 -Ref: error_er_no_unique_logfile9741291 -Ref: error_er_table_not_locked_for_write9741418 -Ref: error_er_table_not_locked9741571 -Ref: error_er_blob_cant_have_default9741692 -Ref: error_er_wrong_db_name9741825 -Ref: error_er_wrong_table_name9741929 -Ref: error_er_too_big_select9742033 -Ref: error_er_unknown_error9742266 -Ref: error_er_unknown_procedure9742355 -Ref: error_er_wrong_paramcount_to_procedure9742457 -Ref: error_er_wrong_parameters_to_procedure9742597 -Ref: error_er_unknown_table9742732 -Ref: error_er_field_specified_twice9742832 -Ref: error_er_invalid_group_func_use9742943 -Ref: error_er_unsupported_extension9743057 -Ref: error_er_table_must_have_columns9743215 -Ref: error_er_record_file_full9743336 -Ref: error_er_unknown_character_set9743437 -Ref: error_er_too_many_tables9743548 -Ref: error_er_too_many_fields9743681 -Ref: error_er_too_big_rowsize9743775 -Ref: error_er_stack_overrun9744005 -Ref: error_er_wrong_outer_join9744198 -Ref: error_er_null_column_in_index9744346 -Ref: error_er_cant_find_udf9744548 -Ref: error_er_cant_initialize_udf9744648 -Ref: error_er_udf_no_paths9744764 -Ref: error_er_udf_exists9744874 -Ref: error_er_cant_open_library9744975 -Ref: error_er_cant_find_dl_entry9745100 -Ref: error_er_function_not_defined9745214 -Ref: error_er_host_is_blocked9745325 -Ref: error_er_host_not_privileged9745501 -Ref: error_er_password_anonymous_user9745639 -Ref: error_er_password_not_allowed9745826 -Ref: error_er_password_no_match9746019 -Ref: error_er_update_info9746144 -Ref: error_er_cant_create_thread9746262 -Ref: error_er_wrong_value_count_on_row9746489 -Ref: error_er_cant_reopen_table9746625 -Ref: error_er_invalid_use_of_null9746729 -Ref: error_er_regexp_error9746836 -Ref: error_er_mix_of_group_func_and_fields9746937 -Ref: error_er_nonexisting_grant9747151 -Ref: error_er_tableaccess_denied_error9747288 -Ref: error_er_columnaccess_denied_error9747425 -Ref: error_er_illegal_grant_for_table9747583 -Ref: error_er_grant_wrong_host_or_user9747765 -Ref: error_er_no_such_table9747898 -Ref: error_er_nonexisting_table_grant9748001 -Ref: error_er_not_allowed_command9748163 -Ref: error_er_syntax_error9748300 -Ref: error_er_delayed_cant_change_lock9748513 -Ref: error_er_too_many_delayed_threads9748667 -Ref: error_er_aborting_connection9748785 -Ref: error_er_net_packet_too_large9748917 -Ref: error_er_net_read_error_from_pipe9749051 -Ref: error_er_net_fcntl_error9749179 -Ref: error_er_net_packets_out_of_order9749282 -Ref: error_er_net_uncompress_error9749393 -Ref: error_er_net_read_error9749516 -Ref: error_er_net_read_interrupted9749635 -Ref: error_er_net_error_on_write9749759 -Ref: error_er_net_write_interrupted9749882 -Ref: error_er_too_long_string9750007 -Ref: error_er_table_cant_handle_blob9750140 -Ref: error_er_table_cant_handle_auto_increment9750278 -Ref: error_er_delayed_insert_table_locked9750436 -Ref: error_er_wrong_column_name9750613 -Ref: error_er_wrong_key_column9750719 -Ref: error_er_wrong_mrg_table9750845 -Ref: error_er_dup_unique9751027 -Ref: error_er_blob_key_without_length9751156 -Ref: error_er_primary_cant_have_null9751315 -Ref: error_er_too_many_rows9751495 -Ref: error_er_requires_primary_key9751608 -Ref: error_er_no_raid_compiled9751729 -Ref: error_er_update_without_key_in_safe_mode9751863 -Ref: error_er_key_does_not_exits9752068 -Ref: error_er_check_no_such_table9752185 -Ref: error_er_check_not_implemented9752283 -Ref: error_er_cant_do_this_during_an_transaction9752418 -Ref: error_er_error_during_commit9752585 -Ref: error_er_error_during_rollback9752693 -Ref: error_er_error_during_flush_logs9752805 -Ref: error_er_error_during_checkpoint9752921 -Ref: error_er_new_aborting_connection9753037 -Ref: error_er_dump_not_implemented9753189 -Ref: error_er_flush_master_binlog_closed9753344 -Ref: error_er_index_rebuild9753467 -Ref: error_er_master9753591 -Ref: error_er_master_net_read9753683 -Ref: error_er_master_net_write9753790 -Ref: error_er_ft_matching_key_not_found9753896 -Ref: error_er_lock_or_active_transaction9754034 -Ref: error_er_unknown_system_variable9754222 -Ref: error_er_crashed_on_usage9754336 -Ref: error_er_crashed_on_repair9754469 -Ref: error_er_warning_not_complete_rollback9754621 -Ref: error_er_trans_cache_full9754784 -Ref: error_er_slave_must_stop9755005 -Ref: error_er_slave_not_running9755165 -Ref: error_er_bad_slave9755325 -Ref: error_er_master_info9755484 -Ref: error_er_slave_thread9755662 -Ref: error_er_too_many_user_connections9755790 -Ref: error_er_set_constants_only9755954 -Ref: error_er_lock_wait_timeout9756081 -Ref: error_er_lock_table_full9756215 -Ref: error_er_read_only_transaction9756346 -Ref: error_er_drop_db_with_read_lock9756504 -Ref: error_er_create_db_with_read_lock9756660 -Ref: error_er_wrong_arguments9756820 -Ref: error_er_no_permission_to_create_user9756923 -Ref: error_er_union_tables_in_different_dir9757063 -Ref: error_er_lock_deadlock9757238 -Ref: error_er_table_cant_handle_ft9757385 -Ref: error_er_cannot_add_foreign9757520 -Ref: error_er_no_referenced_row9757634 -Ref: error_er_row_is_referenced9757783 -Ref: error_er_connect_to_master9757936 -Ref: error_er_query_on_master9758046 -Ref: error_er_error_when_executing_command9758157 -Ref: error_er_wrong_usage9758288 -Ref: error_er_wrong_number_of_columns_in_select9758390 -Ref: error_er_cant_update_with_readlock9758557 -Ref: error_er_mixing_not_allowed9758714 -Ref: error_er_dup_argument9758864 -Ref: error_er_user_limit_reached9758974 -Ref: error_er_specific_access_denied_error9759121 -Ref: error_er_local_variable9759302 -Ref: error_er_global_variable9759453 -Ref: error_er_no_default9759604 -Ref: error_er_wrong_value_for_var9759719 -Ref: error_er_wrong_type_for_var9759848 -Ref: error_er_var_cant_be_read9759969 -Ref: error_er_cant_use_option_here9760087 -Ref: error_er_not_supported_yet9760203 -Ref: error_er_master_fatal_error_reading_binlog9760329 -Ref: error_er_slave_ignored_table9760505 -Ref: error_er_incorrect_global_local_var9760661 -Ref: error_er_wrong_fk_def9760780 -Ref: error_er_key_ref_do_not_match_table_ref9760900 -Ref: error_er_operand_columns9761043 -Ref: error_er_subquery_no_1_row9761156 -Ref: error_er_unknown_stmt_handler9761268 -Ref: error_er_corrupt_help_db9761404 -Ref: error_er_cyclic_reference9761524 -Ref: error_er_auto_convert9761633 -Ref: error_er_illegal_reference9761744 -Ref: error_er_derived_must_have_alias9761857 -Ref: error_er_select_reduced9761986 -Ref: error_er_tablename_not_allowed_here9762104 -Ref: error_er_not_supported_auth_mode9762248 -Ref: error_er_spatial_cant_have_null9762439 -Ref: error_er_collation_charset_mismatch9762569 -Ref: error_er_slave_was_running9762708 -Ref: error_er_slave_was_not_running9762812 -Ref: error_er_too_big_for_uncompress9762926 -Ref: error_er_zlib_z_mem_error9763126 -Ref: error_er_zlib_z_buf_error9763228 -Ref: error_er_zlib_z_data_error9763408 -Ref: error_er_cut_value_group_concat9763514 -Ref: error_er_warn_too_few_records9763631 -Ref: error_er_warn_too_many_records9763758 -Ref: error_er_warn_null_to_notnull9763922 -Ref: error_er_warn_data_out_of_range9764087 -Ref: error_warn_data_truncated9764217 -Ref: error_er_warn_using_other_handler9764337 -Ref: error_er_cant_aggregate_2collations9764462 -Ref: error_er_drop_user9764620 -Ref: error_er_revoke_grants9764738 -Ref: error_er_cant_aggregate_3collations9764885 -Ref: error_er_cant_aggregate_ncollations9765049 -Ref: error_er_variable_is_not_struct9765182 -Ref: error_er_unknown_collation9765351 -Ref: error_er_slave_ignored_ssl_params9765454 -Ref: error_er_server_is_in_secure_auth_mode9765711 -Ref: error_er_warn_field_resolved9765950 -Ref: error_er_bad_slave_until_cond9766109 -Ref: error_er_missing_skip_slave9766267 -Ref: error_er_until_cond_ignored9766541 -Ref: error_er_wrong_name_for_index9766687 -Ref: error_er_wrong_name_for_catalog9766795 -Ref: error_er_warn_qc_resize9766907 -Ref: error_er_bad_ft_column9767052 -Ref: error_er_unknown_key_cache9767172 -Ref: error_er_warn_hostname_wont_work9767274 -Ref: error_er_unknown_storage_engine9767472 -Ref: error_er_warn_deprecated_syntax9767584 -Ref: error_er_non_updatable_table9767755 -Ref: error_er_feature_disabled9767883 -Ref: error_er_option_prevents_statement9768046 -Ref: error_er_duplicated_value_in_type9768221 -Ref: error_er_truncated_wrong_value9768351 -Ref: error_er_too_much_auto_timestamp_cols9768469 -Ref: error_er_invalid_on_update9768695 -Ref: error_er_unsupported_ps9768815 -Ref: error_er_get_errmsg9768965 -Ref: error_er_get_temporary_errmsg9769063 -Ref: error_er_unknown_time_zone9769181 -Ref: error_er_warn_invalid_timestamp9769297 -Ref: error_er_invalid_character_string9769431 -Ref: error_er_warn_allowed_packet_overflowed9769551 -Ref: error_er_conflicting_declarations9769721 -Ref: error_er_sp_no_recursive_create9769851 -Ref: error_er_sp_already_exists9769988 -Ref: error_er_sp_does_not_exist9770088 -Ref: error_er_sp_drop_failed9770188 -Ref: error_er_sp_store_failed9770285 -Ref: error_er_sp_lilabel_mismatch9770385 -Ref: error_er_sp_label_redefine9770496 -Ref: error_er_sp_label_mismatch9770595 -Ref: error_er_sp_uninit_var9770701 -Ref: error_er_sp_badselect9770815 -Ref: error_er_sp_badreturn9770954 -Ref: error_er_sp_badstatement9771065 -Ref: error_er_update_log_deprecated_ignored9771181 -Ref: error_er_update_log_deprecated_translated9771427 -Ref: error_er_query_interrupted9771698 -Ref: error_er_sp_wrong_no_of_args9771809 -Ref: error_er_sp_cond_mismatch9771956 -Ref: error_er_sp_noreturn9772058 -Ref: error_er_sp_noreturnend9772162 -Ref: error_er_sp_bad_cursor_query9772271 -Ref: error_er_sp_bad_cursor_select9772386 -Ref: error_er_sp_cursor_mismatch9772501 -Ref: error_er_sp_cursor_already_open9772602 -Ref: error_er_sp_cursor_not_open9772709 -Ref: error_er_sp_undeclared_var9772808 -Ref: error_er_sp_wrong_no_of_fetch_args9772911 -Ref: error_er_sp_fetch_no_data9773034 -Ref: error_er_sp_dup_param9773164 -Ref: error_er_sp_dup_var9773262 -Ref: error_er_sp_dup_cond9773357 -Ref: error_er_sp_dup_curs9773454 -Ref: error_er_sp_cant_alter9773548 -Ref: error_er_sp_subselect_nyi9773645 -Ref: error_er_stmt_not_allowed_in_sf_or_trg9773752 -Ref: error_er_sp_varcond_after_curshndlr9773896 -Ref: error_er_sp_cursor_after_handler9774059 -Ref: error_er_sp_case_not_found9774189 -Ref: error_er_fparser_too_big_file9774302 -Ref: error_er_fparser_bad_header9774419 -Ref: error_er_fparser_eof_in_comment9774539 -Ref: error_er_fparser_error_in_parameter9774673 -Ref: error_er_fparser_eof_in_unknown_parameter9774809 -Ref: error_er_view_no_explain9774974 -Ref: error_er_frm_unknown_type9775128 -Ref: error_er_wrong_object9775252 -Ref: error_er_nonupdateable_column9775344 -Ref: error_er_view_select_derived9775455 -Ref: error_er_view_select_clause9775589 -Ref: error_er_view_select_variable9775706 -Ref: error_er_view_select_tmptable9775835 -Ref: error_er_view_wrong_list9775964 -Ref: error_er_warn_view_merge9776111 -Ref: error_er_warn_view_without_key9776271 -Ref: error_er_view_invalid9776431 -Ref: error_er_sp_no_drop_sp9776630 -Ref: error_er_sp_goto_in_hndlr9776770 -Ref: error_er_trg_already_exists9776898 -Ref: error_er_trg_does_not_exist9777001 -Ref: error_er_trg_on_view_or_temp_table9777104 -Ref: error_er_trg_cant_change_row9777233 -Ref: error_er_trg_no_such_row_in_trg9777361 -Ref: error_er_no_default_for_field9777478 -Ref: error_er_division_by_zero9777600 -Ref: error_er_truncated_wrong_value_for_field9777692 -Ref: error_er_illegal_value_for_type9777842 -Ref: error_er_view_nonupd_check9777969 -Ref: error_er_view_check_failed9778091 -Ref: error_er_procaccess_denied_error9778198 -Ref: error_er_relay_log_fail9778336 -Ref: error_er_passwd_length9778446 -Ref: error_er_unknown_target_binlog9778575 -Ref: error_er_io_err_log_index_read9778695 -Ref: error_er_binlog_purge_prohibited9778811 -Ref: error_er_fseek_fail9778946 -Ref: error_er_binlog_purge_fatal_err9779036 -Ref: error_er_log_in_use9779149 -Ref: error_er_log_purge_unknown_err9779263 -Ref: error_er_relay_log_init9779377 -Ref: error_er_no_binary_logging9779496 -Ref: error_er_reserved_syntax9779608 -Ref: error_er_wsas_failed9779760 -Ref: error_er_diff_groups_proc9779851 -Ref: error_er_no_group_for_proc9779979 -Ref: error_er_order_with_proc9780103 -Ref: error_er_logging_prohibit_changing_of9780223 -Ref: error_er_no_file_mapping9780391 -Ref: error_er_wrong_magic9780498 -Ref: error_er_ps_many_param9780589 -Ref: error_er_key_part_09780714 -Ref: error_er_view_checksum9780819 -Ref: error_er_view_multiupdate9780920 -Ref: error_er_view_no_insert_field_list9781071 -Ref: error_er_view_delete_merge_view9781216 -Ref: error_er_cannot_user9781338 -Ref: error_er_xaer_nota9781438 -Ref: error_er_xaer_inval9781532 -Ref: error_er_xaer_rmfail9781659 -Ref: error_er_xaer_outside9781824 -Ref: error_er_xaer_rmerr9781957 -Ref: error_er_xa_rbrollback9782127 -Ref: error_er_nonexisting_proc_grant9782252 -Ref: error_er_proc_auto_grant_fail9782415 -Ref: error_er_proc_auto_revoke_fail9782550 -Ref: error_er_data_too_long9782684 -Ref: error_er_sp_bad_sqlstate9782800 -Ref: error_er_startup9782896 -Ref: error_er_load_from_fixed_size_rows_to_var9783036 -Ref: error_er_cant_create_user_with_grant9783200 -Ref: error_er_wrong_value_for_type9783337 -Ref: error_er_table_def_changed9783460 -Ref: error_er_sp_dup_handler9783594 -Ref: error_er_sp_not_var_arg9783715 -Ref: error_er_sp_no_retset9783895 -Ref: error_er_cant_create_geometry_object9784014 -Ref: error_er_failed_routine_break_binlog9784176 -Ref: error_er_binlog_unsafe_routine9784470 -Ref: error_er_binlog_create_routine_need_super9784765 -Ref: error_er_exec_stmt_with_open_cursor9785021 -Ref: error_er_stmt_has_no_open_cursor9785236 -Ref: error_er_commit_not_allowed_in_sf_or_trg9785361 -Ref: error_er_no_default_for_view_field9785538 -Ref: error_er_sp_no_recursion9785698 -Ref: error_er_too_big_scale9785832 -Ref: error_er_too_big_precision9785972 -Ref: error_er_m_bigger_than_d9786120 -Ref: error_er_wrong_lock_of_system_table9786277 -Ref: error_er_connect_to_foreign_data_source9786451 -Ref: error_er_query_on_foreign_data_source9786593 -Ref: error_er_foreign_data_source_doesnt_exist9786784 -Ref: error_er_foreign_data_string_invalid_cant_create9786978 -Ref: error_er_foreign_data_string_invalid9787187 -Ref: error_er_cant_create_federated_table9787349 -Ref: error_er_trg_in_wrong_schema9787495 -Ref: error_er_stack_overrun_need_more9787600 -Ref: error_er_too_long_body9787831 -Ref: error_er_warn_cant_drop_default_keycache9787940 -Ref: error_er_too_big_displaywidth9788067 -Ref: error_er_xaer_dupid9788204 -Ref: error_er_datetime_function_overflow9788311 -Ref: error_er_cant_update_used_table_in_sf_or_trg9788436 -Ref: error_er_view_prevent_update9788683 -Ref: error_er_ps_no_recursion9788835 -Ref: error_er_sp_cant_set_autocommit9789088 -Ref: error_er_malformed_definer9789241 -Ref: error_er_view_frm_no_user9789351 -Ref: error_er_view_other_user9789555 -Ref: error_er_no_such_user9789707 -Ref: error_er_forbid_schema_change9789840 -Ref: error_er_row_is_referenced_29789972 -Ref: error_er_no_referenced_row_29790132 -Ref: error_er_sp_bad_var_shadow9790288 -Ref: error_er_trg_no_definer9790419 -Ref: error_er_old_file_format9790688 -Ref: error_er_sp_recursion_limit9790834 -Ref: error_er_sp_proc_table_corrupt9791014 -Ref: error_er_sp_wrong_name9791211 -Ref: error_er_table_needs_upgrade9791314 -Ref: error_er_sp_no_aggregate9791480 -Ref: error_er_max_prepared_stmt_count_reached9791605 -Ref: error_er_view_recursive9791787 -Ref: error_er_non_grouping_field_used9791897 -Ref: error_er_table_cant_handle_spkeys9792027 -Ref: error_er_no_triggers_on_system_schema9792165 -Ref: error_er_removed_spaces9792305 -Ref: error_er_autoinc_read_failed9792423 -Ref: error_er_username9792560 -Ref: error_er_hostname9792640 -Ref: error_er_wrong_string_length9792720 -Ref: error_er_non_insertable_table9792867 -Ref: error_er_admin_wrong_mrg_table9793002 -Ref: error_er_too_high_level_of_nesting_for_select9793163 -Ref: error_er_name_becomes_empty9793303 -Ref: error_er_ambiguous_field_term9793406 -Ref: error_er_foreign_server_exists9793612 -Ref: error_er_foreign_server_doesnt_exist9793765 -Ref: error_er_illegal_ha_create_option9793949 -Ref: error_er_partition_requires_values_error9794106 -Ref: error_er_partition_wrong_values_error9794291 -Ref: error_er_partition_maxvalue_error9794454 -Ref: error_er_partition_subpartition_error9794595 -Ref: error_er_partition_subpart_mix_error9794743 -Ref: error_er_partition_wrong_no_part_error9794901 -Ref: error_er_partition_wrong_no_subpart_error9795069 -Ref: error_er_wrong_expr_in_partition_func_error9795243 -Ref: error_er_no_const_expr_in_range_or_list_error9795446 -Ref: error_er_field_not_found_part_error9795598 -Ref: error_er_list_of_fields_only_in_hash_error9795757 -Ref: error_er_inconsistent_partition_info_error9795906 -Ref: error_er_partition_func_not_allowed_error9796107 -Ref: error_er_partitions_must_be_defined_error9796245 -Ref: error_er_range_not_increasing_error9796393 -Ref: error_er_inconsistent_type_of_functions_error9796556 -Ref: error_er_multiple_def_const_in_list_part_error9796715 -Ref: error_er_partition_entry_error9796877 -Ref: error_er_mix_handler_error9797010 -Ref: error_er_partition_not_defined_error9797172 -Ref: error_er_too_many_partitions_error9797326 -Ref: error_er_subpartition_error9797472 -Ref: error_er_cant_create_handler_file9797655 -Ref: error_er_blob_field_in_part_func_error9797780 -Ref: error_er_unique_key_need_all_fields_in_pf9797926 -Ref: error_er_no_parts_error9798097 -Ref: error_er_partition_mgmt_on_nonpartitioned9798214 -Ref: error_er_foreign_key_on_partitioned9798382 -Ref: error_er_drop_partition_non_existent9798548 -Ref: error_er_drop_last_partition9798671 -Ref: error_er_coalesce_only_on_hash_partition9798805 -Ref: error_er_reorg_hash_only_on_same_no9798962 -Ref: error_er_reorg_no_param_error9799146 -Ref: error_er_only_on_range_list_partition9799339 -Ref: error_er_add_partition_subpart_error9799489 -Ref: error_er_add_partition_no_new_partition9799645 -Ref: error_er_coalesce_partition_no_partition9799779 -Ref: error_er_reorg_partition_not_exist9799918 -Ref: error_er_same_name_partition9800061 -Ref: error_er_no_binlog_error9800170 -Ref: error_er_consecutive_reorg_partitions9800300 -Ref: error_er_reorg_outside_range9800472 -Ref: error_er_partition_function_failure9800672 -Ref: error_er_part_state_error9800831 -Ref: error_er_limited_part_range9800967 -Ref: error_er_plugin_is_not_loaded9801102 -Ref: error_er_wrong_value9801210 -Ref: error_er_no_partition_for_given_value9801308 -Ref: error_er_filegroup_option_only_once9801439 -Ref: error_er_create_filegroup_failed9801574 -Ref: error_er_drop_filegroup_failed9801679 -Ref: error_er_tablespace_auto_extend_error9801780 -Ref: error_er_wrong_size_number9801929 -Ref: error_er_size_overflow_error9802090 -Ref: error_er_alter_filegroup_failed9802264 -Ref: error_er_binlog_row_logging_failed9802368 -Ref: error_er_binlog_row_wrong_table_def9802506 -Ref: error_er_binlog_row_rbr_to_sbr9802650 -Ref: error_er_event_already_exists9802862 -Ref: error_er_event_store_failed9802970 -Ref: error_er_event_does_not_exist9803116 -Ref: error_er_event_cant_alter9803217 -Ref: error_er_event_drop_failed9803322 -Ref: error_er_event_interval_not_positive_or_too_big9803419 -Ref: error_er_event_ends_before_starts9803567 -Ref: error_er_event_exec_time_in_the_past9803693 -Ref: error_er_event_open_table_failed9803848 -Ref: error_er_event_neither_m_expr_nor_m_at9803960 -Ref: error_er_col_count_doesnt_match_corrupted9804088 -Ref: error_er_cannot_load_from_table9804282 -Ref: error_er_event_cannot_delete9804425 -Ref: error_er_event_compile_error9804550 -Ref: error_er_event_same_name9804672 -Ref: error_er_event_data_too_long9804777 -Ref: error_er_drop_index_fk9804888 -Ref: error_er_warn_deprecated_syntax_with_ver9805022 -Ref: error_er_cant_write_lock_log_table9805210 -Ref: error_er_cant_lock_log_table9805365 -Ref: error_er_foreign_duplicate_key9805483 -Ref: error_er_col_count_doesnt_match_please_update9805672 -Ref: error_er_temp_table_prevents_switch_out_of_rbr9805926 -Ref: error_er_stored_function_prevents_switch_binlog_format9806131 -Ref: error_er_ndb_cant_switch_binlog_format9806324 -Ref: error_er_partition_no_temporary9806507 -Ref: error_er_partition_const_domain_error9806637 -Ref: error_er_partition_function_is_not_allowed9806787 -Ref: error_er_ddl_log_error9806926 -Ref: error_er_null_in_values_less_than9807018 -Ref: error_er_wrong_partition_name9807154 -Ref: error_er_cant_change_tx_isolation9807261 -Ref: error_er_dup_entry_autoincrement_case9807432 -Ref: error_er_event_modify_queue_error9807627 -Ref: error_er_event_set_var_error9807741 -Ref: error_er_partition_merge_error9807890 -Ref: error_er_cant_activate_log9808017 -Ref: error_er_rbr_not_available9808121 -Ref: error_er_base64_decode_error9808252 -Ref: error_er_event_recursion_forbidden9808366 -Ref: error_er_events_db_error9808526 -Ref: error_er_only_integers_allowed9808704 -Ref: error_er_unsuported_log_engine9808824 -Ref: error_er_bad_log_statement9808958 -Ref: error_er_cant_rename_log_table9809087 -Ref: error_er_wrong_paramcount_to_native_fct9809336 -Ref: error_er_wrong_parameters_to_native_fct9809500 -Ref: error_er_wrong_parameters_to_stored_fct9809654 -Ref: error_er_native_fct_name_collision9809808 -Ref: error_er_dup_entry_with_key_name9809953 -Ref: error_er_binlog_purge_emfile9810072 -Ref: error_er_event_cannot_create_in_the_past9810209 -Ref: error_er_event_cannot_alter_in_the_past9810437 -Ref: error_er_slave_incident9810664 -Ref: error_er_no_partition_for_given_value_silent9810791 -Ref: error_er_binlog_unsafe_statement9810941 -Ref: error_er_slave_fatal_error9811133 -Ref: error_er_slave_relay_log_read_failure9811228 -Ref: error_er_slave_relay_log_write_failure9811350 -Ref: error_er_slave_create_event_failure9811474 -Ref: error_er_slave_master_com_failure9811582 -Ref: error_er_binlog_logging_impossible9811697 -Ref: error_er_view_no_creation_ctx9811825 -Ref: error_er_view_invalid_creation_ctx9811946 -Ref: error_er_sr_invalid_creation_ctx9812079 -Ref: error_er_trg_corrupted_file9812220 -Ref: error_er_trg_no_creation_ctx9812339 -Ref: error_er_trg_invalid_creation_ctx9812474 -Ref: error_er_event_invalid_creation_ctx9812615 -Ref: error_er_trg_cant_open_table9812750 -Ref: error_er_cant_create_sroutine9812871 -Ref: error_er_never_used9813003 -Ref: error_er_no_format_description_event_before_binlog_statement9813113 -Ref: error_er_slave_corrupt_event9813329 -Ref: error_er_load_data_invalid_column9813451 -Ref: error_er_log_purge_no_file9813580 -Ref: error_er_xa_rbtimeout9813693 -Ref: error_er_xa_rbdeadlock9813836 -Ref: error_er_need_reprepare9813989 -Ref: error_er_delayed_not_supported9814108 -Ref: error_warn_no_master_info9814235 -Ref: error_warn_option_ignored9814354 -Ref: error_warn_plugin_delete_builtin9814452 -Ref: error_warn_plugin_busy9814572 -Ref: error_er_variable_is_readonly9814698 -Ref: error_er_warn_engine_transaction_rollback9814847 -Ref: error_er_slave_heartbeat_failure9815061 -Ref: error_er_slave_heartbeat_value_out_of_range9815185 -Ref: error_er_ndb_replication_schema_error9815400 -Ref: error_er_conflict_fn_parse_error9815551 -Ref: error_er_exceptions_write_error9815684 -Ref: error_er_too_long_table_comment9815815 -Ref: error_er_too_long_field_comment9815946 -Ref: error_er_func_inexistent_name_collision9816077 -Ref: error_er_database_name9816288 -Ref: error_er_table_name9816372 -Ref: error_er_partition_name9816450 -Ref: error_er_subpartition_name9816536 -Ref: error_er_temporary_name9816628 -Ref: error_er_renamed_name9816714 -Ref: error_er_too_many_concurrent_trxs9816796 -Ref: error_warn_non_ascii_separator_not_implemented9816922 -Ref: error_er_debug_sync_timeout9817080 -Ref: error_er_debug_sync_hit_limit9817192 -Ref: error_er_dup_signal_set9817309 -Ref: error_er_signal_warn9817427 -Ref: error_er_signal_not_found9817541 -Ref: error_er_signal_exception9817662 -Ref: error_er_resignal_without_active_handler9817783 -Ref: error_er_signal_bad_condition_type9817914 -Ref: error_warn_cond_item_truncated9818069 -Ref: error_er_cond_item_too_long9818191 -Ref: error_er_unknown_locale9818309 -Ref: error_er_slave_ignore_server_ids9818406 -Ref: error_er_query_cache_disabled9818587 -Ref: error_er_same_name_partition_field9818755 -Ref: error_er_partition_column_list_error9818878 -Ref: error_er_wrong_type_column_value_error9819023 -Ref: error_er_too_many_partition_func_fields_error9819161 -Ref: error_er_maxvalue_in_values_in9819288 -Ref: error_er_too_many_values_error9819413 -Ref: error_er_row_single_partition_field_error9819566 -Ref: error_er_field_type_not_allowed_as_partition_field9819748 -Ref: error_er_partition_fields_too_long9819927 -Ref: error_er_binlog_row_engine_and_stmt_engine9820071 -Ref: error_er_binlog_row_mode_and_stmt_engine9820320 -Ref: error_er_binlog_unsafe_and_stmt_engine9820595 -Ref: error_er_binlog_row_injection_and_stmt_engine9820872 -Ref: error_er_binlog_stmt_mode_and_row_engine9821159 -Ref: error_er_binlog_row_injection_and_stmt_mode9821436 -Ref: error_er_binlog_multiple_engines_and_self_logging_engine9821666 -Ref: error_er_binlog_unsafe_limit9821930 -Ref: error_er_binlog_unsafe_insert_delayed9822146 -Ref: error_er_binlog_unsafe_system_table9822384 -Ref: error_er_binlog_unsafe_autoinc_columns9822646 -Ref: error_er_binlog_unsafe_udf9822910 -Ref: error_er_binlog_unsafe_system_variable9823086 -Ref: error_er_binlog_unsafe_system_function9823287 -Ref: error_er_binlog_unsafe_nontrans_after_trans9823490 -Ref: error_er_message_and_statement9823734 -Ref: error_er_slave_conversion_failed9823834 -Ref: error_er_slave_cant_create_conversion9823999 -Ref: error_er_inside_transaction_prevents_switch_binlog_format9824142 -Ref: error_er_path_length9824316 -Ref: error_er_warn_deprecated_syntax_no_replacement9824428 -Ref: error_er_wrong_native_table_structure9824600 -Ref: error_er_wrong_perfschema_usage9824742 -Ref: error_er_warn_i_s_skipped_table9824860 -Ref: error_er_inside_transaction_prevents_switch_binlog_direct9825044 -Ref: error_er_stored_function_prevents_switch_binlog_direct9825254 -Ref: error_er_spatial_must_have_geom_col9825444 -Ref: error_er_too_long_index_comment9825591 -Ref: error_er_lock_aborted9825722 -Ref: error_er_data_out_of_range9825855 -Ref: error_er_wrong_spvar_type_in_limit9825967 -Ref: error_er_binlog_unsafe_multiple_engines_and_self_logging_engine9826109 -Ref: error_er_binlog_unsafe_mixed_statement9826310 -Ref: error_er_inside_transaction_prevents_switch_sql_log_bin9826525 -Ref: error_er_stored_function_prevents_switch_sql_log_bin9826695 -Ref: error_er_failed_read_from_par_file9826876 -Ref: error_er_values_is_not_int_type_error9826997 -Ref: error_er_access_denied_no_password_error9827143 -Ref: error_er_set_password_auth_plugin9827274 -Ref: error_er_grant_plugin_user_exists9827435 -Ref: error_er_truncate_illegal_fk9827602 -Ref: error_er_plugin_is_permanent9827756 -Ref: error_er_slave_heartbeat_value_out_of_range_min9827902 -Ref: error_er_slave_heartbeat_value_out_of_range_max9828171 -Ref: error_er_stmt_cache_full9828446 -Ref: error_er_multi_update_key_conflict9828664 -Ref: error_er_table_needs_rebuild9828854 -Ref: error_warn_option_below_limit9829025 -Ref: error_er_index_column_too_long9829166 -Ref: error_er_error_in_trigger_body9829321 -Ref: error_er_error_in_unknown_trigger_body9829448 -Ref: error_er_index_corrupt9829591 -Ref: error_er_undo_record_too_big9829688 -Ref: error_er_binlog_unsafe_insert_ignore_select9829797 -Ref: error_er_binlog_unsafe_insert_select_update9830122 -Ref: error_er_binlog_unsafe_replace_select9830467 -Ref: error_er_binlog_unsafe_create_ignore_select9830781 -Ref: error_er_binlog_unsafe_create_replace_select9831106 -Ref: error_er_binlog_unsafe_update_ignore9831434 -Ref: error_er_plugin_no_uninstall9831716 -Ref: error_er_plugin_no_install9831903 -Node: error-messages-client9832079 -Ref: error_cr_unknown_error9832839 -Ref: error_cr_socket_create_error9832916 -Ref: error_cr_connection_error9833009 -Ref: error_cr_conn_host_error9833135 -Ref: error_cr_ipsock_error9833237 -Ref: error_cr_unknown_host9833325 -Ref: error_cr_server_gone_error9833417 -Ref: error_cr_version_error9833505 -Ref: error_cr_out_of_memory9833627 -Ref: error_cr_wrong_host_info9833715 -Ref: error_cr_localhost_connection9833790 -Ref: error_cr_tcp_connection9833880 -Ref: error_cr_server_handshake_err9833952 -Ref: error_cr_server_lost9834042 -Ref: error_cr_commands_out_of_sync9834142 -Ref: error_cr_namedpipe_connection9834259 -Ref: error_cr_namedpipewait_error9834338 -Ref: error_cr_namedpipeopen_error9834454 -Ref: error_cr_namedpipesetstate_error9834566 -Ref: error_cr_cant_read_charset9834690 -Ref: error_cr_net_packet_too_large9834796 -Ref: error_cr_embedded_connection9834910 -Ref: error_cr_probe_slave_status9834989 -Ref: error_cr_probe_slave_hosts9835079 -Ref: error_cr_probe_slave_connect9835167 -Ref: error_cr_probe_master_connect9835257 -Ref: error_cr_ssl_connection_error9835349 -Ref: error_cr_malformed_packet9835438 -Ref: error_cr_wrong_license9835515 -Ref: error_cr_null_pointer9835661 -Ref: error_cr_no_prepare_stmt9835745 -Ref: error_cr_params_not_bound9835827 -Ref: error_cr_data_truncated9835941 -Ref: error_cr_no_parameters_exists9836014 -Ref: error_cr_invalid_parameter_no9836115 -Ref: error_cr_invalid_buffer_use9836204 -Ref: error_cr_unsupported_param_type9836345 -Ref: error_cr_shared_memory_connection9836461 -Ref: error_cr_shared_memory_connect_request_error9836547 -Ref: error_cr_shared_memory_connect_answer_error9836701 -Ref: error_cr_shared_memory_connect_file_map_error9836853 -Ref: error_cr_shared_memory_connect_map_error9837009 -Ref: error_cr_shared_memory_file_map_error9837166 -Ref: error_cr_shared_memory_map_error9837314 -Ref: error_cr_shared_memory_event_error9837463 -Ref: error_cr_shared_memory_connect_abandoned_error9837602 -Ref: error_cr_shared_memory_connect_set_error9837737 -Ref: error_cr_conn_unknow_protocol9837885 -Ref: error_cr_invalid_conn_handle9837975 -Ref: error_cr_secure_auth9838064 -Ref: error_cr_fetch_canceled9838227 -Ref: error_cr_no_data9838339 -Ref: error_cr_no_stmt_metadata9838437 -Ref: error_cr_no_result_set9838537 -Ref: error_cr_not_implemented9838680 -Ref: error_cr_server_lost_extended9838775 -Ref: error_cr_stmt_closed9838897 -Ref: error_cr_new_stmt_metadata9839019 -Ref: error_cr_already_connected9839265 -Ref: error_cr_auth_plugin_cannot_load9839408 -Node: problems9839518 -Node: what-is-crashing9840356 -Node: common-errors9844633 -Node: error-access-denied9846293 -Node: can-not-connect-to-server9846687 -Node: can-not-connect-to-server-on-windows9854603 -Node: error-lost-connection9858354 -Node: old-client9860142 -Node: password-too-long9863665 -Node: blocked-host9864586 -Node: too-many-connections9866003 -Node: out-of-memory9867952 -Node: gone-away9868916 -Node: packet-too-large9875957 -Node: communication-errors9878505 -Node: full-table9881334 -Node: cannot-create9881797 -Node: commands-out-of-sync9883310 -Node: ignoring-user9884023 -Node: cannot-find-table9885452 -Node: cannot-initialize-character-set9886454 -Node: not-enough-file-handles9888129 -Node: table-corruption9891215 -Node: installation-issues9892329 -Node: file-permissions9892588 -Node: administration-issues9893852 -Node: resetting-permissions9894450 -Node: resetting-permissions-windows9895437 -Node: resetting-permissions-unix9898733 -Node: resetting-permissions-generic9902167 -Node: crashing9903721 -Node: full-disk9912467 -Node: temporary-files9914591 -Node: problems-with-mysql-sock9917315 -Node: timezone-problems9919537 -Node: query-issues9920472 -Node: case-sensitivity9921191 -Node: using-date9925688 -Node: problems-with-null9930230 -Node: problems-with-alias9933613 -Node: non-transactional-tables9935380 -Node: deleting-from-related-tables9937226 -Node: no-matching-rows9937977 -Node: problems-with-float9940147 -Node: optimizer-issues9944529 -Node: table-definition-issues9946313 -Node: alter-table-problems9946627 -Node: temporary-table-problems9948590 -Node: bugs9949869 -Node: news9960304 -Node: news-5-5-x9963841 -Node: news-5-5-209966171 -Node: news-5-5-199967271 -Node: news-5-5-189970076 -Node: news-5-5-179974888 -Node: news-5-5-169978202 -Node: news-5-5-159990647 -Node: news-5-5-149996214 -Node: news-5-5-1310000116 -Node: news-5-5-1210005851 -Node: news-5-5-1110011565 -Node: news-5-5-1010023583 -Node: news-5-5-910034387 -Node: news-5-5-810055552 -Node: news-5-5-710080118 -Node: news-5-5-610117984 -Node: news-5-5-510162929 -Node: news-5-5-410222711 -Node: news-5-5-310225411 -Node: news-5-5-210315880 -Node: news-5-5-110329826 -Node: news-5-5-010350210 -Node: connector-odbc-news10424940 -Node: connector-odbc-news-5-1-x10425393 -Node: connector-odbc-news-5-1-910426541 -Node: connector-odbc-news-5-1-810428996 -Node: connector-odbc-news-5-1-710431844 -Node: connector-odbc-news-5-1-610437461 -Node: connector-odbc-news-5-1-510444927 -Node: connector-odbc-news-5-1-410446614 -Node: connector-odbc-news-5-1-310447649 -Node: connector-odbc-news-5-1-210450489 -Node: connector-odbc-news-5-1-110455059 -Node: connector-odbc-news-5-1-010459906 -Node: connector-odbc-news-5-0-x10461530 -Node: connector-odbc-news-5-0-1210462814 -Node: connector-odbc-news-5-0-1110463520 -Node: connector-odbc-news-5-0-1010464526 -Node: connector-odbc-news-5-0-910465674 -Node: connector-odbc-news-5-0-810466962 -Node: connector-odbc-news-5-0-710468769 -Node: connector-odbc-news-5-0-610469607 -Node: connector-odbc-news-5-0-510470655 -Node: connector-odbc-news-5-0-310471307 -Node: connector-odbc-news-5-0-210471916 -Node: connector-odbc-news-5-0-110472262 -Node: connector-odbc-news-3-51-x10473839 -Node: connector-odbc-news-3-51-2910475785 -Node: connector-odbc-news-3-51-2810477489 -Node: connector-odbc-news-3-51-2710479326 -Node: connector-odbc-news-3-51-2610480236 -Node: connector-odbc-news-3-51-2510481113 -Node: connector-odbc-news-3-51-2410482406 -Node: connector-odbc-news-3-51-2310485815 -Node: connector-odbc-news-3-51-2210487568 -Node: connector-odbc-news-3-51-2110488906 -Node: connector-odbc-news-3-51-2010490792 -Node: connector-odbc-news-3-51-1910491866 -Node: connector-odbc-news-3-51-1810492603 -Node: connector-odbc-news-3-51-1710498776 -Node: connector-odbc-news-3-51-1610503130 -Node: connector-odbc-news-3-51-1510504955 -Node: connector-odbc-news-3-51-1410506472 -Node: connector-odbc-news-3-51-1310508645 -Node: connector-odbc-news-3-51-1210509056 -Node: connector-odbc-news-3-51-1110509756 -Node: connector-net-news10510451 -Node: connector-net-news-6-4-x10512223 -Node: connector-net-news-6-4-410512826 -Node: connector-net-news-6-4-310513961 -Node: connector-net-news-6-4-210514528 -Node: connector-net-news-6-4-110515306 -Node: connector-net-news-6-3-x10516195 -Node: connector-net-news-6-3-910517340 -Node: connector-net-news-6-3-810518121 -Node: connector-net-news-6-3-710520046 -Node: connector-net-news-6-3-610522192 -Node: connector-net-news-6-3-510526486 -Node: connector-net-news-6-3-410529174 -Node: connector-net-news-6-3-310532132 -Node: connector-net-news-6-3-210537342 -Node: connector-net-news-6-3-110540807 -Node: connector-net-news-6-3-010543965 -Node: connector-net-news-6-2-x10545475 -Node: connector-net-news-6-2-610546360 -Node: connector-net-news-6-2-510547146 -Node: connector-net-news-6-2-410552050 -Node: connector-net-news-6-2-310561407 -Node: connector-net-news-6-2-210566004 -Node: connector-net-news-6-2-110567706 -Node: connector-net-news-6-2-010572501 -Node: connector-net-news-6-1-x10574272 -Node: connector-net-news-6-1-710575253 -Node: connector-net-news-6-1-610576139 -Node: connector-net-news-6-1-510580684 -Node: connector-net-news-6-1-410587377 -Node: connector-net-news-6-1-310593375 -Node: connector-net-news-6-1-210597949 -Node: connector-net-news-6-1-110600239 -Node: connector-net-news-6-1-010608954 -Node: connector-net-news-6-0-x10610293 -Node: connector-net-news-6-0-810611343 -Node: connector-net-news-6-0-710615099 -Node: connector-net-news-6-0-610620867 -Node: connector-net-news-6-0-510627219 -Node: connector-net-news-6-0-410642109 -Node: connector-net-news-6-0-310645499 -Node: connector-net-news-6-0-210647663 -Node: connector-net-news-6-0-110648331 -Node: connector-net-news-6-0-010649093 -Node: connector-net-news-5-3-x10649525 -Node: connector-net-news-5-3-010649868 -Node: connector-net-news-5-2-x10650770 -Node: connector-net-news-5-2-810651811 -Node: connector-net-news-5-2-710660132 -Node: connector-net-news-5-2-610664208 -Node: connector-net-news-5-2-510669166 -Node: connector-net-news-5-2-410670180 -Node: connector-net-news-5-2-310673748 -Node: connector-net-news-5-2-210677426 -Node: connector-net-news-5-2-110680309 -Node: connector-net-news-5-2-010682323 -Node: connector-net-news-5-1-x10685442 -Node: connector-net-news-5-1-810686478 -Node: connector-net-news-5-1-710689951 -Node: connector-net-news-5-1-610692608 -Node: connector-net-news-5-1-510694802 -Node: connector-net-news-5-1-410696983 -Node: connector-net-news-5-1-310700518 -Node: connector-net-news-5-1-210702987 -Node: connector-net-news-5-1-110704244 -Node: connector-net-news-5-1-010705708 -Node: connector-net-news-5-0-x10706476 -Node: connector-net-news-5-0-1010707685 -Node: connector-net-news-5-0-910709709 -Node: connector-net-news-5-0-810712186 -Node: connector-net-news-5-0-710715772 -Node: connector-net-news-5-0-610717941 -Node: connector-net-news-5-0-510718920 -Node: connector-net-news-5-0-410723101 -Node: connector-net-news-5-0-310723487 -Node: connector-net-news-5-0-210725982 -Node: connector-net-news-5-0-110728575 -Node: connector-net-news-5-0-010730497 -Node: connector-net-news-1-0-x10731808 -Node: connector-net-news-1-0-1110733143 -Node: connector-net-news-1-0-1010734763 -Node: connector-net-news-1-0-910736404 -Node: connector-net-news-1-0-810740362 -Node: connector-net-news-1-0-710744350 -Node: connector-net-news-1-0-610745869 -Node: connector-net-news-1-0-510746613 -Node: connector-net-news-1-0-410748692 -Node: connector-net-news-1-0-310749921 -Node: connector-net-news-1-0-210751906 -Node: connector-net-news-1-0-110753292 -Node: connector-net-news-1-0-010756615 -Node: connector-net-news-0-9-010757225 -Node: connector-net-news-0-7610764669 -Node: connector-net-news-0-7510766582 -Node: connector-net-news-0-7410768435 -Node: connector-net-news-0-7110773100 -Node: connector-net-news-0-7010773890 -Node: connector-net-news-0-6810779051 -Node: connector-net-news-0-6510780093 -Node: connector-net-news-0-6010780741 -Node: connector-net-news-0-5010781238 -Node: vstudio-plugin-news10781708 -Node: vstudio-plugin-news-1-0-310782502 -Node: vstudio-plugin-news-1-0-210783044 -Node: vstudio-plugin-news-1-0-110783752 -Node: vstudio-plugin-news-1-0-010785067 -Node: cj-news10785504 -Node: cj-news-5-1-x10786110 -Node: cj-news-5-1-1810787926 -Node: cj-news-5-1-1710790680 -Node: cj-news-5-1-1610792288 -Node: cj-news-5-1-1510793779 -Node: cj-news-5-1-1410795309 -Node: cj-news-5-1-1310801661 -Node: cj-news-5-1-1210807047 -Node: cj-news-5-1-1110807741 -Node: cj-news-5-1-1010811347 -Node: cj-news-5-1-910812008 -Node: cj-news-5-1-810817971 -Node: cj-news-5-1-710832617 -Node: cj-news-5-1-610836387 -Node: cj-news-5-1-510845782 -Node: cj-news-5-1-410847472 -Node: cj-news-5-1-310847765 -Node: cj-news-5-1-210857698 -Node: cj-news-5-1-110858456 -Node: cj-news-5-1-010862388 -Node: cj-news-5-0-x10866454 -Node: cj-news-5-0-810867410 -Node: cj-news-5-0-710872984 -Node: cj-news-5-0-610878614 -Node: cj-news-5-0-510888466 -Node: cj-news-5-0-410899138 -Node: cj-news-5-0-310901465 -Node: cj-news-5-0-210902549 -Node: cj-news-5-0-110904873 -Node: cj-news-5-0-010905176 -Node: cj-news-3-1-x10909645 -Node: cj-news-3-1-1510911224 -Node: cj-news-3-1-1410912136 -Node: cj-news-3-1-1310915444 -Node: cj-news-3-1-1210920976 -Node: cj-news-3-1-1110926756 -Node: cj-news-3-1-1010936268 -Node: cj-news-3-1-910936877 -Node: cj-news-3-1-810944336 -Node: cj-news-3-1-710950930 -Node: cj-news-3-1-610956134 -Node: cj-news-3-1-510956680 -Node: cj-news-3-1-410961046 -Node: cj-news-3-1-310964817 -Node: cj-news-3-1-210966385 -Node: cj-news-3-1-110969348 -Node: cj-news-3-1-010975414 -Node: cj-news-3-0-x10976212 -Node: cj-news-3-0-1710977947 -Node: cj-news-3-0-1610981590 -Node: cj-news-3-0-1510983022 -Node: cj-news-3-0-1410986227 -Node: cj-news-3-0-1310986499 -Node: cj-news-3-0-1210987018 -Node: cj-news-3-0-1110990705 -Node: cj-news-3-0-1010992284 -Node: cj-news-3-0-910996462 -Node: cj-news-3-0-811000680 -Node: cj-news-3-0-711002207 -Node: cj-news-3-0-611003927 -Node: cj-news-3-0-511005532 -Node: cj-news-3-0-411006643 -Node: cj-news-3-0-311007745 -Node: cj-news-3-0-211010271 -Node: cj-news-3-0-111013665 -Node: cj-news-3-0-011015033 -Node: cj-news-2-0-x11017048 -Node: cj-news-2-0-1411018534 -Node: cj-news-2-0-1311019463 -Node: cj-news-2-0-1211020331 -Node: cj-news-2-0-1111021991 -Node: cj-news-2-0-1011022538 -Node: cj-news-2-0-911022994 -Node: cj-news-2-0-811024734 -Node: cj-news-2-0-711025497 -Node: cj-news-2-0-611027318 -Node: cj-news-2-0-511027669 -Node: cj-news-2-0-311028941 -Node: cj-news-2-0-111029695 -Node: cj-news-2-0pre511030680 -Node: cj-news-2-0pre411030961 -Node: cj-news-2-0pre11032087 -Node: cj-news-1-2-x11032853 -Node: cj-news-1-2b11034210 -Node: cj-news-1-2a11035996 -Node: cj-news-1-1i11037002 -Node: cj-news-1-1h11037384 -Node: cj-news-1-1g11038793 -Node: cj-news-1-1f11039328 -Node: cj-news-1-1b11040346 -Node: cj-news-1-111041574 -Node: cj-news-1-011042819 -Node: cj-news-0-9d11043525 -Node: cj-news-0-911044536 -Node: cj-news-0-811045759 -Node: cj-news-0-711046283 -Node: cj-news-0-611046688 -Node: news-connector-mxj11047254 -Node: news-connector-mxj-5-0-1211048558 -Node: news-connector-mxj-5-0-1111049134 -Node: news-connector-mxj-5-0-1011051325 -Node: news-connector-mxj-5-0-911052164 -Node: news-connector-mxj-5-0-811053204 -Node: news-connector-mxj-5-0-711053787 -Node: news-connector-mxj-5-0-611054909 -Node: news-connector-mxj-5-0-511057577 -Node: news-connector-mxj-5-0-411060058 -Node: news-connector-mxj-5-0-311061228 -Node: news-connector-mxj-5-0-211061688 -Node: news-connector-mxj-5-0-111063779 -Node: news-connector-mxj-5-0-011064119 -Node: ccpp-news11064820 -Node: ccpp-news-1-1-x11065151 -Node: ccpp-news-1-1-011065446 -Node: ccpp-news-1-0-x11068573 -Node: ccpp-news-1-0-511069214 -Node: ccpp-news-1-0-411071616 -Node: ccpp-news-1-0-311072742 -Node: ccpp-news-1-0-211077267 -Node: ccpp-news-1-0-111080504 -Node: mysql-proxy-news11083769 -Node: mysql-proxy-news-0-8-211084705 -Node: mysql-proxy-news-0-8-111086629 -Node: mysql-proxy-news-0-8-011088980 -Node: mysql-proxy-news-0-7-211092039 -Node: mysql-proxy-news-0-7-111092559 -Node: mysql-proxy-news-0-7-011094168 -Node: mysql-proxy-news-0-6-111098985 -Node: mysql-proxy-news-0-6-011099475 -Node: mysql-proxy-news-0-5-111101760 -Node: mysql-proxy-news-0-5-011103164 -Node: restrictions11103492 -Node: stored-program-restrictions11104406 -Ref: stored-routine-sql-restrictions11105209 -Ref: stored-routines-function-restrictions11106796 -Ref: stored-routines-trigger-restrictions11108580 -Ref: stored-routine-name-conflicts11109538 -Ref: stored-routines-replication-restrictions11110373 -Ref: stored-routines-debugging-restrictions11110796 -Ref: stored-routines-standard-restrictions11110877 -Ref: stored-routines-event-restrictions11112441 -Node: condition-handling-restrictions11116624 -Node: cursor-restrictions11117149 -Node: subquery-restrictions11119174 -Node: view-restrictions11127594 -Node: xa-restrictions11133630 -Node: charset-restrictions11135911 -Node: performance-schema-restrictions11137533 -Node: pluggable-authentication-restrictions11139293 -Node: limits11147250 -Node: joins-limits11147764 -Node: database-count-limit11148081 -Node: table-size-limit11148652 -Node: column-count-limit11154017 -Node: limits-windows11160430 +Node: preface2009 +Ref: legalnotice3056 +Node: introduction8578 +Node: manual-info11342 +Node: manual-conventions13503 +Node: what-is18633 +Node: what-is-mysql19014 +Node: history23221 +Node: features24379 +Node: mysql-nutshell33878 +Node: smp-improvements48400 +Node: innodb-io-changes49419 +Node: monitoring-improvements52361 +Node: solaris-enhancements54288 +Node: development-history55786 +Node: information-sources57428 +Node: mailing-lists58037 +Node: mailing-list-use63060 +Node: forums64165 +Node: irc64712 +Node: mysql-enterprise-information65672 +Node: bug-reports66462 +Node: compatibility83837 +Node: standards86606 +Node: sql-mode86919 +Node: ansi-mode87911 +Node: extensions-to-ansi89108 +Node: differences-from-ansi98902 +Node: ansi-diff-select-into-table100087 +Node: ansi-diff-update101017 +Node: ansi-diff-transactions101630 +Node: ansi-diff-foreign-keys110556 +Node: ansi-diff-comments115358 +Node: constraints118027 +Node: constraint-primary-key119993 +Node: constraint-invalid-data121363 +Node: constraint-enum127184 +Node: credits129800 +Node: contributors130332 +Node: documenters-translators139142 +Node: packages141559 +Node: tools-used-to-create-mysql142760 +Node: supporters143790 +Node: installing144728 +Node: general-installation-issues150162 +Node: supported-os151245 +Node: which-version154856 +Node: choosing-version155606 +Node: choosing-distribution-format161748 +Node: many-versions164853 +Node: getting-mysql166713 +Node: verifying-package-integrity167358 +Node: verifying-md5-checksum168739 +Node: checking-gpg-signature170437 +Node: checking-rpm-signature176615 +Node: installation-layouts178007 +Node: compiler-characteristics178889 +Node: binary-installation179444 +Ref: binary-installation-layout182135 +Ref: binary-installation-createsysuser184468 +Ref: binary-installation-unpack185370 +Ref: binary-installation-postinstall186789 +Node: windows-installation187230 +Node: windows-installation-layout192769 +Node: windows-choosing-package194870 +Node: mi197290 +Ref: mui-welcome198916 +Ref: mi-license-agreement199433 +Ref: mi-find-latest-products-win199782 +Ref: mi-choose-setup-page-win200086 +Ref: mi-check-requirements-win200615 +Ref: mi-installation-progress-win200828 +Ref: mi-installation-progress-status-win200993 +Ref: mi-initial-configuration-overview201208 +Ref: mi-mysql-server-configuration-choice201435 +Ref: mi-201584 +Ref: mi-installation-complete-win201930 +Ref: mi-maintenance202178 +Node: windows-using-installer202513 +Ref: installer-windows-workflow-installer203956 +Node: windows-install-wizard206128 +Node: mysql-install-wizard-starting208862 +Node: mysql-install-wizard-install-type210581 +Node: mysql-install-wizard-custom-install212055 +Node: mysql-install-wizard-confirmation-dialog213062 +Node: mysql-install-wizard-changes213995 +Node: mysql-install-wizard-upgrading217471 +Node: windows-installer-msi-quiet218305 +Node: windows-installer-uninstalling220459 +Node: mysql-config-wizard222504 +Node: mysql-config-wizard-starting224179 +Node: mysql-config-wizard-maintenance227398 +Node: mysql-config-wizard-configuration-type228739 +Node: mysql-config-wizard-server-type230512 +Node: mysql-config-wizard-database-usage232196 +Node: mysql-config-wizard-tablespace234389 +Node: mysql-config-wizard-connections235486 +Node: mysql-config-wizard-networking236935 +Node: mysql-config-wizard-character-set238221 +Node: mysql-config-wizard-service239426 +Node: mysql-config-wizard-security241495 +Node: mysql-config-wizard-confirmation243483 +Node: mysql-config-wizard-cmdline245297 +Node: windows-install-archive252740 +Node: windows-extract-archive254016 +Node: windows-create-option-file255201 +Node: windows-select-server258477 +Node: windows-server-first-start259959 +Node: windows-start-command-line263568 +Node: mysql-installation-windows-path265828 +Node: windows-start-service267936 +Node: windows-testing276553 +Node: windows-troubleshooting278079 +Node: windows-upgrading283202 +Node: windows-postinstallation286564 +Node: macosx-installation291075 +Node: macosx-installation-notes293683 +Node: macosx-installation-pkg297459 +Ref: mysql-installation-layout-macosx299041 +Node: macosx-installation-startupitem302024 +Node: macosx-installation-prefpane304523 +Node: macosx-installation-server307641 +Node: linux-installation310166 +Node: linux-installation-rpm312241 +Ref: mysql-installation-layout-linuxrpm312986 +Node: linux-installation-native322560 +Node: solaris-installation334892 +Node: solaris-installation-pkg338254 +Node: solaris-installation-opensolaris341091 +Node: hpux-installation344222 +Node: hpux-installation-general345204 +Node: hpux-installation-depot346244 +Node: freebsd-installation348199 +Node: source-installation350140 +Node: source-installation-layout357460 +Node: installing-source-distribution358139 +Node: installing-development-tree368058 +Node: source-configuration-options372599 +Ref: cmake-general-options383121 +Ref: option_cmake_build_config383147 +Ref: option_cmake_cmake_build_type383350 +Ref: option_cmake_cpack_monolithic_install383806 +Ref: cmake-installation-layout-options384218 +Ref: option_cmake_cmake_install_prefix384543 +Ref: option_cmake_install_bindir384703 +Ref: option_cmake_install_docdir384776 +Ref: option_cmake_install_docreadmedir384849 +Ref: option_cmake_install_includedir384929 +Ref: option_cmake_install_infodir385005 +Ref: option_cmake_install_layout385076 +Ref: option_cmake_install_libdir385635 +Ref: option_cmake_install_mandir385708 +Ref: option_cmake_install_mysqlsharedir385780 +Ref: option_cmake_install_mysqltestdir385864 +Ref: option_cmake_install_plugindir385956 +Ref: option_cmake_install_sbindir386121 +Ref: option_cmake_install_scriptdir386216 +Ref: option_cmake_install_sharedir386321 +Ref: option_cmake_install_sqlbenchdir386401 +Ref: option_cmake_install_supportfilesdir386575 +Ref: option_cmake_mysql_datadir386663 +Ref: option_cmake_odbc_includes386825 +Ref: option_cmake_odbc_lib_dir386965 +Ref: option_cmake_sysconfdir387103 +Ref: option_cmake_with_unixodbc387403 +Ref: option_cmake_storage_engine_options387477 +Ref: cmake-feature-options389487 +Ref: option_cmake_default_charset389513 +Ref: option_cmake_default_collation390317 +Ref: option_cmake_enable_debug_sync390658 +Ref: option_cmake_enable_downloads391577 +Ref: option_cmake_enable_dtrace391798 +Ref: option_cmake_enable_gcov391945 +Ref: option_cmake_enabled_local_infile392027 +Ref: option_cmake_enabled_profiling392374 +Ref: option_cmake_mysql_maintainer_mode392563 +Ref: option_cmake_mysql_project_name392755 +Ref: option_cmake_mysql_tcp_port392925 +Ref: option_cmake_mysql_unix_addr393135 +Ref: option_cmake_with_comment393410 +Ref: option_cmake_with_debug393504 +Ref: option_cmake_with_embedded_server393908 +Ref: option_cmake_with_extra_charsets394009 +Ref: option_cmake_with_libwrap394239 +Ref: option_cmake_with_readline394327 +Ref: option_cmake_with_ssl394437 +Ref: option_cmake_with_zlib394891 +Ref: cmake-compiler-flags395336 +Ref: option_cmake_disable_grant_options395681 +Ref: option_cmake_have_embedded_privilege_control395875 +Ref: cmake-mysql-cluster-options396056 +Ref: option_cmake_memcached_home396351 +Ref: option_cmake_with_bundled_libevent397282 +Ref: option_cmake_with_bundled_memcached397566 +Ref: option_cmake_with_classpath398056 +Ref: option_cmake_with_error_insert398182 +Ref: option_cmake_with_ndbcluster_storage_engine398391 +Ref: option_cmake_with_ndbmtd398614 +Ref: option_cmake_with_ndb_binlog398763 +Ref: option_cmake_with_ndb_debug398914 +Ref: option_cmake_with_ndb_port399042 +Ref: option_cmake_with_ndb_test399324 +Node: compilation-problems399436 +Node: source-configuration-third-party403132 +Node: postinstallation404096 +Node: unix-postinstallation405552 +Node: mysql-install-db-problems422290 +Node: automatic-start429291 +Node: starting-server437402 +Node: default-privileges444964 +Node: upgrading-downgrading456683 +Node: upgrading457229 +Node: upgrading-from-previous-series463635 +Node: upgrading-from-5-4488891 +Node: downgrading500888 +Node: downgrading-to-previous-series504642 +Node: checking-table-incompatibilities505268 +Node: rebuilding-tables511502 +Node: copying-databases515208 +Node: environment-variables518206 +Node: perl-support522059 +Node: perl-installation523612 +Node: activestate-perl526488 +Node: perl-support-problems527653 +Node: tutorial530339 +Node: connecting-disconnecting532364 +Node: entering-queries535103 +Node: database-use543880 +Node: creating-database547119 +Node: creating-tables549539 +Node: loading-tables553979 +Node: retrieving-data557590 +Node: selecting-all558798 +Node: selecting-rows561017 +Node: selecting-columns564819 +Node: sorting-rows566967 +Node: date-calculations569865 +Node: working-with-null577488 +Node: pattern-matching580134 +Node: counting-rows587641 +Node: multiple-tables592681 +Node: getting-information598007 +Node: batch-mode601061 +Node: examples604280 +Node: example-maximum-column606486 +Node: example-maximum-row606843 +Node: example-maximum-column-group607985 +Node: example-maximum-column-group-row608524 +Node: example-user-variables610205 +Node: example-foreign-keys611298 +Node: searching-on-two-keys615557 +Node: calculating-days616505 +Node: example-auto-increment617682 +Node: apache622488 +Node: programs623386 +Node: programs-overview624475 +Node: programs-using635560 +Node: invoking-programs635976 +Node: connecting639437 +Ref: option_general_host645101 +Ref: option_general_password645226 +Ref: option_general_pipe645519 +Ref: option_general_port645710 +Ref: option_general_protocol645872 +Ref: option_general_shared-memory-base-name647224 +Ref: option_general_socket647564 +Ref: option_general_user648294 +Node: program-options649433 +Node: command-line-options652483 +Node: option-modifiers657605 +Node: option-files659785 +Node: option-file-options671581 +Ref: option_general_defaults-extra-file672522 +Ref: option_general_defaults-file672959 +Ref: option_general_defaults-group-suffix673323 +Ref: option_general_no-defaults673763 +Ref: option_general_print-defaults673989 +Node: option-files-preconfigured674092 +Node: program-variables675079 +Node: option-defaults-equals678357 +Node: setting-environment-variables686942 +Node: programs-server689917 +Node: mysqld690557 +Node: mysqld-safe692001 +Ref: option_mysqld_safe_help698516 +Ref: option_mysqld_safe_basedir698571 +Ref: option_mysqld_safe_core-file-size698647 +Ref: option_mysqld_safe_datadir698814 +Ref: option_mysqld_safe_defaults-extra-file698876 +Ref: option_mysqld_safe_defaults-file699168 +Ref: option_mysqld_safe_ledir699357 +Ref: option_mysqld_safe_log-error699544 +Ref: option_mysqld_safe_malloc-lib699643 +Ref: option_mysqld_safe_mysqld701869 +Ref: option_mysqld_safe_mysqld-version702297 +Ref: option_mysqld_safe_nice702831 +Ref: option_mysqld_safe_no-defaults702950 +Ref: option_mysqld_safe_open-files-limit703079 +Ref: option_mysqld_safe_pid-file703349 +Ref: option_mysqld_safe_port703423 +Ref: option_mysqld_safe_skip-kill-mysqld703641 +Ref: option_mysqld_safe_socket703784 +Ref: option_mysqld_safe_syslog703904 +Ref: option_mysqld_safe_syslog-tag704149 +Ref: option_mysqld_safe_timezone704494 +Ref: option_mysqld_safe_user704697 +Node: mysql-server709549 +Ref: option_mysql_server_basedir711204 +Ref: option_mysql_server_datadir711280 +Ref: option_mysql_server_pid-file711348 +Ref: option_mysql_server_service-startup-timeout711464 +Ref: option_mysql_server_use-mysqld_safe711831 +Ref: option_mysql_server_user711949 +Node: mysqld-multi712039 +Ref: option_mysqld_multi_no-defaults714889 +Ref: option_mysqld_multi_defaults-file714944 +Ref: option_mysqld_multi_defaults-extra-file715014 +Ref: option_mysqld_multi_help715980 +Ref: option_mysqld_multi_config-file716035 +Ref: option_mysqld_multi_example716240 +Ref: option_mysqld_multi_log716295 +Ref: option_mysqld_multi_mysqladmin716415 +Ref: option_mysqld_multi_mysqld716529 +Ref: option_mysqld_multi_no-log717240 +Ref: option_mysqld_multi_password717373 +Ref: option_mysqld_multi_silent717600 +Ref: option_mysqld_multi_tcp-ip717655 +Ref: option_mysqld_multi_user718009 +Ref: option_mysqld_multi_verbose718134 +Ref: option_mysqld_multi_version718176 +Node: programs-installation724314 +Node: comp-err725184 +Ref: option_comp_err_help726186 +Ref: option_comp_err_charset726247 +Ref: option_comp_err_debug726362 +Ref: option_comp_err_debug-info726549 +Ref: option_comp_err_header_file726640 +Ref: option_comp_err_in_file726763 +Ref: option_comp_err_name_file726889 +Ref: option_comp_err_out_dir727009 +Ref: option_comp_err_out_file727126 +Ref: option_comp_err_statefile727236 +Ref: option_comp_err_version727363 +Node: mysqlbug727427 +Node: mysql-install-db727879 +Ref: option_mysql_install_db_basedir730438 +Ref: option_mysql_install_db_force730514 +Ref: option_mysql_install_db_datadir730717 +Ref: option_mysql_install_db_rpm730801 +Ref: option_mysql_install_db_skip-name-resolve730917 +Ref: option_mysql_install_db_srcdir731085 +Ref: option_mysql_install_db_user731317 +Ref: option_mysql_install_db_verbose731696 +Ref: option_mysql_install_db_windows731787 +Node: mysql-plugin731886 +Ref: option_mysql_plugin_help735507 +Ref: option_mysql_plugin_basedir735568 +Ref: option_mysql_plugin_datadir735636 +Ref: option_mysql_plugin_my-print-defaults735704 +Ref: option_mysql_plugin_mysqld735831 +Ref: option_mysql_plugin_no-defaults735919 +Ref: option_mysql_plugin_plugin-dir736280 +Ref: option_mysql_plugin_plugin-ini736353 +Ref: option_mysql_plugin_print-defaults736697 +Ref: option_mysql_plugin_verbose737217 +Ref: option_mysql_plugin_version737402 +Node: mysql-secure-installation737466 +Node: mysql-tzinfo-to-sql738702 +Node: mysql-upgrade740869 +Ref: option_mysql_upgrade_help745522 +Ref: option_mysql_upgrade_basedir745583 +Ref: option_mysql_upgrade_datadir745728 +Ref: option_mysql_upgrade_debug-check745859 +Ref: option_mysql_upgrade_debug-info745945 +Ref: option_mysql_upgrade_default-auth746072 +Ref: option_mysql_upgrade_force746243 +Ref: option_mysql_upgrade_plugin-dir746479 +Ref: option_mysql_upgrade_tmpdir746837 +Ref: option_mysql_upgrade_upgrade-system-tables746945 +Ref: option_mysql_upgrade_user747043 +Ref: option_mysql_upgrade_verbose747188 +Ref: option_mysql_upgrade_write-binlog747279 +Node: programs-client747568 +Node: mysql748381 +Node: mysql-command-options750586 +Ref: option_mysql_help761512 +Ref: option_mysql_auto-rehash761573 +Ref: option_mysql_auto-vertical-output762228 +Ref: option_mysql_batch762508 +Ref: option_mysql_bind-address762883 +Ref: option_mysql_character-sets-dir763276 +Ref: option_mysql_column-names763407 +Ref: option_mysql_column-type-info763468 +Ref: option_mysql_comments763537 +Ref: option_mysql_compress763735 +Ref: option_mysql_database763865 +Ref: option_mysql_debug763978 +Ref: option_mysql_debug-check764166 +Ref: option_mysql_debug-info764252 +Ref: option_mysql_default-auth764379 +Ref: option_mysql_default-character-set764549 +Ref: option_mysql_delimiter765157 +Ref: option_mysql_disable-named-commands765270 +Ref: option_mysql_execute765647 +Ref: option_mysql_force765934 +Ref: option_mysql_host766001 +Ref: option_mysql_html766096 +Ref: option_mysql_ignore-spaces766145 +Ref: option_mysql_line-numbers766341 +Ref: option_mysql_local-infile766448 +Ref: option_mysql_named-commands766807 +Ref: option_mysql_no-auto-rehash767106 +Ref: option_mysql_no-beep767240 +Ref: option_mysql_no-named-commands767302 +Ref: option_mysql_no-pager767450 +Ref: option_mysql_no-tee767584 +Ref: option_mysql_one-database767709 +Ref: option_mysql_pager769609 +Ref: option_mysql_password770035 +Ref: option_mysql_pipe770598 +Ref: option_mysql_plugin-dir770757 +Ref: option_mysql_port771093 +Ref: option_mysql_prompt771189 +Ref: option_mysql_protocol771390 +Ref: option_mysql_quick771703 +Ref: option_mysql_raw771937 +Ref: option_mysql_reconnect772893 +Ref: option_mysql_safe-updates773136 +Ref: option_mysql_secure-auth773524 +Ref: option_mysql_show-warnings773707 +Ref: option_mysql_sigint-ignore773860 +Ref: option_mysql_silent773959 +Ref: option_mysql_skip-column-names774289 +Ref: option_mysql_skip-line-numbers774368 +Ref: option_mysql_socket774526 +Ref: option_mysql_ssl774683 +Ref: option_mysql_table774877 +Ref: option_mysql_tee775044 +Ref: option_mysql_unbuffered775225 +Ref: option_mysql_user775294 +Ref: option_mysql_verbose775400 +Ref: option_mysql_version775657 +Ref: option_mysql_vertical775726 +Ref: option_mysql_wait775942 +Ref: option_mysql_xml776052 +Ref: option_mysql_connect_timeout777385 +Ref: option_mysql_max_allowed_packet777494 +Ref: option_mysql_max_join_size777623 +Ref: option_mysql_select_limit777871 +Node: mysql-commands778013 +Node: mysql-history-file793037 +Node: mysql-server-side-help794299 +Node: batch-commands796678 +Node: mysql-tips798474 +Node: vertical-query-results798906 +Node: safe-updates800146 +Node: mysql-reconnect801951 +Node: mysqladmin803617 +Ref: command_mysqladmin_db_name804308 +Ref: command_mysqladmin_debug804375 +Ref: command_mysqladmin_drop804553 +Ref: command_mysqladmin_extended-status804635 +Ref: command_mysqladmin_flush-hosts804720 +Ref: command_mysqladmin_flush-logs804788 +Ref: command_mysqladmin_flush-privileges804830 +Ref: command_mysqladmin_flush-status804906 +Ref: command_mysqladmin_flush-tables804958 +Ref: command_mysqladmin_flush-threads805004 +Ref: command_mysqladmin_kill805057 +Ref: command_mysqladmin_old-password805190 +Ref: command_mysqladmin_password805382 +Ref: command_mysqladmin_ping807250 +Ref: command_mysqladmin_processlist807613 +Ref: command_mysqladmin_reload807928 +Ref: command_mysqladmin_refresh807975 +Ref: command_mysqladmin_shutdown808045 +Ref: command_mysqladmin_start-slave808086 +Ref: command_mysqladmin_status808150 +Ref: command_mysqladmin_stop-slave808211 +Ref: command_mysqladmin_variables808273 +Ref: command_mysqladmin_version808352 +Ref: option_mysqladmin_help816575 +Ref: option_mysqladmin_bind-address816636 +Ref: option_mysqladmin_character-sets-dir817028 +Ref: option_mysqladmin_compress817159 +Ref: option_mysqladmin_count817289 +Ref: option_mysqladmin_debug817425 +Ref: option_mysqladmin_debug-check817623 +Ref: option_mysqladmin_debug-info817709 +Ref: option_mysqladmin_default-auth817830 +Ref: option_mysqladmin_default-character-set818000 +Ref: option_mysqladmin_force818139 +Ref: option_mysqladmin_host818291 +Ref: option_mysqladmin_no-beep818386 +Ref: option_mysqladmin_password818530 +Ref: option_mysqladmin_pipe819103 +Ref: option_mysqladmin_plugin-dir819262 +Ref: option_mysqladmin_port819608 +Ref: option_mysqladmin_protocol819704 +Ref: option_mysqladmin_relative820017 +Ref: option_mysqladmin_silent820215 +Ref: option_mysqladmin_sleep820312 +Ref: option_mysqladmin_socket820603 +Ref: option_mysqladmin_ssl820760 +Ref: option_mysqladmin_user820954 +Ref: option_mysqladmin_verbose821060 +Ref: option_mysqladmin_version821157 +Ref: option_mysqladmin_vertical821226 +Ref: option_mysqladmin_wait821351 +Ref: option_mysqladmin_connect_timeout821729 +Ref: option_mysqladmin_shutdown_timeout821861 +Node: mysqlcheck821989 +Ref: option_mysqlcheck_help833735 +Ref: option_mysqlcheck_all-databases833796 +Ref: option_mysqlcheck_all-in-1833979 +Ref: option_mysqlcheck_analyze834175 +Ref: option_mysqlcheck_auto-repair834226 +Ref: option_mysqlcheck_bind-address834382 +Ref: option_mysqlcheck_character-sets-dir834774 +Ref: option_mysqlcheck_check834905 +Ref: option_mysqlcheck_check-only-changed834994 +Ref: option_mysqlcheck_check-upgrade835137 +Ref: option_mysqlcheck_compress835427 +Ref: option_mysqlcheck_databases835551 +Ref: option_mysqlcheck_debug835861 +Ref: option_mysqlcheck_debug-check836032 +Ref: option_mysqlcheck_debug-info836118 +Ref: option_mysqlcheck_default-character-set836239 +Ref: option_mysqlcheck_extended836378 +Ref: option_mysqlcheck_default-auth836706 +Ref: option_mysqlcheck_fast836877 +Ref: option_mysqlcheck_fix-db-names836959 +Ref: option_mysqlcheck_fix-table-names837098 +Ref: option_mysqlcheck_force837269 +Ref: option_mysqlcheck_host837336 +Ref: option_mysqlcheck_medium-check837431 +Ref: option_mysqlcheck_optimize837617 +Ref: option_mysqlcheck_password837670 +Ref: option_mysqlcheck_pipe838243 +Ref: option_mysqlcheck_plugin-dir838402 +Ref: option_mysqlcheck_port838749 +Ref: option_mysqlcheck_protocol838845 +Ref: option_mysqlcheck_quick839158 +Ref: option_mysqlcheck_repair839485 +Ref: option_mysqlcheck_silent839606 +Ref: option_mysqlcheck_socket839676 +Ref: option_mysqlcheck_ssl839833 +Ref: option_mysqlcheck_tables840027 +Ref: option_mysqlcheck_use-frm840168 +Ref: option_mysqlcheck_user840364 +Ref: option_mysqlcheck_verbose840470 +Ref: option_mysqlcheck_version840585 +Ref: option_mysqlcheck_write-binlog840654 +Node: mysqldump841235 +Ref: option_mysqldump_help863196 +Ref: option_mysqldump_add-drop-database863257 +Ref: option_mysqldump_add-drop-table863651 +Ref: option_mysqldump_add-drop-trigger863796 +Ref: option_mysqldump_add-locks864125 +Ref: option_mysqldump_all-databases864372 +Ref: option_mysqldump_all-tablespaces864554 +Ref: option_mysqldump_allow-keywords864895 +Ref: option_mysqldump_apply-slave-statements865045 +Ref: option_mysqldump_bind-address865392 +Ref: option_mysqldump_character-sets-dir865782 +Ref: option_mysqldump_comments865913 +Ref: option_mysqldump_compact866156 +Ref: option_mysqldump_compatible866365 +Ref: option_mysqldump_complete-insert867281 +Ref: option_mysqldump_compress867401 +Ref: option_mysqldump_create-options867531 +Ref: option_mysqldump_databases867664 +Ref: option_mysqldump_debug868087 +Ref: option_mysqldump_debug-check868290 +Ref: option_mysqldump_debug-info868376 +Ref: option_mysqldump_default-auth868497 +Ref: option_mysqldump_default-character-set868667 +Ref: option_mysqldump_delayed-insert868929 +Ref: option_mysqldump_delete-master-logs869073 +Ref: option_mysqldump_disable-keys869352 +Ref: option_mysqldump_dump-date869768 +Ref: option_mysqldump_dump-slave870322 +Ref: option_mysqldump_events871374 +Ref: option_mysqldump_extended-insert871480 +Ref: option_mysqldump_fields871701 +Ref: option_mysqldump_first-slave872040 +Ref: option_mysqldump_flush-logs872164 +Ref: option_mysqldump_flush-privileges872804 +Ref: option_mysqldump_force873129 +Ref: option_mysqldump_host873724 +Ref: option_mysqldump_hex-blob873861 +Ref: option_mysqldump_include-master-host-port874154 +Ref: option_mysqldump_ignore-table874482 +Ref: option_mysqldump_insert-ignore874743 +Ref: option_mysqldump_lines-terminated-by874875 +Ref: option_mysqldump_lock-all-tables875095 +Ref: option_mysqldump_lock-tables875352 +Ref: option_mysqldump_log-error876024 +Ref: option_mysqldump_master-data876161 +Ref: option_mysqldump_no-autocommit879499 +Ref: option_mysqldump_no-create-db879677 +Ref: option_mysqldump_no-create-info879904 +Ref: option_mysqldump_no-data880275 +Ref: option_mysqldump_no-set-names880586 +Ref: option_mysqldump_no-tablespaces880672 +Ref: option_mysqldump_opt880912 +Ref: option_mysqldump_order-by-primary881510 +Ref: option_mysqldump_password881805 +Ref: option_mysqldump_pipe882376 +Ref: option_mysqldump_plugin-dir882535 +Ref: option_mysqldump_port882879 +Ref: option_mysqldump_protocol882975 +Ref: option_mysqldump_quick883288 +Ref: option_mysqldump_quote-names883573 +Ref: option_mysqldump_replace883996 +Ref: option_mysqldump_result-file884118 +Ref: option_mysqldump_routines884484 +Ref: option_mysqldump_set-charset885557 +Ref: option_mysqldump_single-transaction885749 +Ref: option_mysqldump_skip-comments887679 +Ref: option_mysqldump_skip-opt887759 +Ref: option_mysqldump_socket887829 +Ref: option_mysqldump_ssl887986 +Ref: option_mysqldump_tab888180 +Ref: option_mysqldump_tables889243 +Ref: option_mysqldump_triggers889415 +Ref: option_mysqldump_tz-utc889570 +Ref: option_mysqldump_user890251 +Ref: option_mysqldump_verbose890357 +Ref: option_mysqldump_version890454 +Ref: option_mysqldump_where890523 +Ref: option_mysqldump_xml890879 +Ref: option_mysqldump_net_buffer_length894210 +Node: mysqlimport897352 +Ref: option_mysqlimport_help905758 +Ref: option_mysqlimport_bind-address905819 +Ref: option_mysqlimport_character-sets-dir906213 +Ref: option_mysqlimport_columns906344 +Ref: option_mysqlimport_compress906571 +Ref: option_mysqlimport_debug906701 +Ref: option_mysqlimport_debug-check906872 +Ref: option_mysqlimport_debug-info906958 +Ref: option_mysqlimport_default-character-set907079 +Ref: option_mysqlimport_default-auth907218 +Ref: option_mysqlimport_delete907389 +Ref: option_mysqlimport_fields907467 +Ref: option_mysqlimport_force907755 +Ref: option_mysqlimport_host907992 +Ref: option_mysqlimport_ignore908129 +Ref: option_mysqlimport_ignore-lines908207 +Ref: option_mysqlimport_lines-terminated-by908282 +Ref: option_mysqlimport_local908722 +Ref: option_mysqlimport_lock-tables908798 +Ref: option_mysqlimport_low-priority908963 +Ref: option_mysqlimport_password909158 +Ref: option_mysqlimport_pipe909733 +Ref: option_mysqlimport_plugin-dir909892 +Ref: option_mysqlimport_port910246 +Ref: option_mysqlimport_protocol910342 +Ref: option_mysqlimport_replace910655 +Ref: option_mysqlimport_silent911170 +Ref: option_mysqlimport_socket911252 +Ref: option_mysqlimport_ssl911409 +Ref: option_mysqlimport_user911603 +Ref: option_mysqlimport_use-threads911709 +Ref: option_mysqlimport_verbose911780 +Ref: option_mysqlimport_version911877 +Node: mysqlshow912756 +Ref: option_mysqlshow_help919569 +Ref: option_mysqlshow_bind-address919630 +Ref: option_mysqlshow_character-sets-dir920020 +Ref: option_mysqlshow_compress920151 +Ref: option_mysqlshow_count920281 +Ref: option_mysqlshow_debug920386 +Ref: option_mysqlshow_debug-check920557 +Ref: option_mysqlshow_debug-info920643 +Ref: option_mysqlshow_default-character-set920764 +Ref: option_mysqlshow_default-auth920903 +Ref: option_mysqlshow_host921074 +Ref: option_mysqlshow_keys921169 +Ref: option_mysqlshow_password921217 +Ref: option_mysqlshow_pipe921788 +Ref: option_mysqlshow_plugin-dir921947 +Ref: option_mysqlshow_port922292 +Ref: option_mysqlshow_protocol922388 +Ref: option_mysqlshow_show-table-type922701 +Ref: option_mysqlshow_socket922867 +Ref: option_mysqlshow_ssl923024 +Ref: option_mysqlshow_status923218 +Ref: option_mysqlshow_user923292 +Ref: option_mysqlshow_verbose923398 +Ref: option_mysqlshow_version923583 +Node: mysqlslap923647 +Ref: option_mysqlslap_help936627 +Ref: option_mysqlslap_auto-generate-sql936688 +Ref: option_mysqlslap_auto-generate-sql-add-autoincrement936834 +Ref: option_mysqlslap_auto-generate-sql-execute-number936953 +Ref: option_mysqlslap_auto-generate-sql-guid-primary937057 +Ref: option_mysqlslap_auto-generate-sql-load-type937169 +Ref: option_mysqlslap_auto-generate-sql-secondary-indexes937474 +Ref: option_mysqlslap_auto-generate-sql-unique-query-number937639 +Ref: option_mysqlslap_auto-generate-sql-unique-write-number937989 +Ref: option_mysqlslap_auto-generate-sql-write-number938150 +Ref: option_mysqlslap_commit938268 +Ref: option_mysqlslap_compress938389 +Ref: option_mysqlslap_concurrency938519 +Ref: option_mysqlslap_create938649 +Ref: option_mysqlslap_create-and-drop-schema938759 +Ref: option_mysqlslap_create-schema938968 +Ref: option_mysqlslap_csv939270 +Ref: option_mysqlslap_debug939440 +Ref: option_mysqlslap_debug-check939637 +Ref: option_mysqlslap_debug-info939723 +Ref: option_mysqlslap_default-auth939850 +Ref: option_mysqlslap_delimiter940021 +Ref: option_mysqlslap_detach940150 +Ref: option_mysqlslap_engine940297 +Ref: option_mysqlslap_host940398 +Ref: option_mysqlslap_iterations940493 +Ref: option_mysqlslap_number-char-cols940569 +Ref: option_mysqlslap_number-int-cols940709 +Ref: option_mysqlslap_number-of-queries940853 +Ref: option_mysqlslap_only-print941364 +Ref: option_mysqlslap_password941494 +Ref: option_mysqlslap_pipe942065 +Ref: option_mysqlslap_plugin-dir942224 +Ref: option_mysqlslap_port942569 +Ref: option_mysqlslap_post-query942665 +Ref: option_mysqlslap_shared-memory-base-name942847 +Ref: option_mysqlslap_post-system943081 +Ref: option_mysqlslap_pre-query943241 +Ref: option_mysqlslap_pre-system943416 +Ref: option_mysqlslap_protocol943569 +Ref: option_mysqlslap_query943882 +Ref: option_mysqlslap_silent944024 +Ref: option_mysqlslap_socket944078 +Ref: option_mysqlslap_ssl944235 +Ref: option_mysqlslap_user944429 +Ref: option_mysqlslap_verbose944535 +Ref: option_mysqlslap_version944720 +Node: programs-admin-utils944784 +Node: innochecksum946474 +Ref: option_innochecksum_count948010 +Ref: option_innochecksum_debug948078 +Ref: option_innochecksum_end948140 +Ref: option_innochecksum_page948187 +Ref: option_innochecksum_start948238 +Ref: option_innochecksum_verbose948287 +Node: myisam-ftdump948361 +Ref: option_myisam_ftdump_help950731 +Ref: option_myisam_ftdump_count950797 +Ref: option_myisam_ftdump_dump950885 +Ref: option_myisam_ftdump_length950970 +Ref: option_myisam_ftdump_stats951032 +Ref: option_myisam_ftdump_verbose951164 +Node: myisamchk951251 +Node: myisamchk-general-options965119 +Ref: option_myisamchk_help965584 +Ref: option_myisamchk_HELP965692 +Ref: option_myisamchk_debug965798 +Ref: option_myisamchk_silent965991 +Ref: option_myisamchk_verbose966158 +Ref: option_myisamchk_version966364 +Ref: option_myisamchk_wait966433 +Node: myisamchk-check-options970730 +Ref: option_myisamchk_check971033 +Ref: option_myisamchk_check-only-changed971193 +Ref: option_myisamchk_extend-check971293 +Ref: option_myisamchk_fast971972 +Ref: option_myisamchk_force972053 +Ref: option_myisamchk_information972276 +Ref: option_myisamchk_medium-check972375 +Ref: option_myisamchk_read-only972564 +Ref: option_myisamchk_update-state972860 +Node: myisamchk-repair-options973247 +Ref: option_myisamchk_backup973635 +Ref: option_myisamchk_character-sets-dir973722 +Ref: option_myisamchk_correct-checksum973853 +Ref: option_myisamchk_data-file-length973935 +Ref: option_myisamchk_keys-used974580 +Ref: option_myisamchk_no-symlinks975026 +Ref: option_myisamchk_max-record-length975310 +Ref: option_myisamchk_parallel-recover975463 +Ref: option_myisamchk_quick975667 +Ref: option_myisamchk_recover975921 +Ref: option_myisamchk_safe-recover976492 +Ref: option_myisamchk_set-character-set977088 +Ref: option_myisamchk_set-collation977247 +Ref: option_myisamchk_sort-recover977424 +Ref: option_myisamchk_tmpdir977585 +Ref: option_myisamchk_unpack978070 +Node: myisamchk-other-options978163 +Ref: option_myisamchk_analyze978479 +Ref: option_myisamchk_block-search978898 +Ref: option_myisamchk_description979009 +Ref: option_myisamchk_set-auto-increment979222 +Ref: option_myisamchk_sort-index979591 +Ref: option_myisamchk_sort-records979744 +Node: myisamchk-table-info980734 +Node: myisamchk-memory995031 +Node: myisamlog998080 +Ref: option_myisamlog_help998966 +Ref: option_myisamlog_files999067 +Ref: option_myisamlog_information999129 +Ref: option_myisamlog_offset999189 +Ref: option_myisamlog_path999243 +Ref: option_myisamlog_recovery999294 +Ref: option_myisamlog_record-position999342 +Ref: option_myisamlog_update999437 +Ref: option_myisamlog_verbose999484 +Ref: option_myisamlog_write999642 +Ref: option_myisamlog_version999695 +Node: myisampack999737 +Ref: option_myisampack_help1001718 +Ref: option_myisampack_backup1001779 +Ref: option_myisampack_character-sets-dir1001885 +Ref: option_myisampack_debug1002016 +Ref: option_myisampack_force1002187 +Ref: option_myisampack_join1002820 +Ref: option_myisampack_silent1003534 +Ref: option_myisampack_test1003614 +Ref: option_myisampack_tmpdir1003696 +Ref: option_myisampack_verbose1003844 +Ref: option_myisampack_version1003972 +Ref: option_myisampack_wait1004041 +Node: mysqlaccess1015171 +Ref: option_mysqlaccess_help1019228 +Ref: option_mysqlaccess_brief1019289 +Ref: option_mysqlaccess_commit1019366 +Ref: option_mysqlaccess_copy1019637 +Ref: option_mysqlaccess_db1019713 +Ref: option_mysqlaccess_debug1019782 +Ref: option_mysqlaccess_host1019865 +Ref: option_mysqlaccess_howto1019960 +Ref: option_mysqlaccess_old_server1020065 +Ref: option_mysqlaccess_password1020223 +Ref: option_mysqlaccess_plan1020602 +Ref: option_mysqlaccess_preview1020675 +Ref: option_mysqlaccess_relnotes1020788 +Ref: option_mysqlaccess_rhost1020841 +Ref: option_mysqlaccess_rollback1020937 +Ref: option_mysqlaccess_spassword1021023 +Ref: option_mysqlaccess_superuser1021426 +Ref: option_mysqlaccess_table1021534 +Ref: option_mysqlaccess_user1021597 +Ref: option_mysqlaccess_version1021692 +Node: mysqlbinlog1022322 +Ref: option_mysqlbinlog_help1032123 +Ref: option_mysqlbinlog_base64-output1032184 +Ref: option_mysqlbinlog_bind-address1034393 +Ref: option_mysqlbinlog_character-sets-dir1034652 +Ref: option_mysqlbinlog_database1034783 +Ref: option_mysqlbinlog_debug1038403 +Ref: option_mysqlbinlog_debug-check1038602 +Ref: option_mysqlbinlog_debug-info1038688 +Ref: option_mysqlbinlog_default-auth1038809 +Ref: option_mysqlbinlog_disable-log-bin1038980 +Ref: option_mysqlbinlog_force-read1039645 +Ref: option_mysqlbinlog_hexdump1039945 +Ref: option_mysqlbinlog_host1040131 +Ref: option_mysqlbinlog_local-load1040239 +Ref: option_mysqlbinlog_offset1040534 +Ref: option_mysqlbinlog_password1040605 +Ref: option_mysqlbinlog_plugin-dir1041180 +Ref: option_mysqlbinlog_port1041534 +Ref: option_mysqlbinlog_position1041645 +Ref: option_mysqlbinlog_protocol1041763 +Ref: option_mysqlbinlog_read-from-remote-server1042076 +Ref: option_mysqlbinlog_result-file1042540 +Ref: option_mysqlbinlog_server-id1042618 +Ref: option_mysqlbinlog_server-id-bits1042729 +Ref: option_mysqlbinlog_set-charset1043298 +Ref: option_mysqlbinlog_short-form1043466 +Ref: option_mysqlbinlog_socket1043683 +Ref: option_mysqlbinlog_start-datetime1043840 +Ref: option_mysqlbinlog_start-position1044451 +Ref: option_mysqlbinlog_stop-datetime1044764 +Ref: option_mysqlbinlog_stop-position1045174 +Ref: option_mysqlbinlog_to-last-log1045476 +Ref: option_mysqlbinlog_user1045803 +Ref: option_mysqlbinlog_verbose1045914 +Ref: option_mysqlbinlog_version1046277 +Ref: option_mysqlbinlog_open_files_limit1046423 +Node: mysqlbinlog-hexdump1050401 +Node: mysqlbinlog-row-events1061187 +Node: mysqldumpslow1070127 +Ref: option_mysqldumpslow_help1072464 +Ref: option_mysqldumpslow_abstract1072519 +Ref: option_mysqldumpslow_debug1072594 +Ref: option_mysqldumpslow_grep1072642 +Ref: option_mysqldumpslow_host1072729 +Ref: option_mysqldumpslow_instance1072882 +Ref: option_mysqldumpslow_lock1072997 +Ref: option_mysqldumpslow_abstract-numbers1073058 +Ref: option_mysqldumpslow_reverse1073132 +Ref: option_mysqldumpslow_sort1073174 +Ref: option_mysqldumpslow_top1073625 +Ref: option_mysqldumpslow_verbose1073693 +Node: mysqlhotcopy1074293 +Ref: option_mysqlhotcopy_help1078935 +Ref: option_mysqlhotcopy_addtodest1078996 +Ref: option_mysqlhotcopy_allowold1079099 +Ref: option_mysqlhotcopy_checkpoint1079201 +Ref: option_mysqlhotcopy_chroot1079333 +Ref: option_mysqlhotcopy_debug1079542 +Ref: option_mysqlhotcopy_dryrun1079586 +Ref: option_mysqlhotcopy_flushlog1079656 +Ref: option_mysqlhotcopy_host1079722 +Ref: option_mysqlhotcopy_keepold1079947 +Ref: option_mysqlhotcopy_method1080023 +Ref: option_mysqlhotcopy_noindices1080122 +Ref: option_mysqlhotcopy_password1080402 +Ref: option_mysqlhotcopy_port1080799 +Ref: option_mysqlhotcopy_old_server1080912 +Ref: option_mysqlhotcopy_quiet1081248 +Ref: option_mysqlhotcopy_record_log_pos1081306 +Ref: option_mysqlhotcopy_regexp1081445 +Ref: option_mysqlhotcopy_resetmaster1081550 +Ref: option_mysqlhotcopy_resetslave1081630 +Ref: option_mysqlhotcopy_socket1081717 +Ref: option_mysqlhotcopy_suffix1081817 +Ref: option_mysqlhotcopy_tmpdir1081894 +Ref: option_mysqlhotcopy_user1081971 +Node: mysql-convert-table-format1082305 +Ref: option_mysql_convert_table_format_help1083290 +Ref: option_mysql_convert_table_format_force1083345 +Ref: option_mysql_convert_table_format_host1083399 +Ref: option_mysql_convert_table_format_password1083478 +Ref: option_mysql_convert_table_format_port1083871 +Ref: option_mysql_convert_table_format_socket1083952 +Ref: option_mysql_convert_table_format_type1084042 +Ref: option_mysql_convert_table_format_user1084205 +Ref: option_mysql_convert_table_format_verbose1084295 +Ref: option_mysql_convert_table_format_version1084386 +Node: mysql-find-rows1084444 +Ref: option_mysql_find_rows_help1085722 +Ref: option_mysql_find_rows_regexp1085794 +Ref: option_mysql_find_rows_rows1085866 +Ref: option_mysql_find_rows_skip-use-db1085923 +Ref: option_mysql_find_rows_start_row1086007 +Node: mysql-fix-extensions1086059 +Node: mysql-setpermission1087011 +Ref: option_mysql_setpermission_help1088268 +Ref: option_mysql_setpermission_host1088323 +Ref: option_mysql_setpermission_password1088402 +Ref: option_mysql_setpermission_port1088795 +Ref: option_mysql_setpermission_socket1088876 +Ref: option_mysql_setpermission_user1088966 +Node: mysql-waitpid1089051 +Ref: option_mysql_waitpid_help1090133 +Ref: option_mysql_waitpid_verbose1090200 +Ref: option_mysql_waitpid_version1090328 +Node: mysql-zap1090392 +Ref: option_mysql_zap_help1091492 +Ref: option_mysql_zap_force1091559 +Ref: option_mysql_zap_test1091676 +Node: programs-development1091764 +Node: msql2mysql1093695 +Node: mysql-config1094841 +Ref: option_mysql_config_cflags1095296 +Ref: option_mysql_config_include1095702 +Ref: option_mysql_config_libmysqld-libs1095773 +Ref: option_mysql_config_libs1095895 +Ref: option_mysql_config_libs_r1095992 +Ref: option_mysql_config_plugindir1096103 +Ref: option_mysql_config_port1096207 +Ref: option_mysql_config_socket1096293 +Ref: option_mysql_config_version1096379 +Node: my-print-defaults1097904 +Ref: option_my_print_defaults_help1098934 +Ref: option_my_print_defaults_config-file1098995 +Ref: option_my_print_defaults_debug1099118 +Ref: option_my_print_defaults_defaults-extra-file1099319 +Ref: option_my_print_defaults_defaults-group-suffix1099513 +Ref: option_my_print_defaults_no-defaults1099670 +Ref: option_my_print_defaults_verbose1099729 +Ref: option_my_print_defaults_version1099826 +Node: resolve-stack-dump1099890 +Ref: option_resolve_stack_dump_help1100739 +Ref: option_resolve_stack_dump_numeric-dump-file1100800 +Ref: option_resolve_stack_dump_symbols-file1100903 +Ref: option_resolve_stack_dump_version1100987 +Node: programs-miscellaneous1101051 +Node: perror1101449 +Ref: option_perror_help1102707 +Ref: option_perror_ndb1102784 +Ref: option_perror_silent1102861 +Ref: option_perror_verbose1102934 +Ref: option_perror_version1103044 +Node: replace-utility1103108 +Ref: option_replace_help1104644 +Ref: option_replace_debug1104701 +Ref: option_replace_silent1104750 +Ref: option_replace_verbose1104827 +Ref: option_replace_version1104911 +Node: resolveip1104962 +Ref: option_resolveip_help1105458 +Ref: option_resolveip_silent1105535 +Ref: option_resolveip_version1105599 +Node: server-administration1105663 +Node: mysqld-server1106664 +Node: mysqld-option-tables1107908 +Node: server-options1198205 +Ref: option_mysqld_help1201530 +Ref: option_mysqld_allow-suspicious-udfs1201869 +Ref: option_mysqld_ansi1202712 +Ref: option_mysqld_basedir1203136 +Ref: option_mysqld_big-tables1203929 +Ref: option_mysqld_bind-address1204943 +Ref: option_mysqld_binlog-format1205889 +Ref: option_mysqld_bootstrap1207237 +Ref: option_mysqld_character-sets-dir1207758 +Ref: option_mysqld_character-set-client-handshake1208550 +Ref: option_mysqld_character-set-filesystem1209276 +Ref: option_mysqld_character-set-server1210116 +Ref: option_mysqld_chroot1211078 +Ref: option_mysqld_collation-server1211890 +Ref: option_mysqld_console1212670 +Ref: option_mysqld_core-file1213093 +Ref: option_mysqld_datadir1214515 +Ref: option_mysqld_debug1215230 +Ref: option_mysqld_debug-sync-timeout1216772 +Ref: option_mysqld_default-character-set1218010 +Ref: option_mysqld_default-collation1218793 +Ref: option_mysqld_default-storage-engine1219466 +Ref: option_mysqld_default-time-zone1220631 +Ref: option_mysqld_delay-key-write1221300 +Ref: option_mysqld_des-key-file1222786 +Ref: option_mysqld_enable-named-pipe1223142 +Ref: option_mysqld_enable-pstack1223574 +Ref: option_mysqld_engine-condition-pushdown1224162 +Ref: option_mysqld_event-scheduler1225250 +Ref: option_mysqld_exit-info1226196 +Ref: option_mysqld_external-locking1226858 +Ref: option_mysqld_flush1227926 +Ref: option_mysqld_gdb1228700 +Ref: option_mysqld_general-log1229352 +Ref: option_mysqld_init-file1230218 +Ref: option_mysqld_install1231250 +Ref: option_mysqld_install-manual1231660 +Ref: option_mysqld_language1232133 +Ref: option_mysqld_large-pages1233350 +Ref: option_mysqld_lc-messages1234727 +Ref: option_mysqld_lc-messages-dir1235638 +Ref: option_mysqld_log1236524 +Ref: option_mysqld_log-error1238002 +Ref: option_mysqld_log-isam1238866 +Ref: option_mysqld_log-long-format1239371 +Ref: option_mysqld_log-output1240183 +Ref: option_mysqld_log-queries-not-using-indexes1241961 +Ref: option_mysqld_log-short-format1243085 +Ref: option_mysqld_log-slow-admin-statements1243617 +Ref: option_mysqld_log-slow-queries1244284 +Ref: option_mysqld_log-tc1245875 +Ref: option_mysqld_log-tc-size1246649 +Ref: option_mysqld_log-warnings1247582 +Ref: option_mysqld_low-priority-updates1249664 +Ref: option_mysqld_min-examined-row-limit1250925 +Ref: option_mysqld_memlock1252209 +Ref: option_mysqld_myisam-block-size1254188 +Ref: option_mysqld_myisam-recover1254816 +Ref: option_mysqld_myisam-recover-options1255009 +Ref: option_mysqld_old-alter-table1258110 +Ref: option_mysqld_old-passwords1259236 +Ref: option_mysqld_old-style-user-limits1260140 +Ref: option_mysqld_one-thread1260833 +Ref: option_mysqld_open-files-limit1261365 +Ref: option_mysqld_partition1262828 +Ref: option_mysqld_pid-file1263607 +Ref: option_mysqld_plugin1264553 +Ref: option_mysqld_plugin-load1265858 +Ref: option_mysqld_port1268152 +Ref: option_mysqld_port-open-timeout1268997 +Ref: option_mysqld_remove1269808 +Ref: option_mysqld_safe-mode1270152 +Ref: option_mysqld_safe-show-database1270419 +Ref: option_mysqld_safe-user-create1271353 +Ref: option_mysqld_secure-auth1272447 +Ref: option_mysqld_secure-file-priv1273296 +Ref: option_mysqld_shared-memory1274167 +Ref: option_mysqld_shared-memory-base-name1274296 +Ref: option_mysqld_skip-concurrent-insert1274515 +Ref: option_mysqld_skip-external-locking1274753 +Ref: option_mysqld_skip-event-scheduler1275105 +Ref: option_mysqld_skip-grant-tables1275618 +Ref: option_mysqld_skip-host-cache1276592 +Ref: option_mysqld_skip-name-resolve1277070 +Ref: option_mysqld_skip-networking1277327 +Ref: option_mysqld_skip-partition1277667 +Ref: option_mysqld_standalone1278277 +Ref: option_mysqld_super-large-pages1278601 +Ref: option_mysqld_symbolic-links1278990 +Ref: option_mysqld_skip-safemalloc1280025 +Ref: option_mysqld_skip-show-database1280675 +Ref: option_mysqld_skip-stack-trace1281651 +Ref: option_mysqld_skip-thread-priority1282155 +Ref: option_mysqld_slow-query-log1282553 +Ref: option_mysqld_slow-start-timeout1283437 +Ref: option_mysqld_socket1284360 +Ref: option_mysqld_sql-mode1285520 +Ref: option_mysqld_sysdate-is-now1287465 +Ref: option_mysqld_tc-heuristic-recover1288370 +Ref: option_mysqld_temp-pool1288998 +Ref: option_mysqld_transaction-isolation1289866 +Ref: option_mysqld_tmpdir1290972 +Ref: option_mysqld_user1292653 +Ref: option_mysqld_verbose1294354 +Ref: option_mysqld_version1294445 +Node: server-system-variables1295527 +Ref: sysvar_authentication_windows_log_level1336965 +Ref: sysvar_authentication_windows_use_principal_name1338334 +Ref: sysvar_autocommit1340342 +Ref: sysvar_automatic_sp_privileges1342432 +Ref: sysvar_back_log1343652 +Ref: sysvar_basedir1345333 +Ref: sysvar_big_tables1346195 +Ref: sysvar_bulk_insert_buffer_size1346782 +Ref: sysvar_character_set_client1348430 +Ref: sysvar_character_set_connection1350271 +Ref: sysvar_character_set_database1350841 +Ref: sysvar_character_set_filesystem1352458 +Ref: sysvar_character_set_results1353890 +Ref: sysvar_character_set_server1354438 +Ref: sysvar_character_set_system1355169 +Ref: sysvar_character_sets_dir1355658 +Ref: sysvar_collation_connection1356403 +Ref: sysvar_collation_database1356886 +Ref: sysvar_collation_server1358483 +Ref: sysvar_completion_type1359186 +Ref: sysvar_concurrent_insert1361961 +Ref: sysvar_connect_timeout1364380 +Ref: sysvar_datadir1365403 +Ref: sysvar_date_format1366153 +Ref: sysvar_datetime_format1366205 +Ref: sysvar_debug1366261 +Ref: sysvar_debug_sync1367881 +Ref: sysvar_default_storage_engine1369446 +Ref: sysvar_default_week_format1370789 +Ref: sysvar_delay_key_write1371709 +Ref: sysvar_delayed_insert_limit1373774 +Ref: sysvar_delayed_insert_timeout1375246 +Ref: sysvar_delayed_queue_size1376112 +Ref: sysvar_div_precision_increment1377583 +Ref: sysvar_engine_condition_pushdown1379116 +Ref: sysvar_error_count1381263 +Ref: sysvar_event_scheduler1381437 +Ref: sysvar_expire_logs_days1382548 +Ref: sysvar_external_user1383714 +Ref: sysvar_flush1384444 +Ref: sysvar_flush_time1385342 +Ref: sysvar_foreign_key_checks1386533 +Ref: sysvar_ft_boolean_syntax1387489 +Ref: sysvar_ft_max_word_len1388945 +Ref: sysvar_ft_min_word_len1389812 +Ref: sysvar_ft_query_expansion_limit1390722 +Ref: sysvar_ft_stopword_file1391631 +Ref: sysvar_general_log1393008 +Ref: sysvar_general_log_file1394037 +Ref: sysvar_group_concat_max_len1394931 +Ref: sysvar_have_compress1396270 +Ref: sysvar_have_crypt1396460 +Ref: sysvar_have_csv1396616 +Ref: sysvar_have_dynamic_loading1396831 +Ref: sysvar_have_geometry1396955 +Ref: sysvar_have_innodb1397046 +Ref: sysvar_have_openssl1397293 +Ref: sysvar_have_partitioning1397363 +Ref: sysvar_have_profiling1397452 +Ref: sysvar_have_query_cache1397567 +Ref: sysvar_have_rtree_keys1397793 +Ref: sysvar_have_ssl1397939 +Ref: sysvar_have_symlink1398238 +Ref: sysvar_hostname1398490 +Ref: sysvar_identity1398913 +Ref: sysvar_init_connect1399153 +Ref: sysvar_init_file1401034 +Ref: sysvar_insert_id1402338 +Ref: sysvar_interactive_timeout1402565 +Ref: sysvar_join_buffer_size1403628 +Ref: sysvar_keep_files_on_create1405388 +Ref: sysvar_key_buffer_size1406894 +Ref: sysvar_key_cache_age_threshold1411123 +Ref: sysvar_key_cache_block_size1412667 +Ref: sysvar_key_cache_division_limit1413602 +Ref: sysvar_language1414680 +Ref: sysvar_large_files_support1415700 +Ref: sysvar_large_pages1416003 +Ref: sysvar_large_page_size1416797 +Ref: sysvar_last_insert_id1417456 +Ref: sysvar_lc_messages1417782 +Ref: sysvar_lc_messages_dir1418674 +Ref: sysvar_lc_time_names1419551 +Ref: sysvar_license1420409 +Ref: sysvar_local_infile1420842 +Ref: sysvar_lock_wait_timeout1421328 +Ref: sysvar_locked_in_memory1423325 +Ref: sysvar_log1423608 +Ref: sysvar_log_bin1423821 +Ref: sysvar_log_bin_trust_function_creators1424334 +Ref: sysvar_log_error1425955 +Ref: sysvar_log_output1426622 +Ref: sysvar_log_queries_not_using_indexes1427980 +Ref: sysvar_log_slave_updates1428837 +Ref: sysvar_log_slow_admin_statements1429112 +Ref: sysvar_log_slow_slave_statements1429829 +Ref: sysvar_log_slow_queries1430448 +Ref: sysvar_log_warnings1431465 +Ref: sysvar_long_query_time1432840 +Ref: sysvar_low_priority_updates1434334 +Ref: sysvar_lower_case_file_system1435501 +Ref: sysvar_lower_case_table_names1436516 +Ref: sysvar_max_allowed_packet1438823 +Ref: sysvar_max_connect_errors1440836 +Ref: sysvar_max_connections1442543 +Ref: sysvar_max_delayed_threads1443636 +Ref: sysvar_max_error_count1445003 +Ref: sysvar_max_heap_table_size1445986 +Ref: sysvar_max_insert_delayed_threads1448219 +Ref: sysvar_max_join_size1448728 +Ref: sysvar_max_length_for_sort_data1450622 +Ref: sysvar_max_long_data_size1451603 +Ref: sysvar_max_prepared_stmt_count1452912 +Ref: sysvar_max_relay_log_size1454360 +Ref: sysvar_max_seeks_for_key1455794 +Ref: sysvar_max_sort_length1457467 +Ref: sysvar_max_sp_recursion_depth1458450 +Ref: sysvar_max_tmp_tables1459724 +Ref: sysvar_max_user_connections1461048 +Ref: sysvar_max_write_lock_count1462743 +Ref: sysvar_metadata_locks_cache_size1464052 +Ref: sysvar_min_examined_row_limit1464918 +Ref: sysvar_myisam_data_pointer_size1466156 +Ref: sysvar_myisam_max_sort_file_size1467226 +Ref: sysvar_myisam_mmap_size1468628 +Ref: sysvar_myisam_recover_options1470153 +Ref: sysvar_myisam_repair_threads1470463 +Ref: sysvar_myisam_sort_buffer_size1471959 +Ref: sysvar_myisam_stats_method1473680 +Ref: sysvar_myisam_use_mmap1475282 +Ref: sysvar_named_pipe1476008 +Ref: sysvar_net_buffer_length1476547 +Ref: sysvar_net_read_timeout1478077 +Ref: sysvar_net_retry_count1479201 +Ref: sysvar_net_write_timeout1480618 +Ref: sysvar_new1481517 +Ref: sysvar_old1482414 +Ref: sysvar_old_alter_table1483387 +Ref: sysvar_old_passwords1484515 +Ref: sysvar_one_shot1485320 +Ref: sysvar_open_files_limit1485463 +Ref: sysvar_optimizer_prune_level1486610 +Ref: sysvar_optimizer_search_depth1487704 +Ref: sysvar_optimizer_switch1489256 +Ref: sysvar_pid_file1492019 +Ref: sysvar_plugin_dir1492766 +Ref: sysvar_port1494745 +Ref: sysvar_preload_buffer_size1495527 +Ref: sysvar_profiling1496460 +Ref: sysvar_profiling_history_size1496774 +Ref: sysvar_protocol_version1497057 +Ref: sysvar_proxy_user1497507 +Ref: sysvar_pseudo_thread_id1498127 +Ref: sysvar_query_alloc_block_size1498551 +Ref: sysvar_query_cache_limit1500189 +Ref: sysvar_query_cache_min_res_unit1501458 +Ref: sysvar_query_cache_size1502954 +Ref: sysvar_query_cache_type1504942 +Ref: sysvar_query_cache_wlock_invalidate1506795 +Ref: sysvar_query_prealloc_size1508057 +Ref: sysvar_rand_seed11509828 +Ref: sysvar_rand_seed21510490 +Ref: sysvar_range_alloc_block_size1510554 +Ref: sysvar_read_buffer_size1511599 +Ref: sysvar_read_only1513050 +Ref: sysvar_read_rnd_buffer_size1516611 +Ref: sysvar_relay_log_purge1518175 +Ref: sysvar_relay_log_space_limit1518975 +Ref: sysvar_report_host1520226 +Ref: sysvar_report_password1520875 +Ref: sysvar_report_port1521626 +Ref: sysvar_report_user1522354 +Ref: sysvar_rpl_semi_sync_master_enabled1523068 +Ref: sysvar_rpl_semi_sync_master_timeout1523838 +Ref: sysvar_rpl_semi_sync_master_trace_level1524678 +Ref: sysvar_rpl_semi_sync_master_wait_no_slave1525646 +Ref: sysvar_rpl_semi_sync_slave_enabled1527174 +Ref: sysvar_rpl_semi_sync_slave_trace_level1527939 +Ref: sysvar_secure_auth1528655 +Ref: sysvar_secure_file_priv1529532 +Ref: sysvar_server_id1530454 +Ref: sysvar_shared_memory1531470 +Ref: sysvar_shared_memory_base_name1531786 +Ref: sysvar_skip_external_locking1532292 +Ref: sysvar_skip_name_resolve1532513 +Ref: sysvar_skip_networking1532937 +Ref: sysvar_skip_show_database1533241 +Ref: sysvar_slow_launch_time1534036 +Ref: sysvar_slow_query_log1534838 +Ref: sysvar_slow_query_log_file1535992 +Ref: sysvar_socket1536859 +Ref: sysvar_sort_buffer_size1537951 +Ref: sysvar_sql_auto_is_null1540379 +Ref: sysvar_sql_big_selects1542179 +Ref: sysvar_sql_buffer_result1543206 +Ref: sysvar_sql_log_bin1543975 +Ref: sysvar_sql_log_off1544807 +Ref: sysvar_sql_log_update1545569 +Ref: sysvar_sql_mode1546219 +Ref: sysvar_sql_notes1548183 +Ref: sysvar_sql_quote_show_create1548643 +Ref: sysvar_sql_safe_updates1549078 +Ref: sysvar_sql_select_limit1549504 +Ref: sysvar_sql_warnings1550836 +Ref: sysvar_ssl_ca1551071 +Ref: sysvar_ssl_capath1551738 +Ref: sysvar_ssl_cert1552466 +Ref: sysvar_ssl_cipher1553181 +Ref: sysvar_ssl_key1553878 +Ref: sysvar_storage_engine1554536 +Ref: sysvar_sync_frm1555659 +Ref: sysvar_system_time_zone1556493 +Ref: sysvar_table_definition_cache1557593 +Ref: sysvar_table_lock_wait_timeout1558802 +Ref: sysvar_table_open_cache1559700 +Ref: sysvar_table_type1561032 +Ref: sysvar_thread_cache_size1561135 +Ref: sysvar_thread_concurrency1562853 +Ref: sysvar_thread_handling1563970 +Ref: sysvar_thread_pool_algorithm1565824 +Ref: sysvar_thread_pool_high_priority_connection1567403 +Ref: sysvar_thread_pool_max_unused_threads1568795 +Ref: sysvar_thread_pool_prio_kickup_timer1570786 +Ref: sysvar_thread_pool_size1572128 +Ref: sysvar_thread_pool_stall_limit1573492 +Ref: sysvar_thread_stack1575199 +Ref: sysvar_time_format1576963 +Ref: sysvar_time_zone1577015 +Ref: sysvar_timed_mutexes1577941 +Ref: sysvar_timestamp1579035 +Ref: sysvar_tmp_table_size1579666 +Ref: sysvar_tmpdir1581355 +Ref: sysvar_transaction_alloc_block_size1583118 +Ref: sysvar_transaction_prealloc_size1584724 +Ref: sysvar_tx_isolation1586784 +Ref: sysvar_unique_checks1588228 +Ref: sysvar_updatable_views_with_limit1589275 +Ref: sysvar_version1590707 +Ref: sysvar_version_comment1591051 +Ref: sysvar_version_compile_machine1591658 +Ref: sysvar_version_compile_os1592122 +Ref: sysvar_wait_timeout1592564 +Ref: sysvar_warning_count1594112 +Node: using-system-variables1594306 +Node: structured-system-variables1606610 +Node: dynamic-system-variables1611785 +Node: server-status-variables1632764 +Ref: statvar_Aborted_clients1668001 +Ref: statvar_Aborted_connects1668185 +Ref: statvar_Binlog_cache_disk_use1668319 +Ref: statvar_Binlog_cache_use1668894 +Ref: statvar_Binlog_stmt_cache_disk_use1668985 +Ref: statvar_Binlog_stmt_cache_use1669232 +Ref: statvar_Bytes_received1669358 +Ref: statvar_Bytes_sent1669435 +Ref: statvar_Com_xxx1669502 +Ref: statvar_Compression1671793 +Ref: statvar_Connections1671903 +Ref: statvar_Created_tmp_disk_tables1672010 +Ref: statvar_Created_tmp_files1672991 +Ref: statvar_Created_tmp_tables1673086 +Ref: statvar_Delayed_errors1673678 +Ref: statvar_Delayed_insert_threads1673848 +Ref: statvar_Delayed_writes1673970 +Ref: statvar_Flush_commands1674074 +Ref: statvar_Handler_commit1674530 +Ref: statvar_Handler_delete1674620 +Ref: statvar_Handler_prepare1674711 +Ref: statvar_Handler_read_first1674806 +Ref: statvar_Handler_read_key1675070 +Ref: statvar_Handler_read_last1675268 +Ref: statvar_Handler_read_next1675636 +Ref: statvar_Handler_read_prev1675858 +Ref: statvar_Handler_read_rnd1676023 +Ref: statvar_Handler_read_rnd_next1676353 +Ref: statvar_Handler_rollback1676676 +Ref: statvar_Handler_savepoint1676790 +Ref: statvar_Handler_savepoint_rollback1676889 +Ref: statvar_Handler_update1677009 +Ref: statvar_Handler_write1677090 +Ref: statvar_Innodb_buffer_pool_pages_data1677170 +Ref: statvar_Innodb_buffer_pool_pages_dirty1677269 +Ref: statvar_Innodb_buffer_pool_pages_flushed1677352 +Ref: statvar_Innodb_buffer_pool_pages_free1677447 +Ref: statvar_Innodb_buffer_pool_pages_latched1677518 +Ref: statvar_Innodb_buffer_pool_pages_misc1677877 +Ref: statvar_Innodb_buffer_pool_pages_total1678222 +Ref: statvar_Innodb_buffer_pool_read_ahead1678313 +Ref: statvar_Innodb_buffer_pool_read_ahead_evicted1678455 +Ref: statvar_Innodb_buffer_pool_read_requests1678681 +Ref: statvar_Innodb_buffer_pool_reads1678784 +Ref: statvar_Innodb_buffer_pool_wait_free1678951 +Ref: statvar_Innodb_buffer_pool_write_requests1679359 +Ref: statvar_Innodb_data_fsyncs1679460 +Ref: statvar_Innodb_data_pending_fsyncs1679537 +Ref: statvar_Innodb_data_pending_reads1679631 +Ref: statvar_Innodb_data_pending_writes1679709 +Ref: statvar_Innodb_data_read1679789 +Ref: statvar_Innodb_data_reads1679875 +Ref: statvar_Innodb_data_writes1679940 +Ref: statvar_Innodb_data_written1680007 +Ref: statvar_Innodb_dblwr_pages_written1680087 +Ref: statvar_Innodb_dblwr_writes1680233 +Ref: statvar_Innodb_have_atomic_builtins1680364 +Ref: statvar_Innodb_log_waits1680472 +Ref: statvar_Innodb_log_write_requests1680627 +Ref: statvar_Innodb_log_writes1680702 +Ref: statvar_Innodb_os_log_fsyncs1680782 +Ref: statvar_Innodb_os_log_pending_fsyncs1680871 +Ref: statvar_Innodb_os_log_pending_writes1680968 +Ref: statvar_Innodb_os_log_written1681051 +Ref: statvar_Innodb_page_size1681133 +Ref: statvar_Innodb_pages_created1681320 +Ref: statvar_Innodb_pages_read1681385 +Ref: statvar_Innodb_pages_written1681444 +Ref: statvar_Innodb_row_lock_current_waits1681509 +Ref: statvar_Innodb_row_lock_time1681606 +Ref: statvar_Innodb_row_lock_time_avg1681704 +Ref: statvar_Innodb_row_lock_time_max1681801 +Ref: statvar_Innodb_row_lock_waits1681898 +Ref: statvar_Innodb_rows_deleted1681988 +Ref: statvar_Innodb_rows_inserted1682072 +Ref: statvar_Innodb_rows_read1682158 +Ref: statvar_Innodb_rows_updated1682236 +Ref: statvar_Innodb_truncated_status_writes1682318 +Ref: statvar_Key_blocks_not_flushed1682638 +Ref: statvar_Key_blocks_unused1682780 +Ref: statvar_Key_blocks_used1683018 +Ref: statvar_Key_read_requests1683219 +Ref: statvar_Key_reads1683311 +Ref: statvar_Key_write_requests1683562 +Ref: statvar_Key_writes1683654 +Ref: statvar_Last_query_cost1683734 +Ref: statvar_Max_used_connections1684295 +Ref: statvar_Not_flushed_delayed_rows1684433 +Ref: statvar_Open_files1684570 +Ref: statvar_Open_streams1684920 +Ref: statvar_Open_table_definitions1685011 +Ref: statvar_Open_tables1685084 +Ref: statvar_Opened_files1685147 +Ref: statvar_Opened_table_definitions1685366 +Ref: statvar_Opened_tables1685456 +Ref: statvar_Prepared_stmt_count1685751 +Ref: statvar_Qcache_free_blocks1685933 +Ref: statvar_Qcache_free_memory1686020 +Ref: statvar_Qcache_hits1686101 +Ref: statvar_Qcache_inserts1686160 +Ref: statvar_Qcache_lowmem_prunes1686238 +Ref: statvar_Qcache_not_cached1686363 +Ref: statvar_Qcache_queries_in_cache1686503 +Ref: statvar_Qcache_total_blocks1686595 +Ref: statvar_Queries1686677 +Ref: statvar_Questions1686923 +Ref: statvar_Rpl_semi_sync_master_clients1687287 +Ref: statvar_Rpl_semi_sync_master_net_avg_wait_time1687480 +Ref: statvar_Rpl_semi_sync_master_net_wait_time1687720 +Ref: statvar_Rpl_semi_sync_master_net_waits1687949 +Ref: statvar_Rpl_semi_sync_master_no_times1688169 +Ref: statvar_Rpl_semi_sync_master_no_tx1688401 +Ref: statvar_Rpl_semi_sync_master_status1688633 +Ref: statvar_Rpl_semi_sync_master_timefunc_failures1689111 +Ref: statvar_Rpl_semi_sync_master_tx_avg_wait_time1689373 +Ref: statvar_Rpl_semi_sync_master_tx_wait_time1689615 +Ref: statvar_Rpl_semi_sync_master_tx_waits1689842 +Ref: statvar_Rpl_semi_sync_master_wait_pos_backtraverse1690060 +Ref: statvar_Rpl_semi_sync_master_wait_sessions1690524 +Ref: statvar_Rpl_semi_sync_master_yes_tx1690745 +Ref: statvar_Rpl_semi_sync_slave_status1690974 +Ref: statvar_Rpl_status1691309 +Ref: statvar_Select_full_join1691448 +Ref: statvar_Select_full_range_join1691647 +Ref: statvar_Select_range1691752 +Ref: statvar_Select_range_check1691914 +Ref: statvar_Select_scan1692105 +Ref: statvar_Slave_heartbeat_period1692193 +Ref: statvar_Slave_open_temp_tables1692314 +Ref: statvar_Slave_received_heartbeats1692558 +Ref: statvar_Slave_retried_transactions1692832 +Ref: statvar_Slave_running1692983 +Ref: statvar_Slow_launch_threads1693186 +Ref: statvar_Slow_queries1693312 +Ref: statvar_Sort_merge_passes1693448 +Ref: statvar_Sort_range1693665 +Ref: statvar_Sort_rows1693740 +Ref: statvar_Sort_scan1693792 +Ref: statvar_Ssl_accept_renegotiates1693875 +Ref: statvar_Ssl_accepts1693975 +Ref: statvar_Ssl_callback_cache_hits1694042 +Ref: statvar_Ssl_cipher1694116 +Ref: statvar_Ssl_cipher_list1694198 +Ref: statvar_Ssl_client_connects1694263 +Ref: statvar_Ssl_connect_renegotiates1694362 +Ref: statvar_Ssl_ctx_verify_depth1694493 +Ref: statvar_Ssl_ctx_verify_mode1694618 +Ref: statvar_Ssl_default_timeout1694688 +Ref: statvar_Ssl_finished_accepts1694748 +Ref: statvar_Ssl_finished_connects1694840 +Ref: statvar_Ssl_session_cache_hits1694951 +Ref: statvar_Ssl_session_cache_misses1695027 +Ref: statvar_Ssl_session_cache_mode1695107 +Ref: statvar_Ssl_session_cache_overflows1695173 +Ref: statvar_Ssl_session_cache_size1695259 +Ref: statvar_Ssl_session_cache_timeouts1695325 +Ref: statvar_Ssl_sessions_reused1695409 +Ref: statvar_Ssl_used_session_cache_entries1695497 +Ref: statvar_Ssl_verify_depth1695589 +Ref: statvar_Ssl_verify_mode1695677 +Ref: statvar_Ssl_version1695763 +Ref: statvar_Table_locks_immediate1695814 +Ref: statvar_Table_locks_waited1695938 +Ref: statvar_Tc_log_max_pages_used1696249 +Ref: statvar_Tc_log_page_size1697095 +Ref: statvar_Tc_log_page_waits1697375 +Ref: statvar_Threads_cached1697944 +Ref: statvar_Threads_connected1698017 +Ref: statvar_Threads_created1698092 +Ref: statvar_Threads_running1698350 +Ref: statvar_Uptime1698426 +Ref: statvar_Uptime_since_flush_status1698499 +Node: server-sql-mode1698610 +Ref: sqlmode_allow_invalid_dates1702258 +Ref: sqlmode_ansi_quotes1703217 +Ref: sqlmode_error_for_division_by_zero1703584 +Ref: sqlmode_high_not_precedence1704046 +Ref: sqlmode_ignore_space1704658 +Ref: sqlmode_no_auto_create_user1705677 +Ref: sqlmode_no_auto_value_on_zero1706112 +Ref: sqlmode_no_backslash_escapes1707129 +Ref: sqlmode_no_dir_in_create1707345 +Ref: sqlmode_no_engine_substitution1707524 +Ref: sqlmode_no_field_options1708332 +Ref: sqlmode_no_key_options1708552 +Ref: sqlmode_no_table_options1708769 +Ref: sqlmode_no_unsigned_subtraction1709007 +Ref: sqlmode_no_zero_date1711116 +Ref: sqlmode_no_zero_in_date1711348 +Ref: sqlmode_only_full_group_by1711751 +Ref: sqlmode_pad_char_to_full_length1712240 +Ref: sqlmode_pipes_as_concat1713611 +Ref: sqlmode_real_as_float1713749 +Ref: sqlmode_strict_all_tables1713972 +Ref: sqlmode_strict_trans_tables1714115 +Ref: sqlmode_ansi1717208 +Ref: sqlmode_db21718003 +Ref: sqlmode_maxdb1718149 +Ref: sqlmode_mssql1718325 +Ref: sqlmode_mysql3231718473 +Ref: sqlmode_mysql401718554 +Ref: sqlmode_oracle1718634 +Ref: sqlmode_postgresql1718811 +Ref: sqlmode_traditional1718964 +Node: server-plugins1719172 +Node: server-plugin-loading1719828 +Ref: server-plugin-installing1720385 +Ref: server-plugin-activating1724584 +Ref: server-plugin-uninstalling1728586 +Node: obtaining-plugin-information1729907 +Node: server-side-help-support1732710 +Node: server-signal-response1734388 +Node: server-shutdown1736167 +Node: server-logs1740220 +Node: log-destinations1742953 +Node: error-log1750669 +Node: query-log1755414 +Node: binary-log1759003 +Node: binary-log-formats1772391 +Node: binary-log-setting1774444 +Node: binary-log-mixed1779341 +Node: binary-log-mysql-database1802407 +Node: slow-query-log1804139 +Node: log-file-maintenance1808702 +Node: security1813308 +Node: security-guidelines1814323 +Node: password-security1823662 +Node: password-security-admin1824452 +Node: password-security-user1826191 +Node: password-hashing1831052 +Node: application-password-use1845012 +Node: security-against-attack1846488 +Node: privileges-options1853366 +Ref: option_mysqld_local-infile1856450 +Ref: option_mysqld_ssl_xxxx1859952 +Node: load-data-local1860145 +Node: changing-mysql-user1863535 +Node: privilege-system1865853 +Node: privileges-provided1870427 +Ref: priv_all1875076 +Ref: priv_alter1875377 +Ref: priv_alter-routine1875709 +Ref: priv_create1875822 +Ref: priv_create-routine1875903 +Ref: priv_create-tablespace1876010 +Ref: priv_create-temporary-tables1876125 +Ref: priv_create-user1876976 +Ref: priv_create-view1877177 +Ref: priv_delete1877266 +Ref: priv_drop1877355 +Ref: priv_event1877837 +Ref: priv_execute1877946 +Ref: priv_file1878049 +Ref: priv_grant-option1878776 +Ref: priv_index1878928 +Ref: priv_insert1879193 +Ref: priv_lock-tables1879476 +Ref: priv_process1879756 +Ref: priv_proxy1880166 +Ref: priv_references1880334 +Ref: priv_reload1880389 +Ref: priv_replication-client1881204 +Ref: priv_replication-slave1881373 +Ref: priv_select1881652 +Ref: priv_show-databases1882552 +Ref: priv_show-view1882965 +Ref: priv_shutdown1883062 +Ref: priv_super1883215 +Ref: priv_trigger1884252 +Ref: priv_update1884415 +Ref: priv_usage1884502 +Node: grant-table-structure1886397 +Node: account-names1901677 +Node: connection-access1907242 +Node: request-access1915867 +Node: privilege-changes1924525 +Node: access-denied1926838 +Node: user-account-management1945366 +Node: user-names1946755 +Node: adding-users1953409 +Node: removing-users1965370 +Node: user-resources1965660 +Node: assigning-passwords1973159 +Node: pluggable-authentication1978166 +Node: native-authentication-plugins1988495 +Node: pam-authentication-plugin1990922 +Node: pam-authentication-plugin-installation1994170 +Node: pam-authentication-plugin-usage1995408 +Node: pam-authentication-unix-without-proxy2003069 +Node: pam-authentication-ldap-without-proxy2005068 +Node: pam-authentication-unix-with-proxy2006201 +Node: pam-authentication-plugin-debugging2011118 +Node: windows-authentication-plugin2016099 +Node: windows-authentication-plugin-installation2019319 +Node: windows-authentication-plugin-usage2020490 +Node: clear-text-authentication-plugin2029666 +Node: socket-authentication-plugin2031623 +Node: test-authentication-plugin2034259 +Node: proxy-users2035933 +Node: secure-connections2046930 +Node: secure-basics2048496 +Node: secure-using-ssl2050807 +Node: ssl-options2057055 +Ref: option_general_ssl2059189 +Ref: option_general_ssl-ca2060592 +Ref: option_general_ssl-capath2060686 +Ref: option_general_ssl-cert2060815 +Ref: option_general_ssl-cipher2060938 +Ref: option_general_ssl-key2061670 +Ref: option_general_ssl-verify-server-cert2062229 +Node: secure-create-certs2063120 +Node: windows-and-ssh2076224 +Node: account-activity-auditing2077974 +Node: multiple-servers2083061 +Node: multiple-data-directories2088288 +Node: multiple-windows-servers2092060 +Node: multiple-windows-command-line-servers2093049 +Node: multiple-windows-services2096090 +Node: multiple-unix-servers2100439 +Node: multiple-server-clients2104386 +Node: dba-dtrace-server2107172 +Ref: figure-dtrace-server-overview2108361 +Node: dba-dtrace-mysqld-ref2109629 +Node: dba-dtrace-ref-connection2114649 +Node: dba-dtrace-ref-command2118306 +Node: dba-dtrace-ref-query2121792 +Node: dba-dtrace-ref-query-parsing2124569 +Node: dba-dtrace-ref-querycache2126602 +Node: dba-dtrace-ref-queryexec2129554 +Node: dba-dtrace-ref-rowlevel2131979 +Node: dba-dtrace-ref-readrow2135792 +Node: dba-dtrace-ref-index2137019 +Node: dba-dtrace-ref-lock2137777 +Node: dba-dtrace-ref-filesort2141823 +Node: dba-dtrace-ref-statement2144694 +Node: dba-dtrace-ref-network2152843 +Node: dba-dtrace-ref-keycache2156640 +Node: backup-and-recovery2160138 +Node: backup-types2163307 +Node: backup-methods2173949 +Node: backup-strategy-example2180712 +Node: backup-policy2184212 +Node: recovery-from-backups2191581 +Node: backup-strategy-summary2193613 +Node: using-mysqldump2194659 +Node: mysqldump-sql-format2196803 +Node: reloading-sql-format-dumps2199861 +Node: mysqldump-delimited-text2201169 +Node: reloading-delimited-text-dumps2205437 +Node: mysqldump-tips2207049 +Node: mysqldump-copying-database2207937 +Node: mysqldump-copying-to-other-server2208482 +Node: mysqldump-stored-programs2209735 +Node: mysqldump-definition-data-dumps2210605 +Node: mysqldump-upgrade-testing2211625 +Node: point-in-time-recovery2212981 +Node: point-in-time-recovery-times2217735 +Node: point-in-time-recovery-positions2219883 +Node: myisam-table-maintenance2222235 +Node: myisam-crash-recovery2224921 +Node: myisam-check2228458 +Node: myisam-repair2230311 +Node: myisam-optimization2238009 +Node: myisam-maintenance-schedule2239656 +Node: optimization2242150 +Node: optimize-overview2243800 +Ref: portability2248912 +Node: statement-optimization2249227 +Node: select-optimization2250206 +Node: select-speed2253786 +Node: where-optimizations2254416 +Node: limit-optimization2259443 +Node: how-to-avoid-table-scan2261764 +Node: non-select-optimization2266088 +Node: insert-speed2267269 +Node: update-speed2269461 +Node: delete-speed2270360 +Node: permission-optimization2271083 +Node: information-schema-optimization2271981 +Node: miscellaneous-optimization-tips2286986 +Node: optimization-indexes2289509 +Node: mysql-indexes2290862 +Node: optimizing-primary-keys2294832 +Node: optimizing-foreign-keys2295765 +Node: column-indexes2296722 +Node: multiple-column-indexes2299164 +Node: verifying-index-usage2303220 +Node: myisam-index-statistics2303602 +Node: index-btree-hash2309794 +Node: optimizing-database-structure2314076 +Node: data-size2314937 +Node: optimize-data-types2321980 +Node: optimize-numeric2322387 +Node: optimize-character2323343 +Node: optimize-blob2325406 +Node: optimize-multi-tables2327104 +Node: table-cache2327780 +Node: creating-many-tables2333170 +Node: internal-temporary-tables2333848 +Node: optimizing-innodb2336590 +Node: optimizing-innodb-storage-layout2337868 +Node: optimizing-innodb-transaction-management2340791 +Node: optimizing-innodb-logging2345219 +Node: optimizing-innodb-bulk-data-loading2345936 +Node: optimizing-innodb-queries2348224 +Node: optimizing-innodb-ddl-operations2350097 +Node: optimizing-innodb-diskio2351550 +Node: optimizing-innodb-configuration-variables2354592 +Node: optimizing-innodb-many-tables2360430 +Node: optimizing-myisam2361164 +Node: optimizing-queries-myisam2361885 +Node: optimizing-myisam-bulk-data-loading2367996 +Node: repair-table-speed2373333 +Node: optimizing-memory-tables2378156 +Node: execution-plan-information2379511 +Node: using-explain2380772 +Node: explain-output2382984 +Ref: explain-output-columns2384799 +Ref: explain-output-column-table2385211 +Ref: explain_id2385722 +Ref: explain_select_type2385864 +Ref: explain_table2387872 +Ref: explain_type2387938 +Ref: explain_possible_keys2388045 +Ref: explain_key2388924 +Ref: explain_key_len2390489 +Ref: explain_ref2390778 +Ref: explain_rows2390935 +Ref: explain_extra2391573 +Ref: explain-join-types2391754 +Ref: jointype_system2391959 +Ref: jointype_const2392080 +Ref: jointype_eq_ref2392725 +Ref: jointype_ref2393625 +Ref: jointype_fulltext2394564 +Ref: jointype_ref_or_null2394636 +Ref: jointype_index_merge2395092 +Ref: jointype_unique_subquery2395426 +Ref: jointype_index_subquery2395733 +Ref: jointype_range2395996 +Ref: jointype_index2396790 +Ref: jointype_all2397104 +Ref: explain-extra-information2397497 +Ref: explain-output-interpretation2406362 +Node: estimating-performance2413094 +Node: controlling-optimizer2414927 +Node: controlling-query-plan-evaluation2415421 +Node: switchable-optimizations2418478 +Node: buffering-caching2422922 +Node: innodb-buffer-pool2423692 +Node: myisam-key-cache2433503 +Node: shared-key-cache2437379 +Node: multiple-key-caches2438206 +Node: midpoint-insertion2443705 +Node: index-preloading2446252 +Node: key-cache-block-size2448061 +Node: key-cache-restructuring2448984 +Node: query-cache2450363 +Node: query-cache-operation2454720 +Node: query-cache-in-select2459683 +Node: query-cache-configuration2460298 +Node: query-cache-status-and-maintenance2467177 +Node: locking-issues2470020 +Node: internal-locking2471406 +Node: table-locking2478517 +Node: concurrent-inserts2484255 +Node: metadata-locking2487240 +Node: external-locking2489118 +Node: optimizing-the-server2493702 +Node: system-optimization2494748 +Node: server-parameters2497332 +Node: disk-issues2523836 +Node: symbolic-links2528524 +Node: symbolic-links-to-databases2529346 +Node: symbolic-links-to-tables2530713 +Node: windows-symbolic-links2535006 +Node: optimizing-memory2537235 +Node: memory-use2537542 +Node: large-page-support2543302 +Node: optimizing-network2548293 +Node: connection-threads2548624 +Node: dns2552272 +Node: thread-pool-plugin2554184 +Node: thread-pool-installation2556413 +Node: thread-pool-operation2560523 +Node: thread-pool-tuning2570136 +Node: optimize-benchmarking2576038 +Node: select-benchmarking2578193 +Node: mysql-benchmarks2579377 +Node: custom-benchmarks2581796 +Node: monitoring-performance-schema2583820 +Node: thread-information2584296 +Node: thread-commands2587359 +Node: general-thread-states2589947 +Node: delayed-insert-thread-states2604665 +Node: query-cache-thread-states2607788 +Node: master-thread-states2609184 +Node: slave-io-thread-states2610519 +Node: slave-sql-thread-states2613751 +Node: slave-connection-thread-states2615105 +Node: mysql-cluster-thread-states2615997 +Node: event-scheduler-thread-states2617083 +Node: optimization-internals2618035 +Node: range-optimization2619342 +Node: range-access-single-part2620020 +Node: range-access-multi-part2624496 +Node: index-merge-optimization2629780 +Node: index-merge-intersection2632641 +Node: index-merge-union2634296 +Node: index-merge-sort-union2635353 +Node: condition-pushdown-optimization2636117 +Node: is-null-optimization2640965 +Node: left-join-optimization2643120 +Node: nested-loop-joins2646104 +Node: nested-join-optimization2649820 +Node: outer-join-simplification2663550 +Node: order-by-optimization2669316 +Node: group-by-optimization2678471 +Node: loose-index-scan2680056 +Node: tight-index-scan2684766 +Node: distinct-optimization2686881 +Node: in-subquery-optimization2688400 +Node: language-structure2700693 +Node: literals2701441 +Node: string-literals2702225 +Ref: character-escape-sequences2704763 +Node: number-literals2709153 +Node: date-and-time-literals2709774 +Ref: date-and-time-standard-sql-literals2710508 +Ref: date-and-time-string-numeric-literals2711038 +Node: hexadecimal-literals2716997 +Node: boolean-literals2718619 +Node: bit-field-literals2718982 +Node: null-values2720558 +Node: identifiers2721184 +Node: identifier-qualifiers2727064 +Node: identifier-case-sensitivity2729218 +Node: identifier-mapping2736481 +Node: function-resolution2743093 +Node: reserved-words2753351 +Ref: table-reserved-words-5.5.222755626 +Ref: table-reserved-words-new-5.52760198 +Node: user-variables2760771 +Node: expressions2768888 +Node: comments2772856 +Node: globalization2775713 +Node: charset2776803 +Node: charset-general2779286 +Node: charset-mysql2781977 +Node: charset-syntax2787297 +Node: charset-server2788996 +Node: charset-database2791151 +Node: charset-table2793634 +Node: charset-column2795294 +Node: charset-literal2798640 +Node: charset-national2803405 +Node: charset-examples2804462 +Node: charset-compatibility2806757 +Node: charset-connection2807093 +Node: charset-applications2816669 +Node: charset-errors2822570 +Node: charset-collations2826669 +Node: charset-collation-names2827512 +Node: charset-collate2828001 +Node: charset-collate-precedence2829337 +Node: charset-collation-charset2829709 +Node: charset-collation-expressions2830379 +Node: charset-binary-collations2834579 +Node: charset-binary-op2840369 +Node: charset-collation-effect2842508 +Node: charset-collation-information-schema2845540 +Node: charset-repertoire2850519 +Node: charset-operations2855445 +Node: charset-result2855940 +Node: charset-convert2858936 +Node: charset-show2860422 +Node: charset-unicode2865468 +Node: charset-unicode-ucs22870641 +Node: charset-unicode-utf162871407 +Node: charset-unicode-utf322874011 +Node: charset-unicode-utf82875663 +Node: charset-unicode-utf8mb32877220 +Node: charset-unicode-utf8mb42878886 +Node: charset-unicode-upgrading2880670 +Node: charset-metadata2887972 +Node: charset-conversion2892156 +Node: charset-charsets2896228 +Node: charset-unicode-sets2900846 +Node: charset-we-sets2911421 +Node: charset-ce-sets2915167 +Node: charset-se-me-sets2916758 +Node: charset-baltic-sets2918360 +Node: charset-cyrillic-sets2919186 +Node: charset-asian-sets2920435 +Node: charset-cp9322922874 +Node: error-message-language2929420 +Node: adding-character-set2932514 +Node: character-arrays2939151 +Node: string-collating2942319 +Node: multi-byte-characters2943363 +Node: adding-collation2944234 +Node: charset-collation-implementations2947418 +Node: adding-collation-choosing-id2951507 +Node: adding-collation-simple-8bit2953605 +Node: adding-collation-unicode-uca2957431 +Node: ldml-collation-example2958936 +Node: ldml-rules2964854 +Node: charset-configuration2967677 +Node: time-zone-support2970974 +Node: time-zone-upgrades2978590 +Node: time-zone-leap-seconds2984115 +Node: locale-support2986192 +Node: data-types2993496 +Node: data-type-overview2995371 +Node: numeric-type-overview2995764 +Node: date-and-time-type-overview3006539 +Node: string-type-overview3011126 +Node: data-type-defaults3022618 +Node: numeric-types3026325 +Node: integer-types3028387 +Node: fixed-point-types3030242 +Node: floating-point-types3032503 +Node: bit-type3034419 +Node: numeric-type-attributes3035191 +Node: out-of-range-and-overflow3038196 +Node: date-and-time-types3042807 +Node: datetime3048105 +Node: time3053347 +Node: year3055712 +Node: timestamp-initialization3057520 +Node: fractional-seconds3066177 +Node: date-and-time-type-conversion3067042 +Node: two-digit-years3070332 +Node: string-types3071940 +Node: char3072764 +Node: binary-varbinary3078409 +Node: blob3082864 +Node: enum3088841 +Node: set3095323 +Node: storage-requirements3101381 +Node: choosing-types3113373 +Node: other-vendor-data-types3114578 +Node: functions3117193 +Node: func-op-summary-ref3120484 +Node: type-conversion3139858 +Node: non-typed-operators3148823 +Node: operator-precedence3151600 +Node: comparison-operators3153407 +Ref: operator_equal3156362 +Ref: operator_equal-to3156675 +Ref: operator_not-equal3157093 +Ref: operator_less-than-or-equal3157321 +Ref: operator_less-than3157417 +Ref: operator_greater-than-or-equal3157500 +Ref: operator_greater-than3157597 +Ref: operator_is3157683 +Ref: operator_is-not3157911 +Ref: operator_is-null3158160 +Ref: operator_is-not-null3160076 +Ref: operator_between3160242 +Ref: operator_not-between3161540 +Ref: function_coalesce3161638 +Ref: function_greatest3161913 +Ref: function_in3162384 +Ref: function_not-in3163965 +Ref: function_isnull3164053 +Ref: function_interval3164565 +Ref: function_least3165109 +Node: logical-operators3166649 +Ref: operator_not3167598 +Ref: operator_and3168125 +Ref: operator_or3168592 +Ref: operator_xor3169179 +Node: assignment-operators3169693 +Ref: operator_assign-value3170232 +Ref: operator_assign-equal3172293 +Node: control-flow-functions3174044 +Ref: operator_case3174500 +Ref: function_if3176055 +Ref: function_ifnull3177334 +Ref: function_nullif3178695 +Node: string-functions3179080 +Ref: function_ascii3184439 +Ref: function_bin3184876 +Ref: function_bit-length3185161 +Ref: function_char3185307 +Ref: function_char-length3187245 +Ref: function_character-length3187535 +Ref: function_concat3187627 +Ref: function_concat-ws3188607 +Ref: function_elt3189390 +Ref: function_export-set3189787 +Ref: function_field3190693 +Ref: function_find-in-set3191409 +Ref: function_format3192134 +Ref: function_hex3193065 +Ref: function_insert3193826 +Ref: function_instr3194560 +Ref: function_lcase3195056 +Ref: function_left3195120 +Ref: function_length3195324 +Ref: function_load-file3195664 +Ref: function_locate3196561 +Ref: function_lower3197238 +Ref: function_lpad3198254 +Ref: function_ltrim3198606 +Ref: function_make-set3198808 +Ref: function_mid3199493 +Ref: function_octet-length3199587 +Ref: function_ord3199666 +Ref: function_position3200176 +Ref: function_quote3200280 +Ref: function_repeat3201024 +Ref: function_replace3201312 +Ref: function_reverse3201680 +Ref: function_right3201882 +Ref: function_rpad3202128 +Ref: function_rtrim3202520 +Ref: function_soundex3202724 +Ref: operator_sounds-like3204287 +Ref: function_space3204381 +Ref: function_substr3204521 +Ref: function_substring3204679 +Ref: function_substring-index3206106 +Ref: function_trim3206799 +Ref: function_ucase3207508 +Ref: function_unhex3207572 +Ref: function_upper3209391 +Node: string-comparison-functions3210012 +Ref: operator_like3210780 +Ref: operator_not-like3216121 +Ref: function_strcmp3217187 +Node: regexp3218981 +Ref: operator_not-regexp3220092 +Ref: operator_regexp3220194 +Node: numeric-functions3233483 +Node: arithmetic-functions3236643 +Ref: operator_plus3239075 +Ref: operator_minus3239155 +Ref: operator_unary-minus3239239 +Ref: operator_times3239615 +Ref: operator_divide3240126 +Ref: operator_div3240484 +Ref: operator_mod3241121 +Node: mathematical-functions3241319 +Ref: function_abs3244044 +Ref: function_acos3244297 +Ref: function_asin3244636 +Ref: function_atan3245455 +Ref: function_atan23245695 +Ref: function_ceil3246102 +Ref: function_ceiling3246164 +Ref: function_conv3246554 +Ref: function_cos3247392 +Ref: function_cot3247528 +Ref: function_crc323247708 +Ref: function_degrees3248111 +Ref: function_exp3248328 +Ref: function_floor3248722 +Ref: function_ln3249593 +Ref: function_log3249993 +Ref: function_log23250842 +Ref: function_log103251187 +Ref: function_mod3251489 +Ref: function_oct3252121 +Ref: function_pi3252403 +Ref: function_pow3252733 +Ref: function_power3252925 +Ref: function_radians3252982 +Ref: function_rand3253190 +Ref: function_round3256630 +Ref: function_sign3259032 +Ref: function_sin3259344 +Ref: function_sqrt3259560 +Ref: function_tan3259823 +Ref: function_truncate3260052 +Node: date-and-time-functions3260757 +Ref: function_adddate3268171 +Ref: function_addtime3268928 +Ref: function_convert-tz3269340 +Ref: function_curdate3270356 +Ref: function_current-date3270680 +Ref: function_curtime3270792 +Ref: function_current-time3271176 +Ref: function_current-timestamp3271288 +Ref: function_date3271421 +Ref: function_datediff3271599 +Ref: function_date-add3272050 +Ref: function_date-format3279490 +Ref: function_date-sub3283161 +Ref: function_day3283248 +Ref: function_dayname3283314 +Ref: function_dayofmonth3283598 +Ref: function_dayofweek3283864 +Ref: function_dayofyear3284116 +Ref: function_extract3284286 +Ref: function_from-days3284922 +Ref: function_from-unixtime3285277 +Ref: function_get-format3286608 +Ref: function_hour3288461 +Ref: function_last-day3288854 +Ref: function_localtime3289365 +Ref: function_localtimestamp3289461 +Ref: function_makedate3289577 +Ref: function_maketime3290023 +Ref: function_microsecond3290226 +Ref: function_minute3290554 +Ref: function_month3290716 +Ref: function_monthname3290987 +Ref: function_now3291278 +Ref: function_period-add3293413 +Ref: function_period-diff3293686 +Ref: function_quarter3293981 +Ref: function_second3294148 +Ref: function_sec-to-time3294299 +Ref: function_str-to-date3294769 +Ref: function_subdate3297531 +Ref: function_subtime3298297 +Ref: function_sysdate3298742 +Ref: function_time3300932 +Ref: function_timediff3301442 +Ref: function_timestamp3302213 +Ref: function_timestampadd3302733 +Ref: function_timestampdiff3303617 +Ref: function_time-format3304632 +Ref: function_time-to-sec3305248 +Ref: function_to-days3305482 +Ref: function_to-seconds3307718 +Ref: function_unix-timestamp3310169 +Ref: function_utc-date3313030 +Ref: function_utc-time3313329 +Ref: function_utc-timestamp3313634 +Ref: function_week3314006 +Ref: function_weekday3316609 +Ref: function_weekofyear3316877 +Ref: function_year3317156 +Ref: function_yearweek3317344 +Node: mysql-calendar3317915 +Node: fulltext-search3319833 +Ref: function_match3320469 +Node: fulltext-natural-language3323751 +Node: fulltext-boolean3334676 +Node: fulltext-query-expansion3341800 +Node: fulltext-stopwords3344947 +Node: fulltext-restrictions3353515 +Node: fulltext-fine-tuning3355321 +Node: full-text-adding-collation3363066 +Node: cast-functions3367429 +Ref: operator_binary3367857 +Ref: function_cast3368848 +Ref: function_convert3369058 +Node: xml-functions3375076 +Ref: function_extractvalue3381276 +Ref: function_updatexml3387142 +Node: bit-functions3407094 +Ref: operator_bitwise-or3407768 +Ref: operator_bitwise-and3407903 +Ref: operator_bitwise-xor3408039 +Ref: operator_left-shift3408281 +Ref: operator_right-shift3408642 +Ref: operator_bitwise-invert3409004 +Ref: function_bit-count3409142 +Node: encryption-functions3409312 +Ref: function_aes-decrypt3414211 +Ref: function_aes-encrypt3414422 +Ref: function_compress3415913 +Ref: function_decode3417401 +Ref: function_des-decrypt3417576 +Ref: function_des-encrypt3418482 +Ref: function_encode3420547 +Ref: function_encrypt3420859 +Ref: function_md53421723 +Ref: function_old-password3422561 +Ref: function_password3423168 +Ref: function_sha13424621 +Ref: function_sha23425690 +Ref: function_uncompress3426975 +Ref: function_uncompressed-length3427482 +Node: information-functions3427707 +Ref: function_benchmark3429337 +Ref: function_charset3431780 +Ref: function_coercibility3432086 +Ref: function_collation3433056 +Ref: function_connection-id3433302 +Ref: function_current-user3433559 +Ref: function_database3434928 +Ref: function_found-rows3435452 +Ref: function_last-insert-id3439496 +Ref: function_row-count3447017 +Ref: function_schema3450158 +Ref: function_session-user3450227 +Ref: function_system-user3450301 +Ref: function_user3450373 +Ref: function_version3450906 +Node: miscellaneous-functions3451474 +Ref: function_default3452937 +Ref: function_get-lock3453338 +Ref: function_inet-aton3456277 +Ref: function_inet-ntoa3457329 +Ref: function_is-free-lock3457808 +Ref: function_is-used-lock3458281 +Ref: function_master-pos-wait3458699 +Ref: function_name-const3459887 +Ref: function_release-lock3460562 +Ref: function_sleep3461292 +Ref: function_uuid3461733 +Ref: function_uuid-short3463801 +Ref: function_values3464864 +Node: group-by-functions-and-modifiers3465734 +Node: group-by-functions3466203 +Ref: function_avg3469058 +Ref: function_bit-and3469424 +Ref: function_bit-or3469779 +Ref: function_bit-xor3470007 +Ref: function_count3470237 +Ref: function_count-distinct3471485 +Ref: function_group-concat3472000 +Ref: function_max3474517 +Ref: function_min3475393 +Ref: function_std3476269 +Ref: function_stddev3476522 +Ref: function_stddev-pop3476797 +Ref: function_stddev-samp3477074 +Ref: function_sum3477261 +Ref: function_var-pop3477524 +Ref: function_var-samp3477868 +Ref: function_variance3478064 +Node: group-by-modifiers3478312 +Node: group-by-hidden-columns3486271 +Node: spatial-extensions3490358 +Node: gis-introduction3492250 +Node: opengis-geometry-model3494555 +Node: gis-geometry-class-hierarchy3495835 +Node: gis-class-geometry3498481 +Node: gis-class-point3502036 +Node: gis-class-curve3502669 +Node: gis-class-linestring3503516 +Node: gis-class-surface3504203 +Node: gis-class-polygon3504926 +Node: gis-class-geometrycollection3506153 +Node: gis-class-multipoint3506986 +Node: gis-class-multicurve3507761 +Node: gis-class-multilinestring3508723 +Node: gis-class-multisurface3509162 +Node: gis-class-multipolygon3509744 +Node: supported-spatial-data-formats3511219 +Node: gis-wkt-format3511903 +Node: gis-wkb-format3514322 +Node: creating-a-spatially-enabled-mysql-database3516082 +Node: mysql-spatial-datatypes3516820 +Node: creating-spatial-values3517808 +Node: gis-wkt-functions3518486 +Ref: function_geomcollfromtext3519138 +Ref: function_geomfromtext3519313 +Ref: function_linefromtext3519469 +Ref: function_mlinefromtext3519619 +Ref: function_mpointfromtext3519780 +Ref: function_mpolyfromtext3519932 +Ref: function_pointfromtext3520087 +Ref: function_polyfromtext3520194 +Ref: function_bdmpolyfromtext3520616 +Ref: function_bdpolyfromtext3520812 +Node: gis-wkb-functions3520997 +Ref: function_geomcollfromwkb3521727 +Ref: function_geomfromwkb3521900 +Ref: function_linefromwkb3522054 +Ref: function_mlinefromwkb3522202 +Ref: function_mpointfromwkb3522361 +Ref: function_mpolyfromwkb3522511 +Ref: function_pointfromwkb3522664 +Ref: function_polyfromwkb3522770 +Ref: function_bdmpolyfromwkb3523178 +Ref: function_bdpolyfromwkb3523373 +Node: gis-mysql-specific-functions3523557 +Ref: function_geometrycollection3524353 +Ref: function_linestring3524433 +Ref: function_multilinestring3524638 +Ref: function_multipoint3524774 +Ref: function_multipolygon3524890 +Ref: function_point3525026 +Ref: function_polygon3525096 +Node: creating-spatial-columns3525359 +Node: populating-spatial-columns3526327 +Node: fetching-spatial-data3529275 +Node: spatial-analysis-functions3530200 +Node: functions-to-convert-geometries-between-formats3531631 +Ref: function_asbinary3532037 +Ref: function_astext3532224 +Node: geometry-property-functions3533249 +Node: general-geometry-property-functions3534339 +Ref: function_dimension3534697 +Ref: function_envelope3535271 +Ref: function_geometrytype3535986 +Ref: function_srid3536543 +Ref: function_boundary3537288 +Ref: function_isempty3537414 +Ref: function_issimple3537624 +Node: point-property-functions3538252 +Ref: function_x3538581 +Ref: function_y3538920 +Node: linestring-property-functions3539254 +Ref: function_endpoint3539659 +Ref: function_glength3540129 +Ref: function_numpoints3540684 +Ref: function_pointn3541105 +Ref: function_startpoint3541597 +Ref: function_isring3542180 +Node: multilinestring-property-functions3542456 +Ref: function_isclosed3543397 +Node: polygon-property-functions3543986 +Ref: function_area3544281 +Ref: function_exteriorring3544761 +Ref: function_interiorringn3545323 +Ref: function_numinteriorrings3545949 +Node: multipolygon-property-functions3546474 +Ref: function_centroid3547414 +Node: geometrycollection-property-functions3547716 +Ref: function_geometryn3548012 +Ref: function_numgeometries3548566 +Node: functions-that-create-new-geometries-from-existing-ones3549046 +Node: functions-that-produce-new-geometries3549674 +Node: spatial-operators3550346 +Ref: function_buffer3550737 +Ref: function_convexhull3550898 +Ref: function_difference3551008 +Ref: function_intersection3551140 +Ref: function_symdifference3551277 +Ref: function_union3551422 +Node: functions-for-testing-spatial-relations-between-geometric-objects3551539 +Node: relations-on-geometry-mbr3552260 +Ref: function_mbrcontains3552860 +Ref: function_mbrdisjoint3553566 +Ref: function_mbrequal3553737 +Ref: function_mbrintersects3553886 +Ref: function_mbroverlaps3554037 +Ref: function_mbrtouches3554381 +Ref: function_mbrwithin3554729 +Node: functions-that-test-spatial-relationships-between-geometries3555428 +Ref: function_contains3556157 +Ref: function_crosses3556307 +Ref: function_disjoint3556934 +Ref: function_equals3557060 +Ref: function_intersects3557153 +Ref: function_overlaps3557249 +Ref: function_touches3557538 +Ref: function_within3557832 +Node: optimizing-spatial-analysis3557977 +Node: creating-spatial-indexes3559576 +Node: using-a-spatial-index3562103 +Node: mysql-gis-conformance-and-compatibility3568766 +Node: precision-math3569767 +Node: precision-math-numbers3572236 +Node: precision-math-decimal-changes3573862 +Node: precision-math-expressions3577717 +Node: precision-math-rounding3582500 +Node: precision-math-examples3584490 +Node: sql-syntax3593246 +Node: sql-syntax-data-definition3594000 +Node: alter-database3596105 +Node: alter-event3599591 +Node: alter-logfile-group3604286 +Node: alter-function3608009 +Node: alter-procedure3609143 +Node: alter-server3610248 +Node: alter-table3610957 +Node: alter-table-partition-operations3636072 +Node: alter-table-online-operations3648766 +Ref: alter-table-online-limitations3653855 +Node: alter-table-examples3659702 +Node: alter-tablespace3666151 +Node: alter-view3669625 +Node: create-database3670588 +Node: create-event3672714 +Node: create-function3688361 +Node: create-index3688864 +Node: create-logfile-group3699895 +Node: create-procedure3705463 +Node: create-server3723295 +Node: create-table3725957 +Node: create-table-select3787044 +Node: silent-column-changes3797181 +Node: create-tablespace3800248 +Node: create-trigger3806625 +Node: create-view3815927 +Node: drop-database3829578 +Node: drop-event3831516 +Node: drop-function3832186 +Node: drop-index3832669 +Node: drop-logfile-group3834751 +Node: drop-procedure3835728 +Node: drop-server3836790 +Node: drop-table3837423 +Node: drop-tablespace3839339 +Node: drop-trigger3840333 +Node: drop-view3841500 +Node: rename-table3842334 +Node: truncate-table3844694 +Node: sql-syntax-data-manipulation3848257 +Node: call3849025 +Node: delete3855654 +Node: do3867609 +Node: handler3868109 +Node: insert3873626 +Node: insert-select3887860 +Node: insert-delayed3891402 +Node: insert-on-duplicate3900374 +Node: load-data3903737 +Node: load-xml3933674 +Node: replace3949018 +Node: select3953195 +Node: select-into3972147 +Node: join3978668 +Node: index-hints3998386 +Node: union4004288 +Node: subqueries4009928 +Node: scalar-subqueries4013721 +Node: comparisons-using-subqueries4016052 +Node: any-in-some-subqueries4017598 +Node: all-subqueries4019714 +Node: row-subqueries4021419 +Node: exists-and-not-exists-subqueries4023919 +Node: correlated-subqueries4025999 +Node: from-clause-subqueries4028139 +Node: subquery-errors4034597 +Node: optimizing-subqueries4037394 +Node: rewriting-subqueries4041499 +Node: update4043125 +Node: sql-syntax-transactions4049949 +Node: commit4051026 +Node: cannot-roll-back4058689 +Node: implicit-commit4059417 +Node: savepoint4065492 +Node: lock-tables4067777 +Node: lock-tables-and-transactions4078634 +Node: lock-tables-and-triggers4081719 +Node: lock-tables-restrictions4083910 +Node: set-transaction4088356 +Ref: isolevel_read-uncommitted4091236 +Ref: isolevel_read-committed4091579 +Ref: isolevel_repeatable-read4093310 +Ref: isolevel_serializable4094527 +Node: xa4095172 +Node: xa-statements4100912 +Node: xa-states4105144 +Node: sql-syntax-replication4108122 +Node: replication-master-sql4108674 +Node: purge-binary-logs4109665 +Node: reset-master4112717 +Node: set-sql-log-bin4114810 +Node: replication-slave-sql4115221 +Node: change-master-to4116166 +Node: master-pos-wait4128593 +Node: reset-slave4129084 +Node: set-global-sql-slave-skip-counter4130826 +Node: start-slave4132272 +Node: stop-slave4136343 +Node: sql-syntax-prepared-statements4137368 +Node: prepare4145938 +Node: execute4147480 +Node: deallocate-prepare4148438 +Node: statement-repreparation4149015 +Node: sql-syntax-compound-statements4151217 +Node: begin-end4152398 +Node: statement-labels4154200 +Node: declare4155868 +Node: stored-program-variables4156656 +Node: declare-local-variable4158010 +Node: local-variable-scope4159197 +Node: flow-control-statements4161697 +Node: case-statement4163020 +Node: if-statement4165511 +Node: iterate-statement4167989 +Node: leave-statement4168471 +Node: loop-statement4169105 +Node: repeat-statement4170288 +Node: return4171508 +Node: while-statement4172148 +Node: cursors4172939 +Node: close4174472 +Node: declare-cursor4174909 +Node: fetch4176018 +Node: open4176848 +Node: condition-handling4177083 +Node: declare-condition4178429 +Node: declare-handler4180561 +Node: resignal4187950 +Node: resignal-alone4191092 +Node: resignal-with-new-signal4193509 +Node: resignal-with-condition4195090 +Node: resignal-handler4197571 +Node: signal4199008 +Node: signal-condition-information-items4207316 +Node: signal-effects4210645 +Node: sql-syntax-server-administration4212688 +Node: account-management-sql4213284 +Node: create-user4214416 +Node: drop-user4218277 +Node: grant4219744 +Ref: grant-privileges4223051 +Ref: grant-global-privileges4228298 +Ref: grant-database-privileges4228910 +Ref: grant-table-privileges4229705 +Ref: grant-column-privileges4230394 +Ref: grant-routine-privileges4230882 +Ref: grant-proxy-privileges4231649 +Ref: grant-accounts-passwords4233893 +Ref: grant-other-characteristics4238969 +Ref: grant-mysql-vs-standard-sql4247173 +Node: rename-user4249035 +Node: revoke4250391 +Node: set-password4252676 +Node: table-maintenance-sql4255985 +Node: analyze-table4256487 +Node: check-table4258547 +Node: checksum-table4266457 +Node: optimize-table4268334 +Node: repair-table4272856 +Node: plugin-sql4278921 +Node: create-function-udf4279422 +Node: drop-function-udf4282368 +Node: install-plugin4283347 +Node: uninstall-plugin4288025 +Node: set-statement4289794 +Node: show4300178 +Node: show-authors4305391 +Node: show-binary-logs4305743 +Node: show-binlog-events4306496 +Node: show-character-set4307935 +Node: show-collation4309232 +Node: show-columns4312074 +Node: show-contributors4316768 +Node: show-create-database4317209 +Node: show-create-event4318333 +Node: show-create-function4320385 +Node: show-create-procedure4320765 +Node: show-create-table4322859 +Node: show-create-trigger4323735 +Node: show-create-view4324748 +Node: show-databases4327437 +Node: show-engine4328654 +Ref: show-engine-ndb-status4334327 +Node: show-engines4341112 +Node: show-errors4345286 +Node: show-events4346472 +Node: show-function-code4351376 +Node: show-function-status4351735 +Node: show-grants4352135 +Node: show-index4354188 +Node: show-master-status4356834 +Node: show-open-tables4357574 +Node: show-plugins4359304 +Node: show-privileges4361748 +Node: show-procedure-code4363191 +Node: show-procedure-status4365550 +Node: show-processlist4367395 +Node: show-profile4372459 +Node: show-profiles4372912 +Node: show-relaylog-events4379470 +Node: show-slave-hosts4380596 +Node: show-slave-status4382350 +Node: show-status4396377 +Node: show-table-status4399563 +Node: show-tables4404785 +Node: show-triggers4405810 +Node: show-variables4408664 +Node: show-warnings4414954 +Node: other-administrative-sql4420691 +Node: binlog4421196 +Node: cache-index4421789 +Node: flush4426349 +Node: kill4438222 +Node: load-index4441269 +Node: reset4444531 +Node: sql-syntax-utility4445460 +Node: describe4445831 +Node: explain4447931 +Node: help4449419 +Node: use4455185 +Node: storage-engines4456190 +Node: storage-engine-setting4468984 +Node: pluggable-storage-overview4471980 +Ref: figure-storage-engine-architecture4473072 +Node: pluggable-storage4474392 +Node: pluggable-storage-common-layer4475986 +Node: innodb-storage-engine4479329 +Node: innodb-default-se4487165 +Node: innodb-configuration4498410 +Node: innodb-multiple-tablespaces4512153 +Node: innodb-raw-devices4518116 +Node: innodb-init4520416 +Node: error-creating-innodb4523752 +Node: innodb-parameters4525672 +Ref: option_mysqld_ignore-builtin-innodb4536782 +Ref: option_mysqld_innodb4537849 +Ref: option_mysqld_innodb-status-file4538406 +Ref: sysvar_ignore_builtin_innodb4539403 +Ref: sysvar_innodb_adaptive_flushing4539741 +Ref: sysvar_innodb_adaptive_hash_index4540720 +Ref: sysvar_innodb_additional_mem_pool_size4541676 +Ref: sysvar_innodb_autoextend_increment4543030 +Ref: sysvar_innodb_autoinc_lock_mode4544335 +Ref: sysvar_innodb_buffer_pool_instances4545494 +Ref: sysvar_innodb_buffer_pool_size4547399 +Ref: sysvar_innodb_change_buffering4549713 +Ref: sysvar_innodb_checksums4551892 +Ref: sysvar_innodb_commit_concurrency4552931 +Ref: sysvar_innodb_concurrency_tickets4554081 +Ref: sysvar_innodb_data_file_path4555586 +Ref: sysvar_innodb_data_home_dir4557045 +Ref: sysvar_innodb_doublewrite4558122 +Ref: sysvar_innodb_fast_shutdown4559112 +Ref: sysvar_innodb_file_format4560875 +Ref: sysvar_innodb_file_format_check4562516 +Ref: sysvar_innodb_file_format_max4564967 +Ref: sysvar_innodb_file_per_table4566170 +Ref: sysvar_innodb_flush_log_at_trx_commit4567635 +Ref: sysvar_innodb_flush_method4570733 +Ref: sysvar_innodb_force_recovery4573562 +Ref: sysvar_innodb_io_capacity4574994 +Ref: sysvar_innodb_large_prefix4578546 +Ref: sysvar_innodb_lock_wait_timeout4580093 +Ref: sysvar_innodb_locks_unsafe_for_binlog4582357 +Ref: sysvar_innodb_log_buffer_size4590445 +Ref: sysvar_innodb_log_file_size4591626 +Ref: sysvar_innodb_log_files_in_group4592920 +Ref: sysvar_innodb_log_group_home_dir4593881 +Ref: sysvar_innodb_max_dirty_pages_pct4594833 +Ref: sysvar_innodb_max_purge_lag4595893 +Ref: sysvar_innodb_mirrored_log_groups4598220 +Ref: sysvar_innodb_old_blocks_pct4598363 +Ref: sysvar_innodb_old_blocks_time4599309 +Ref: sysvar_innodb_open_files4600724 +Ref: sysvar_innodb_purge_batch_size4601849 +Ref: sysvar_innodb_purge_threads4603007 +Ref: sysvar_innodb_read_ahead_threshold4604360 +Ref: sysvar_innodb_read_io_threads4605684 +Ref: sysvar_innodb_replication_delay4606568 +Ref: sysvar_innodb_rollback_on_timeout4607482 +Ref: sysvar_innodb_rollback_segments4608498 +Ref: sysvar_innodb_spin_wait_delay4609598 +Ref: sysvar_innodb_stats_method4610475 +Ref: sysvar_innodb_stats_on_metadata4612020 +Ref: sysvar_innodb_stats_sample_pages4613558 +Ref: sysvar_innodb_strict_mode4614644 +Ref: sysvar_innodb_support_xa4615624 +Ref: sysvar_innodb_sync_spin_loops4617602 +Ref: sysvar_innodb_table_locks4618532 +Ref: sysvar_innodb_thread_concurrency4620002 +Ref: sysvar_innodb_thread_sleep_delay4621716 +Ref: sysvar_innodb_use_native_aio4622597 +Ref: sysvar_innodb_use_sys_malloc4624107 +Ref: sysvar_innodb_version4624973 +Ref: sysvar_innodb_write_io_threads4625062 +Node: using-innodb-tables4627758 +Node: innodb-transactions-with-different-apis4629737 +Node: converting-tables-to-innodb4631879 +Node: innodb-auto-increment-handling4634856 +Node: innodb-auto-increment-traditional4635753 +Node: innodb-auto-increment-configurable4639961 +Node: innodb-foreign-key-constraints4657975 +Node: innodb-and-mysql-replication4674138 +Node: innodb-data-log-reconfiguration4678679 +Node: innodb-backup4682609 +Node: innodb-recovery4688806 +Node: forcing-innodb-recovery4690195 +Node: innodb-checkpoints4693872 +Node: innodb-migration4695970 +Node: innodb-transaction-model4697600 +Node: innodb-lock-modes4701940 +Node: innodb-consistent-read4707040 +Node: innodb-locking-reads4712182 +Node: innodb-record-level-locks4717399 +Node: innodb-next-key-locking4722061 +Node: innodb-locks-set4725368 +Node: innodb-implicit-commit4735412 +Node: innodb-deadlock-detection4736262 +Node: innodb-deadlocks4737830 +Node: innodb-multi-versioning4741374 +Node: innodb-table-and-index4744876 +Node: innodb-index-types4745951 +Node: innodb-physical-structure4748437 +Node: innodb-insert-buffering4749810 +Node: innodb-adaptive-hash4752152 +Node: innodb-physical-record4753291 +Node: innodb-disk-management4758929 +Node: innodb-disk-io4759861 +Node: innodb-file-space4762068 +Node: innodb-file-defragmenting4766291 +Node: innodb-error-handling4767979 +Node: innodb-error-codes4771030 +Node: operating-system-error-codes4773064 +Ref: operating-system-error-codes-linux4773400 +Ref: operating-system-error-codes-windows4775072 +Node: innodb-tuning-troubleshooting4778973 +Node: innodb-tuning4779549 +Node: innodb-monitors4779975 +Node: innodb-standard-monitor4785853 +Node: innodb-tablespace-monitor4799402 +Node: innodb-table-monitor4805222 +Node: innodb-troubleshooting4814601 +Node: innodb-troubleshooting-datadict4816508 +Node: innodb-restrictions4820973 +Node: innodb-5-54832006 +Node: innodb-introduction4833205 +Node: innodb-introduction-features4834178 +Node: innodb-introduction-obtaining4836716 +Node: innodb-introduction-version4837616 +Node: innodb-introduction-restrictions4839276 +Node: innodb-create-index4842182 +Node: innodb-create-index-overview4843110 +Node: innodb-create-index-examples4844891 +Node: innodb-create-index-implementation4847685 +Node: innodb-create-index-concurrency4849434 +Node: innodb-create-index-recovery4851856 +Node: innodb-create-index-limitations4853825 +Node: innodb-compression4856764 +Node: innodb-compression-background4857530 +Node: innodb-compression-usage4859865 +Node: innodb-compression-enabling4862068 +Node: innodb-compression-syntax-warnings4865606 +Ref: innodb-compression-create-and-alter-options-table4866829 +Ref: innodb-compression-create-and-alter-errors-table4869496 +Node: innodb-compression-tuning4871774 +Ref: innodb-compression-tuning-when4872570 +Ref: innodb-compression-tuning-when-data4873040 +Ref: innodb-compression-application4875712 +Ref: innodb-compression-in-database4876045 +Ref: innodb-compression-in-application4876633 +Ref: innodb-compression-hybrid4877116 +Ref: innodb-compression-tuning-when-workload4877561 +Ref: innodb-compression-tuning-when-config4879302 +Ref: innodb-compression-tuning-when-size4880283 +Ref: innodb-compression-tuning-monitoring4881128 +Node: innodb-compression-internals4884177 +Ref: innodb-compression-internals-algorithms4884599 +Ref: innodb-compression-internals-storage4886302 +Ref: innodb-compression-internals-storage-btree4887275 +Ref: innodb-compression-internals-storage-blobs4889749 +Ref: innodb-compression-internals-pool4892477 +Ref: innodb-compression-internals-log4894625 +Node: innodb-file-format4895714 +Ref: innodb-file-format-named4896909 +Node: innodb-file-format-enabling4897471 +Node: innodb-file-format-compatibility4898326 +Node: innodb-file-format-compatibility-checking4903605 +Ref: innodb-file-format-compatibility-table4908351 +Node: innodb-file-format-compatibility-checking-table-access4914399 +Node: innodb-file-format-identifying4917377 +Node: innodb-file-format-downgrading4919511 +Node: innodb-file-format-future4920200 +Node: innodb-row-format4921098 +Node: innodb-row-format-overview4921970 +Node: innodb-row-format-specification4923646 +Node: innodb-row-format-dynamic4924057 +Node: innodb-row-format-antelope4925750 +Node: innodb-information-schema4927194 +Node: innodb-information-schema-compression-tables4928976 +Node: innodb-information-schema-innodb_cmp4929932 +Node: innodb-information-schema-innodb_cmpmem4931209 +Node: innodb-information-schema-examples-compression-sect4933018 +Ref: innodb-information-schema-examples-compression4933313 +Ref: innodb-information-schema-sample-innodb_cmp4933891 +Ref: innodb-information-schema-sample-innodb_cmpmem4935722 +Node: innodb-information-schema-transactions4936553 +Node: innodb-information-schema-innodb_trx4937479 +Node: innodb-information-schema-innodb_locks4938051 +Node: innodb-information-schema-innodb_lock_waits4939431 +Node: innodb-information-schema-examples4940506 +Ref: innodb-information-schema-examples-simple-blocking4940782 +Ref: innodb-information-schema-examples-simple-blocking-trx4944616 +Ref: innodb-information-schema-examples-simple-blocking-locks4945691 +Ref: innodb-information-schema-examples-simple-blocking-waits4946481 +Ref: innodb-information-schema-sample-locks4946674 +Ref: innodb-information-schema-sample-processlist4948478 +Ref: innodb-information-schema-sample-innodb_trx4950574 +Ref: innodb-information-schema-sample-innodb_lock_waits4954010 +Ref: innodb-information-schema-sample-innodb_locks4954592 +Node: innodb-information-schema-notes4959340 +Node: innodb-information-schema-understanding_innodb_locking4959935 +Node: innodb-information-schema-rapidly_changing_internal_data4961888 +Node: innodb-information-schema-note_inconsistency4964187 +Node: innodb-performance4965814 +Node: innodb-performance-overview4968259 +Node: innodb-performance-latching4969561 +Node: innodb-performance-use_sys_malloc4973260 +Node: innodb-performance-change_buffering4976498 +Node: innodb-performance-adaptive_hash_index4979487 +Node: innodb-performance-thread_concurrency4981487 +Ref: innodb-thread-concurrency-table4983614 +Node: innodb-performance-read_ahead4986338 +Node: innodb-performance-multiple_io_threads4989346 +Node: innodb-performance-aio-linux4991434 +Node: innodb-performance-group_commit4992786 +Node: innodb-performance-thread_io_rate4994595 +Node: innodb-performance-adaptive_flushing4996655 +Node: innodb-performance-pause_instruction4999419 +Node: innodb-performance-spin_lock_polling5000656 +Node: innodb-performance-midpoint_insertion5002574 +Node: innodb-performance-recovery5008711 +Node: innodb-performance-schema5009549 +Node: innodb-multiple-buffer-pools5012915 +Node: innodb-multiple-rollback-segments5014679 +Node: innodb-improved-purge-scheduling5016304 +Node: innodb-improved-log-sys-mutex5017670 +Node: innodb-separate-flush-list-mutex5018704 +Node: innodb-other-changes5019338 +Node: innodb-other-changes-file-formats5020904 +Node: innodb-other-changes-dynamic-parameters5022360 +Node: innodb-other-changes-innodb_file_per_table5023376 +Node: innodb-other-changes-innodb_stats_on_metadata5025668 +Node: innodb-other-changes-innodb_lock_wait_timeout5026575 +Node: innodb-other-changes-innodb_adaptive_hash_index5028044 +Node: innodb-other-changes-truncate5029171 +Node: innodb-other-changes-strict-mode5030794 +Node: innodb-other-changes-statistics-estimation5033398 +Node: innodb-other-changes-drop-index5037144 +Node: innodb-other-changes-show-mutex5039346 +Node: innodb-other-changes-readahead-counters5040444 +Node: innodb-installation5042087 +Node: innodb-upgrading5044093 +Node: innodb-downgrading5044643 +Node: innodb-downgrading-overview5044901 +Node: innodb-changes5045441 +Node: innodb-changes-1x5045874 +Node: innodb-changes-115046248 +Node: innodb-changes-10x5049480 +Node: innodb-contrib5050050 +Node: innodb-contrib-google5050674 +Node: innodb-contrib-percona5053923 +Node: innodb-contrib-sun_microsystems5056530 +Node: innodb-parameter-changes5059093 +Node: innodb-parameters-new5059509 +Ref: innodb-new-parameter-summary-table5059890 +Node: innodb-parameters-deprecated5068944 +Node: innodb-parameters-new-defaults5069598 +Ref: innodb-parameters-new-defaults-table5069932 +Node: myisam-storage-engine5070351 +Node: myisam-start5080230 +Node: key-space5085880 +Node: myisam-table-formats5087011 +Node: static-format5088207 +Node: dynamic-format5090612 +Node: compressed-format5093828 +Node: myisam-table-problems5095773 +Node: corrupted-myisam-tables5096333 +Node: myisam-table-close5098468 +Node: memory-storage-engine5101150 +Ref: memory-compared-cluster5103668 +Node: csv-storage-engine5115337 +Node: se-csv-repair5117403 +Node: se-csv-limitations5120387 +Node: archive-storage-engine5120866 +Node: blackhole-storage-engine5127041 +Node: merge-storage-engine5133182 +Node: merge-table-advantages5140264 +Node: merge-table-problems5144046 +Node: federated-storage-engine5151375 +Node: federated-description5152594 +Ref: figure-se-federated-structure5154262 +Node: federated-create5155538 +Node: federated-create-connection5157716 +Node: federated-create-server5160323 +Node: federated-usagenotes5163586 +Node: federated-storage-engine-resources5168641 +Node: example-storage-engine5169061 +Node: storage-engines-other5170409 +Node: ha-overview5173275 +Ref: figure_ha-cost-vs-nines5176280 +Ref: figure_ha-application-architecture-mapping5176582 +Ref: ha-availability-comparison5176760 +Node: ha-ovm-template5181099 +Node: ha-drbd5183591 +Ref: ha-drbd-overview5185145 +Node: ha-drbd-install5186164 +Node: ha-drbd-install-os5190070 +Node: ha-drbd-install-drbd5197186 +Node: ha-drbd-install-drbd-primary5200075 +Node: ha-drbd-install-drbd-secondary5205320 +Node: ha-drbd-install-drbd-using5207419 +Node: ha-drbd-install-drbd-management5209800 +Node: ha-drbd-install-drbd-othercfg5211556 +Node: ha-drbd-install-mysql5213347 +Node: ha-drbd-performance5215860 +Ref: ha-drbd-performance-sepinterface5216805 +Node: ha-drbd-performance-bonded5217394 +Node: ha-drbd-performance-syncrate5223226 +Node: ha-heartbeat5226798 +Ref: ha-heartbeat-overview5228899 +Node: ha-heartbeat-config5230119 +Node: ha-heartbeat-drbd5234610 +Node: ha-heartbeat-drbd-dopd5239113 +Node: ha-heartbeat-errors5241739 +Node: ha-vm5243046 +Node: ha-vm-aws-setup5246450 +Node: ha-vm-aws-instance5250401 +Node: ha-vm-aws-deploy5252361 +Node: ha-zfs-replication5256537 +Node: ha-zfs-config5261274 +Node: ha-zfs-mysql5264620 +Node: ha-zfs-mysql-recovery5266282 +Node: ha-memcached5268086 +Ref: ha-memcached-fig-overview5269785 +Node: ha-memcached-install5272092 +Node: ha-memcached-using5275234 +Node: ha-memcached-using-deployment5285477 +Node: ha-memcached-using-namespaces5287801 +Node: ha-memcached-using-expiry5289235 +Node: ha-memcached-using-hashtypes5291488 +Ref: ha-memcached-using-hashtypes-fig-selection5293454 +Ref: ha-memcached-using-hashtypes-fig-addselect5296638 +Node: ha-memcached-using-dtrace5299872 +Node: ha-memcached-using-memory5307996 +Ref: ha-memcached-fig-slabs5310237 +Node: ha-memcached-using-threads5312118 +Node: ha-memcached-using-logs5313923 +Node: ha-memcached-interfaces5323154 +Ref: ha-memcached-fig-basicflow5325061 +Node: ha-memcached-interfaces-libmemcached5328036 +Node: ha-memcached-interfaces-libmemcached-base5332097 +Node: ha-memcached-interfaces-libmemcached-servers5333269 +Node: ha-memcached-interfaces-libmemcached-set5336608 +Node: ha-memcached-interfaces-libmemcached-get5341688 +Node: ha-memcached-interfaces-libmemcached-behaviors5346280 +Node: ha-memcached-interfaces-libmemcached-utilities5350322 +Node: ha-memcached-interfaces-perl5352169 +Node: ha-memcached-interfaces-python5358888 +Node: ha-memcached-interfaces-php5365011 +Node: ha-memcached-interfaces-ruby5372326 +Node: ha-memcached-interfaces-java5375119 +Node: ha-memcached-interfaces-mysqludf5378904 +Node: ha-memcached-interfaces-protocol5385766 +Node: ha-memcached-interfaces-protocol-tcp5386243 +Ref: ha-memcached-interfaces-protocol-responses5395526 +Node: ha-memcached-stats5397028 +Node: ha-memcached-stats-general5402887 +Node: ha-memcached-stats-slabs5408934 +Node: ha-memcached-stats-items5413124 +Node: ha-memcached-stats-sizes5415647 +Node: ha-memcached-stats-detail5416972 +Node: ha-memcached-stats-memcached-tool5419163 +Node: ha-memcached-faq5425032 +Ref: qandaitem-15-6-5-1-15429202 +Ref: qandaitem-15-6-5-1-25429539 +Ref: qandaitem-15-6-5-1-35429766 +Ref: qandaitem-15-6-5-1-45429961 +Ref: qandaitem-15-6-5-1-55430600 +Ref: qandaitem-15-6-5-1-65430870 +Ref: qandaitem-15-6-5-1-75431580 +Ref: qandaitem-15-6-5-1-85432386 +Ref: qandaitem-15-6-5-1-95433054 +Ref: qandaitem-15-6-5-1-105433332 +Ref: qandaitem-15-6-5-1-115434077 +Ref: qandaitem-15-6-5-1-125434392 +Ref: qandaitem-15-6-5-1-135434769 +Ref: qandaitem-15-6-5-1-145435105 +Ref: qandaitem-15-6-5-1-155435466 +Ref: qandaitem-15-6-5-1-165436457 +Ref: qandaitem-15-6-5-1-175437030 +Ref: qandaitem-15-6-5-1-185437519 +Ref: qandaitem-15-6-5-1-195438097 +Ref: qandaitem-15-6-5-1-205438159 +Ref: qandaitem-15-6-5-1-215438766 +Ref: qandaitem-15-6-5-1-225439516 +Ref: qandaitem-15-6-5-1-235439756 +Ref: qandaitem-15-6-5-1-245440324 +Ref: qandaitem-15-6-5-1-255441323 +Ref: qandaitem-15-6-5-1-265441874 +Ref: qandaitem-15-6-5-1-275442573 +Ref: qandaitem-15-6-5-1-285442802 +Ref: qandaitem-15-6-5-1-295444386 +Ref: qandaitem-15-6-5-1-305444718 +Node: mysql-proxy5446360 +Node: mysql-proxy-platforms5448910 +Node: mysql-proxy-install5449950 +Node: mysql-proxy-install-binary5451048 +Node: mysql-proxy-install-source5452904 +Node: mysql-proxy-install-cvs5454466 +Node: mysql-proxy-configuration-windows5456342 +Node: mysql-proxy-configuration5458417 +Ref: option_mysql-proxy_help5465317 +Ref: option_mysql-proxy_help-admin5465570 +Ref: option_mysql-proxy_help-all5465802 +Ref: option_mysql-proxy_help-proxy5466014 +Ref: option_mysql-proxy_admin-address5466246 +Ref: option_mysql-proxy_admin-lua-script5466808 +Ref: option_mysql-proxy_admin-password5467374 +Ref: option_mysql-proxy_admin-username5468033 +Ref: option_mysql-proxy_basedir5468734 +Ref: option_mysql-proxy_daemon5469433 +Ref: option_mysql-proxy_defaults-file5469647 +Ref: option_mysql-proxy_event-threads5469947 +Ref: option_mysql-proxy_keepalive5470460 +Ref: option_mysql-proxy_log-backtrace-on-crash5471045 +Ref: option_mysql-proxy_log-file5471390 +Ref: option_mysql-proxy_log-level5471977 +Ref: option_mysql-proxy_log-use-syslog5472789 +Ref: option_mysql-proxy_lua-cpath5473046 +Ref: option_mysql-proxy_lua-path5473573 +Ref: option_mysql-proxy_max-open-files5474061 +Ref: option_mysql-proxy_no-proxy5474628 +Ref: option_mysql-proxy_plugin-dir5474843 +Ref: option_mysql-proxy_plugins5475371 +Ref: option_mysql-proxy_proxy-address5475806 +Ref: option_mysql-proxy_proxy-read-only-backend-addresses5476488 +Ref: option_mysql-proxy_proxy-backend-addresses5478177 +Ref: option_mysql-proxy_proxy-pool-no-change-user5479742 +Ref: option_mysql-proxy_proxy-skip-profiling5480169 +Ref: option_mysql-proxy_proxy-fix-bug-253715480506 +Ref: option_mysql-proxy_proxy-lua-script5481206 +Ref: option_mysql-proxy_pid-file5482167 +Ref: option_mysql-proxy_user5482658 +Ref: option_mysql-proxy_version5483098 +Node: mysql-proxy-scripting5484683 +Node: mysql-proxy-scripting-injection5489522 +Node: mysql-proxy-scripting-structures5492367 +Ref: mysql-proxy-scripting-structures-proxy5493020 +Ref: mysql-proxy-scripting-structures-connection5494077 +Ref: mysql-proxy-scripting-structures-backends5496354 +Ref: mysql-proxy-scripting-structures-queries5497652 +Ref: mysql-proxy-scripting-structures-response5500250 +Ref: mysql-proxy-scripting-structures-resultset5503172 +Ref: mysql-proxy-scripting-structures-return-states5505107 +Ref: mysql-proxy-scripting-structures-packet-states5505930 +Ref: mysql-proxy-scripting-structures-backend-states5506264 +Ref: mysql-proxy-scripting-structures-command-constants5506878 +Ref: mysql-proxy-scripting-structures-type-constants5508483 +Node: mysql-proxy-scripting-connect-server5509717 +Node: mysql-proxy-scripting-read-handshake5511219 +Node: mysql-proxy-scripting-read-auth5513363 +Node: mysql-proxy-scripting-read-auth-result5514805 +Node: mysql-proxy-scripting-read-query5516441 +Node: mysql-proxy-scripting-read-query-result5519855 +Node: mysql-proxy-using5524545 +Node: mysql-proxy-using-admin5527004 +Node: mysql-proxy-faq5539678 +Ref: qandaitem-15-7-6-1-15543702 +Ref: qandaitem-15-7-6-1-25544141 +Ref: qandaitem-15-7-6-1-35544352 +Ref: qandaitem-15-7-6-1-45544539 +Ref: qandaitem-15-7-6-1-55544819 +Ref: qandaitem-15-7-6-1-65545068 +Ref: qandaitem-15-7-6-1-75545308 +Ref: qandaitem-15-7-6-1-85545482 +Ref: qandaitem-15-7-6-1-95545711 +Ref: qandaitem-15-7-6-1-105545827 +Ref: qandaitem-15-7-6-1-115546077 +Ref: qandaitem-15-7-6-1-125546395 +Ref: qandaitem-15-7-6-1-135546670 +Ref: qandaitem-15-7-6-1-145546894 +Ref: qandaitem-15-7-6-1-155547141 +Ref: qandaitem-15-7-6-1-165547361 +Ref: qandaitem-15-7-6-1-175547592 +Ref: qandaitem-15-7-6-1-185547797 +Ref: qandaitem-15-7-6-1-195547974 +Ref: qandaitem-15-7-6-1-205548167 +Ref: qandaitem-15-7-6-1-215548512 +Ref: qandaitem-15-7-6-1-225548879 +Ref: qandaitem-15-7-6-1-235549213 +Ref: qandaitem-15-7-6-1-245549458 +Ref: qandaitem-15-7-6-1-255549763 +Ref: qandaitem-15-7-6-1-265550025 +Ref: qandaitem-15-7-6-1-275550207 +Ref: qandaitem-15-7-6-1-285550490 +Ref: qandaitem-15-7-6-1-295550615 +Ref: qandaitem-15-7-6-1-305550925 +Ref: qandaitem-15-7-6-1-315551150 +Node: replication5551441 +Node: replication-configuration5556071 +Node: replication-howto5559870 +Node: replication-howto-masterbaseconfig5564221 +Node: replication-howto-slavebaseconfig5566270 +Node: replication-howto-repuser5567805 +Node: replication-howto-masterstatus5569531 +Node: replication-howto-mysqldump5573337 +Node: replication-howto-rawdata5575609 +Node: replication-howto-newservers5579504 +Node: replication-howto-existingdata5581414 +Node: replication-howto-additionalslaves5586026 +Node: replication-howto-slaveinit5589984 +Node: replication-formats5591202 +Node: replication-sbr-rbr5595188 +Ref: replication-sbr-rbr-sbr-advantages5596164 +Ref: replication-sbr-rbr-sbr-disadvantages5596633 +Ref: replication-sbr-rbr-rbr-advantages5600473 +Ref: replication-sbr-rbr-rbr-disadvantages5602060 +Node: replication-rbr-usage5603876 +Node: replication-rbr-safe-unsafe5610097 +Ref: replication-rbr-safe-unsafe-not5612297 +Node: replication-options5614755 +Ref: option_mysqld_server-id5615817 +Node: replication-options-table5617252 +Node: replication-options-master5629260 +Ref: sysvar_auto_increment_increment5630255 +Ref: sysvar_auto_increment_offset5638470 +Node: replication-options-slave5639531 +Ref: replication-optvars-slaves5640534 +Ref: option_mysqld_abort-slave-event-count5640963 +Ref: option_mysqld_disconnect-slave-event-count5642252 +Ref: option_mysqld_log-slave-updates5642840 +Ref: option_mysqld_log-slow-slave-statements5644697 +Ref: option_mysqld_master-info-file5647041 +Ref: option_mysqld_master-retry-count5647793 +Ref: option_mysqld_max-relay-log-size5649259 +Ref: option_mysqld_read-only5649449 +Ref: option_mysqld_relay-log5649784 +Ref: option_mysqld_relay-log-index5652390 +Ref: option_mysqld_relay-log-info-file5654116 +Ref: option_mysqld_relay-log-purge5654979 +Ref: option_mysqld_relay-log-recovery5655253 +Ref: option_mysqld_relay-log-space-limit5655679 +Ref: option_mysqld_replicate-do-db5656896 +Ref: option_mysqld_replicate-ignore-db5662012 +Ref: option_mysqld_replicate-do-table5664969 +Ref: option_mysqld_replicate-ignore-table5665994 +Ref: option_mysqld_replicate-rewrite-db5667101 +Ref: option_mysqld_replicate-same-server-id5668488 +Ref: option_mysqld_replicate-wild-do-table5669669 +Ref: option_mysqld_replicate-wild-ignore-table5672090 +Ref: option_mysqld_report-host5673290 +Ref: option_mysqld_report-password5674496 +Ref: option_mysqld_report-port5675652 +Ref: option_mysqld_report-user5676918 +Ref: option_mysqld_show-slave-auth-info5678043 +Ref: option_mysqld_skip-slave-start5678711 +Ref: option_mysqld_slave_compressed_protocol5679317 +Ref: option_mysqld_slave-load-tmpdir5680215 +Ref: option_mysqld_slave-net-timeout5682134 +Ref: option_mysqld_slave-skip-errors5683380 +Ref: replication-optvars-slaves-obsolete5684931 +Ref: option_mysqld_master-host5685347 +Ref: option_mysqld_master-user5685370 +Ref: option_mysqld_master-password5685393 +Ref: option_mysqld_master-port5685420 +Ref: option_mysqld_master-connect-retry5685443 +Ref: option_mysqld_master-ssl5685475 +Ref: option_mysqld_master-ssl-ca5685497 +Ref: option_mysqld_master-ssl-capath5685522 +Ref: option_mysqld_master-ssl-cert5685551 +Ref: option_mysqld_master-ssl-cipher5685578 +Ref: option_mysqld_master-ssl-key5685607 +Ref: replication-sysvars-slaves5685628 +Ref: sysvar_init_slave5685959 +Ref: sysvar_relay_log_index5687061 +Ref: sysvar_relay_log_info_file5687915 +Ref: sysvar_relay_log_recovery5688774 +Ref: sysvar_rpl_recovery_rank5689967 +Ref: sysvar_slave_compressed_protocol5690054 +Ref: sysvar_slave_exec_mode5690886 +Ref: sysvar_slave_load_tmpdir5692076 +Ref: sysvar_slave_net_timeout5692937 +Ref: sysvar_slave_skip_errors5693766 +Ref: sysvar_slave_transaction_retries5694534 +Ref: sysvar_slave_type_conversions5696269 +Ref: sysvar_sql_slave_skip_counter5697833 +Ref: sysvar_sync_master_info5698663 +Ref: sysvar_sync_relay_log5700330 +Ref: sysvar_sync_relay_log_info5702301 +Node: replication-options-binary-log5704011 +Ref: replication-optvars-binlog5704653 +Ref: option_mysqld_binlog-row-event-max-size5704870 +Ref: option_mysqld_log-bin5706168 +Ref: option_mysqld_log-bin-index5707989 +Ref: option_mysqld_log-bin-trust-function-creators5708678 +Ref: option_mysqld_log-bin-use-v1-row-events5709816 +Ref: option_mysqld_binlog-do-db5713476 +Ref: option_mysqld_binlog-ignore-db5719228 +Ref: option_mysqld_max-binlog-dump-events5722410 +Ref: option_mysqld_sporadic-binlog-dump-fail5722976 +Ref: replication-sysvars-binlog5723545 +Ref: sysvar_binlog_cache_size5723866 +Ref: sysvar_binlog_direct_non_transactional_updates5726222 +Ref: sysvar_binlog_format5729111 +Ref: sysvar_log_bin_use_v1_row_events5732125 +Ref: sysvar_max_binlog_cache_size5734772 +Ref: sysvar_max_binlog_stmt_cache_size5736996 +Ref: sysvar_max_binlog_size5738815 +Ref: sysvar_binlog_stmt_cache_size5740225 +Ref: sysvar_sync_binlog5742621 +Node: replication-administration5744563 +Node: replication-administration-status5745173 +Node: replication-administration-pausing5751779 +Node: replication-implementation5753869 +Node: replication-implementation-details5756526 +Node: slave-logs5762193 +Node: slave-logs-relaylog5763433 +Node: slave-logs-status5766832 +Node: replication-rules5772495 +Node: replication-rules-db-options5775584 +Node: replication-rules-table-options5779270 +Node: replication-rules-examples5782566 +Node: replication-solutions5785748 +Node: replication-solutions-backups5788042 +Node: replication-solutions-backups-mysqldump5790076 +Node: replication-solutions-backups-rawdata5792783 +Node: replication-solutions-backups-read-only5795638 +Node: replication-solutions-diffengines5799766 +Node: replication-solutions-scaleout5803905 +Ref: figure_replication-scaleout5805098 +Node: replication-solutions-partitioning5807083 +Ref: figure_replication-multi-db5807699 +Node: replication-solutions-performance5809928 +Ref: figure_replication-performance5811073 +Node: replication-solutions-switch5813329 +Ref: figure_replication-redundancy-before5814938 +Ref: figure_replication-redundancy-after5818105 +Node: replication-solutions-ssl5819447 +Node: replication-semisync5823598 +Node: replication-semisync-interface5829367 +Node: replication-semisync-installation5832030 +Node: replication-semisync-monitoring5837179 +Node: replication-notes5839044 +Node: replication-features5839561 +Node: replication-features-auto-increment5844211 +Node: replication-features-charset5846645 +Node: replication-features-create-if-not-exists5848897 +Node: replication-features-create-select5850126 +Node: replication-features-drop-if-exists5853830 +Node: replication-features-differing-tables5854738 +Node: replication-features-more-columns5855797 +Node: replication-features-different-data-types5860621 +Ref: replication-features-attribute-promotion5863098 +Ref: replication-features-type-conversions-old5870178 +Node: replication-features-directory5873703 +Node: replication-features-invoked5874696 +Node: replication-features-floatvalues5879818 +Node: replication-features-flush5880694 +Node: replication-features-functions5882136 +Node: replication-features-limit5889032 +Node: replication-features-load-data5890112 +Node: replication-features-logging5891102 +Node: replication-features-repair-table5891545 +Node: replication-features-shutdowns5892508 +Node: replication-features-max-allowed-packet5895134 +Node: replication-features-memory5896391 +Node: replication-features-temptables5899818 +Node: replication-features-mysqldb5902122 +Node: replication-features-optimizer5902855 +Node: replication-features-reserved-words5903617 +Node: replication-features-set-password5905724 +Node: replication-features-slaveerrors5906238 +Node: replication-features-sql-mode5908585 +Node: replication-features-timeout5909661 +Node: replication-features-timestamp5910536 +Node: replication-features-timezone5911469 +Node: replication-features-transactions5912512 +Ref: replication-features-transactions-trx-nontrx-mixed5914288 +Node: replication-features-triggers5918717 +Node: replication-features-views5920167 +Node: replication-features-truncate5920797 +Node: replication-features-variables5921969 +Node: replication-compatibility5926122 +Node: replication-upgrade5930440 +Node: replication-problems5934413 +Node: replication-bugs5939583 +Node: mysql-cluster5942258 +Node: mysql-cluster-overview5951202 +Node: mysql-cluster-basics5956174 +Node: mysql-cluster-nodes-groups5967564 +Ref: mysql-cluster-nodes-groups-nodegroup5968817 +Ref: mysql-cluster-nodes-groups-partition5969797 +Ref: mysql-cluster-nodes-groups-user-partitioning5970184 +Ref: mysql-cluster-nodes-groups-replica5971659 +Node: mysql-cluster-overview-requirements5974303 +Ref: mysql-cluster-network-latency-issues5977485 +Node: mysql-cluster-development5980862 +Node: mysql-cluster-development-5-5-ndb-7-25983335 +Node: mysql-cluster-compared5991763 +Node: mysql-cluster-ndb-innodb-engines5995207 +Node: mysql-cluster-ndb-innodb-workloads6001877 +Node: mysql-cluster-ndb-innodb-usage6004143 +Node: mysql-cluster-limitations6006096 +Node: mysql-cluster-limitations-syntax6008589 +Node: mysql-cluster-limitations-limits6015649 +Node: mysql-cluster-limitations-transactions6019600 +Node: mysql-cluster-limitations-error-handling6026836 +Node: mysql-cluster-limitations-database-objects6027893 +Node: mysql-cluster-limitations-unsupported6029841 +Node: mysql-cluster-limitations-performance6031725 +Node: mysql-cluster-limitations-exclusive-to-cluster6032932 +Node: mysql-cluster-limitations-disk-data6035195 +Node: mysql-cluster-limitations-multiple-nodes6036491 +Node: mysql-cluster-limitations-resolved6039224 +Node: mysql-cluster-installation6048324 +Node: mysql-cluster-install-linux6055094 +Node: mysql-cluster-install-linux-binary6057244 +Node: mysql-cluster-install-linux-rpm6063050 +Node: mysql-cluster-install-linux-source6069790 +Node: mysql-cluster-install-windows6074469 +Node: mysql-cluster-install-windows-binary6075575 +Node: mysql-cluster-install-windows-source6088601 +Node: mysql-cluster-install-windows-initial-start6090602 +Node: mysql-cluster-install-windows-service6099479 +Node: mysql-cluster-install-configuration6106854 +Node: mysql-cluster-install-first-start6112592 +Node: mysql-cluster-install-example-data6115554 +Node: mysql-cluster-install-shutdown-restart6125262 +Node: mysql-cluster-upgrade-downgrade6128228 +Node: mysql-cluster-configuration6131281 +Node: mysql-cluster-quick6133456 +Node: mysql-cluster-config-file6139057 +Node: mysql-cluster-config-example6144591 +Ref: mysql-cluster-config-ini-sections6150731 +Node: mysql-cluster-config-starting6153078 +Node: mysql-cluster-connectstring6160914 +Node: mysql-cluster-computer-definition6165708 +Ref: ndbparam-computer-id6166169 +Ref: ndbparam-computer-hostname6166928 +Node: mysql-cluster-mgm-definition6167334 +Ref: ndbparam-mgmd-id6168008 +Ref: ndbparam-mgmd-nodeid6169274 +Ref: ndbparam-mgmd-executeoncomputer6170525 +Ref: ndbparam-mgmd-portnumber6171021 +Ref: ndbparam-mgmd-hostname6171549 +Ref: ndbparam-mgmd-logdestination6172134 +Ref: ndbparam-mgmd-arbitrationrank6174273 +Ref: ndbparam-mgmd-arbitrationdelay6175819 +Ref: ndbparam-mgmd-datadir6176460 +Ref: ndbparam-mgmd-heartbeatthreadpriority6177315 +Ref: ndbparam-mgmd-totalsendbuffermemory6177816 +Node: mysql-cluster-ndbd-definition6178852 +Ref: mysql-cluster-identifying-data-nodes6181172 +Ref: ndbparam-ndbd-id6181333 +Ref: ndbparam-ndbd-nodeid6182294 +Ref: ndbparam-ndbd-executeoncomputer6183202 +Ref: ndbparam-ndbd-hostname6183673 +Ref: ndbparam-ndbd-serverport6184255 +Ref: ndbparam-ndbd-tcpbind_inaddr_any6185791 +Ref: ndbparam-ndbd-nodegroup6186004 +Ref: ndbparam-ndbd-noofreplicas6187468 +Ref: ndbparam-ndbd-datadir6190894 +Ref: ndbparam-ndbd-filesystempath6191468 +Ref: ndbparam-ndbd-backupdatadir6192531 +Ref: mysql-cluster-data-memory-index-memory-string-memory6193431 +Ref: ndbparam-ndbd-datamemory6193812 +Ref: ndbparam-ndbd-indexmemory6199345 +Ref: ndbparam-ndbd-stringmemory6200420 +Ref: ndbparam-ndbd-minfreepct6204662 +Ref: mysql-cluster-transaction-parameters6206195 +Ref: ndbparam-ndbd-maxnoofconcurrenttransactions6206980 +Ref: ndbparam-ndbd-maxnoofconcurrentoperations6208984 +Ref: ndbparam-ndbd-maxnooflocaloperations6211999 +Ref: ndbparam-ndbd-maxdmloperationspertransaction6212808 +Ref: mysql-cluster-transaction-temporary-storage6213983 +Ref: ndbparam-ndbd-maxnoofconcurrentindexoperations6214603 +Ref: ndbparam-ndbd-maxnooffiredtriggers6215905 +Ref: ndbparam-ndbd-transactionbuffermemory6217202 +Ref: mysql-cluster-scans-and-buffering6218484 +Ref: ndbparam-ndbd-maxnoofconcurrentscans6218977 +Ref: ndbparam-ndbd-maxnooflocalscans6220617 +Ref: ndbparam-ndbd-batchsizeperlocalscan6221492 +Ref: ndbparam-ndbd-longmessagebuffer6222192 +Ref: ndbparam-ndbd-maxparallelscansperfragment6223105 +Ref: mysql-cluster-memory-allocation6224577 +Ref: ndbparam-ndbd-maxallocate6224600 +Ref: mysql-cluster-logging-and-checkpointing6225142 +Ref: ndbparam-ndbd-nooffragmentlogfiles6225246 +Ref: ndbparam-ndbd-fragmentlogfilesize6227682 +Ref: ndbparam-ndbd-initfragmentlogfiles6228775 +Ref: ndbparam-ndbd-maxnoofopenfiles6230025 +Ref: ndbparam-ndbd-initialnoofopenfiles6230728 +Ref: ndbparam-ndbd-maxnoofsavedmessages6231279 +Ref: ndbparam-ndbd-maxlcpstartdelay6231922 +Ref: mysql-cluster-metadata-objects6233950 +Ref: ndbparam-ndbd-maxnoofattributes6234306 +Ref: ndbparam-ndbd-maxnooftables6236873 +Ref: ndbparam-ndbd-maxnooforderedindexes6238528 +Ref: ndbparam-ndbd-maxnoofuniquehashindexes6239632 +Ref: ndbparam-ndbd-maxnooftriggers6240625 +Ref: ndbparam-ndbd-maxnoofindexes6241556 +Ref: ndbparam-ndbd-maxnoofsubscriptions6241947 +Ref: ndbparam-ndbd-maxnoofsubscribers6243138 +Ref: ndbparam-ndbd-maxnoofconcurrentsuboperations6244954 +Ref: mysql-cluster-boolean-parameters6246072 +Ref: ndbparam-ndbd-lockpagesinmainmemory6246319 +Ref: ndbparam-ndbd-stoponerror6248119 +Ref: ndbparam-ndbd-crashoncorruptedtuple6248710 +Ref: ndbparam-ndbd-diskless6249621 +Ref: ndbparam-ndbd-odirect6250800 +Ref: ndbparam-ndbd-restartonerrorinsert6252123 +Ref: ndbparam-ndbd-compressedbackup6252772 +Ref: ndbparam-ndbd-compressedlcp6253754 +Ref: mysql-cluster-timeouts-intervals-disk-paging6254746 +Ref: ndbparam-ndbd-timebetweenwatchdogcheck6255042 +Ref: ndbparam-ndbd-timebetweenwatchdogcheckinitial6256064 +Ref: ndbparam-ndbd-startpartialtimeout6256844 +Ref: ndbparam-ndbd-startpartitionedtimeout6257767 +Ref: ndbparam-ndbd-startfailuretimeout6258651 +Ref: ndbparam-ndbd-startnonodegrouptimeout6259696 +Ref: ndbparam-ndbd-heartbeatintervaldbdb6260939 +Ref: ndbparam-ndbd-heartbeatintervaldbapi6262365 +Ref: ndbparam-ndbd-heartbeatorder6263637 +Ref: ndbparam-ndbd-connectcheckintervaldelay6268081 +Ref: ndbparam-ndbd-timebetweenlocalcheckpoints6268859 +Ref: ndbparam-ndbd-timebetweenglobalcheckpoints6270381 +Ref: ndbparam-ndbd-timebetweenepochs6271953 +Ref: ndbparam-ndbd-timebetweenepochstimeout6272680 +Ref: ndbparam-ndbd-maxbufferedepochs6274151 +Ref: ndbparam-ndbd-timebetweeninactivetransactionabortcheck6275507 +Ref: ndbparam-ndbd-transactioninactivetimeout6276289 +Ref: ndbparam-ndbd-transactiondeadlockdetectiontimeout6277139 +Ref: ndbparam-ndbd-disksyncsize6278342 +Ref: ndbparam-ndbd-diskcheckpointspeed6279231 +Ref: ndbparam-ndbd-diskcheckpointspeedinrestart6280090 +Ref: ndbparam-ndbd-noofdiskpagestodiskafterrestarttup6280718 +Ref: ndbparam-ndbd-noofdiskpagestodiskafterrestartacc6282688 +Ref: ndbparam-ndbd-noofdiskpagestodiskduringrestarttup6283541 +Ref: ndbparam-ndbd-noofdiskpagestodiskduringrestartacc6284718 +Ref: ndbparam-ndbd-arbitrationtimeout6285699 +Ref: ndbparam-ndbd-arbitration6286464 +Ref: mysql-cluster-buffering-and-logging6288635 +Ref: ndbparam-ndbd-undoindexbuffer6289143 +Ref: ndbparam-ndbd-undodatabuffer6291272 +Ref: ndbparam-ndbd-redobuffer6292942 +Ref: mysql-cluster-controlling-log-messages6294155 +Ref: ndbparam-ndbd-loglevelstartup6294940 +Ref: ndbparam-ndbd-loglevelshutdown6295465 +Ref: ndbparam-ndbd-loglevelstatistic6296001 +Ref: ndbparam-ndbd-loglevelcheckpoint6296630 +Ref: ndbparam-ndbd-loglevelnoderestart6297206 +Ref: ndbparam-ndbd-loglevelconnection6297724 +Ref: ndbparam-ndbd-loglevelerror6298262 +Ref: ndbparam-ndbd-loglevelcongestion6298892 +Ref: ndbparam-ndbd-loglevelinfo6299494 +Ref: ndbparam-ndbd-memreportfrequency6300038 +Ref: ndbparam-ndbd-startupstatusreportfrequency6301731 +Ref: ndbparam-ndbd-dicttrace6303365 +Ref: mysql-cluster-backup-parameters6303716 +Ref: ndbparam-ndbd-backupdatabuffersize6303856 +Ref: ndbparam-ndbd-backuplogbuffersize6304904 +Ref: ndbparam-ndbd-backupmemory6306557 +Ref: ndbparam-ndbd-backupreportfrequency6307383 +Ref: ndbparam-ndbd-backupwritesize6308247 +Ref: ndbparam-ndbd-backupmaxwritesize6308836 +Ref: mysql-cluster-realtime-performance-parameters6309766 +Ref: ndbparam-ndbd-lockexecutethreadtocpu6310064 +Ref: ndbparam-ndbd-lockmaintthreadstocpu6311396 +Ref: ndbparam-ndbd-realtimescheduler6312092 +Ref: ndbparam-ndbd-schedulerexecutiontimer6312626 +Ref: ndbparam-ndbd-schedulerspintimer6313486 +Ref: ndbparam-ndbd-buildindexthreads6314056 +Ref: ndbparam-ndbd-twopassinitialnoderestartcopy6315288 +Ref: ndbparam-ndbd-numa6315625 +Ref: mysql-cluster-ndbd-definition-ndbmtd-parameters6316569 +Ref: ndbparam-ndbmtd-maxnoofexecutionthreads6317319 +Ref: ndbparam-ndbmtd-threadconfig6320421 +Ref: mysql-cluster-ndbd-definition-disk-data-parameters6321904 +Ref: ndbparam-ndbd-diskpagebuffermemory6322023 +Ref: ndbparam-ndbd-sharedglobalmemory6323168 +Ref: ndbparam-ndbd-diskiothreadpool6324516 +Ref: mysql-cluster-ndbd-disk-data-filesystem-parameters6327223 +Ref: ndbparam-ndbd-filesystempathdd6327443 +Ref: ndbparam-ndbd-filesystempathdatafiles6329200 +Ref: ndbparam-ndbd-filesystempathundofiles6330704 +Ref: mysql-cluster-ndbd-disk-data-object-creation-parameters6332299 +Ref: ndbparam-ndbd-initiallogfilegroup6332552 +Ref: ndbparam-ndbd-initialtablespace6335601 +Ref: mysql-cluster-ndbd-definition-gcp-stop-errors6338273 +Ref: ndbparam-ndbd-extrasendbuffermemory6340355 +Ref: ndbparam-ndbd-totalsendbuffermemory6340659 +Ref: ndbparam-ndbd-reservedsendbuffermemory6341179 +Ref: mysql-cluster-redo-over-commit-handling6341799 +Ref: ndbparam-ndbd-redoovercommitcounter6342555 +Ref: ndbparam-ndbd-redoovercommitlimit6343518 +Ref: ndbparam-ndbd-startfailretrydelay6345343 +Ref: ndbparam-ndbd-maxstartfailretries6346807 +Node: mysql-cluster-api-definition6348258 +Ref: ndbparam-api-id6349485 +Ref: ndbparam-api-nodeid6350699 +Ref: ndbparam-api-executeoncomputer6351997 +Ref: ndbparam-api-hostname6352501 +Ref: ndbparam-api-arbitrationrank6353507 +Ref: ndbparam-api-arbitrationdelay6354753 +Ref: ndbparam-api-batchbytesize6355417 +Ref: ndbparam-api-batchsize6356619 +Ref: ndbparam-api-heartbeatthreadpriority6357205 +Ref: ndbparam-api-maxscanbatchsize6357711 +Ref: ndbparam-api-totalsendbuffermemory6358493 +Ref: ndbparam-api-autoreconnect6359459 +Ref: ndbparam-api-defaultoperationredoproblemaction6360707 +Node: mysql-cluster-tcp-definition6363209 +Ref: ndbparam-tcp-nodeid16364746 +Ref: ndbparam-tcp-nodeid26365092 +Ref: ndbparam-tcp-hostname16365739 +Ref: ndbparam-tcp-hostname26366088 +Ref: ndbparam-tcp-overloadlimit6366690 +Ref: ndbparam-tcp-sendbuffermemory6367200 +Ref: ndbparam-tcp-sendsignalid6368614 +Ref: ndbparam-tcp-checksum6369398 +Ref: ndbparam-tcp-portnumber6370145 +Ref: ndbparam-tcp-receivebuffermemory6370420 +Node: mysql-cluster-tcp-definition-direct6371050 +Node: mysql-cluster-shm-definition6372941 +Ref: ndbparam-shm-nodeid16374087 +Ref: ndbparam-shm-nodeid26374434 +Ref: ndbparam-shm-hostname16374939 +Ref: ndbparam-shm-hostname26375288 +Ref: ndbparam-shm-shmkey6375890 +Ref: ndbparam-shm-shmsize6376487 +Ref: ndbparam-shm-sendsignalid6377105 +Ref: ndbparam-shm-checksum6377795 +Ref: ndbparam-shm-signum6378520 +Node: mysql-cluster-sci-definition6379571 +Ref: ndbparam-sci-nodeid16380972 +Ref: ndbparam-sci-nodeid26381319 +Ref: ndbparam-sci-host1sciid06381824 +Ref: ndbparam-sci-host1sciid16382323 +Ref: ndbparam-sci-host2sciid06382965 +Ref: ndbparam-sci-host2sciid16383465 +Ref: ndbparam-sci-hostname16384002 +Ref: ndbparam-sci-hostname26384351 +Ref: ndbparam-sci-sharedbuffersize6384953 +Ref: ndbparam-sci-sendlimit6385810 +Ref: ndbparam-sci-sendsignalid6386538 +Ref: ndbparam-sci-checksum6387174 +Node: mysql-cluster-config-send-buffers6387889 +Node: mysql-cluster-params-overview6391510 +Node: mysql-cluster-params-ndbd6394933 +Node: mysql-cluster-params-mgmd6406227 +Node: mysql-cluster-params-api6409199 +Node: mysql-cluster-params-other6412529 +Node: mysql-cluster-options-variables6417543 +Node: mysql-cluster-option-tables6418560 +Node: mysql-cluster-program-options-mysqld6432056 +Ref: option_mysqld_ndb-batch-size6433244 +Ref: option_mysqld_ndb-cluster-connection-pool6433976 +Ref: option_mysqld_ndb-blob-read-batch-bytes6436666 +Ref: option_mysqld_ndb-blob-write-batch-bytes6438369 +Ref: option_mysqld_ndb-connectstring6440092 +Ref: option_mysqld_ndb-deferred-constraints6440730 +Ref: option_mysqld_ndb-distribution6441838 +Ref: option_mysqld_ndb-mgmd-host6442881 +Ref: option_mysqld_ndbcluster6443629 +Ref: option_mysqld_ndb-log-apply-status6444557 +Ref: option_mysqld_ndb-log-transaction-id6446340 +Ref: option_mysqld_ndb-nodeid6447840 +Ref: option_mysqld_ndb-log-empty-epochs6449469 +Ref: option_mysqld_server-id-bits6450789 +Ref: option_mysqld_skip-ndbcluster6452850 +Ref: option_mysqld_ndb-wait-connected6453444 +Ref: option_mysqld_ndb-wait-setup6455304 +Ref: option_mysqld_ndb_optimization_delay6457176 +Node: mysql-cluster-system-variables6457897 +Ref: sysvar_have_ndbcluster6458508 +Ref: sysvar_multi_range_count6459138 +Ref: sysvar_ndb_autoincrement_prefetch_sz6460577 +Ref: sysvar_ndb_cache_check_time6462168 +Ref: sysvar_ndb_deferred_constraints6463437 +Ref: sysvar_ndb_distribution6464439 +Ref: sysvar_ndb_extra_logging6465384 +Ref: sysvar_ndb_force_send6466877 +Ref: sysvar_ndb_index_stat_cache_entries6467708 +Ref: sysvar_ndb_index_stat_enable6468650 +Ref: sysvar_ndb_index_stat_update_freq6469202 +Ref: sysvar_ndb_join_pushdown6470113 +Ref: sysvar_ndb_log_apply_status6476371 +Ref: sysvar_ndb_log_bin6477178 +Ref: sysvar_ndb_log_binlog_index6478133 +Ref: sysvar_ndb_log_transaction_id6479207 +Ref: sysvar_ndb_optimized_node_selection6480252 +Ref: sysvar_ndb_report_thresh_binlog_epoch_slip6483133 +Ref: sysvar_ndb_report_thresh_binlog_mem_usage6484097 +Ref: sysvar_slave_allow_batching6485016 +Ref: sysvar_ndb_table_no_logging6486092 +Ref: sysvar_ndb_table_temporary6488176 +Ref: sysvar_ndb_use_copying_alter_table6488965 +Ref: sysvar_ndb_use_exact_count6489429 +Ref: sysvar_ndb_use_transactions6490191 +Ref: sysvar_transaction_allow_batching6490987 +Ref: sysvar_ndbinfo_database6492454 +Ref: sysvar_ndbinfo_max_bytes6493251 +Ref: sysvar_ndbinfo_max_rows6493956 +Ref: sysvar_ndbinfo_show_hidden6494656 +Ref: sysvar_ndbinfo_table_prefix6495501 +Ref: sysvar_ndbinfo_version6496633 +Ref: sysvar_ndb_log_empty_epochs6497150 +Ref: sysvar_server_id_bits6497937 +Node: mysql-cluster-status-variables6499087 +Ref: statvar_Handler_discover6499615 +Ref: statvar_Ndb_api_wait_exec_complete_count_session6499917 +Ref: statvar_Ndb_api_wait_exec_complete_count_slave6500699 +Ref: statvar_Ndb_api_wait_exec_complete_count6501508 +Ref: statvar_Ndb_api_wait_scan_result_count_session6502208 +Ref: statvar_Ndb_api_wait_scan_result_count_slave6502815 +Ref: statvar_Ndb_api_wait_scan_result_count6503443 +Ref: statvar_Ndb_api_wait_meta_request_count_session6503968 +Ref: statvar_Ndb_api_wait_meta_request_count_slave6504567 +Ref: statvar_Ndb_api_wait_meta_request_count6505192 +Ref: statvar_Ndb_api_wait_nanos_count_session6505714 +Ref: statvar_Ndb_api_wait_nanos_count_slave6506218 +Ref: statvar_Ndb_api_wait_nanos_count6506748 +Ref: statvar_Ndb_api_bytes_sent_count_session6507170 +Ref: statvar_Ndb_api_bytes_sent_count_slave6507638 +Ref: statvar_Ndb_api_bytes_sent_count6508127 +Ref: statvar_Ndb_api_bytes_received_count_session6508513 +Ref: statvar_Ndb_api_bytes_received_count_slave6508991 +Ref: statvar_Ndb_api_bytes_received_count6509495 +Ref: statvar_Ndb_api_trans_start_count_session6509891 +Ref: statvar_Ndb_api_trans_start_count_slave6510341 +Ref: statvar_Ndb_api_trans_start_count6510817 +Ref: statvar_Ndb_api_trans_commit_count_session6511185 +Ref: statvar_Ndb_api_trans_commit_count_slave6511638 +Ref: statvar_Ndb_api_trans_commit_count6512117 +Ref: statvar_Ndb_api_trans_abort_count_session6512493 +Ref: statvar_Ndb_api_trans_abort_count_slave6512943 +Ref: statvar_Ndb_api_trans_abort_count6513419 +Ref: statvar_Ndb_api_trans_close_count_session6513787 +Ref: statvar_Ndb_api_trans_close_count_slave6514428 +Ref: statvar_Ndb_api_trans_close_count6515085 +Ref: statvar_Ndb_api_pk_op_count_session6515622 +Ref: statvar_Ndb_api_pk_op_count_slave6516250 +Ref: statvar_Ndb_api_pk_op_count6516904 +Ref: statvar_Ndb_api_uk_op_count_session6517450 +Ref: statvar_Ndb_api_uk_op_count_slave6517919 +Ref: statvar_Ndb_api_uk_op_count6518414 +Ref: statvar_Ndb_api_table_scan_count_session6518801 +Ref: statvar_Ndb_api_table_scan_count_slave6519306 +Ref: statvar_Ndb_api_table_scan_count6519837 +Ref: statvar_Ndb_api_range_scan_count_session6520260 +Ref: statvar_Ndb_api_range_scan_count_slave6520728 +Ref: statvar_Ndb_api_range_scan_count6521217 +Ref: statvar_Ndb_api_pruned_scan_count_session6521603 +Ref: statvar_Ndb_api_pruned_scan_count_slave6522087 +Ref: statvar_Ndb_api_pruned_scan_count6522597 +Ref: statvar_Ndb_api_scan_batch_count_session6522999 +Ref: statvar_Ndb_api_scan_batch_count_slave6523525 +Ref: statvar_Ndb_api_scan_batch_count6524077 +Ref: statvar_Ndb_api_read_row_count_session6524526 +Ref: statvar_Ndb_api_read_row_count_slave6525100 +Ref: statvar_Ndb_api_read_row_count6525692 +Ref: statvar_Ndb_api_trans_local_read_row_count_session6526193 +Ref: statvar_Ndb_api_trans_local_read_row_count_slave6526779 +Ref: statvar_Ndb_api_trans_local_read_row_count6527383 +Ref: statvar_Ndb_api_event_data_count_injector6527896 +Ref: statvar_Ndb_api_event_data_count6528285 +Ref: statvar_Ndb_api_event_nondata_count_injector6528663 +Ref: statvar_Ndb_api_event_nondata_count6529075 +Ref: statvar_Ndb_api_event_bytes_count_injector6529476 +Ref: statvar_Ndb_api_event_bytes_count6529864 +Ref: statvar_Ndb_cluster_node_id6530241 +Ref: statvar_Ndb_config_from_host6530485 +Ref: statvar_Ndb_config_from_port6530816 +Ref: statvar_Ndb_conflict_fn_max6531163 +Ref: statvar_Ndb_conflict_fn_old6531576 +Ref: statvar_Ndb_conflict_fn_epoch6531973 +Ref: statvar_Ndb_conflict_fn_epoch_trans6532406 +Ref: statvar_Ndb_conflict_trans_row_conflict_count6532851 +Ref: statvar_Ndb_conflict_trans_row_reject_count6533522 +Ref: statvar_Ndb_conflict_trans_reject_count6534074 +Ref: statvar_Ndb_conflict_trans_detect_iter_count6534462 +Ref: statvar_Ndb_conflict_trans_conflict_commit_count6534910 +Ref: statvar_Ndb_execute_count6535288 +Ref: statvar_Ndb_number_of_data_nodes6535423 +Ref: statvar_Ndb_pushed_queries_defined6535676 +Ref: statvar_Ndb_pushed_queries_dropped6535973 +Ref: statvar_Ndb_pushed_queries_executed6536151 +Ref: statvar_Ndb_pushed_reads6536334 +Ref: statvar_Ndb_pruned_scan_count6536667 +Ref: statvar_Ndb_scan_count6537163 +Node: mysql-cluster-interconnects6537344 +Node: mysql-cluster-sci-sockets6539970 +Node: mysql-cluster-interconnects-performance6541259 +Node: mysql-cluster-programs6545490 +Node: mysql-cluster-programs-mysqld6548981 +Node: mysql-cluster-programs-ndbd6554370 +Ref: option_ndbd_bind-address6557985 +Ref: option_ndbd_daemon6558524 +Ref: option_ndbd_nodaemon6559355 +Ref: option_ndbd_foreground6560479 +Ref: option_ndbd_initial6561247 +Ref: option_ndbd_initial-start6563708 +Ref: option_ndbd_nowait-nodes6565091 +Ref: option_ndbd_nostart6566503 +Ref: option_ndbd_install6567469 +Ref: option_ndbd_remove6569108 +Node: mysql-cluster-programs-ndbmtd6575401 +Node: mysql-cluster-programs-ndb-mgmd6581274 +Ref: option_ndb_mgmd_bind-address6585473 +Ref: option_ndb_mgmd_no-nodeid-checks6586321 +Ref: option_ndb_mgmd_configdir6586746 +Ref: option_ndb_mgmd_config-cache6587369 +Ref: option_ndb_mgmd_config-file6589999 +Ref: option_ndb_mgmd_mycnf6591376 +Ref: option_ndb_mgmd_daemon6591777 +Ref: option_ndb_mgmd_interactive6592431 +Ref: option_ndb_mgmd_initial6593091 +Ref: option_ndb_mgmd_log-name6594905 +Ref: option_ndb_mgmd_nodaemon6595335 +Ref: option_ndb_mgmd_print-full-config6596200 +Ref: option_ndb_mgmd_reload6597051 +Ref: option_ndb_mgmd_nowait-nodes6598817 +Ref: option_ndb_mgmd_install6605471 +Ref: option_ndb_mgmd_remove6607043 +Node: mysql-cluster-programs-ndb-mgm6607751 +Ref: option_ndb_mgm_execute6609545 +Ref: option_ndb_mgm_try-reconnect6610560 +Node: mysql-cluster-programs-ndb-config6611395 +Ref: option_ndb_config_usage6615371 +Ref: option_ndb_config_config_from_node6615730 +Ref: option_ndb_config_version6616522 +Ref: option_ndb_config_ndb-connectstring6616833 +Ref: option_ndb_config_config-file6617126 +Ref: option_ndb_config_mycnf6617871 +Ref: option_ndb_config_query6618272 +Ref: option_ndb_config_host6619367 +Ref: option_ndb_config_id6620631 +Ref: option_ndb_config_nodeid6620648 +Ref: option_ndb_config_nodes6620854 +Ref: option_ndb_config_connections6621423 +Ref: option_ndb_config_system6621972 +Ref: option_ndb_config_type6622519 +Ref: option_ndb_config_fields6623172 +Ref: option_ndb_config_rows6623860 +Ref: option_ndb_config_configinfo6624530 +Ref: option_ndb_config_xml6626275 +Node: mysql-cluster-programs-ndb-cpcd6633530 +Node: mysql-cluster-programs-ndb-delete-all6634104 +Node: mysql-cluster-programs-ndb-desc6635179 +Ref: option_ndb_desc_extra-partition-info6641334 +Ref: option_ndb_desc_blob-info6641437 +Ref: option_ndb_desc_extra-node-info6641665 +Node: mysql-cluster-programs-ndb-drop-index6642090 +Node: mysql-cluster-programs-ndb-drop-table6644477 +Node: mysql-cluster-programs-ndb-error-reporter6645339 +Ref: option_ndb_error_reporter_fs6646557 +Node: mysql-cluster-programs-ndb-print-backup-file6647181 +Node: mysql-cluster-programs-ndb-print-schema-file6648804 +Node: mysql-cluster-programs-ndb-print-sys-file6650199 +Node: mysql-cluster-programs-ndbd-redo-log-reader6651877 +Ref: option_ndbd_redo_log_reader_noprint6654377 +Ref: option_ndbd_redo_log_reader_nocheck6654771 +Node: mysql-cluster-programs-ndb-restore6655492 +Ref: option_ndb_restore_connect6664396 +Ref: option_ndb_restore_nodeid6665530 +Ref: option_ndb_restore_skip-table-check6666177 +Ref: option_ndb_restore_promote-attributes6667310 +Ref: option_ndb_restore_lossy-conversions6668867 +Ref: option_ndb_restore_preserve-trailing-spaces6669835 +Ref: option_ndb_restore_backupid6670565 +Ref: option_ndb_restore_restore_epoch6671100 +Ref: option_ndb_restore_restore_data6671526 +Ref: option_ndb_restore_restore_meta6671667 +Ref: option_ndb_restore_backup_path6671797 +Ref: option_ndb_restore_no-upgrade6674297 +Ref: option_ndb_restore_print_data6674678 +Ref: option_ndb_restore_tab6675264 +Ref: option_ndb_restore_fields-enclosed-by6675683 +Ref: option_ndb_restore_fields-optionally-enclosed-by6676201 +Ref: option_ndb_restore_fields-terminated-by6676870 +Ref: option_ndb_restore_hex6677440 +Ref: option_ndb_restore_lines-terminated-by6677651 +Ref: option_ndb_restore_append6678218 +Ref: option_ndb_restore_print_metadata6678651 +Ref: option_ndb_restore_print_log6678783 +Ref: option_ndb_restore_print6678919 +Ref: option_ndb_restore_dont_ignore_systab_06679142 +Ref: option_ndb_restore_ndb-nodegroup-map6679558 +Ref: option_ndb_restore_no-binlog6679760 +Ref: option_ndb_restore_no-restore-disk-objects6679930 +Ref: option_ndb_restore_parallelism6680205 +Ref: option_ndb_restore_progress-frequency6680430 +Ref: option_ndb_restore_verbose6680605 +Ref: option_ndb_restore_include-databases6681104 +Ref: option_ndb_restore_include-tables6681446 +Ref: option_ndb_restore_exclude-databases6684101 +Ref: option_ndb_restore_exclude-tables6684443 +Ref: option_ndb_restore_exclude-missing-columns6688628 +Ref: option_ndb_restore_disable-indexes6689381 +Ref: option_ndb_restore_rebuild-indexes6689781 +Ref: option_ndb_restore_skip-broken-objects6690067 +Ref: option_ndb_restore_skip-unknown-objects6690519 +Ref: option_ndb_restore_rewrite-database6690957 +Node: mysql-cluster-programs-ndb-select-all6693860 +Ref: option_ndb_restore_order6694683 +Node: mysql-cluster-programs-ndb-select-count6698259 +Node: mysql-cluster-programs-ndb-show-tables6699364 +Ref: option_ndb_show_tables_database6701067 +Ref: option_ndb_show_tables_loops6701165 +Ref: option_ndb_show_tables_parsable6701382 +Ref: option_ndb_show_tables_show-temp-status6701532 +Ref: option_ndb_show_tables_type6701626 +Ref: option_ndb_show_tables_unqualified6701975 +Node: mysql-cluster-programs-ndb-size-pl6702456 +Ref: option_ndb_size_pl_options6706197 +Ref: option_ndb_size_pl_debugging6710826 +Ref: option_ndb_size_pl_format6711151 +Node: mysql-cluster-programs-ndb-waiter6712177 +Ref: mysql-cluster-programs-ndb-waiter-additional-options6714834 +Ref: option_ndb_waiter_no-contact6714863 +Ref: option_ndb_waiter_not-started6715086 +Ref: option_ndb_waiter_timeout6715305 +Ref: option_ndb_waiter_single-user6715514 +Ref: option_ndb_waiter_nowait-nodes6715604 +Ref: option_ndb_waiter_wait-nodes6715958 +Node: mysql-cluster-program-options-common6718063 +Ref: option_ndb_common_help6720501 +Ref: option_ndb_common_character-sets-dir6720814 +Ref: option_ndb_common_ndb-connectstring6721317 +Ref: option_ndb_common_core-file6722205 +Ref: option_ndb_common_debug6723265 +Ref: option_ndb_common_ndb-mgmd-host6723851 +Ref: option_ndb_common_ndb-nodeid6724599 +Ref: option_ndb_common_ndb-optimized-node-selection6725220 +Ref: option_ndb_common_version6725708 +Node: mysql-cluster-management6726360 +Node: mysql-cluster-start-phases6732133 +Node: mysql-cluster-mgm-client-commands6738509 +Node: mysql-cluster-backup6748853 +Node: mysql-cluster-backup-concepts6750249 +Node: mysql-cluster-backup-using-management-client6752100 +Node: mysql-cluster-backup-configuration6760605 +Node: mysql-cluster-backup-troubleshooting6761765 +Node: mysql-cluster-rolling-restart6762909 +Ref: mysql-cluster-rolling-restart-multiple-ndb-mgmd6768437 +Node: mysql-cluster-event-reports6769754 +Node: mysql-cluster-logging-management-commands6774938 +Node: mysql-cluster-log-events6778468 +Node: mysql-cluster-log-statistics6789298 +Node: mysql-cluster-logs-ndb-messages6798073 +Node: mysql-cluster-logs-cluster-log6798707 +Node: mysql-cluster-ndb-transporter-errors6844830 +Node: mysql-cluster-single-user-mode6850933 +Node: mysql-cluster-sql-statements6853302 +Node: mysql-cluster-ndbinfo6860936 +Node: mysql-cluster-ndbinfo-blocks6870384 +Node: mysql-cluster-ndbinfo-config-params6871511 +Node: mysql-cluster-ndbinfo-counters6872612 +Node: mysql-cluster-ndbinfo-diskpagebuffer6875759 +Node: mysql-cluster-ndbinfo-logbuffers6879128 +Node: mysql-cluster-ndbinfo-logspaces6880177 +Node: mysql-cluster-ndbinfo-memoryusage6881211 +Node: mysql-cluster-ndbinfo-nodes6884391 +Node: mysql-cluster-ndbinfo-resources6890621 +Node: mysql-cluster-ndbinfo-transporters6892091 +Node: mysql-cluster-security6896183 +Node: mysql-cluster-security-networking-issues6897092 +Node: mysql-cluster-security-mysql-privileges6907022 +Node: mysql-cluster-security-mysql-security-procedures6914580 +Node: mysql-cluster-disk-data6918858 +Node: mysql-cluster-disk-data-objects6920530 +Node: mysql-cluster-disk-data-symlinks6933432 +Node: mysql-cluster-disk-data-storage-requirements6938348 +Node: mysql-cluster-online-add-node6940413 +Node: mysql-cluster-online-add-node-remarks6941366 +Node: mysql-cluster-online-add-node-basics6951506 +Node: mysql-cluster-online-add-node-example6955534 +Node: mysql-cluster-privilege-distribution6976301 +Node: mysql-cluster-ndb-api-statistics6986304 +Node: mysql-cluster-ndbmemcache7031033 +Node: mysql-cluster-ndbmemcache-overview7031630 +Node: mysql-cluster-ndbmemcache-building7033144 +Node: mysql-cluster-ndbmemcache-command-options7034701 +Node: mysql-cluster-ndbmemcache-configuration7037133 +Ref: mysql-cluster-ndbmemcache-configuration-initial7040080 +Ref: mysql-cluster-ndbmemcache-tuning-performance7052283 +Ref: mysql-cluster-ndbmemcache-tuning-autotuning7052730 +Ref: mysql-cluster-ndbmemcache-online-reconfiguration7055253 +Node: mysql-cluster-ndbmemcache-protocol-commands7056437 +Node: mysql-cluster-ndbmemcache-log7064392 +Node: mysql-cluster-replication7067080 +Ref: mysql-cluster-replication-ndb-non-ndb7071484 +Node: mysql-cluster-replication-abbreviations7072099 +Node: mysql-cluster-replication-general7073689 +Node: mysql-cluster-replication-issues7077374 +Ref: mysql-cluster-replication-ndb-to-non-ndb7085798 +Ref: mysql-cluster-replication-ndb-to-nontransactional7089213 +Ref: mysql-cluster-replication-issues-filtering7090204 +Node: mysql-cluster-replication-schema7094154 +Node: mysql-cluster-replication-preparation7102162 +Node: mysql-cluster-replication-starting7107963 +Node: mysql-cluster-replication-two-channels7112826 +Node: mysql-cluster-replication-failover7115673 +Node: mysql-cluster-replication-backups7119139 +Node: mysql-cluster-replication-auto-sync7127748 +Node: mysql-cluster-replication-pitr7133889 +Node: mysql-cluster-replication-multi-master7137369 +Node: mysql-cluster-replication-conflict-resolution7144059 +Ref: option_mysqld_ndb-log-updated-only7149510 +Ref: option_mysqld_ndb-log-update-as-write7150662 +Ref: mysql-cluster-ndb-replication-table7151666 +Ref: mysql-cluster-replication-ndb-old7154992 +Ref: mysql-cluster-replication-ndb-max7155649 +Ref: mysql-cluster-replication-ndb-max-delete-win7156301 +Ref: mysql-cluster-replication-ndb-epoch7157392 +Ref: mysql-cluster-replication-ndb-epoch-statvars7161971 +Ref: mysql-cluster-replication-ndb-epoch-limitations7162759 +Ref: mysql-cluster-replication-ndb-epoch-trans7164913 +Node: mysql-cluster-news7173532 +Node: mysql-cluster-news-7-27175076 +Node: mysql-cluster-news-5-5-20-ndb-7-2-57176549 +Node: mysql-cluster-news-5-5-19-ndb-7-2-47183626 +Node: mysql-cluster-news-5-5-17-ndb-7-2-37186178 +Node: mysql-cluster-news-5-5-16-ndb-7-2-27189387 +Node: mysql-cluster-news-5-5-15-ndb-7-2-17191577 +Node: partitioning7202677 +Node: partitioning-overview7208894 +Node: partitioning-types7218178 +Node: partitioning-range7225008 +Ref: partitioning-time-intervals7234741 +Node: partitioning-list7238561 +Node: partitioning-columns7244843 +Node: partitioning-columns-range7247041 +Node: partitioning-columns-list7264335 +Node: partitioning-hash7268920 +Node: partitioning-linear-hash7275642 +Node: partitioning-key7278514 +Node: partitioning-subpartitions7283341 +Node: partitioning-handling-nulls7292578 +Node: partitioning-management7306797 +Node: partitioning-management-range-list7310521 +Node: partitioning-management-hash-key7327006 +Node: partitioning-maintenance7329870 +Node: partitioning-info7333032 +Node: partitioning-pruning7338974 +Node: partitioning-limitations7347978 +Ref: partitioning-limitations-file-system-ops7354406 +Ref: partitioning-limitations-max-partitions7356573 +Ref: partitioning-limitations-subpartitions7361277 +Node: partitioning-limitations-partitioning-keys-unique-keys7364883 +Node: partitioning-limitations-storage-engines7373583 +Node: partitioning-limitations-functions7376555 +Ref: partitioning-limitations-ceiling-floor7378340 +Ref: partitioning-limitations-extract7378936 +Node: stored-programs-views7379425 +Node: stored-programs-defining7381746 +Node: stored-routines7384774 +Node: stored-routines-syntax7387982 +Node: stored-routines-privileges7391097 +Node: stored-routines-metadata7392730 +Node: stored-routines-last-insert-id7393554 +Node: triggers7394550 +Node: trigger-syntax7396712 +Node: trigger-metadata7404631 +Node: events7405040 +Node: events-overview7406973 +Node: events-configuration7411114 +Ref: events-event-scheduler-option7411647 +Node: events-syntax7417213 +Node: events-metadata7418217 +Node: events-status-info7420830 +Node: events-privileges7422940 +Node: views7430935 +Node: view-syntax7432154 +Node: view-algorithms7433505 +Node: view-updatability7437146 +Node: view-metadata7443176 +Node: stored-programs-security7443573 +Node: stored-programs-logging7449651 +Node: information-schema7470676 +Node: character-sets-table7482171 +Node: collations-table7483061 +Node: collation-character-set-applicability-table7484703 +Node: columns-table7485504 +Node: column-privileges-table7488137 +Node: engines-table7489871 +Node: events-table7490812 +Node: files-table7500595 +Node: status-table7516865 +Node: variables-table7517781 +Node: key-column-usage-table7518749 +Node: parameters-table7521380 +Node: partitions-table7525223 +Node: plugins-table7534817 +Node: processlist-table7538252 +Node: profiling-table7540221 +Node: referential-constraints-table7542965 +Node: routines-table7544593 +Node: schemata-table7549463 +Node: schema-privileges-table7550397 +Node: statistics-table7551461 +Node: tables-table7553452 +Node: tablespaces-table7557384 +Node: table-constraints-table7558479 +Node: table-privileges-table7559836 +Node: triggers-table7561081 +Node: user-privileges-table7566466 +Node: views-table7567439 +Node: innodb-i_s-tables7571815 +Node: innodb-cmp-table7573464 +Ref: innodb-information-schema-innodb_cmp_columns_table7573890 +Node: innodb-cmpmem-table7578027 +Ref: innodb-information-schema-innodb_cmpmem_columns_table7578473 +Node: innodb-trx-table7582545 +Ref: innodb-information-schema-innodb_trx_columns_table7583041 +Node: innodb-locks-table7589178 +Ref: innodb-information-schema-innodb_locks_columns_table7589644 +Node: innodb-lock-waits-table7592454 +Ref: innodb-information-schema-innodb_lock_waits_columns_table7592884 +Node: thread-pool-i-s-tables7593695 +Node: tp-thread-state-table7595537 +Node: tp-thread-group-state-table7597378 +Node: tp-thread-group-stats-table7600847 +Node: other-information-schema-tables7604918 +Node: extended-show7605202 +Node: performance-schema7611323 +Node: performance-schema-quick-start7617131 +Node: performance-schema-configuration7635129 +Node: performance-schema-build-configuration7636466 +Node: performance-schema-startup-configuration7639764 +Node: performance-schema-runtime-configuration7643619 +Node: performance-schema-timing7646934 +Node: performance-schema-filtering7655446 +Node: performance-schema-pre-filtering7661200 +Node: performance-schema-filtering-names7665294 +Node: performance-schema-queries7667067 +Node: performance-schema-instrument-naming7668460 +Node: performance-schema-status-monitoring7672353 +Node: performance-schema-table-characteristics7682332 +Node: performance-schema-table-descriptions7683662 +Node: performance-schema-setup-tables7685747 +Node: setup-consumers-table7687084 +Node: setup-instruments-table7688832 +Node: setup-timers-table7691900 +Node: performance-schema-instance-tables7693472 +Node: cond-instances-table7695152 +Node: file-instances-table7696167 +Node: mutex-instances-table7697198 +Node: rwlock-instances-table7700830 +Node: performance-schema-waits-tables7703228 +Node: events-waits-current-table7704082 +Node: events-waits-history-table7708499 +Node: events-waits-history-long-table7709472 +Node: performance-schema-summary-tables7710448 +Node: event-wait-summary-tables7712410 +Node: file-summary-tables7715796 +Node: performance-schema-miscellaneous-tables7718016 +Node: performance-timers-table7718686 +Node: threads-table7721140 +Node: performance-schema-system-variables7723400 +Ref: sysvar_performance_schema7728361 +Ref: sysvar_performance_schema_events_waits_history_long_size7728670 +Ref: sysvar_performance_schema_events_waits_history_size7728841 +Ref: sysvar_performance_schema_max_cond_classes7729008 +Ref: sysvar_performance_schema_max_cond_instances7729104 +Ref: sysvar_performance_schema_max_file_classes7729211 +Ref: sysvar_performance_schema_max_file_handles7729302 +Ref: sysvar_performance_schema_max_file_instances7729721 +Ref: sysvar_performance_schema_max_mutex_classes7729823 +Ref: sysvar_performance_schema_max_mutex_instances7729916 +Ref: sysvar_performance_schema_max_rwlock_classes7730020 +Ref: sysvar_performance_schema_max_rwlock_instances7730115 +Ref: sysvar_performance_schema_max_table_handles7730221 +Ref: sysvar_performance_schema_max_table_instances7730317 +Ref: sysvar_performance_schema_max_thread_classes7730421 +Ref: sysvar_performance_schema_max_thread_instances7730516 +Node: performance-schema-status-variables7731131 +Ref: statvar_Performance_schema_xxx_classes_lost7732692 +Ref: statvar_Performance_schema_xxx_instances_lost7732797 +Ref: statvar_Performance_schema_xxx_handles_lost7732910 +Ref: statvar_Performance_schema_locker_lost7733020 +Node: performance-schema-and-plugins7733623 +Node: performance-schema-examples7734684 +Node: connectors-apis7738143 +Ref: connectors-apis-summary7743478 +Ref: connectors-apis-versions7748430 +Node: connector-odbc7750329 +Node: connector-odbc-versions7753247 +Node: connector-odbc-introduction7755975 +Node: connector-odbc-general-information7756888 +Node: connector-odbc-architecture7757750 +Node: connector-odbc-driver-manager7761568 +Node: connector-odbc-installation7763288 +Node: connector-odbc-installation-binary-windows7767000 +Node: connector-odbc-installation-binary-windows-installer7769005 +Node: connector-odbc-installation-binary-windows-dll7771228 +Node: connector-odbc-installation-binary-unix7774681 +Node: connector-odbc-installation-binary-unix-tarball7775589 +Node: connector-odbc-installation-binary-unix-rpm7776676 +Node: connector-odbc-installation-binary-macosx7778012 +Node: connector-odbc-installation-source-windows7782536 +Node: connector-odbc-installation-source-windows-5-1-building7784225 +Node: connector-odbc-installation-source-windows-3-51-building7785850 +Node: connector-odbc-installation-source-unix7788405 +Node: connector-odbc-installation-source-unix-cmake-options7791696 +Node: connector-odbc-installation-source-unix-configure-options7792658 +Node: connector-odbc-installation-source-unix-otheroptions7795316 +Node: connector-odbc-installation-source-unix-building7797476 +Node: connector-odbc-installation-source-unix-shared-libraries7798055 +Node: connector-odbc-installation-source-unix-installing7800601 +Node: connector-odbc-installation-source-unix-testing7801599 +Node: connector-odbc-installation-source-unix-macosx7802442 +Node: connector-odbc-installation-source-unix-hpux7804415 +Node: connector-odbc-installation-source-unix-aix7805773 +Node: connector-odbc-installation-source-development7806580 +Node: connector-odbc-configuration7809122 +Node: connector-odbc-configuration-dsn7810568 +Node: connector-odbc-configuration-connection-parameters7811997 +Ref: codbc-dsn-config-options7812889 +Ref: codbc-dsn-option-flags7817661 +Node: connector-odbc-configuration-dsn-windows7829900 +Node: connector-odbc-configuration-dsn-windows-3-517833781 +Node: connector-odbc-configuration-dsn-windows-3-51-command-line7837256 +Node: connector-odbc-configuration-dsn-windows-5-17837822 +Node: connector-odbc-configuration-dsn-windows-5-1-command-line7841327 +Node: connector-odbc-configuration-dsn-windows-problems7841918 +Node: connector-odbc-configuration-dsn-macosx7843273 +Node: connector-odbc-configuration-dsn-unix7846163 +Node: connector-odbc-configuration-connection-without-dsn7848142 +Node: connector-odbc-configuration-connection-pooling7849667 +Node: connector-odbc-configuration-trace7850438 +Node: connector-odbc-configuration-trace-windows7851254 +Node: connector-odbc-configuration-trace-macosx7852324 +Node: connector-odbc-configuration-trace-unix7853013 +Node: connector-odbc-configuration-trace-log7854052 +Node: connector-odbc-examples7855150 +Node: connector-odbc-examples-overview7856294 +Node: connector-odbc-examples-walkthrough7857052 +Node: connector-odbc-examples-tools7859171 +Node: connector-odbc-examples-tools-with-access7861727 +Node: connector-odbc-examples-tools-with-access-export7862590 +Node: connector-odbc-examples-tools-with-access-import7864398 +Node: connector-odbc-examples-tools-with-access-linked-tables7865632 +Node: connector-odbc-examples-tools-with-wordexcel7869112 +Node: connector-odbc-examples-tools-with-crystalreports7872316 +Node: connector-odbc-examples-programming7877028 +Node: connector-odbc-examples-programming-vb7877823 +Node: connector-odbc-examples-programming-vb-ado7878548 +Node: connector-odbc-examples-programming-vb-dao7881475 +Node: connector-odbc-examples-programming-vb-rdo7883904 +Node: connector-odbc-examples-programming-net7886090 +Node: connector-odbc-examples-programming-net-csharp7886650 +Node: connector-odbc-examples-programming-net-vb7892598 +Node: connector-odbc-reference7896581 +Node: connector-odbc-reference-api7897255 +Node: connector-odbc-reference-datatypes7908768 +Node: connector-odbc-reference-errorcodes7911748 +Node: connector-odbc-usagenotes7914982 +Node: connector-odbc-usagenotes-functionality7915656 +Node: connector-odbc-usagenotes-functionality-last-insert-id7916417 +Node: connector-odbc-usagenotes-functionality-dynamic-cursor7918024 +Node: connector-odbc-usagenotes-functionality-performance7918713 +Node: connector-odbc-usagenotes-functionality-query-timeout7920300 +Node: connector-odbc-usagenotes-apptips7920825 +Node: connector-odbc-usagenotes-apptips-microsoft7922321 +Node: connector-odbc-usagenotes-apptips-microsoft-access7923571 +Node: connector-odbc-usagenotes-apptips-microsoft-excel7927981 +Node: connector-odbc-usagenotes-apptips-microsoft-visualbasic7929190 +Node: connector-odbc-usagenotes-apptips-microsoft-visualinterdev7929961 +Node: connector-odbc-usagenotes-apptips-microsoft-visualobjects7930555 +Node: connector-odbc-usagenotes-apptips-microsoft-ado7930917 +Node: connector-odbc-usagenotes-apptips-microsoft-asp7932518 +Node: connector-odbc-usagenotes-apptips-microsoft-vb-asp7933430 +Node: connector-odbc-usagenotes-apptips-borland7934164 +Node: connector-odbc-usagenotes-apptips-borland-builder7935073 +Node: connector-odbc-usagenotes-apptips-borland-delphi7935632 +Node: connector-odbc-usagenotes-apptips-borland-cppbuilder7937621 +Node: connector-odbc-usagenotes-apptips-coldfusion7938144 +Node: connector-odbc-usagenotes-apptips-openoffice7939553 +Node: connector-odbc-usagenotes-apptips-sambarserver7940098 +Node: connector-odbc-usagenotes-apptips-datajunction7940560 +Node: connector-odbc-usagenotes-apptips-vision7941070 +Node: connector-odbc-errors7941387 +Ref: qandaitem-22-1-7-3-1-17945718 +Ref: qandaitem-22-1-7-3-1-27946670 +Ref: qandaitem-22-1-7-3-1-37947019 +Ref: qandaitem-22-1-7-3-1-47947790 +Ref: qandaitem-22-1-7-3-1-57949727 +Ref: qandaitem-22-1-7-3-1-67950125 +Ref: qandaitem-22-1-7-3-1-77950383 +Ref: qandaitem-22-1-7-3-1-87950675 +Ref: qandaitem-22-1-7-3-1-97950938 +Ref: qandaitem-22-1-7-3-1-107951260 +Ref: qandaitem-22-1-7-3-1-117951724 +Ref: qandaitem-22-1-7-3-1-127952436 +Ref: qandaitem-22-1-7-3-1-137952743 +Ref: qandaitem-22-1-7-3-1-147953122 +Ref: qandaitem-22-1-7-3-1-157953521 +Ref: qandaitem-22-1-7-3-1-167953932 +Ref: qandaitem-22-1-7-3-1-177954481 +Ref: qandaitem-22-1-7-3-1-187954833 +Ref: qandaitem-22-1-7-3-1-197955233 +Ref: qandaitem-22-1-7-3-1-207955790 +Ref: qandaitem-22-1-7-3-1-217956188 +Ref: qandaitem-22-1-7-3-1-227956733 +Ref: qandaitem-22-1-7-3-1-237957020 +Ref: qandaitem-22-1-7-3-1-247957590 +Node: connector-odbc-support7957969 +Node: connector-odbc-support-community7958760 +Node: connector-odbc-support-bug-report7959676 +Node: connector-odbc-support-patch-submission7962124 +Node: connector-odbc-support-changehistory7962542 +Node: connector-odbc-support-credits7962929 +Node: connector-net7963280 +Node: connector-net-versions7966153 +Ref: connector-net-prereqs7969747 +Node: connector-net-installation7971437 +Node: connector-net-installation-windows7972250 +Node: connector-net-installation-binary-windows-installer7972994 +Node: connector-net-installation-binary-windows-zip7977291 +Node: connector-net-installation-unix7979647 +Node: connector-net-installation-source7981818 +Node: connector-net-visual-studio7984023 +Node: connector-net-visual-studio-making-a-connection7987144 +Ref: connector-net-visual-studio-add-connection7987970 +Ref: connector-net-visual-studio-choose-data-source7988279 +Ref: connector-net-visual-studio-add-connection-dialog7988613 +Ref: connector-net-visual-studio-new-data-connection7989205 +Node: connector-net-visual-studio-intellisense7989809 +Node: connector-net-visual-studio-editing-tables7990631 +Ref: connector-net-visual-studio-editing-new-table7991953 +Ref: connector-net-visual-studio-choose-table-name7993027 +Ref: connector-net-visual-studio-newly-created-table7993132 +Ref: connector-net-visual-studio-table-designer-menu-item7993303 +Node: connector-net-visual-studio-editing-tables-column-editor7993347 +Node: connector-net-visual-studio-editing-tables-indexes7994666 +Ref: connector-net-visual-studio-indexes-dialog7995243 +Node: connector-net-visual-studio-editing-tables-foreign-keys7995566 +Ref: connector-net-visual-studio-foreign-key-relationships7996544 +Node: connector-net-visual-studio-editing-tables-column-details7996596 +Node: connector-net-visual-studio-editing-tables-table-properties7997173 +Ref: connector-net-visual-studio-table-properties-menu7997603 +Ref: connector-net-visual-studio-selecting-table-properties7997969 +Node: connector-net-visual-studio-editing-views7998005 +Ref: connector-net-visual-studio-views-edit-sql7998479 +Ref: connector-net-visual-studio-views-sql-added7998558 +Ref: connector-net-visual-studio-views-sql-saved7999377 +Node: connector-net-visual-studio-editing-stored-procedures-and-functions7999411 +Ref: connector-net-visual-studio-stored-procedure-edit7999970 +Ref: connector-net-visual-studio-stored-procedure-saved8001531 +Node: connector-net-visual-studio-editing-triggers8001577 +Node: connector-net-visual-studio-editing-user-defined-functions-udf8003253 +Node: connector-net-visual-studio-cloning-database-objects8004651 +Node: connector-net-visual-studio-dropping-database-objects8005652 +Node: connector-net-visual-studio-entity-framework8006310 +Node: connector-net-website-config8008075 +Ref: connector-net-website-config-tool8008866 +Ref: connector-net-website-config-tool-membership8009015 +Ref: connector-net-website-config-tool-string-editor8009408 +Ref: connector-net-website-config-tool-options8010403 +Ref: connector-net-website-config-tool-roles8010637 +Ref: connector-net-website-config-tool-profiles8010862 +Ref: connector-net-website-config-tool-session-state8011053 +Ref: connector-net-website-config-tool-tables8011618 +Node: connector-net-sql-editor8011679 +Ref: connector-net-sql-editor-new-file-dialog8012105 +Ref: connector-net-sql-editor-query8012861 +Node: connector-net-ddl-t4-ef8013019 +Ref: connector-net-ddl-t4-ef-properties8013670 +Ref: connector-net-ddl-t4-ef-generate8013963 +Node: connector-net-tutorials8014031 +Node: connector-net-tutorials-intro8015183 +Node: connector-net-tutorials-connection8016890 +Node: connector-net-tutorials-sql-command8019065 +Node: connector-net-tutorials-data-adapter8025026 +Ref: connector-net-tutorials-18032141 +Node: connector-net-tutorials-parameters8032187 +Node: connector-net-tutorials-stored-procedures8035510 +Node: connector-net-tutorials-asp-roles8039291 +Ref: connector-net-tutorials-authentication-type8045075 +Ref: connector-net-tutorials-select-provider8045405 +Ref: connector-net-tutorials-tables8045711 +Ref: connector-net-tutorials-security-tab8046394 +Ref: connector-net-tutorials-create-user8046747 +Ref: connector-net-tutorials-users-roles-tables8046949 +Node: connector-net-tutorials-asp-provider-session-state8047151 +Node: connector-net-tutorials-asp-provider-profile8053682 +Ref: connector-net-tutorials-asp-provider-profile-simple-app8056982 +Node: connector-net-tutorials-entity-framework-winform-data-source8059387 +Ref: connector-net-visual-studio-entity-framework-add-entity-data-model8060948 +Ref: connector-net-visual-studio-entity-framework-entity-data-model-wizard-18061205 +Ref: connector-net-visual-studio-entity-framework-entity-data-model-wizard-28061601 +Ref: connector-net-visual-studio-entity-framework-entity-data-model-wizard-38062262 +Ref: connector-net-visual-studio-entity-framework-entity-data-model-diagram8062385 +Ref: connector-net-visual-studio-entity-framework-data-source-configuration-wizard-18062863 +Ref: connector-net-visual-studio-entity-framework-data-source-configuration-wizard-28063160 +Ref: connector-net-visual-studio-entity-framework-data-source-configuration-wizard-38063321 +Ref: connector-net-visual-studio-entity-framework-data-sources8063628 +Ref: connector-net-visual-studio-entity-framework-data-form-design8064123 +Ref: connector-net-visual-studio-entity-framework-form-add-code8064588 +Ref: connector-net-visual-studio-entity-framework-app-running-18064766 +Ref: connector-net-visual-studio-entity-framework-save-enabled8065393 +Ref: connector-net-visual-studio-entity-framework-form-add-code-save8065644 +Node: connector-net-tutorials-entity-framework-databinding-linq-entities8065849 +Ref: connector-net-visual-studio-entity-framework-tutorial-linq-18067225 +Ref: connector-net-visual-studio-entity-framework-tutorial-linq-28067504 +Ref: connector-net-visual-studio-entity-framework-tutorial-linq-38067833 +Ref: connector-net-visual-studio-entity-framework-tutorial-linq-48067931 +Ref: connector-net-visual-studio-entity-framework-tutorial-linq-58068083 +Ref: connector-net-visual-studio-entity-framework-tutorial-linq-68072124 +Ref: connector-net-visual-studio-entity-framework-tutorial-linq-78072293 +Node: connector-net-tutorials-ssl8072504 +Node: connector-net-tutorials-mysqlscript8079130 +Node: connector-net-tutorials-mysqlscript-delimiter8084740 +Node: connector-net-tutorials-efmodel-ddl8088609 +Node: connector-net-programming8090741 +Node: connector-net-programming-connecting8093719 +Node: connector-net-programming-connecting-connection-string8094463 +Node: connector-net-programming-connecting-open8096090 +Node: connector-net-programming-connecting-errors8098790 +Node: connector-net-programming-getschema8101572 +Node: connector-net-programming-getschema-collections8103127 +Node: connector-net-programming-mysqlcommand8105837 +Node: connector-net-programming-connection-pooling8109156 +Node: connector-net-programming-authentication-windows-native8112199 +Node: connector-net-programming-tablecaching8113731 +Node: connector-net-programming-prepared8114927 +Node: connector-net-programming-prepared-preparing8116088 +Node: connector-net-programming-stored8118728 +Node: connector-net-programming-stored-using8121544 +Node: connector-net-programming-blob8129886 +Node: connector-net-programming-blob-serverprep8131004 +Node: connector-net-programming-blob-writing8133100 +Node: connector-net-programming-blob-reading8136657 +Node: connector-net-interceptors8140505 +Node: connector-net-programming-datetime8145833 +Node: connector-net-programming-datetime-fractional8146884 +Node: connector-net-programming-datetime-problems8148552 +Node: connector-net-programming-datetime-restricting8149260 +Node: connector-net-programming-datetime-invalid8150310 +Node: connector-net-programming-datetime-null8152056 +Node: connector-net-programming-bulk-loader8153107 +Node: connector-net-programming-tracing8156762 +Node: connector-net-programming-tracing-mysql8161830 +Node: connector-net-programming-tracing-mysql-custom-listeners8169087 +Node: connector-net-programming-binary-issues8172995 +Node: connector-net-using-character-sets8174856 +Node: connector-net-programming-crystal8176466 +Node: connector-net-programming-crystal-source8177197 +Node: connector-net-programming-crystal-creating8180700 +Node: connector-net-programming-crystal-displaying8181792 +Node: connector-net-programming-asp-provider8189539 +Node: connector-net-medium-trust8197336 +Node: connector-net-connection-options8201702 +Node: connector-net-ref8229181 +Node: connector-net-ref-mysqlclient8229667 +Node: connector-net-ref-mysqlclienthierarchy8235776 +Node: connector-net-ref-mysqlclient-basecommandinterceptor8236150 +Node: connector-net-ref-mysqlclient-baseexceptioninterceptor8237296 +Node: connector-net-ref-mysqlclient-mysqlcommand8238444 +Node: connector-net-ref-mysqlclient-mysqlcommandmembers8239641 +Node: connector-net-ref-mysqlclient-mysqlcommandconstructor8245373 +Node: connector-net-ref-mysqlclient-mysqlcommandconstructor18246899 +Node: connector-net-ref-mysqlclient-mysqlcommandconstructor28247709 +Node: connector-net-ref-mysqlclient-mysqlcommandconstructor38248492 +Node: connector-net-ref-mysqlclient-mysqlconnection8249423 +Node: connector-net-ref-mysqlclient-mysqlconnectionmembers8250629 +Node: connector-net-ref-mysqlclient-mysqlconnectionconstructor8256848 +Node: connector-net-ref-mysqlclient-mysqlconnectionconstructor18258017 +Node: connector-net-ref-mysqlclient-mysqlconnectionconstructor28258862 +Node: connector-net-ref-mysqlclient-mysqlconnection-connectionstring8259614 +Node: connector-net-ref-mysqlclient-mysqlconnection-connectiontimeout8260390 +Node: connector-net-ref-mysqlclient-mysqlconnection-database8261172 +Node: connector-net-ref-mysqlclient-mysqlconnection-datasource8261896 +Node: connector-net-ref-mysqlclient-mysqlconnection-serverthread8262576 +Node: connector-net-ref-mysqlclient-mysqlconnection-serverversion8263280 +Node: connector-net-ref-mysqlclient-mysqlconnection-state8263916 +Node: connector-net-ref-mysqlclient-mysqlconnection-usecompression8264649 +Node: connector-net-ref-mysqlclient-mysqlconnection-begintransaction-overloads8265392 +Node: connector-net-ref-mysqlclient-mysqlconnection-begintransaction-overload-18266477 +Node: connector-net-ref-mysqlclient-mysqltransaction8267461 +Node: connector-net-ref-mysqlclient-mysqltransactionmembers8268682 +Node: connector-net-ref-mysqlclient-mysqltransaction-connection8271158 +Node: connector-net-ref-mysqlclient-mysqltransaction-isolationlevel8272469 +Node: connector-net-ref-mysqlclient-mysqltransaction-commit8273521 +Node: connector-net-ref-mysqlclient-mysqltransaction-rollback8274240 +Node: connector-net-ref-mysqlclient-mysqlconnection-begintransaction-overload-28274901 +Node: connector-net-ref-mysqlclient-mysqlconnection-changedatabase8275792 +Node: connector-net-ref-mysqlclient-mysqlconnection-close8276643 +Node: connector-net-ref-mysqlclient-mysqlconnection-createcommand8277350 +Node: connector-net-ref-mysqlclient-mysqlconnection-open8278011 +Node: connector-net-ref-mysqlclient-mysqlconnection-ping8278701 +Node: connector-net-ref-mysqlclient-mysqlconnection-infomessage8279332 +Node: connector-net-ref-mysqlclient-mysqlinfomessageeventhandler8280132 +Node: connector-net-ref-mysqlclient-mysqlinfomessageeventargs8281281 +Node: connector-net-ref-mysqlclient-mysqlinfomessageeventargsmembers8282585 +Node: connector-net-ref-mysqlclient-mysqlinfomessageeventargsconstructor8285092 +Node: connector-net-ref-mysqlclient-mysqlinfomessageeventargs-errors8285916 +Node: connector-net-ref-mysqlclient-mysqlerror8286618 +Node: connector-net-ref-mysqlclient-mysqlerrormembers8287714 +Node: connector-net-ref-mysqlclient-mysqlerrorconstructor8290127 +Node: connector-net-ref-mysqlclient-mysqlerror-code8290906 +Node: connector-net-ref-mysqlclient-mysqlerror-level8291475 +Node: connector-net-ref-mysqlclient-mysqlerror-message8292048 +Node: connector-net-ref-mysqlclient-mysqlconnection-statechange8292577 +Node: connector-net-ref-mysqlclient-mysqlcommandconstructor48293194 +Node: connector-net-ref-mysqlclient-mysqlcommand-commandtext8294060 +Node: connector-net-ref-mysqlclient-mysqlcommand-commandtimeout8294774 +Node: connector-net-ref-mysqlclient-mysqlcommand-commandtype8295505 +Node: connector-net-ref-mysqlclient-mysqlcommand-connection8296241 +Node: connector-net-ref-mysqlclient-mysqlcommand-isprepared8296862 +Node: connector-net-ref-mysqlclient-mysqlcommand-parameters8297467 +Node: connector-net-ref-mysqlclient-mysqlparametercollection8298213 +Node: connector-net-ref-mysqlclient-mysqlparametercollectionmembers8299810 +Node: connector-net-ref-mysqlclient-mysqlparametercollectionconstructor8306115 +Node: connector-net-ref-mysqlclient-mysqlparametercollection-count8306927 +Node: connector-net-ref-mysqlclient-mysqlparametercollectionitem8307726 +Node: connector-net-ref-mysqlclient-mysqlparameter8309237 +Node: connector-net-ref-mysqlclient-mysqlparametermembers8310738 +Node: connector-net-ref-mysqlclient-mysqlparameterconstructor8316943 +Node: connector-net-ref-mysqlclient-mysqlparameterconstructor18320051 +Node: connector-net-ref-mysqlclient-mysqlparameterconstructor38320835 +Node: connector-net-ref-mysqlclient-mysqldbtype8322109 +Node: connector-net-ref-mysqlclient-mysqlparameterconstructor48329122 +Node: connector-net-ref-mysqlclient-mysqlparameterconstructor68330523 +Node: connector-net-ref-mysqlclient-mysqlparameter-value8333329 +Node: connector-net-ref-mysqlclient-mysqlparameterconstructor58334001 +Node: connector-net-ref-mysqlclient-mysqlparameterconstructor28335486 +Node: connector-net-ref-mysqlclient-mysqlparameter-dbtype8336640 +Node: connector-net-ref-mysqlclient-mysqlparameter-direction8337389 +Node: connector-net-ref-mysqlclient-mysqlparameter-isnullable8338355 +Node: connector-net-ref-mysqlclient-mysqlparameter-isunsigned8339152 +Node: connector-net-ref-mysqlclient-mysqlparameter-mysqldbtype8339766 +Node: connector-net-ref-mysqlclient-mysqlparameter-parametername8340450 +Node: connector-net-ref-mysqlclient-mysqlparameter-precision8341240 +Node: connector-net-ref-mysqlclient-mysqlparameter-scale8342095 +Node: connector-net-ref-mysqlclient-mysqlparameter-size8342907 +Node: connector-net-ref-mysqlclient-mysqlparameter-sourcecolumn8343660 +Node: connector-net-ref-mysqlclient-mysqlparameter-sourceversion8344570 +Node: connector-net-ref-mysqlclient-mysqlparameter-tostring8345460 +Node: connector-net-ref-mysqlclient-mysqlparametercollection-item18346184 +Node: connector-net-ref-mysqlclient-mysqlparametercollection-item28347129 +Node: connector-net-ref-mysqlclient-mysqlparametercollection-add-overloads8348024 +Node: connector-net-ref-mysqlclient-mysqlparametercollection-add-overload-28351549 +Node: connector-net-ref-mysqlclient-mysqlparametercollection-add-overload-18352920 +Node: connector-net-ref-mysqlclient-mysqlparametercollection-add-overload-48354340 +Node: connector-net-ref-mysqlclient-mysqlparametercollection-add-overload-58355830 +Node: connector-net-ref-mysqlclient-mysqlparametercollection-add-overload-68357426 +Node: connector-net-ref-mysqlclient-mysqlparametercollection-add-overload-38359164 +Node: connector-net-ref-mysqlclient-mysqlparametercollection-clear8360665 +Node: connector-net-ref-mysqlclient-mysqlparametercollection-contains-overloads8361472 +Node: connector-net-ref-mysqlclient-mysqlparametercollection-contains-overload-18362904 +Node: connector-net-ref-mysqlclient-mysqlparametercollection-contains-overload-28364300 +Node: connector-net-ref-mysqlclient-mysqlparametercollection-copyto8365670 +Node: connector-net-ref-mysqlclient-mysqlparametercollection-indexof-overloads8366703 +Node: connector-net-ref-mysqlclient-mysqlparametercollection-indexof-overload-18368124 +Node: connector-net-ref-mysqlclient-mysqlparametercollection-indexof-overload-28369522 +Node: connector-net-ref-mysqlclient-mysqlparametercollection-insert8370948 +Node: connector-net-ref-mysqlclient-mysqlparametercollection-remove8371942 +Node: connector-net-ref-mysqlclient-mysqlparametercollection-removeat-overloads8372862 +Node: connector-net-ref-mysqlclient-mysqlparametercollection-removeat-overload-18374241 +Node: connector-net-ref-mysqlclient-mysqlparametercollection-removeat-overload-28375465 +Node: connector-net-ref-mysqlclient-mysqlcommand-transaction8376717 +Node: connector-net-ref-mysqlclient-mysqlcommand-updatedrowsource8377352 +Node: connector-net-ref-mysqlclient-mysqlcommand-cancel8378126 +Node: connector-net-ref-mysqlclient-mysqlcommand-createparameter8379132 +Node: connector-net-ref-mysqlclient-mysqlcommand-executenonquery8380070 +Node: connector-net-ref-mysqlclient-mysqlcommand-executereader-overloads8380845 +Node: connector-net-ref-mysqlclient-mysqlcommand-executereader-overload-18381862 +Node: connector-net-ref-mysqlclient-mysqldatareader8382784 +Node: connector-net-ref-mysqlclient-mysqldatareadermembers8384200 +Node: connector-net-ref-mysqlclient-mysqldatareader-depth8395063 +Node: connector-net-ref-mysqlclient-mysqldatareader-fieldcount8395879 +Node: connector-net-ref-mysqlclient-mysqldatareader-hasrows8396646 +Node: connector-net-ref-mysqlclient-mysqldatareader-isclosed8397334 +Node: connector-net-ref-mysqlclient-mysqldatareaderitem8398098 +Node: connector-net-ref-mysqlclient-mysqldatareader-item18399348 +Node: connector-net-ref-mysqlclient-mysqldatareader-item28400378 +Node: connector-net-ref-mysqlclient-mysqldatareader-recordsaffected8401349 +Node: connector-net-ref-mysqlclient-mysqldatareader-close8402189 +Node: connector-net-ref-mysqlclient-mysqldatareader-getboolean8402928 +Node: connector-net-ref-mysqlclient-mysqldatareader-getbyte8403817 +Node: connector-net-ref-mysqlclient-mysqldatareader-getbytes8404685 +Node: connector-net-ref-mysqlclient-mysqldatareader-getchar8406199 +Node: connector-net-ref-mysqlclient-mysqldatareader-getchars8407077 +Node: connector-net-ref-mysqlclient-mysqldatareader-getdatatypename8408334 +Node: connector-net-ref-mysqlclient-mysqldatareader-getdatetime8409252 +Node: connector-net-ref-mysqlclient-mysqldatareader-getdecimal8410075 +Node: connector-net-ref-mysqlclient-mysqldatareader-getdouble8410888 +Node: connector-net-ref-mysqlclient-mysqldatareader-getfieldtype8411694 +Node: connector-net-ref-mysqlclient-mysqldatareader-getfloat8412597 +Node: connector-net-ref-mysqlclient-mysqldatareader-getguid8413392 +Node: connector-net-ref-mysqlclient-mysqldatareader-getint168414174 +Node: connector-net-ref-mysqlclient-mysqldatareader-getint328414964 +Node: connector-net-ref-mysqlclient-mysqldatareader-getint648415755 +Node: connector-net-ref-mysqlclient-mysqldatareader-getmysqldatetime8416552 +Node: connector-net-ref-mysqlclient-mysqldatareader-getname8417299 +Node: connector-net-ref-mysqlclient-mysqldatareader-getordinal8418168 +Node: connector-net-ref-mysqlclient-mysqldatareader-getschematable8419078 +Node: connector-net-ref-mysqlclient-mysqldatareader-getstring8419957 +Node: connector-net-ref-mysqlclient-mysqldatareader-gettimespan8420766 +Node: connector-net-ref-mysqlclient-mysqldatareader-getuint168421481 +Node: connector-net-ref-mysqlclient-mysqldatareader-getuint328422184 +Node: connector-net-ref-mysqlclient-mysqldatareader-getuint648422883 +Node: connector-net-ref-mysqlclient-mysqldatareader-getvalue8423582 +Node: connector-net-ref-mysqlclient-mysqldatareader-getvalues8424472 +Node: connector-net-ref-mysqlclient-mysqldatareader-isdbnull8425391 +Node: connector-net-ref-mysqlclient-mysqldatareader-nextresult8426304 +Node: connector-net-ref-mysqlclient-mysqldatareader-read8427157 +Node: connector-net-ref-mysqlclient-mysqlcommand-executereader-overload-28427865 +Node: connector-net-ref-mysqlclient-mysqlcommand-executescalar8428714 +Node: connector-net-ref-mysqlclient-mysqlcommand-prepare8429469 +Node: connector-net-ref-mysqlclient-mysqlcommandbuilder8430096 +Node: connector-net-ref-mysqlclient-mysqlcommandbuildermembers8431292 +Node: connector-net-ref-mysqlclient-mysqlcommandbuilder-deriveparameters-overloads8436529 +Node: connector-net-ref-mysqlclient-mysqlcommandbuilder-deriveparameters-overload-18438174 +Node: connector-net-ref-mysqlclient-mysqlcommandbuilder-deriveparameters-overload-28439854 +Node: connector-net-ref-mysqlclient-mysqlcommandbuilderconstructor8440818 +Node: connector-net-ref-mysqlclient-mysqlcommandbuilderconstructor18442544 +Node: connector-net-ref-mysqlclient-mysqlcommandbuilderconstructor38443443 +Node: connector-net-ref-mysqlclient-mysqldataadapter8444396 +Node: connector-net-ref-mysqlclient-mysqldataadaptermembers8445565 +Node: connector-net-ref-mysqlclient-mysqldataadapterconstructor8454277 +Node: connector-net-ref-mysqlclient-mysqldataadapterconstructor18455909 +Node: connector-net-ref-mysqlclient-mysqldataadapterconstructor28456769 +Node: connector-net-ref-mysqlclient-mysqldataadapterconstructor38457606 +Node: connector-net-ref-mysqlclient-mysqldataadapterconstructor48458518 +Node: connector-net-ref-mysqlclient-mysqldataadapter-deletecommand18459357 +Node: connector-net-ref-mysqlclient-mysqldataadapter-insertcommand18460031 +Node: connector-net-ref-mysqlclient-mysqldataadapter-selectcommand18460709 +Node: connector-net-ref-mysqlclient-mysqldataadapter-updatecommand18461387 +Node: connector-net-ref-mysqlclient-mysqldataadapter-rowupdated8462061 +Node: connector-net-ref-mysqlclient-mysqlrowupdatedeventhandler8464510 +Node: connector-net-ref-mysqlclient-mysqlrowupdatedeventargs8465578 +Node: connector-net-ref-mysqlclient-mysqlrowupdatedeventargsmembers8466912 +Node: connector-net-ref-mysqlclient-mysqlrowupdatedeventargsconstructor8470164 +Node: connector-net-ref-mysqlclient-mysqlrowupdatedeventargs-command18471502 +Node: connector-net-ref-mysqlclient-mysqldataadapter-rowupdating8472183 +Node: connector-net-ref-mysqlclient-mysqlrowupdatingeventhandler8474352 +Node: connector-net-ref-mysqlclient-mysqlrowupdatingeventargs8475432 +Node: connector-net-ref-mysqlclient-mysqlrowupdatingeventargsmembers8476782 +Node: connector-net-ref-mysqlclient-mysqlrowupdatingeventargsconstructor8479639 +Node: connector-net-ref-mysqlclient-mysqlrowupdatingeventargs-command18480966 +Node: connector-net-ref-mysqlclient-mysqlcommandbuilderconstructor48481655 +Node: connector-net-ref-mysqlclient-mysqlcommandbuilderconstructor28482583 +Node: connector-net-ref-mysqlclient-mysqlcommandbuilder-dataadapter8483366 +Node: connector-net-ref-mysqlclient-mysqlcommandbuilder-quoteprefix8484038 +Node: connector-net-ref-mysqlclient-mysqlcommandbuilder-quotesuffix8484691 +Node: connector-net-ref-mysqlclient-mysqlcommandbuilder-getdeletecommand8485349 +Node: connector-net-ref-mysqlclient-mysqlcommandbuilder-getinsertcommand8486077 +Node: connector-net-ref-mysqlclient-mysqlcommandbuilder-getupdatecommand8486810 +Node: connector-net-ref-mysqlclient-mysqlcommandbuilder-refreshschema8487540 +Node: connector-net-ref-mysqlclient-mysqlexception8488154 +Node: connector-net-ref-mysqlclient-mysqlexceptionmembers8489402 +Node: connector-net-ref-mysqlclient-mysqlexception-number8492859 +Node: connector-net-ref-mysqlclient-mysqlhelper8493439 +Node: connector-net-ref-mysqlclient-mysqlhelpermembers8494572 +Node: connector-net-ref-mysqlclient-mysqlhelper-executedatarow8498174 +Node: connector-net-ref-mysqlclient-mysqlhelper-executedataset-overloads8499461 +Node: connector-net-ref-mysqlclient-mysqlhelper-executedataset-overload-38501973 +Node: connector-net-ref-mysqlclient-mysqlhelper-executedataset-overload-48503393 +Node: connector-net-ref-mysqlclient-mysqlhelper-executedataset-overload-18504985 +Node: connector-net-ref-mysqlclient-mysqlhelper-executedataset-overload-28506290 +Node: connector-net-ref-mysqlclient-mysqlhelper-executenonquery-overloads8507690 +Node: connector-net-ref-mysqlclient-mysqlhelper-executenonquery-overload-18509433 +Node: connector-net-ref-mysqlclient-mysqlhelper-executenonquery-overload-28511097 +Node: connector-net-ref-mysqlclient-mysqlhelper-executereader-overloads8512690 +Node: connector-net-ref-mysqlclient-mysqlhelper-executereader-overload-18513899 +Node: connector-net-ref-mysqlclient-mysqlhelper-executereader-overload-28515190 +Node: connector-net-ref-mysqlclient-mysqlhelper-executescalar-overloads8516664 +Node: connector-net-ref-mysqlclient-mysqlhelper-executescalar-overload-38518450 +Node: connector-net-ref-mysqlclient-mysqlhelper-executescalar-overload-48519778 +Node: connector-net-ref-mysqlclient-mysqlhelper-executescalar-overload-18521278 +Node: connector-net-ref-mysqlclient-mysqlhelper-executescalar-overload-28522547 +Node: connector-net-ref-mysqlclient-mysqlhelper-updatedataset8523914 +Node: connector-net-ref-mysqlclient-mysqlerrorcode8525051 +Node: connector-net-ref-types8526016 +Node: connector-net-ref-typeshierarchy8526871 +Node: connector-net-ref-types-mysqlconversionexception8527203 +Node: connector-net-ref-types-mysqlconversionexceptionmembers8528434 +Node: connector-net-ref-types-mysqlconversionexceptionconstructor8532479 +Node: connector-net-ref-types-mysqldatetime8533116 +Node: connector-net-ref-types-mysqldatetimemembers8534237 +Node: connector-net-ref-types-mysqldatetime-op-explicit8539435 +Node: connector-net-ref-types-mysqldatetime-day8540157 +Node: connector-net-ref-types-mysqldatetime-hour8540725 +Node: connector-net-ref-types-mysqlvalue-isnull8541290 +Node: connector-net-ref-types-mysqlvalue8541896 +Node: connector-net-ref-types-mysqlvaluemembers8542863 +Node: connector-net-ref-types-mysqlvalue-numberformat8546568 +Node: connector-net-ref-types-mysqlvalueconstructor8547164 +Node: connector-net-ref-types-mysqlvalue-valueasobject8547790 +Node: connector-net-ref-types-mysqlvalue-tostring8548403 +Node: connector-net-ref-types-mysqlvalue-classtype8549026 +Node: connector-net-ref-types-mysqlvalue-dbtype8549610 +Node: connector-net-ref-types-mysqlvalue-mysqldbtype8550180 +Node: connector-net-ref-types-mysqlvalue-mysqltypename8550778 +Node: connector-net-ref-types-mysqlvalue-objectvalue8551394 +Node: connector-net-ref-types-mysqldatetime-isvaliddatetime8551904 +Node: connector-net-ref-types-mysqldatetime-millisecond8552575 +Node: connector-net-ref-types-mysqldatetime-minute8553197 +Node: connector-net-ref-types-mysqldatetime-month8553784 +Node: connector-net-ref-types-mysqldatetime-second8554361 +Node: connector-net-ref-types-mysqldatetime-year8554941 +Node: connector-net-ref-types-mysqldatetime-getdatetime8555517 +Node: connector-net-ref-types-mysqldatetime-tostring8556137 +Node: connector-net-support8556741 +Node: connector-net-support-community8557435 +Node: connector-net-support-bug-report8558029 +Node: connector-net-support-changehistory8559149 +Node: connector-net-faq8559484 +Ref: qandaitem-22-2-9-1-18559741 +Node: connector-j8563082 +Node: connector-j-overview8564044 +Node: connector-j-versions8565767 +Node: connector-j-versions-java8568243 +Node: connector-j-installing8569985 +Node: connector-j-binary-installation8571158 +Node: connector-j-installing-classpath8573010 +Node: connector-j-installing-upgrading8575981 +Node: connector-j-installing-upgrading-3-0-to-3-18576851 +Node: connector-j-installing-upgrading-5-18581838 +Node: connector-j-installing-upgrading-issues8583135 +Node: connector-j-installing-source8584546 +Node: connector-j-examples8588457 +Node: connector-j-reference8589445 +Node: connector-j-reference-configuration-properties8590437 +Node: connector-j-reference-implementation-notes8670794 +Node: connector-j-reference-type-conversions8681148 +Node: connector-j-reference-charsets8687521 +Node: connector-j-reference-using-ssl8691022 +Node: connector-j-reference-replication-connection8699430 +Node: connector-j-reference-error-sqlstates8703360 +Node: connector-j-usagenotes-basic8712739 +Node: connector-j-usagenotes-connect-drivermanager8713362 +Ref: connector-j-examples-connection-drivermanager8715394 +Node: connector-j-usagenotes-statements8716644 +Ref: connector-j-examples-execute-select8718361 +Node: connector-j-usagenotes-statements-callable8719852 +Ref: connector-j-examples-stored-procedure8721002 +Ref: connector-j-examples-preparecall8721604 +Ref: connector-j-examples-output-param8722683 +Ref: connector-j-examples-callablestatement8723975 +Ref: connector-j-examples-retrieving-results-params8724997 +Node: connector-j-usagenotes-last-insert-id8725720 +Ref: connector-j-examples-autoincrement-getgeneratedkeys8727117 +Ref: connector-j-examples-autoincrement-select8729150 +Ref: connector-j-examples-autoincrement-updateable-resultsets8730958 +Node: connector-j-usagenotes-j2ee-concepts8733489 +Node: connector-j-usagenotes-j2ee-concepts-connection-pooling8734101 +Ref: connector-j-examples-connectionpool-j2ee8737085 +Node: connector-j-usagenotes-j2ee-concepts-managing-load-balanced-connections8745253 +Node: connector-j-usagenotes-j2ee-concepts-load-balancing-failover8751751 +Node: connector-j-usagenotes-tomcat8757730 +Node: connector-j-usagenotes-jboss8764352 +Node: connector-j-usagenotes-spring-config8766741 +Node: connector-j-usagenotes-spring-config-jdbctemplate8771946 +Node: connector-j-usagenotes-spring-config-transactional8775488 +Node: connector-j-usagenotes-spring-config-connpooling8780072 +Node: connector-j-usagenotes-glassfish-config8782491 +Node: connector-j-usagenotes-glassfish-config-jsp8786650 +Node: connector-j-usagenotes-glassfish-config-servlet8792249 +Node: connector-j-usagenotes-troubleshooting8798028 +Ref: qandaitem-22-3-12-1-18802093 +Ref: qandaitem-22-3-12-1-28803426 +Ref: qandaitem-22-3-12-1-38803921 +Ref: qandaitem-22-3-12-1-48805755 +Ref: connector-j-examples-transaction-retry8806607 +Ref: qandaitem-22-3-12-1-58811300 +Ref: qandaitem-22-3-12-1-68812220 +Ref: qandaitem-22-3-12-1-78812697 +Ref: qandaitem-22-3-12-1-88814004 +Ref: qandaitem-22-3-12-1-98814850 +Ref: qandaitem-22-3-12-1-108815250 +Ref: qandaitem-22-3-12-1-118816211 +Ref: qandaitem-22-3-12-1-128816531 +Ref: qandaitem-22-3-12-1-138818972 +Ref: qandaitem-22-3-12-1-148822327 +Ref: qandaitem-22-3-12-1-158822509 +Ref: qandaitem-22-3-12-1-168822856 +Node: connector-j-support8823457 +Node: connector-j-support-community8823844 +Node: connector-j-support-bug-report8824758 +Node: connector-j-support-changelog8829630 +Node: connector-mxj8829940 +Node: connector-mxj-overview8831633 +Node: connector-mxj-versions8833769 +Node: connector-mxj-install8835043 +Node: connector-mxj-install-platforms8836398 +Node: connector-mxj-install-base8837756 +Node: connector-mxj-install-quickstart8840590 +Node: connector-mxj-install-class8843673 +Node: connector-mxj-install-jboss8844687 +Node: connector-mxj-installation-test8846390 +Node: connector-mxj-installation-test-requirements8846913 +Node: connector-mxj-installation-test-running8848336 +Node: connector-mxj-configuration8849978 +Node: connector-mxj-configuration-driver-launched8850414 +Node: connector-mxj-configuration-java-object8853381 +Node: connector-mxj-configuration-options8857871 +Node: connector-mxj-ref8859273 +Node: connector-mxj-ref-mysqldresource-ctor8859725 +Node: connector-mxj-ref-mysqldresource-methods8861261 +Node: connector-mxj-usagenotes8863066 +Node: connector-mxj-usagenotes-packaging8863736 +Node: connector-mxj-usagenotes-customdb8868530 +Node: connector-mxj-usagenotes-jmx-agent8870554 +Node: connector-mxj-usagenotes-standard-environment8872697 +Node: connector-mxj-samples8876575 +Node: connector-mxj-samples-jsp8876909 +Node: connector-mxj-support8884175 +Node: connector-mxj-support-community8884785 +Node: connector-mxj-support-bug-report8885642 +Node: connector-mxj-support-changelog8886522 +Node: connector-cpp8886853 +Node: connector-cpp-installation-binary8891887 +Ref: connector-cpp-installer-welcome-figure8895261 +Ref: connector-cpp-installer-overview-figure8895313 +Ref: connector-cpp-installer-custom-figure8895584 +Node: connector-cpp-installation-source8895641 +Node: connector-cpp-installation-source-unix8897633 +Node: connector-cpp-installation-source-windows8903101 +Node: connector-cpp-dynamic-linking-client-library8909355 +Node: connector-cpp-apps-windows-visual-studio8911680 +Ref: connector-cpp-menu-new-project8913418 +Ref: connector-cpp-new-project-wizard8913722 +Ref: connector-cpp-win32-application-wizard8914023 +Ref: connector-cpp-select-release-build8914193 +Ref: connector-cpp-menu-project-properties8914365 +Ref: connector-cpp-properties8914545 +Ref: connector-cpp-mysql-include-dir8914772 +Ref: connector-cpp-mysql-include-select-directory-dialog8914919 +Ref: connector-cpp-mysql-lib-opt-dir8915196 +Ref: connector-cpp-additional-library-dir8915353 +Ref: connector-cpp-additional-lib-dir-select8915564 +Ref: connector-cpp-application-build-static8915626 +Ref: connector-cpp-additional-dependencies8915985 +Ref: connector-cpp-additional-dependencies-added8916067 +Ref: connector-cpp-cppconn-public-func8916675 +Ref: connector-cpp-application-build-dynamic8916879 +Node: connector-cpp-apps-linux-netbeans8917621 +Ref: connector-cpp-netbeans8918043 +Ref: connector-cpp-netbeans-static-properties-include8919953 +Ref: connector-cpp-netbeans-static-properties-lib8921619 +Ref: connector-cpp-netbeans-dynamic-properties-lib8922601 +Ref: connector-cpp-netbeans-static-run8923044 +Node: connector-cpp-getting-started-examples8923302 +Node: connector-cpp-examples-connecting8926806 +Node: connector-cpp-examples-query8927692 +Node: connector-cpp-examples-results8928922 +Node: connector-cpp-examples-prepared-statements8930456 +Node: connector-cpp-examples-complete-example-18931761 +Node: connector-cpp-examples-complete-example-28935047 +Node: connector-cpp-tutorials8938644 +Node: connector-cpp-tutorials-stored-routines-statements8942041 +Node: connector-cpp-tutorials-stored-routines-prepared-statements8951189 +Node: connector-cpp-debug-tracing8958416 +Node: connector-cpp-usage-notes8962764 +Node: connector-cpp-bugs8975623 +Node: connector-cpp-requests8977689 +Node: connector-cpp-support8978928 +Node: connector-cpp-faq8979582 +Ref: qandaitem-22-5-12-1-18980070 +Ref: qandaitem-22-5-12-1-28980312 +Ref: qandaitem-22-5-12-1-38980439 +Ref: qandaitem-22-5-12-1-48980613 +Node: connector-c8980766 +Node: connector-c-building8981836 +Node: connector-c-testing8986854 +Node: connector-c-faq8987454 +Ref: qandaitem-22-6-3-1-18988078 +Ref: qandaitem-22-6-3-1-28988550 +Ref: qandaitem-22-6-3-1-38988660 +Ref: qandaitem-22-6-3-1-48988834 +Ref: qandaitem-22-6-3-1-58989233 +Ref: qandaitem-22-6-3-1-68989565 +Node: connector-ooo8989824 +Node: connector-ooo-installation8991476 +Ref: figure_connector-ooo-add-extension8992346 +Node: connector-ooo-getting-started8992420 +Ref: figure_connector-ooo-dbwizard18993307 +Ref: figure_connector-ooo-dbwizard28993472 +Ref: figure_connector-ooo-dbwizard38993814 +Ref: figure_connector-ooo-dbwizard48994244 +Ref: figure_connector-ooo-dbwizard58994689 +Ref: figure_connector-ooo-dbwizard68994959 +Node: connector-ooo-getting-started-examples8995117 +Ref: figure_connector-ooo-base8995626 +Node: connector-ooo-references8995821 +Node: connector-ooo-bugs8996133 +Node: connector-ooo-contact8996682 +Node: libmysqld8996985 +Node: libmysqld-compiling8999750 +Node: libmysqld-restrictions9002105 +Node: libmysqld-options9003250 +Node: libmysqld-example9004557 +Node: libmysqld-licensing9011702 +Node: c9012178 +Node: c-api-data-structures9016587 +Node: c-api-function-overview9031509 +Node: c-api-functions9051743 +Node: mysql-affected-rows9057016 +Node: mysql-autocommit9060048 +Node: mysql-change-user9060454 +Node: mysql-character-set-name9062887 +Node: mysql-close9063295 +Node: mysql-commit9063819 +Node: mysql-connect9064529 +Node: mysql-create-db9065977 +Node: mysql-data-seek9067024 +Node: mysql-debug9067781 +Node: mysql-drop-db9068499 +Node: mysql-dump-debug-info9069517 +Node: mysql-eof9070291 +Node: mysql-errno9073339 +Node: mysql-error9074893 +Node: mysql-escape-string9076199 +Node: mysql-fetch-field9076878 +Node: mysql-fetch-field-direct9078603 +Node: mysql-fetch-fields9079608 +Node: mysql-fetch-lengths9080417 +Node: mysql-fetch-row9082146 +Node: mysql-field-count9084278 +Node: mysql-field-seek9086659 +Node: mysql-field-tell9087273 +Node: mysql-free-result9087804 +Node: mysql-get-character-set-info9088494 +Node: mysql-get-client-info9089706 +Node: mysql-get-client-version9090152 +Node: mysql-get-host-info9090824 +Node: mysql-get-proto-info9091301 +Node: mysql-get-server-info9091753 +Node: mysql-get-server-version9092191 +Node: mysql-get-ssl-cipher9092867 +Node: mysql-hex-string9093455 +Node: mysql-info9095388 +Node: mysql-init9096931 +Node: mysql-insert-id9097753 +Node: mysql-kill9102781 +Node: mysql-library-end9103586 +Node: mysql-library-init9104585 +Node: mysql-list-dbs9108629 +Node: mysql-list-fields9109772 +Node: mysql-list-processes9111029 +Node: mysql-list-tables9111984 +Node: mysql-more-results9113103 +Node: mysql-next-result9114101 +Node: mysql-num-fields9117379 +Node: mysql-num-rows9119841 +Node: mysql-options9121068 +Node: mysql-ping9132238 +Node: mysql-query9134064 +Node: mysql-real-connect9135514 +Node: mysql-real-escape-string9147684 +Node: mysql-real-query9150742 +Node: mysql-refresh9152418 +Node: mysql-reload9154176 +Node: mysql-rollback9155026 +Node: mysql-row-seek9155751 +Node: mysql-row-tell9156830 +Node: mysql-select-db9157502 +Node: mysql-set-character-set9158513 +Node: mysql-set-local-infile-default9159727 +Node: mysql-set-local-infile-handler9160411 +Node: mysql-set-server-option9164259 +Node: mysql-shutdown9166293 +Node: mysql-sqlstate9167523 +Node: mysql-ssl-set9169220 +Node: mysql-stat9170520 +Node: mysql-store-result9171379 +Node: mysql-thread-id9175113 +Node: mysql-use-result9175793 +Node: mysql-warning-count9179384 +Node: c-api-prepared-statements9179783 +Node: c-api-prepared-statement-data-structures9182408 +Node: c-api-prepared-statement-type-codes9195896 +Node: c-api-prepared-statement-type-conversions9202893 +Node: c-api-prepared-statement-function-overview9208334 +Node: c-api-prepared-statement-functions9219164 +Node: mysql-stmt-affected-rows9221352 +Node: mysql-stmt-attr-get9222131 +Node: mysql-stmt-attr-set9222900 +Node: mysql-stmt-bind-param9226577 +Node: mysql-stmt-bind-result9228149 +Node: mysql-stmt-close9230686 +Node: mysql-stmt-data-seek9231510 +Node: mysql-stmt-errno9232309 +Node: mysql-stmt-error9233095 +Node: mysql-stmt-execute9234146 +Node: mysql-stmt-fetch9242483 +Node: mysql-stmt-fetch-column9254009 +Node: mysql-stmt-field-count9255065 +Node: mysql-stmt-free-result9255866 +Node: mysql-stmt-init9256478 +Node: mysql-stmt-insert-id9257111 +Node: mysql-stmt-next-result9258026 +Node: mysql-stmt-num-rows9260697 +Node: mysql-stmt-param-count9261914 +Node: mysql-stmt-param-metadata9262474 +Node: mysql-stmt-prepare9262854 +Node: mysql-stmt-reset9265495 +Node: mysql-stmt-result-metadata9266649 +Node: mysql-stmt-row-seek9268728 +Node: mysql-stmt-row-tell9269886 +Node: mysql-stmt-send-long-data9270598 +Node: mysql-stmt-sqlstate9274843 +Node: mysql-stmt-store-result9275788 +Node: c-api-thread-functions9278585 +Node: my-init9279156 +Node: mysql-thread-end9280242 +Node: mysql-thread-init9280790 +Node: mysql-thread-safe9281698 +Node: c-api-embedded-server-functions9282073 +Node: mysql-server-init9283066 +Node: mysql-server-end9283719 +Node: c-api-plugin-functions9284242 +Node: mysql-client-find-plugin9285687 +Node: mysql-client-register-plugin9287145 +Node: mysql-load-plugin9288249 +Node: mysql-load-plugin-v9290537 +Node: mysql-plugin-options9291117 +Node: c-api-problems9291983 +Node: null-mysql-store-result9292496 +Node: query-results9294046 +Node: getting-unique-id9295815 +Node: auto-reconnect9298962 +Node: c-api-multiple-queries9302045 +Node: c-api-prepared-statement-problems9310001 +Node: c-api-prepared-statement-date-handling9311596 +Node: c-api-prepared-call-statements9315151 +Node: building-clients9325785 +Node: c-api-linking-problems9328228 +Node: threaded-clients9331689 +Node: apis-php9335614 +Ref: php-api-copyright9337847 +Node: connector-php9338463 +Node: apis-php-problems9339034 +Node: php-mysql-mysqli9340489 +Node: apis-perl9341547 +Node: apis-python9344066 +Node: apis-ruby9349179 +Node: apis-ruby-mysqlruby9350001 +Node: apis-ruby-rubymysql9350375 +Node: apis-tcl9350793 +Node: apis-eiffel9351121 +Node: extending-mysql9351517 +Node: mysql-internals9351969 +Node: mysql-threads9352914 +Node: mysql-test-suite9356169 +Node: plugin-api9358953 +Node: plugin-api-characteristics9361251 +Node: plugin-api-components9365092 +Node: plugin-types9368192 +Node: storage-engine-plugins9369080 +Node: full-text-plugins9369676 +Node: daemon-plugins9373817 +Node: information-schema-plugins9374304 +Node: semisynchronous-replication-plugins9374922 +Node: audit-plugins9375694 +Node: authentication-plugins9377545 +Node: writing-plugins9378627 +Node: writing-plugins-overview9381760 +Node: plugin-data-structures9383821 +Node: server-plugin-descriptors9388692 +Node: plugin-status-system-variables9406159 +Node: client-plugin-descriptors9416937 +Node: compiling-plugin-libraries9422901 +Node: writing-full-text-plugins9425701 +Node: writing-daemon-plugins9449430 +Node: writing-information-schema-plugins9453763 +Node: writing-semisynchronous-replication-plugins9460810 +Node: writing-audit-plugins9465376 +Ref: audit-plugin-interface-changes9480309 +Node: writing-authentication-plugins9481513 +Node: writing-authentication-plugins-server-side9485821 +Node: writing-authentication-plugins-client-side9494367 +Node: writing-authentication-plugins-setup9496895 +Node: writing-authentication-plugins-proxy-users9499756 +Node: plugin-services9507319 +Node: adding-functions9511580 +Node: udf-features9514198 +Node: adding-udf9515088 +Node: udf-calling9521045 +Node: udf-aggr-calling9525999 +Node: udf-arguments9529512 +Node: udf-return-values9535888 +Node: udf-compiling9538074 +Node: udf-security9544163 +Node: adding-native-function9545681 +Node: adding-procedures9550254 +Node: procedure-analyse9550812 +Node: writing-a-procedure9552722 +Node: porting9553164 +Node: debugging-server9554705 +Node: compiling-for-debugging9557082 +Node: making-trace-files9558923 +Node: making-windows-dumps9560901 +Node: using-gdb-on-mysqld9562754 +Node: using-stack-trace9566255 +Node: using-log-files9571402 +Node: reproducible-test-case9574720 +Node: debugging-client9577142 +Node: the-dbug-package9578367 +Node: mysql-enterprise-monitor9582643 +Node: mysql-enterprise-backup9587013 +Node: workbench9588543 +Node: licenses-third-party9590518 +Node: license-ant-contrib9595294 +Node: license-antlr-3-39598066 +Node: license-boost9599910 +Node: license-dtoa9601690 +Node: license-libedit9602660 +Node: license-findgtest-cmake9608756 +Node: license-dbug9611497 +Node: license-getarg9613215 +Node: license-glib-proxy9615192 +Node: license-gnu-gpl-2-09617097 +Node: license-gnu-lgpl-2-19637552 +Node: license-gnu-libtool9667187 +Node: license-gnu-readline9669803 +Node: license-google-io-rate-patch9670878 +Node: license-google-tcmalloc9672868 +Node: license-google-smp-patch9674884 +Node: license-lib-sql9676795 +Node: license-libaio9677638 +Node: license-libevent9677933 +Node: license-libiconv-proxy9684723 +Node: license-linux-pam9685426 +Node: license-lpeg9687818 +Node: license-lua9689276 +Node: license-luafilesystem9690681 +Node: license-md59692096 +Node: license-nt-servc9693109 +Node: license-openpam9693610 +Node: license-pcre9695780 +Node: license-percona-io-threads-patch9698794 +Node: license-regex9700765 +Node: license-us-secure-hash9702120 +Node: license-libstring9704128 +Node: license-sha1-in-c9705640 +Node: license-slf4j9705959 +Node: license-zlib9707475 +Node: license-zlib-net9709309 +Node: faqs9711189 +Node: faqs-general9712323 +Ref: qandaitem-B-1-1-19713329 +Ref: qandaitem-B-1-1-29713953 +Ref: qandaitem-B-1-1-39714701 +Ref: qandaitem-B-1-1-49714775 +Ref: qandaitem-B-1-1-59715212 +Ref: qandaitem-B-1-1-69715669 +Ref: qandaitem-B-1-1-79716155 +Ref: qandaitem-B-1-1-89716534 +Ref: qandaitem-B-1-1-99716720 +Ref: qandaitem-B-1-1-109717040 +Ref: qandaitem-B-1-1-119717457 +Node: faqs-storage-engines9717854 +Ref: qandaitem-B-2-1-19718440 +Ref: qandaitem-B-2-1-29718767 +Ref: qandaitem-B-2-1-39719244 +Ref: qandaitem-B-2-1-49719316 +Ref: qandaitem-B-2-1-59719611 +Node: faqs-sql-modes9719989 +Ref: qandaitem-B-3-1-19720607 +Ref: qandaitem-B-3-1-29721006 +Ref: qandaitem-B-3-1-39721180 +Ref: qandaitem-B-3-1-49721616 +Ref: qandaitem-B-3-1-59721913 +Ref: qandaitem-B-3-1-69722241 +Ref: qandaitem-B-3-1-79722686 +Node: faqs-stored-procs9722911 +Ref: qandaitem-B-4-1-19725510 +Ref: qandaitem-B-4-1-29725676 +Ref: qandaitem-B-4-1-39725802 +Ref: qandaitem-B-4-1-49725959 +Ref: qandaitem-B-4-1-59726347 +Ref: qandaitem-B-4-1-69726825 +Ref: qandaitem-B-4-1-79727483 +Ref: qandaitem-B-4-1-89728123 +Ref: qandaitem-B-4-1-99728256 +Ref: qandaitem-B-4-1-109728331 +Ref: qandaitem-B-4-1-119728506 +Ref: qandaitem-B-4-1-129728628 +Ref: qandaitem-B-4-1-139728826 +Ref: qandaitem-B-4-1-149729021 +Ref: qandaitem-B-4-1-159729470 +Ref: qandaitem-B-4-1-169729558 +Ref: qandaitem-B-4-1-179729740 +Ref: qandaitem-B-4-1-189729827 +Ref: qandaitem-B-4-1-199729975 +Ref: qandaitem-B-4-1-209730300 +Ref: qandaitem-B-4-1-219730809 +Ref: qandaitem-B-4-1-229730976 +Ref: qandaitem-B-4-1-239731284 +Ref: qandaitem-B-4-1-249731655 +Ref: qandaitem-B-4-1-259732074 +Ref: qandaitem-B-4-1-269732829 +Ref: qandaitem-B-4-1-279734159 +Ref: qandaitem-B-4-1-289734337 +Node: faqs-triggers9734944 +Ref: qandaitem-B-5-1-19735941 +Ref: qandaitem-B-5-1-29736038 +Ref: qandaitem-B-5-1-39736165 +Ref: qandaitem-B-5-1-49736437 +Ref: qandaitem-B-5-1-59736655 +Ref: qandaitem-B-5-1-69737095 +Ref: qandaitem-B-5-1-79737711 +Ref: qandaitem-B-5-1-89737847 +Ref: qandaitem-B-5-1-99737907 +Ref: qandaitem-B-5-1-109738201 +Ref: qandaitem-B-5-1-119738421 +Ref: qandaitem-B-5-1-129738631 +Ref: qandaitem-B-5-1-139739397 +Node: faqs-views9741537 +Ref: qandaitem-B-6-1-19742107 +Ref: qandaitem-B-6-1-29742195 +Ref: qandaitem-B-6-1-39742341 +Ref: qandaitem-B-6-1-49742671 +Ref: qandaitem-B-6-1-59742728 +Ref: qandaitem-B-6-1-69742788 +Node: faqs-information-schema9743070 +Ref: qandaitem-B-7-1-19743763 +Ref: qandaitem-B-7-1-29743886 +Ref: qandaitem-B-7-1-39744037 +Ref: qandaitem-B-7-1-49744430 +Ref: qandaitem-B-7-1-59744808 +Node: faqs-migration9745129 +Ref: qandaitem-B-8-1-19745534 +Ref: qandaitem-B-8-1-29746067 +Node: faqs-security9747046 +Ref: qandaitem-B-9-1-19747682 +Ref: qandaitem-B-9-1-29748250 +Ref: qandaitem-B-9-1-39748719 +Ref: qandaitem-B-9-1-49749106 +Ref: qandaitem-B-9-1-59749210 +Node: faqs-mysql-cluster9749314 +Ref: qandaitem-B-10-1-19753267 +Ref: qandaitem-B-10-1-29755609 +Ref: qandaitem-B-10-1-39756112 +Ref: qandaitem-B-10-1-49757425 +Ref: qandaitem-B-10-1-59758070 +Ref: qandaitem-B-10-1-69758810 +Ref: qandaitem-B-10-1-79761166 +Ref: qandaitem-B-10-1-89763594 +Ref: qandaitem-B-10-1-99764104 +Ref: qandaitem-B-10-1-109765048 +Ref: qandaitem-B-10-1-119768235 +Ref: qandaitem-B-10-1-129769332 +Ref: qandaitem-B-10-1-139769946 +Ref: qandaitem-B-10-1-149771754 +Ref: qandaitem-B-10-1-159772834 +Ref: qandaitem-B-10-1-169773647 +Ref: qandaitem-B-10-1-179774044 +Ref: qandaitem-B-10-1-189774330 +Ref: qandaitem-B-10-1-199775048 +Ref: qandaitem-B-10-1-209775542 +Ref: qandaitem-B-10-1-219775746 +Ref: qandaitem-B-10-1-229777619 +Ref: qandaitem-B-10-1-239779674 +Ref: qandaitem-B-10-1-249780576 +Ref: qandaitem-B-10-1-259781218 +Ref: qandaitem-B-10-1-269783024 +Ref: qandaitem-B-10-1-279784098 +Ref: qandaitem-B-10-1-289786679 +Ref: qandaitem-B-10-1-299786921 +Ref: qandaitem-B-10-1-309787397 +Ref: qandaitem-B-10-1-319787902 +Ref: qandaitem-B-10-1-329788604 +Ref: qandaitem-B-10-1-339788976 +Ref: qandaitem-B-10-1-349789407 +Ref: qandaitem-B-10-1-359789964 +Ref: qandaitem-B-10-1-369790239 +Ref: qandaitem-B-10-1-379790733 +Node: faqs-cjk9792379 +Ref: qandaitem-B-11-1-19794626 +Ref: qandaitem-B-11-1-29797553 +Ref: qandaitem-B-11-1-39803160 +Ref: qandaitem-B-11-1-49804167 +Ref: qandaitem-B-11-1-59807045 +Ref: qandaitem-B-11-1-69807362 +Ref: qandaitem-B-11-1-79807776 +Ref: qandaitem-B-11-1-89808013 +Ref: qandaitem-B-11-1-99808923 +Ref: qandaitem-B-11-1-109810677 +Ref: qandaitem-B-11-1-119813396 +Ref: qandaitem-B-11-1-129817876 +Ref: qandaitem-B-11-1-139819781 +Ref: qandaitem-B-11-1-149822633 +Ref: qandaitem-B-11-1-159825977 +Ref: qandaitem-B-11-1-169827922 +Ref: qandaitem-B-11-1-179829118 +Ref: qandaitem-B-11-1-189829590 +Ref: qandaitem-B-11-1-199830215 +Ref: qandaitem-B-11-1-209830535 +Node: faqs-connectors-apis9830992 +Node: faqs-replication9831509 +Ref: qandaitem-B-13-1-19833387 +Ref: qandaitem-B-13-1-29834226 +Ref: qandaitem-B-13-1-39834575 +Ref: qandaitem-B-13-1-49835740 +Ref: qandaitem-B-13-1-59836742 +Ref: qandaitem-B-13-1-69838126 +Ref: qandaitem-B-13-1-79838706 +Ref: qandaitem-B-13-1-89838928 +Ref: qandaitem-B-13-1-99841964 +Ref: qandaitem-B-13-1-109842688 +Ref: qandaitem-B-13-1-119843189 +Ref: qandaitem-B-13-1-129843306 +Ref: qandaitem-B-13-1-139843569 +Ref: qandaitem-B-13-1-149843723 +Node: faqs-mysql-drbd-heartbeat9843888 +Node: faqs-drbd9844657 +Ref: qandaitem-B-14-1-1-19845397 +Ref: qandaitem-B-14-1-1-29845854 +Ref: qandaitem-B-14-1-1-39846353 +Ref: qandaitem-B-14-1-1-49846426 +Ref: qandaitem-B-14-1-1-59846525 +Ref: qandaitem-B-14-1-1-69846697 +Node: drbd-linux-heartbeat9846838 +Ref: qandaitem-B-14-2-1-19847353 +Ref: qandaitem-B-14-2-1-29847447 +Ref: qandaitem-B-14-2-1-39847558 +Node: drbd-architecture9847742 +Ref: qandaitem-B-14-3-1-19848562 +Ref: qandaitem-B-14-3-1-29848731 +Ref: qandaitem-B-14-3-1-39848969 +Ref: qandaitem-B-14-3-1-49849414 +Ref: qandaitem-B-14-3-1-59849860 +Ref: qandaitem-B-14-3-1-69850023 +Ref: qandaitem-B-14-3-1-79850185 +Node: drbd-mysql-replication-scale9850630 +Ref: qandaitem-B-14-4-1-19851226 +Ref: qandaitem-B-14-4-1-29851698 +Ref: qandaitem-B-14-4-1-39852161 +Node: drbd-file-systems9853249 +Ref: qandaitem-B-14-5-1-19853639 +Node: drbd-lvm9853753 +Ref: qandaitem-B-14-6-1-19854262 +Ref: qandaitem-B-14-6-1-29854512 +Ref: qandaitem-B-14-6-1-39854829 +Node: drbd-virtualization9855042 +Ref: qandaitem-B-14-7-1-19855474 +Ref: qandaitem-B-14-7-1-29855586 +Node: drbd-security9855818 +Ref: qandaitem-B-14-8-1-19856272 +Ref: qandaitem-B-14-8-1-29856466 +Node: drbd-system-requirements9856607 +Ref: qandaitem-B-14-9-1-19857153 +Ref: qandaitem-B-14-9-1-29858016 +Ref: qandaitem-B-14-9-1-39858349 +Node: drbd-support-consulting9858545 +Ref: qandaitem-B-14-10-1-19859437 +Ref: qandaitem-B-14-10-1-29859783 +Ref: qandaitem-B-14-10-1-39860356 +Ref: qandaitem-B-14-10-1-49860613 +Ref: qandaitem-B-14-10-1-59860894 +Ref: qandaitem-B-14-10-1-69861026 +Node: error-handling9861242 +Node: error-sources9862111 +Node: error-types9863837 +Node: error-messages-server9865680 +Ref: error_er_hashchk9867967 +Ref: error_er_nisamchk9868044 +Ref: error_er_no9868122 +Ref: error_er_yes9868189 +Ref: error_er_cant_create_file9868258 +Ref: error_er_cant_create_table9868371 +Ref: error_er_cant_create_db9868486 +Ref: error_er_db_create_exists9868601 +Ref: error_er_db_drop_exists9868723 +Ref: error_er_db_drop_delete9868848 +Ref: error_er_db_drop_rmdir9868979 +Ref: error_er_cant_delete_file9869108 +Ref: error_er_cant_find_system_rec9869222 +Ref: error_er_cant_get_stat9869338 +Ref: error_er_cant_get_wd9869450 +Ref: error_er_cant_lock9869563 +Ref: error_er_cant_open_file9869662 +Ref: error_er_file_not_found9869772 +Ref: error_er_cant_read_dir9869882 +Ref: error_er_cant_set_wd9869992 +Ref: error_er_checkread9870102 +Ref: error_er_disk_full9870222 +Ref: error_er_dup_key9870351 +Ref: error_er_error_on_close9870461 +Ref: error_er_error_on_read9870572 +Ref: error_er_error_on_rename9870683 +Ref: error_er_error_on_write9870804 +Ref: error_er_file_used9870916 +Ref: error_er_filsort_abort9871017 +Ref: error_er_form_not_found9871105 +Ref: error_er_get_errno9871214 +Ref: error_er_illegal_ha9871318 +Ref: error_er_key_not_found9871445 +Ref: error_er_not_form_file9871546 +Ref: error_er_not_keyfile9871657 +Ref: error_er_old_keyfile9871782 +Ref: error_er_open_as_readonly9871895 +Ref: error_er_outofmemory9871997 +Ref: error_er_out_of_sortmemory9872137 +Ref: error_er_unexpected_eof9872285 +Ref: error_er_con_count_error9872417 +Ref: error_er_out_of_resources9872515 +Ref: error_er_bad_host_error9872786 +Ref: error_er_handshake_error9872898 +Ref: error_er_dbaccess_denied_error9872989 +Ref: error_er_access_denied_error9873122 +Ref: error_er_no_db_error9873257 +Ref: error_er_unknown_com_error9873351 +Ref: error_er_bad_null_error9873446 +Ref: error_er_bad_db_error9873549 +Ref: error_er_table_exists_error9873645 +Ref: error_er_bad_table_error9873751 +Ref: error_er_non_uniq_error9873847 +Ref: error_er_server_shutdown9873954 +Ref: error_er_bad_field_error9874059 +Ref: error_er_wrong_field_with_group9874164 +Ref: error_er_wrong_group_field9874271 +Ref: error_er_wrong_sum_select9874370 +Ref: error_er_wrong_value_count9874506 +Ref: error_er_too_long_ident9874624 +Ref: error_er_dup_fieldname9874733 +Ref: error_er_dup_keyname9874835 +Ref: error_er_dup_entry9874932 +Ref: error_er_wrong_field_spec9875035 +Ref: error_er_parse_error9875156 +Ref: error_er_empty_query9875253 +Ref: error_er_nonuniq_table9875342 +Ref: error_er_invalid_default9875446 +Ref: error_er_multiple_pri_key9875554 +Ref: error_er_too_many_keys9875661 +Ref: error_er_too_many_key_parts9875781 +Ref: error_er_too_long_key9875912 +Ref: error_er_key_column_does_not_exits9876041 +Ref: error_er_blob_used_as_key9876167 +Ref: error_er_too_big_fieldlength9876327 +Ref: error_er_wrong_auto_key9876489 +Ref: error_er_ready9876664 +Ref: error_er_normal_shutdown9876799 +Ref: error_er_got_signal9876896 +Ref: error_er_shutdown_complete9876997 +Ref: error_er_forcing_close9877098 +Ref: error_er_ipsock_error9877216 +Ref: error_er_no_such_index9877313 +Ref: error_er_wrong_field_terminators9877471 +Ref: error_er_blobs_and_no_terminated9877628 +Ref: error_er_textfile_not_readable9877794 +Ref: error_er_file_exists_error9877952 +Ref: error_er_load_info9878056 +Ref: error_er_alter_info9878180 +Ref: error_er_wrong_sub_key9878281 +Ref: error_er_cant_remove_all_fields9878524 +Ref: error_er_cant_drop_field_or_key9878683 +Ref: error_er_insert_info9878813 +Ref: error_er_update_table_used9878929 +Ref: error_er_no_such_thread9879075 +Ref: error_er_kill_denied_error9879174 +Ref: error_er_no_tables_used9879285 +Ref: error_er_too_big_set9879376 +Ref: error_er_no_unique_logfile9879488 +Ref: error_er_table_not_locked_for_write9879615 +Ref: error_er_table_not_locked9879768 +Ref: error_er_blob_cant_have_default9879889 +Ref: error_er_wrong_db_name9880022 +Ref: error_er_wrong_table_name9880126 +Ref: error_er_too_big_select9880230 +Ref: error_er_unknown_error9880463 +Ref: error_er_unknown_procedure9880552 +Ref: error_er_wrong_paramcount_to_procedure9880654 +Ref: error_er_wrong_parameters_to_procedure9880794 +Ref: error_er_unknown_table9880929 +Ref: error_er_field_specified_twice9881029 +Ref: error_er_invalid_group_func_use9881140 +Ref: error_er_unsupported_extension9881254 +Ref: error_er_table_must_have_columns9881412 +Ref: error_er_record_file_full9881533 +Ref: error_er_unknown_character_set9881634 +Ref: error_er_too_many_tables9881745 +Ref: error_er_too_many_fields9881878 +Ref: error_er_too_big_rowsize9881972 +Ref: error_er_stack_overrun9882202 +Ref: error_er_wrong_outer_join9882395 +Ref: error_er_null_column_in_index9882543 +Ref: error_er_cant_find_udf9882745 +Ref: error_er_cant_initialize_udf9882845 +Ref: error_er_udf_no_paths9882961 +Ref: error_er_udf_exists9883071 +Ref: error_er_cant_open_library9883172 +Ref: error_er_cant_find_dl_entry9883297 +Ref: error_er_function_not_defined9883411 +Ref: error_er_host_is_blocked9883522 +Ref: error_er_host_not_privileged9883698 +Ref: error_er_password_anonymous_user9883836 +Ref: error_er_password_not_allowed9884023 +Ref: error_er_password_no_match9884216 +Ref: error_er_update_info9884341 +Ref: error_er_cant_create_thread9884459 +Ref: error_er_wrong_value_count_on_row9884686 +Ref: error_er_cant_reopen_table9884822 +Ref: error_er_invalid_use_of_null9884926 +Ref: error_er_regexp_error9885033 +Ref: error_er_mix_of_group_func_and_fields9885134 +Ref: error_er_nonexisting_grant9885348 +Ref: error_er_tableaccess_denied_error9885485 +Ref: error_er_columnaccess_denied_error9885622 +Ref: error_er_illegal_grant_for_table9885780 +Ref: error_er_grant_wrong_host_or_user9885962 +Ref: error_er_no_such_table9886095 +Ref: error_er_nonexisting_table_grant9886198 +Ref: error_er_not_allowed_command9886360 +Ref: error_er_syntax_error9886497 +Ref: error_er_delayed_cant_change_lock9886710 +Ref: error_er_too_many_delayed_threads9886864 +Ref: error_er_aborting_connection9886982 +Ref: error_er_net_packet_too_large9887114 +Ref: error_er_net_read_error_from_pipe9887248 +Ref: error_er_net_fcntl_error9887376 +Ref: error_er_net_packets_out_of_order9887479 +Ref: error_er_net_uncompress_error9887590 +Ref: error_er_net_read_error9887713 +Ref: error_er_net_read_interrupted9887832 +Ref: error_er_net_error_on_write9887956 +Ref: error_er_net_write_interrupted9888079 +Ref: error_er_too_long_string9888204 +Ref: error_er_table_cant_handle_blob9888337 +Ref: error_er_table_cant_handle_auto_increment9888475 +Ref: error_er_delayed_insert_table_locked9888633 +Ref: error_er_wrong_column_name9888810 +Ref: error_er_wrong_key_column9888916 +Ref: error_er_wrong_mrg_table9889042 +Ref: error_er_dup_unique9889224 +Ref: error_er_blob_key_without_length9889353 +Ref: error_er_primary_cant_have_null9889512 +Ref: error_er_too_many_rows9889692 +Ref: error_er_requires_primary_key9889805 +Ref: error_er_no_raid_compiled9889926 +Ref: error_er_update_without_key_in_safe_mode9890060 +Ref: error_er_key_does_not_exits9890265 +Ref: error_er_check_no_such_table9890382 +Ref: error_er_check_not_implemented9890480 +Ref: error_er_cant_do_this_during_an_transaction9890615 +Ref: error_er_error_during_commit9890782 +Ref: error_er_error_during_rollback9890890 +Ref: error_er_error_during_flush_logs9891002 +Ref: error_er_error_during_checkpoint9891118 +Ref: error_er_new_aborting_connection9891234 +Ref: error_er_dump_not_implemented9891386 +Ref: error_er_flush_master_binlog_closed9891541 +Ref: error_er_index_rebuild9891664 +Ref: error_er_master9891788 +Ref: error_er_master_net_read9891880 +Ref: error_er_master_net_write9891987 +Ref: error_er_ft_matching_key_not_found9892093 +Ref: error_er_lock_or_active_transaction9892231 +Ref: error_er_unknown_system_variable9892419 +Ref: error_er_crashed_on_usage9892533 +Ref: error_er_crashed_on_repair9892666 +Ref: error_er_warning_not_complete_rollback9892818 +Ref: error_er_trans_cache_full9892981 +Ref: error_er_slave_must_stop9893202 +Ref: error_er_slave_not_running9893362 +Ref: error_er_bad_slave9893522 +Ref: error_er_master_info9893681 +Ref: error_er_slave_thread9893859 +Ref: error_er_too_many_user_connections9893987 +Ref: error_er_set_constants_only9894151 +Ref: error_er_lock_wait_timeout9894278 +Ref: error_er_lock_table_full9894412 +Ref: error_er_read_only_transaction9894543 +Ref: error_er_drop_db_with_read_lock9894701 +Ref: error_er_create_db_with_read_lock9894857 +Ref: error_er_wrong_arguments9895017 +Ref: error_er_no_permission_to_create_user9895120 +Ref: error_er_union_tables_in_different_dir9895260 +Ref: error_er_lock_deadlock9895435 +Ref: error_er_table_cant_handle_ft9895582 +Ref: error_er_cannot_add_foreign9895717 +Ref: error_er_no_referenced_row9895831 +Ref: error_er_row_is_referenced9895980 +Ref: error_er_connect_to_master9896133 +Ref: error_er_query_on_master9896243 +Ref: error_er_error_when_executing_command9896354 +Ref: error_er_wrong_usage9896485 +Ref: error_er_wrong_number_of_columns_in_select9896587 +Ref: error_er_cant_update_with_readlock9896754 +Ref: error_er_mixing_not_allowed9896911 +Ref: error_er_dup_argument9897061 +Ref: error_er_user_limit_reached9897171 +Ref: error_er_specific_access_denied_error9897318 +Ref: error_er_local_variable9897499 +Ref: error_er_global_variable9897650 +Ref: error_er_no_default9897801 +Ref: error_er_wrong_value_for_var9897916 +Ref: error_er_wrong_type_for_var9898045 +Ref: error_er_var_cant_be_read9898166 +Ref: error_er_cant_use_option_here9898284 +Ref: error_er_not_supported_yet9898400 +Ref: error_er_master_fatal_error_reading_binlog9898526 +Ref: error_er_slave_ignored_table9898702 +Ref: error_er_incorrect_global_local_var9898858 +Ref: error_er_wrong_fk_def9898977 +Ref: error_er_key_ref_do_not_match_table_ref9899097 +Ref: error_er_operand_columns9899240 +Ref: error_er_subquery_no_1_row9899353 +Ref: error_er_unknown_stmt_handler9899465 +Ref: error_er_corrupt_help_db9899601 +Ref: error_er_cyclic_reference9899721 +Ref: error_er_auto_convert9899830 +Ref: error_er_illegal_reference9899941 +Ref: error_er_derived_must_have_alias9900054 +Ref: error_er_select_reduced9900183 +Ref: error_er_tablename_not_allowed_here9900301 +Ref: error_er_not_supported_auth_mode9900445 +Ref: error_er_spatial_cant_have_null9900636 +Ref: error_er_collation_charset_mismatch9900766 +Ref: error_er_slave_was_running9900905 +Ref: error_er_slave_was_not_running9901009 +Ref: error_er_too_big_for_uncompress9901123 +Ref: error_er_zlib_z_mem_error9901323 +Ref: error_er_zlib_z_buf_error9901425 +Ref: error_er_zlib_z_data_error9901605 +Ref: error_er_cut_value_group_concat9901711 +Ref: error_er_warn_too_few_records9901828 +Ref: error_er_warn_too_many_records9901955 +Ref: error_er_warn_null_to_notnull9902119 +Ref: error_er_warn_data_out_of_range9902284 +Ref: error_warn_data_truncated9902414 +Ref: error_er_warn_using_other_handler9902534 +Ref: error_er_cant_aggregate_2collations9902659 +Ref: error_er_drop_user9902817 +Ref: error_er_revoke_grants9902935 +Ref: error_er_cant_aggregate_3collations9903082 +Ref: error_er_cant_aggregate_ncollations9903246 +Ref: error_er_variable_is_not_struct9903379 +Ref: error_er_unknown_collation9903548 +Ref: error_er_slave_ignored_ssl_params9903651 +Ref: error_er_server_is_in_secure_auth_mode9903908 +Ref: error_er_warn_field_resolved9904147 +Ref: error_er_bad_slave_until_cond9904306 +Ref: error_er_missing_skip_slave9904464 +Ref: error_er_until_cond_ignored9904738 +Ref: error_er_wrong_name_for_index9904884 +Ref: error_er_wrong_name_for_catalog9904992 +Ref: error_er_warn_qc_resize9905104 +Ref: error_er_bad_ft_column9905249 +Ref: error_er_unknown_key_cache9905369 +Ref: error_er_warn_hostname_wont_work9905471 +Ref: error_er_unknown_storage_engine9905669 +Ref: error_er_warn_deprecated_syntax9905781 +Ref: error_er_non_updatable_table9905952 +Ref: error_er_feature_disabled9906080 +Ref: error_er_option_prevents_statement9906243 +Ref: error_er_duplicated_value_in_type9906418 +Ref: error_er_truncated_wrong_value9906548 +Ref: error_er_too_much_auto_timestamp_cols9906666 +Ref: error_er_invalid_on_update9906892 +Ref: error_er_unsupported_ps9907012 +Ref: error_er_get_errmsg9907162 +Ref: error_er_get_temporary_errmsg9907260 +Ref: error_er_unknown_time_zone9907378 +Ref: error_er_warn_invalid_timestamp9907494 +Ref: error_er_invalid_character_string9907628 +Ref: error_er_warn_allowed_packet_overflowed9907748 +Ref: error_er_conflicting_declarations9907918 +Ref: error_er_sp_no_recursive_create9908048 +Ref: error_er_sp_already_exists9908185 +Ref: error_er_sp_does_not_exist9908285 +Ref: error_er_sp_drop_failed9908385 +Ref: error_er_sp_store_failed9908482 +Ref: error_er_sp_lilabel_mismatch9908582 +Ref: error_er_sp_label_redefine9908693 +Ref: error_er_sp_label_mismatch9908792 +Ref: error_er_sp_uninit_var9908898 +Ref: error_er_sp_badselect9909012 +Ref: error_er_sp_badreturn9909151 +Ref: error_er_sp_badstatement9909262 +Ref: error_er_update_log_deprecated_ignored9909378 +Ref: error_er_update_log_deprecated_translated9909624 +Ref: error_er_query_interrupted9909895 +Ref: error_er_sp_wrong_no_of_args9910006 +Ref: error_er_sp_cond_mismatch9910153 +Ref: error_er_sp_noreturn9910255 +Ref: error_er_sp_noreturnend9910359 +Ref: error_er_sp_bad_cursor_query9910468 +Ref: error_er_sp_bad_cursor_select9910583 +Ref: error_er_sp_cursor_mismatch9910698 +Ref: error_er_sp_cursor_already_open9910799 +Ref: error_er_sp_cursor_not_open9910906 +Ref: error_er_sp_undeclared_var9911005 +Ref: error_er_sp_wrong_no_of_fetch_args9911108 +Ref: error_er_sp_fetch_no_data9911231 +Ref: error_er_sp_dup_param9911361 +Ref: error_er_sp_dup_var9911459 +Ref: error_er_sp_dup_cond9911554 +Ref: error_er_sp_dup_curs9911651 +Ref: error_er_sp_cant_alter9911745 +Ref: error_er_sp_subselect_nyi9911842 +Ref: error_er_stmt_not_allowed_in_sf_or_trg9911949 +Ref: error_er_sp_varcond_after_curshndlr9912093 +Ref: error_er_sp_cursor_after_handler9912256 +Ref: error_er_sp_case_not_found9912386 +Ref: error_er_fparser_too_big_file9912499 +Ref: error_er_fparser_bad_header9912616 +Ref: error_er_fparser_eof_in_comment9912736 +Ref: error_er_fparser_error_in_parameter9912870 +Ref: error_er_fparser_eof_in_unknown_parameter9913006 +Ref: error_er_view_no_explain9913171 +Ref: error_er_frm_unknown_type9913325 +Ref: error_er_wrong_object9913449 +Ref: error_er_nonupdateable_column9913541 +Ref: error_er_view_select_derived9913652 +Ref: error_er_view_select_clause9913786 +Ref: error_er_view_select_variable9913903 +Ref: error_er_view_select_tmptable9914032 +Ref: error_er_view_wrong_list9914161 +Ref: error_er_warn_view_merge9914308 +Ref: error_er_warn_view_without_key9914468 +Ref: error_er_view_invalid9914628 +Ref: error_er_sp_no_drop_sp9914827 +Ref: error_er_sp_goto_in_hndlr9914967 +Ref: error_er_trg_already_exists9915095 +Ref: error_er_trg_does_not_exist9915198 +Ref: error_er_trg_on_view_or_temp_table9915301 +Ref: error_er_trg_cant_change_row9915430 +Ref: error_er_trg_no_such_row_in_trg9915558 +Ref: error_er_no_default_for_field9915675 +Ref: error_er_division_by_zero9915797 +Ref: error_er_truncated_wrong_value_for_field9915889 +Ref: error_er_illegal_value_for_type9916039 +Ref: error_er_view_nonupd_check9916166 +Ref: error_er_view_check_failed9916288 +Ref: error_er_procaccess_denied_error9916395 +Ref: error_er_relay_log_fail9916533 +Ref: error_er_passwd_length9916643 +Ref: error_er_unknown_target_binlog9916772 +Ref: error_er_io_err_log_index_read9916892 +Ref: error_er_binlog_purge_prohibited9917008 +Ref: error_er_fseek_fail9917143 +Ref: error_er_binlog_purge_fatal_err9917233 +Ref: error_er_log_in_use9917346 +Ref: error_er_log_purge_unknown_err9917460 +Ref: error_er_relay_log_init9917574 +Ref: error_er_no_binary_logging9917693 +Ref: error_er_reserved_syntax9917805 +Ref: error_er_wsas_failed9917957 +Ref: error_er_diff_groups_proc9918048 +Ref: error_er_no_group_for_proc9918176 +Ref: error_er_order_with_proc9918300 +Ref: error_er_logging_prohibit_changing_of9918420 +Ref: error_er_no_file_mapping9918588 +Ref: error_er_wrong_magic9918695 +Ref: error_er_ps_many_param9918786 +Ref: error_er_key_part_09918911 +Ref: error_er_view_checksum9919016 +Ref: error_er_view_multiupdate9919117 +Ref: error_er_view_no_insert_field_list9919268 +Ref: error_er_view_delete_merge_view9919413 +Ref: error_er_cannot_user9919535 +Ref: error_er_xaer_nota9919635 +Ref: error_er_xaer_inval9919729 +Ref: error_er_xaer_rmfail9919856 +Ref: error_er_xaer_outside9920021 +Ref: error_er_xaer_rmerr9920154 +Ref: error_er_xa_rbrollback9920324 +Ref: error_er_nonexisting_proc_grant9920449 +Ref: error_er_proc_auto_grant_fail9920612 +Ref: error_er_proc_auto_revoke_fail9920747 +Ref: error_er_data_too_long9920881 +Ref: error_er_sp_bad_sqlstate9920997 +Ref: error_er_startup9921093 +Ref: error_er_load_from_fixed_size_rows_to_var9921233 +Ref: error_er_cant_create_user_with_grant9921397 +Ref: error_er_wrong_value_for_type9921534 +Ref: error_er_table_def_changed9921657 +Ref: error_er_sp_dup_handler9921791 +Ref: error_er_sp_not_var_arg9921912 +Ref: error_er_sp_no_retset9922092 +Ref: error_er_cant_create_geometry_object9922211 +Ref: error_er_failed_routine_break_binlog9922373 +Ref: error_er_binlog_unsafe_routine9922667 +Ref: error_er_binlog_create_routine_need_super9922962 +Ref: error_er_exec_stmt_with_open_cursor9923218 +Ref: error_er_stmt_has_no_open_cursor9923433 +Ref: error_er_commit_not_allowed_in_sf_or_trg9923558 +Ref: error_er_no_default_for_view_field9923735 +Ref: error_er_sp_no_recursion9923895 +Ref: error_er_too_big_scale9924029 +Ref: error_er_too_big_precision9924169 +Ref: error_er_m_bigger_than_d9924317 +Ref: error_er_wrong_lock_of_system_table9924474 +Ref: error_er_connect_to_foreign_data_source9924648 +Ref: error_er_query_on_foreign_data_source9924790 +Ref: error_er_foreign_data_source_doesnt_exist9924981 +Ref: error_er_foreign_data_string_invalid_cant_create9925175 +Ref: error_er_foreign_data_string_invalid9925384 +Ref: error_er_cant_create_federated_table9925546 +Ref: error_er_trg_in_wrong_schema9925692 +Ref: error_er_stack_overrun_need_more9925797 +Ref: error_er_too_long_body9926028 +Ref: error_er_warn_cant_drop_default_keycache9926137 +Ref: error_er_too_big_displaywidth9926264 +Ref: error_er_xaer_dupid9926401 +Ref: error_er_datetime_function_overflow9926508 +Ref: error_er_cant_update_used_table_in_sf_or_trg9926633 +Ref: error_er_view_prevent_update9926880 +Ref: error_er_ps_no_recursion9927032 +Ref: error_er_sp_cant_set_autocommit9927285 +Ref: error_er_malformed_definer9927438 +Ref: error_er_view_frm_no_user9927548 +Ref: error_er_view_other_user9927752 +Ref: error_er_no_such_user9927904 +Ref: error_er_forbid_schema_change9928037 +Ref: error_er_row_is_referenced_29928169 +Ref: error_er_no_referenced_row_29928329 +Ref: error_er_sp_bad_var_shadow9928485 +Ref: error_er_trg_no_definer9928616 +Ref: error_er_old_file_format9928885 +Ref: error_er_sp_recursion_limit9929031 +Ref: error_er_sp_proc_table_corrupt9929211 +Ref: error_er_sp_wrong_name9929408 +Ref: error_er_table_needs_upgrade9929511 +Ref: error_er_sp_no_aggregate9929677 +Ref: error_er_max_prepared_stmt_count_reached9929802 +Ref: error_er_view_recursive9929984 +Ref: error_er_non_grouping_field_used9930094 +Ref: error_er_table_cant_handle_spkeys9930224 +Ref: error_er_no_triggers_on_system_schema9930362 +Ref: error_er_removed_spaces9930502 +Ref: error_er_autoinc_read_failed9930620 +Ref: error_er_username9930757 +Ref: error_er_hostname9930837 +Ref: error_er_wrong_string_length9930917 +Ref: error_er_non_insertable_table9931064 +Ref: error_er_admin_wrong_mrg_table9931199 +Ref: error_er_too_high_level_of_nesting_for_select9931360 +Ref: error_er_name_becomes_empty9931500 +Ref: error_er_ambiguous_field_term9931603 +Ref: error_er_foreign_server_exists9931809 +Ref: error_er_foreign_server_doesnt_exist9931962 +Ref: error_er_illegal_ha_create_option9932146 +Ref: error_er_partition_requires_values_error9932303 +Ref: error_er_partition_wrong_values_error9932488 +Ref: error_er_partition_maxvalue_error9932651 +Ref: error_er_partition_subpartition_error9932792 +Ref: error_er_partition_subpart_mix_error9932940 +Ref: error_er_partition_wrong_no_part_error9933098 +Ref: error_er_partition_wrong_no_subpart_error9933266 +Ref: error_er_wrong_expr_in_partition_func_error9933440 +Ref: error_er_no_const_expr_in_range_or_list_error9933643 +Ref: error_er_field_not_found_part_error9933795 +Ref: error_er_list_of_fields_only_in_hash_error9933954 +Ref: error_er_inconsistent_partition_info_error9934103 +Ref: error_er_partition_func_not_allowed_error9934304 +Ref: error_er_partitions_must_be_defined_error9934442 +Ref: error_er_range_not_increasing_error9934590 +Ref: error_er_inconsistent_type_of_functions_error9934753 +Ref: error_er_multiple_def_const_in_list_part_error9934912 +Ref: error_er_partition_entry_error9935074 +Ref: error_er_mix_handler_error9935207 +Ref: error_er_partition_not_defined_error9935369 +Ref: error_er_too_many_partitions_error9935523 +Ref: error_er_subpartition_error9935669 +Ref: error_er_cant_create_handler_file9935852 +Ref: error_er_blob_field_in_part_func_error9935977 +Ref: error_er_unique_key_need_all_fields_in_pf9936123 +Ref: error_er_no_parts_error9936294 +Ref: error_er_partition_mgmt_on_nonpartitioned9936411 +Ref: error_er_foreign_key_on_partitioned9936579 +Ref: error_er_drop_partition_non_existent9936745 +Ref: error_er_drop_last_partition9936868 +Ref: error_er_coalesce_only_on_hash_partition9937002 +Ref: error_er_reorg_hash_only_on_same_no9937159 +Ref: error_er_reorg_no_param_error9937343 +Ref: error_er_only_on_range_list_partition9937536 +Ref: error_er_add_partition_subpart_error9937686 +Ref: error_er_add_partition_no_new_partition9937842 +Ref: error_er_coalesce_partition_no_partition9937976 +Ref: error_er_reorg_partition_not_exist9938115 +Ref: error_er_same_name_partition9938258 +Ref: error_er_no_binlog_error9938367 +Ref: error_er_consecutive_reorg_partitions9938497 +Ref: error_er_reorg_outside_range9938669 +Ref: error_er_partition_function_failure9938869 +Ref: error_er_part_state_error9939028 +Ref: error_er_limited_part_range9939164 +Ref: error_er_plugin_is_not_loaded9939299 +Ref: error_er_wrong_value9939407 +Ref: error_er_no_partition_for_given_value9939505 +Ref: error_er_filegroup_option_only_once9939636 +Ref: error_er_create_filegroup_failed9939771 +Ref: error_er_drop_filegroup_failed9939876 +Ref: error_er_tablespace_auto_extend_error9939977 +Ref: error_er_wrong_size_number9940126 +Ref: error_er_size_overflow_error9940287 +Ref: error_er_alter_filegroup_failed9940461 +Ref: error_er_binlog_row_logging_failed9940565 +Ref: error_er_binlog_row_wrong_table_def9940703 +Ref: error_er_binlog_row_rbr_to_sbr9940847 +Ref: error_er_event_already_exists9941059 +Ref: error_er_event_store_failed9941167 +Ref: error_er_event_does_not_exist9941313 +Ref: error_er_event_cant_alter9941414 +Ref: error_er_event_drop_failed9941519 +Ref: error_er_event_interval_not_positive_or_too_big9941616 +Ref: error_er_event_ends_before_starts9941764 +Ref: error_er_event_exec_time_in_the_past9941890 +Ref: error_er_event_open_table_failed9942045 +Ref: error_er_event_neither_m_expr_nor_m_at9942157 +Ref: error_er_col_count_doesnt_match_corrupted9942285 +Ref: error_er_cannot_load_from_table9942479 +Ref: error_er_event_cannot_delete9942622 +Ref: error_er_event_compile_error9942747 +Ref: error_er_event_same_name9942869 +Ref: error_er_event_data_too_long9942974 +Ref: error_er_drop_index_fk9943085 +Ref: error_er_warn_deprecated_syntax_with_ver9943219 +Ref: error_er_cant_write_lock_log_table9943407 +Ref: error_er_cant_lock_log_table9943562 +Ref: error_er_foreign_duplicate_key9943680 +Ref: error_er_col_count_doesnt_match_please_update9943869 +Ref: error_er_temp_table_prevents_switch_out_of_rbr9944123 +Ref: error_er_stored_function_prevents_switch_binlog_format9944328 +Ref: error_er_ndb_cant_switch_binlog_format9944521 +Ref: error_er_partition_no_temporary9944704 +Ref: error_er_partition_const_domain_error9944834 +Ref: error_er_partition_function_is_not_allowed9944984 +Ref: error_er_ddl_log_error9945123 +Ref: error_er_null_in_values_less_than9945215 +Ref: error_er_wrong_partition_name9945351 +Ref: error_er_cant_change_tx_isolation9945458 +Ref: error_er_dup_entry_autoincrement_case9945629 +Ref: error_er_event_modify_queue_error9945824 +Ref: error_er_event_set_var_error9945938 +Ref: error_er_partition_merge_error9946087 +Ref: error_er_cant_activate_log9946214 +Ref: error_er_rbr_not_available9946318 +Ref: error_er_base64_decode_error9946449 +Ref: error_er_event_recursion_forbidden9946563 +Ref: error_er_events_db_error9946723 +Ref: error_er_only_integers_allowed9946901 +Ref: error_er_unsuported_log_engine9947021 +Ref: error_er_bad_log_statement9947155 +Ref: error_er_cant_rename_log_table9947284 +Ref: error_er_wrong_paramcount_to_native_fct9947533 +Ref: error_er_wrong_parameters_to_native_fct9947697 +Ref: error_er_wrong_parameters_to_stored_fct9947851 +Ref: error_er_native_fct_name_collision9948005 +Ref: error_er_dup_entry_with_key_name9948150 +Ref: error_er_binlog_purge_emfile9948269 +Ref: error_er_event_cannot_create_in_the_past9948406 +Ref: error_er_event_cannot_alter_in_the_past9948634 +Ref: error_er_slave_incident9948861 +Ref: error_er_no_partition_for_given_value_silent9948988 +Ref: error_er_binlog_unsafe_statement9949138 +Ref: error_er_slave_fatal_error9949330 +Ref: error_er_slave_relay_log_read_failure9949425 +Ref: error_er_slave_relay_log_write_failure9949547 +Ref: error_er_slave_create_event_failure9949671 +Ref: error_er_slave_master_com_failure9949779 +Ref: error_er_binlog_logging_impossible9949894 +Ref: error_er_view_no_creation_ctx9950022 +Ref: error_er_view_invalid_creation_ctx9950143 +Ref: error_er_sr_invalid_creation_ctx9950276 +Ref: error_er_trg_corrupted_file9950417 +Ref: error_er_trg_no_creation_ctx9950536 +Ref: error_er_trg_invalid_creation_ctx9950671 +Ref: error_er_event_invalid_creation_ctx9950812 +Ref: error_er_trg_cant_open_table9950947 +Ref: error_er_cant_create_sroutine9951068 +Ref: error_er_never_used9951200 +Ref: error_er_no_format_description_event_before_binlog_statement9951310 +Ref: error_er_slave_corrupt_event9951526 +Ref: error_er_load_data_invalid_column9951648 +Ref: error_er_log_purge_no_file9951777 +Ref: error_er_xa_rbtimeout9951890 +Ref: error_er_xa_rbdeadlock9952033 +Ref: error_er_need_reprepare9952186 +Ref: error_er_delayed_not_supported9952305 +Ref: error_warn_no_master_info9952432 +Ref: error_warn_option_ignored9952551 +Ref: error_warn_plugin_delete_builtin9952649 +Ref: error_warn_plugin_busy9952769 +Ref: error_er_variable_is_readonly9952895 +Ref: error_er_warn_engine_transaction_rollback9953044 +Ref: error_er_slave_heartbeat_failure9953258 +Ref: error_er_slave_heartbeat_value_out_of_range9953382 +Ref: error_er_ndb_replication_schema_error9953597 +Ref: error_er_conflict_fn_parse_error9953748 +Ref: error_er_exceptions_write_error9953881 +Ref: error_er_too_long_table_comment9954012 +Ref: error_er_too_long_field_comment9954143 +Ref: error_er_func_inexistent_name_collision9954274 +Ref: error_er_database_name9954485 +Ref: error_er_table_name9954569 +Ref: error_er_partition_name9954647 +Ref: error_er_subpartition_name9954733 +Ref: error_er_temporary_name9954825 +Ref: error_er_renamed_name9954911 +Ref: error_er_too_many_concurrent_trxs9954993 +Ref: error_warn_non_ascii_separator_not_implemented9955119 +Ref: error_er_debug_sync_timeout9955277 +Ref: error_er_debug_sync_hit_limit9955389 +Ref: error_er_dup_signal_set9955506 +Ref: error_er_signal_warn9955624 +Ref: error_er_signal_not_found9955738 +Ref: error_er_signal_exception9955859 +Ref: error_er_resignal_without_active_handler9955980 +Ref: error_er_signal_bad_condition_type9956111 +Ref: error_warn_cond_item_truncated9956266 +Ref: error_er_cond_item_too_long9956388 +Ref: error_er_unknown_locale9956506 +Ref: error_er_slave_ignore_server_ids9956603 +Ref: error_er_query_cache_disabled9956784 +Ref: error_er_same_name_partition_field9956952 +Ref: error_er_partition_column_list_error9957075 +Ref: error_er_wrong_type_column_value_error9957220 +Ref: error_er_too_many_partition_func_fields_error9957358 +Ref: error_er_maxvalue_in_values_in9957485 +Ref: error_er_too_many_values_error9957610 +Ref: error_er_row_single_partition_field_error9957763 +Ref: error_er_field_type_not_allowed_as_partition_field9957945 +Ref: error_er_partition_fields_too_long9958124 +Ref: error_er_binlog_row_engine_and_stmt_engine9958268 +Ref: error_er_binlog_row_mode_and_stmt_engine9958517 +Ref: error_er_binlog_unsafe_and_stmt_engine9958792 +Ref: error_er_binlog_row_injection_and_stmt_engine9959069 +Ref: error_er_binlog_stmt_mode_and_row_engine9959356 +Ref: error_er_binlog_row_injection_and_stmt_mode9959633 +Ref: error_er_binlog_multiple_engines_and_self_logging_engine9959863 +Ref: error_er_binlog_unsafe_limit9960127 +Ref: error_er_binlog_unsafe_insert_delayed9960343 +Ref: error_er_binlog_unsafe_system_table9960581 +Ref: error_er_binlog_unsafe_autoinc_columns9960843 +Ref: error_er_binlog_unsafe_udf9961107 +Ref: error_er_binlog_unsafe_system_variable9961283 +Ref: error_er_binlog_unsafe_system_function9961484 +Ref: error_er_binlog_unsafe_nontrans_after_trans9961687 +Ref: error_er_message_and_statement9961931 +Ref: error_er_slave_conversion_failed9962031 +Ref: error_er_slave_cant_create_conversion9962196 +Ref: error_er_inside_transaction_prevents_switch_binlog_format9962339 +Ref: error_er_path_length9962513 +Ref: error_er_warn_deprecated_syntax_no_replacement9962625 +Ref: error_er_wrong_native_table_structure9962797 +Ref: error_er_wrong_perfschema_usage9962939 +Ref: error_er_warn_i_s_skipped_table9963057 +Ref: error_er_inside_transaction_prevents_switch_binlog_direct9963241 +Ref: error_er_stored_function_prevents_switch_binlog_direct9963451 +Ref: error_er_spatial_must_have_geom_col9963641 +Ref: error_er_too_long_index_comment9963788 +Ref: error_er_lock_aborted9963919 +Ref: error_er_data_out_of_range9964052 +Ref: error_er_wrong_spvar_type_in_limit9964164 +Ref: error_er_binlog_unsafe_multiple_engines_and_self_logging_engine9964306 +Ref: error_er_binlog_unsafe_mixed_statement9964507 +Ref: error_er_inside_transaction_prevents_switch_sql_log_bin9964722 +Ref: error_er_stored_function_prevents_switch_sql_log_bin9964892 +Ref: error_er_failed_read_from_par_file9965073 +Ref: error_er_values_is_not_int_type_error9965194 +Ref: error_er_access_denied_no_password_error9965340 +Ref: error_er_set_password_auth_plugin9965471 +Ref: error_er_grant_plugin_user_exists9965632 +Ref: error_er_truncate_illegal_fk9965799 +Ref: error_er_plugin_is_permanent9965953 +Ref: error_er_slave_heartbeat_value_out_of_range_min9966099 +Ref: error_er_slave_heartbeat_value_out_of_range_max9966368 +Ref: error_er_stmt_cache_full9966643 +Ref: error_er_multi_update_key_conflict9966861 +Ref: error_er_table_needs_rebuild9967051 +Ref: error_warn_option_below_limit9967222 +Ref: error_er_index_column_too_long9967363 +Ref: error_er_error_in_trigger_body9967518 +Ref: error_er_error_in_unknown_trigger_body9967645 +Ref: error_er_index_corrupt9967788 +Ref: error_er_undo_record_too_big9967885 +Ref: error_er_binlog_unsafe_insert_ignore_select9967994 +Ref: error_er_binlog_unsafe_insert_select_update9968319 +Ref: error_er_binlog_unsafe_replace_select9968664 +Ref: error_er_binlog_unsafe_create_ignore_select9968978 +Ref: error_er_binlog_unsafe_create_replace_select9969303 +Ref: error_er_binlog_unsafe_update_ignore9969631 +Ref: error_er_plugin_no_uninstall9969913 +Ref: error_er_plugin_no_install9970100 +Ref: error_er_binlog_unsafe_write_autoinc_select9970281 +Ref: error_er_binlog_unsafe_create_select_autoinc9970672 +Node: error-messages-client9971042 +Ref: error_cr_unknown_error9971802 +Ref: error_cr_socket_create_error9971879 +Ref: error_cr_connection_error9971972 +Ref: error_cr_conn_host_error9972098 +Ref: error_cr_ipsock_error9972200 +Ref: error_cr_unknown_host9972288 +Ref: error_cr_server_gone_error9972380 +Ref: error_cr_version_error9972468 +Ref: error_cr_out_of_memory9972590 +Ref: error_cr_wrong_host_info9972678 +Ref: error_cr_localhost_connection9972753 +Ref: error_cr_tcp_connection9972843 +Ref: error_cr_server_handshake_err9972915 +Ref: error_cr_server_lost9973005 +Ref: error_cr_commands_out_of_sync9973105 +Ref: error_cr_namedpipe_connection9973222 +Ref: error_cr_namedpipewait_error9973301 +Ref: error_cr_namedpipeopen_error9973417 +Ref: error_cr_namedpipesetstate_error9973529 +Ref: error_cr_cant_read_charset9973653 +Ref: error_cr_net_packet_too_large9973759 +Ref: error_cr_embedded_connection9973873 +Ref: error_cr_probe_slave_status9973952 +Ref: error_cr_probe_slave_hosts9974042 +Ref: error_cr_probe_slave_connect9974130 +Ref: error_cr_probe_master_connect9974220 +Ref: error_cr_ssl_connection_error9974312 +Ref: error_cr_malformed_packet9974401 +Ref: error_cr_wrong_license9974478 +Ref: error_cr_null_pointer9974624 +Ref: error_cr_no_prepare_stmt9974708 +Ref: error_cr_params_not_bound9974790 +Ref: error_cr_data_truncated9974904 +Ref: error_cr_no_parameters_exists9974977 +Ref: error_cr_invalid_parameter_no9975078 +Ref: error_cr_invalid_buffer_use9975167 +Ref: error_cr_unsupported_param_type9975308 +Ref: error_cr_shared_memory_connection9975424 +Ref: error_cr_shared_memory_connect_request_error9975510 +Ref: error_cr_shared_memory_connect_answer_error9975664 +Ref: error_cr_shared_memory_connect_file_map_error9975816 +Ref: error_cr_shared_memory_connect_map_error9975972 +Ref: error_cr_shared_memory_file_map_error9976129 +Ref: error_cr_shared_memory_map_error9976277 +Ref: error_cr_shared_memory_event_error9976426 +Ref: error_cr_shared_memory_connect_abandoned_error9976565 +Ref: error_cr_shared_memory_connect_set_error9976700 +Ref: error_cr_conn_unknow_protocol9976848 +Ref: error_cr_invalid_conn_handle9976938 +Ref: error_cr_secure_auth9977027 +Ref: error_cr_fetch_canceled9977190 +Ref: error_cr_no_data9977302 +Ref: error_cr_no_stmt_metadata9977400 +Ref: error_cr_no_result_set9977500 +Ref: error_cr_not_implemented9977643 +Ref: error_cr_server_lost_extended9977738 +Ref: error_cr_stmt_closed9977860 +Ref: error_cr_new_stmt_metadata9977982 +Ref: error_cr_already_connected9978228 +Ref: error_cr_auth_plugin_cannot_load9978371 +Node: problems9978481 +Node: what-is-crashing9979319 +Node: common-errors9983596 +Node: error-access-denied9985256 +Node: can-not-connect-to-server9985650 +Node: can-not-connect-to-server-on-windows9993566 +Node: error-lost-connection9997317 +Node: old-client9999105 +Node: password-too-long10002628 +Node: blocked-host10003549 +Node: too-many-connections10004966 +Node: out-of-memory10006915 +Node: gone-away10007879 +Node: packet-too-large10014920 +Node: communication-errors10017468 +Node: full-table10020297 +Node: cannot-create10021052 +Node: commands-out-of-sync10022565 +Node: ignoring-user10023278 +Node: cannot-find-table10024707 +Node: cannot-initialize-character-set10025709 +Node: not-enough-file-handles10027384 +Node: table-corruption10030470 +Node: installation-issues10031584 +Node: file-permissions10031843 +Node: administration-issues10033107 +Node: resetting-permissions10033705 +Node: resetting-permissions-windows10034692 +Node: resetting-permissions-unix10037988 +Node: resetting-permissions-generic10041422 +Node: crashing10042976 +Node: full-disk10051722 +Node: temporary-files10053846 +Node: problems-with-mysql-sock10056570 +Node: timezone-problems10058792 +Node: query-issues10059727 +Node: case-sensitivity10060446 +Node: using-date10064943 +Node: problems-with-null10069485 +Node: problems-with-alias10072868 +Node: non-transactional-tables10074635 +Node: deleting-from-related-tables10076481 +Node: no-matching-rows10077232 +Node: problems-with-float10079402 +Node: optimizer-issues10083784 +Node: table-definition-issues10085568 +Node: alter-table-problems10085882 +Node: temporary-table-problems10087845 +Node: bugs10089124 +Node: news10099559 +Node: news-5-5-x10103096 +Node: news-5-5-2210105581 +Node: news-5-5-2110110977 +Node: news-5-5-2010119112 +Node: news-5-5-1910124196 +Node: news-5-5-1810127490 +Node: news-5-5-1710133444 +Node: news-5-5-1610136668 +Node: news-5-5-1510150210 +Node: news-5-5-1410155816 +Node: news-5-5-1310159730 +Node: news-5-5-1210165932 +Node: news-5-5-1110171648 +Node: news-5-5-1010183990 +Node: news-5-5-910195234 +Node: news-5-5-810216454 +Node: news-5-5-710241522 +Node: news-5-5-610279628 +Node: news-5-5-510324793 +Node: news-5-5-410384653 +Node: news-5-5-310387355 +Node: news-5-5-210478298 +Node: news-5-5-110492365 +Node: news-5-5-010512809 +Node: connector-odbc-news10587941 +Node: connector-odbc-news-5-1-x10588394 +Node: connector-odbc-news-5-1-1010589633 +Node: connector-odbc-news-5-1-910590246 +Node: connector-odbc-news-5-1-810592703 +Node: connector-odbc-news-5-1-710595551 +Node: connector-odbc-news-5-1-610601170 +Node: connector-odbc-news-5-1-510608636 +Node: connector-odbc-news-5-1-410610323 +Node: connector-odbc-news-5-1-310611358 +Node: connector-odbc-news-5-1-210614198 +Node: connector-odbc-news-5-1-110618780 +Node: connector-odbc-news-5-1-010623641 +Node: connector-odbc-news-5-0-x10625277 +Node: connector-odbc-news-5-0-1210626561 +Node: connector-odbc-news-5-0-1110627267 +Node: connector-odbc-news-5-0-1010628273 +Node: connector-odbc-news-5-0-910629421 +Node: connector-odbc-news-5-0-810630709 +Node: connector-odbc-news-5-0-710632516 +Node: connector-odbc-news-5-0-610633354 +Node: connector-odbc-news-5-0-510634403 +Node: connector-odbc-news-5-0-310635055 +Node: connector-odbc-news-5-0-210635664 +Node: connector-odbc-news-5-0-110636010 +Node: connector-odbc-news-3-51-x10637587 +Node: connector-odbc-news-3-51-3010639625 +Node: connector-odbc-news-3-51-2910640634 +Node: connector-odbc-news-3-51-2810642340 +Node: connector-odbc-news-3-51-2710644177 +Node: connector-odbc-news-3-51-2610645087 +Node: connector-odbc-news-3-51-2510645964 +Node: connector-odbc-news-3-51-2410647257 +Node: connector-odbc-news-3-51-2310650666 +Node: connector-odbc-news-3-51-2210652419 +Node: connector-odbc-news-3-51-2110653762 +Node: connector-odbc-news-3-51-2010655650 +Node: connector-odbc-news-3-51-1910656724 +Node: connector-odbc-news-3-51-1810657461 +Node: connector-odbc-news-3-51-1710663645 +Node: connector-odbc-news-3-51-1610667998 +Node: connector-odbc-news-3-51-1510669823 +Node: connector-odbc-news-3-51-1410671340 +Node: connector-odbc-news-3-51-1310673513 +Node: connector-odbc-news-3-51-1210673927 +Node: connector-odbc-news-3-51-1110674627 +Node: connector-net-news10675322 +Node: connector-net-news-6-5-x10677172 +Ref: connector-net-news-6-5-310677414 +Ref: connector-net-news-6-5-210677682 +Ref: connector-net-news-6-5-110678812 +Ref: connector-net-news-6-5-010679284 +Node: connector-net-news-6-4-x10680929 +Node: connector-net-news-6-4-410681539 +Node: connector-net-news-6-4-310684003 +Node: connector-net-news-6-4-210684570 +Node: connector-net-news-6-4-110685348 +Node: connector-net-news-6-3-x10686239 +Node: connector-net-news-6-3-910687404 +Node: connector-net-news-6-3-810688808 +Node: connector-net-news-6-3-710693262 +Node: connector-net-news-6-3-610695623 +Node: connector-net-news-6-3-510699917 +Node: connector-net-news-6-3-410702605 +Node: connector-net-news-6-3-310705599 +Node: connector-net-news-6-3-210710809 +Node: connector-net-news-6-3-110714275 +Node: connector-net-news-6-3-010717433 +Node: connector-net-news-6-2-x10718944 +Node: connector-net-news-6-2-610719849 +Node: connector-net-news-6-2-510721494 +Node: connector-net-news-6-2-410726613 +Node: connector-net-news-6-2-310735969 +Node: connector-net-news-6-2-210740566 +Node: connector-net-news-6-2-110742303 +Node: connector-net-news-6-2-010747100 +Node: connector-net-news-6-1-x10748873 +Node: connector-net-news-6-1-710749964 +Node: connector-net-news-6-1-610750886 +Node: connector-net-news-6-1-510755682 +Node: connector-net-news-6-1-410762411 +Node: connector-net-news-6-1-310768443 +Node: connector-net-news-6-1-210773053 +Node: connector-net-news-6-1-110775379 +Node: connector-net-news-6-1-010784096 +Node: connector-net-news-6-0-x10785437 +Node: connector-net-news-6-0-810786490 +Node: connector-net-news-6-0-710790461 +Node: connector-net-news-6-0-610796229 +Node: connector-net-news-6-0-510802579 +Node: connector-net-news-6-0-410817469 +Node: connector-net-news-6-0-310820859 +Node: connector-net-news-6-0-210823023 +Node: connector-net-news-6-0-110823693 +Node: connector-net-news-6-0-010824457 +Node: connector-net-news-5-3-x10824891 +Node: connector-net-news-5-3-010825234 +Node: connector-net-news-5-2-x10826136 +Node: connector-net-news-5-2-810827177 +Node: connector-net-news-5-2-710835498 +Node: connector-net-news-5-2-610839574 +Node: connector-net-news-5-2-510844532 +Node: connector-net-news-5-2-410845546 +Node: connector-net-news-5-2-310849114 +Node: connector-net-news-5-2-210852792 +Node: connector-net-news-5-2-110855675 +Node: connector-net-news-5-2-010857689 +Node: connector-net-news-5-1-x10860807 +Node: connector-net-news-5-1-810861844 +Node: connector-net-news-5-1-710865317 +Node: connector-net-news-5-1-610867974 +Node: connector-net-news-5-1-510870168 +Node: connector-net-news-5-1-410872349 +Node: connector-net-news-5-1-310875883 +Node: connector-net-news-5-1-210878354 +Node: connector-net-news-5-1-110879611 +Node: connector-net-news-5-1-010881074 +Node: connector-net-news-5-0-x10881842 +Node: connector-net-news-5-0-1010883053 +Node: connector-net-news-5-0-910885079 +Node: connector-net-news-5-0-810887557 +Node: connector-net-news-5-0-710891145 +Node: connector-net-news-5-0-610893314 +Node: connector-net-news-5-0-510894295 +Node: connector-net-news-5-0-410898478 +Node: connector-net-news-5-0-310898867 +Node: connector-net-news-5-0-210901363 +Node: connector-net-news-5-0-110903956 +Node: connector-net-news-5-0-010905880 +Node: connector-net-news-1-0-x10907193 +Node: connector-net-news-1-0-1110908531 +Node: connector-net-news-1-0-1010910150 +Node: connector-net-news-1-0-910911791 +Node: connector-net-news-1-0-810915747 +Node: connector-net-news-1-0-710919735 +Node: connector-net-news-1-0-610921254 +Node: connector-net-news-1-0-510921998 +Node: connector-net-news-1-0-410924077 +Node: connector-net-news-1-0-310925306 +Node: connector-net-news-1-0-210927293 +Node: connector-net-news-1-0-110928681 +Node: connector-net-news-1-0-010932006 +Node: connector-net-news-0-9-010932616 +Node: connector-net-news-0-7610940060 +Node: connector-net-news-0-7510941973 +Node: connector-net-news-0-7410943826 +Node: connector-net-news-0-7110948491 +Node: connector-net-news-0-7010949281 +Node: connector-net-news-0-6810954442 +Node: connector-net-news-0-6510955484 +Node: connector-net-news-0-6010956132 +Node: connector-net-news-0-5010956629 +Node: vstudio-plugin-news10957099 +Node: vstudio-plugin-news-1-0-310957892 +Node: vstudio-plugin-news-1-0-210958434 +Node: vstudio-plugin-news-1-0-110959142 +Node: vstudio-plugin-news-1-0-010960458 +Node: cj-news10960895 +Node: cj-news-5-1-x10961501 +Node: cj-news-5-1-1810963317 +Node: cj-news-5-1-1710966072 +Node: cj-news-5-1-1610967680 +Node: cj-news-5-1-1510969171 +Node: cj-news-5-1-1410970701 +Node: cj-news-5-1-1310977053 +Node: cj-news-5-1-1210982439 +Node: cj-news-5-1-1110983133 +Node: cj-news-5-1-1010986739 +Node: cj-news-5-1-910987400 +Node: cj-news-5-1-810993363 +Node: cj-news-5-1-711008010 +Node: cj-news-5-1-611011780 +Node: cj-news-5-1-511021176 +Node: cj-news-5-1-411022863 +Node: cj-news-5-1-311023157 +Node: cj-news-5-1-211033089 +Node: cj-news-5-1-111033847 +Node: cj-news-5-1-011037779 +Node: cj-news-5-0-x11041845 +Node: cj-news-5-0-811042802 +Node: cj-news-5-0-711048378 +Node: cj-news-5-0-611054008 +Node: cj-news-5-0-511063860 +Node: cj-news-5-0-411074532 +Node: cj-news-5-0-311076858 +Node: cj-news-5-0-211077944 +Node: cj-news-5-0-111080268 +Node: cj-news-5-0-011080572 +Node: cj-news-3-1-x11085041 +Node: cj-news-3-1-1511086622 +Node: cj-news-3-1-1411087534 +Node: cj-news-3-1-1311090842 +Node: cj-news-3-1-1211096374 +Node: cj-news-3-1-1111102154 +Node: cj-news-3-1-1011111666 +Node: cj-news-3-1-911112275 +Node: cj-news-3-1-811119734 +Node: cj-news-3-1-711126328 +Node: cj-news-3-1-611131532 +Node: cj-news-3-1-511132078 +Node: cj-news-3-1-411136444 +Node: cj-news-3-1-311140215 +Node: cj-news-3-1-211141783 +Node: cj-news-3-1-111144746 +Node: cj-news-3-1-011150814 +Node: cj-news-3-0-x11151614 +Node: cj-news-3-0-1711153349 +Node: cj-news-3-0-1611156992 +Node: cj-news-3-0-1511158424 +Node: cj-news-3-0-1411161629 +Node: cj-news-3-0-1311161901 +Node: cj-news-3-0-1211162420 +Node: cj-news-3-0-1111166107 +Node: cj-news-3-0-1011167686 +Node: cj-news-3-0-911171864 +Node: cj-news-3-0-811176082 +Node: cj-news-3-0-711177609 +Node: cj-news-3-0-611179329 +Node: cj-news-3-0-511180934 +Node: cj-news-3-0-411182045 +Node: cj-news-3-0-311183147 +Node: cj-news-3-0-211185673 +Node: cj-news-3-0-111189067 +Node: cj-news-3-0-011190435 +Node: cj-news-2-0-x11192450 +Node: cj-news-2-0-1411193936 +Node: cj-news-2-0-1311194865 +Node: cj-news-2-0-1211195733 +Node: cj-news-2-0-1111197393 +Node: cj-news-2-0-1011197940 +Node: cj-news-2-0-911198396 +Node: cj-news-2-0-811200136 +Node: cj-news-2-0-711200899 +Node: cj-news-2-0-611202720 +Node: cj-news-2-0-511203071 +Node: cj-news-2-0-311204343 +Node: cj-news-2-0-111205097 +Node: cj-news-2-0pre511206082 +Node: cj-news-2-0pre411206363 +Node: cj-news-2-0pre11207489 +Node: cj-news-1-2-x11208255 +Node: cj-news-1-2b11209612 +Node: cj-news-1-2a11211398 +Node: cj-news-1-1i11212404 +Node: cj-news-1-1h11212786 +Node: cj-news-1-1g11214195 +Node: cj-news-1-1f11214730 +Node: cj-news-1-1b11215748 +Node: cj-news-1-111216976 +Node: cj-news-1-011218221 +Node: cj-news-0-9d11218927 +Node: cj-news-0-911219938 +Node: cj-news-0-811221161 +Node: cj-news-0-711221685 +Node: cj-news-0-611222090 +Node: news-connector-mxj11222656 +Node: news-connector-mxj-5-0-1211223960 +Node: news-connector-mxj-5-0-1111224536 +Node: news-connector-mxj-5-0-1011226727 +Node: news-connector-mxj-5-0-911227566 +Node: news-connector-mxj-5-0-811228606 +Node: news-connector-mxj-5-0-711229189 +Node: news-connector-mxj-5-0-611230311 +Node: news-connector-mxj-5-0-511232979 +Node: news-connector-mxj-5-0-411235460 +Node: news-connector-mxj-5-0-311236630 +Node: news-connector-mxj-5-0-211237090 +Node: news-connector-mxj-5-0-111239181 +Node: news-connector-mxj-5-0-011239522 +Node: ccpp-news11240223 +Node: ccpp-news-1-1-x11240554 +Node: ccpp-news-1-1-011240865 +Node: ccpp-news-1-0-x11244024 +Node: ccpp-news-1-0-511244669 +Node: ccpp-news-1-0-411247071 +Node: ccpp-news-1-0-311248199 +Node: ccpp-news-1-0-211252726 +Node: ccpp-news-1-0-111255965 +Node: mysql-proxy-news11259232 +Node: mysql-proxy-news-0-8-211260168 +Node: mysql-proxy-news-0-8-111262093 +Node: mysql-proxy-news-0-8-011264444 +Node: mysql-proxy-news-0-7-211267515 +Node: mysql-proxy-news-0-7-111268035 +Node: mysql-proxy-news-0-7-011269644 +Node: mysql-proxy-news-0-6-111274461 +Node: mysql-proxy-news-0-6-011274951 +Node: mysql-proxy-news-0-5-111277236 +Node: mysql-proxy-news-0-5-011278640 +Node: restrictions11278968 +Node: stored-program-restrictions11279899 +Ref: stored-routine-sql-restrictions11280702 +Ref: stored-routines-function-restrictions11282289 +Ref: stored-routines-trigger-restrictions11284073 +Ref: stored-routine-name-conflicts11285031 +Ref: stored-routines-replication-restrictions11285866 +Ref: stored-routines-debugging-restrictions11286289 +Ref: stored-routines-standard-restrictions11286370 +Ref: stored-routines-event-restrictions11287934 +Node: condition-handling-restrictions11292117 +Node: cursor-restrictions11292642 +Node: subquery-restrictions11294667 +Node: view-restrictions11303090 +Node: xa-restrictions11309126 +Node: charset-restrictions11311407 +Node: performance-schema-restrictions11313029 +Node: pluggable-authentication-restrictions11314789 +Node: limits11322746 +Node: joins-limits11323260 +Node: database-count-limit11323577 +Node: table-size-limit11324148 +Node: column-count-limit11329513 +Node: limits-windows11335926 +Node: glossary11340712 +Ref: glos_acid11341059 +Ref: glos_adaptive_flushing11343000 +Ref: glos_adaptive_hash_index11343768 +Ref: glos_aio11344947 +Ref: glos_antelope11345105 +Ref: glos_application_programming_interface11345998 +Ref: glos_apply11346200 +Ref: glos_arm_file11347075 +Ref: glos_arz_file11347417 +Ref: glos_asynchronous_io11347755 +Ref: glos_atomic11348583 +Ref: glos_atomic_instruction11348990 +Ref: glos_auto_increment11349136 +Ref: glos_auto_increment_locking11350847 +Ref: glos_autocommit11351609 +Ref: glos_b_tree11352367 +Ref: glos_backticks11353169 +Ref: glos_backup11353971 +Ref: glos_barracuda11355080 +Ref: glos_beta11356382 +Ref: glos_binary_log11356800 +Ref: glos_binlog11358202 +Ref: glos_blind_query_expansion11358401 +Ref: glos_bottleneck11358969 +Ref: glos_bounce11359705 +Ref: glos_buddy_allocator11359945 +Ref: glos_buffer11360164 +Ref: glos_buffer_pool11360788 +Ref: glos_buffer_pool_instance11362228 +Ref: glos_built_in11362990 +Ref: glos_business_rules11363557 +Ref: glos_cache11365010 +Ref: glos_cardinality11365281 +Ref: glos_change_buffer11367183 +Ref: glos_change_buffering11369539 +Ref: glos_checkpoint11370236 +Ref: glos_checksum11370768 +Ref: glos_child_table11372005 +Ref: glos_clean_shutdown11372629 +Ref: glos_client11372960 +Ref: glos_clustered_index11373307 +Ref: glos_cold_backup11374020 +Ref: glos_column11374337 +Ref: glos_column_index11375308 +Ref: glos_column_prefix11375444 +Ref: glos_commit11376270 +Ref: glos_compact_row_format11377061 +Ref: glos_composite_index11377671 +Ref: glos_compressed_backup11377814 +Ref: glos_compressed_row_format11378599 +Ref: glos_compression11379296 +Ref: glos_concatenated_index11381147 +Ref: glos_concurrency11381206 +Ref: glos_configuration_file11381704 +Ref: glos_consistent_read11382770 +Ref: glos_constraint11384428 +Ref: glos_counter11384994 +Ref: glos_covering_index11385644 +Ref: glos_crash_recovery11386554 +Ref: glos_crud11387458 +Ref: glos_cursor11387899 +Ref: glos_data_definition_language11388408 +Ref: glos_data_dictionary11388461 +Ref: glos_data_directory11389004 +Ref: glos_data_files11389301 +Ref: glos_data_manipulation_language11389976 +Ref: glos_data_warehouse11390031 +Ref: glos_database11390363 +Ref: glos_ddl11391297 +Ref: glos_deadlock11392269 +Ref: glos_deadlock_detection11394624 +Ref: glos_delete11394954 +Ref: glos_delete_buffering11395505 +Ref: glos_denormalized11396172 +Ref: glos_descending_index11396654 +Ref: glos_dirty_page11397043 +Ref: glos_dirty_read11397401 +Ref: glos_disk_based11398464 +Ref: glos_cpu_bound11399083 +Ref: glos_disk_bound11399453 +Ref: glos_dml11399814 +Ref: glos_document_id11400495 +Ref: glos_doublewrite_buffer11401202 +Ref: glos_drop11402284 +Ref: glos_dynamic_row_format11403098 +Ref: glos_early_adopter11403790 +Ref: glos_error_log11404187 +Ref: glos_eviction11404395 +Ref: glos_exclusive_lock11404897 +Ref: glos_extent11405703 +Ref: glos_fast_index_creation11406443 +Ref: glos_fast_shutdown11407147 +Ref: glos_file_format11407925 +Ref: glos_file_per_table11408636 +Ref: glos_fill_factor11409887 +Ref: glos_fixed_row_format11410562 +Ref: glos_flush11410999 +Ref: glos_flush_list11412040 +Ref: glos_foreign_key11412612 +Ref: glos_foreign_key_constraint11414187 +Ref: glos_frm_file11414778 +Ref: glos_fts11416213 +Ref: glos_full_backup11416307 +Ref: glos_full_table_scan11416666 +Ref: glos_full_text_search11417470 +Ref: glos_fulltext_index11417871 +Ref: glos_fuzzy_checkpointing11418283 +Ref: glos_ga11418609 +Ref: glos_gap11418840 +Ref: glos_gap_lock11419678 +Ref: glos_general_log11420563 +Ref: glos_general_query_log11420617 +Ref: glos_global_transaction11421258 +Ref: glos_group_commit11421980 +Ref: glos_hash_index11422488 +Ref: glos_hdd11423214 +Ref: glos_heartbeat11423533 +Ref: glos_hot11423946 +Ref: glos_hot_backup11424325 +Ref: glos_ib_file_set11425448 +Ref: glos_ib_logfile11426051 +Ref: glos_ibbackup_command11426658 +Ref: glos_ibbackup_logfile11427342 +Ref: glos_ibd_file11428214 +Ref: glos_ibdata_file11429092 +Ref: glos_ibz_file11429532 +Ref: glos_ilist11430431 +Ref: glos_implicit_row_lock11430654 +Ref: glos_in_memory_database11430822 +Ref: glos_incremental_backup11431755 +Ref: glos_index11432648 +Ref: glos_index_cache11434509 +Ref: glos_index_hint11435152 +Ref: glos_index_prefix11435537 +Ref: glos_infimum_record11435954 +Ref: glos_information_schema11436507 +Ref: glos_innobackup_command11437715 +Ref: glos_innodb11438095 +Ref: glos_innodb_hot_backup11438637 +Ref: glos_innodb_autoinc_lock_mode11438816 +Ref: glos_innodb_file_format11439852 +Ref: glos_innodb_file_per_table11440494 +Ref: glos_innodb_lock_wait_timeout11441563 +Ref: glos_innodb_strict_mode11442233 +Ref: glos_insert11442563 +Ref: glos_insert_buffer11443348 +Ref: glos_insert_buffering11443635 +Ref: glos_instance11444407 +Ref: glos_instrumentation11445147 +Ref: glos_intention_exclusive_lock11445525 +Ref: glos_intention_lock11445589 +Ref: glos_intention_shared_lock11446541 +Ref: glos_inverted_index11446602 +Ref: glos_isolation_level11447160 +Ref: glos_join11448570 +Ref: glos_key_block_size11449219 +Ref: glos_latch11449560 +Ref: glos_list11450340 +Ref: glos_lock11450962 +Ref: glos_lock_escalation11451420 +Ref: glos_lock_mode11451839 +Ref: glos_locking11453029 +Ref: glos_locking_read11453809 +Ref: glos_log11454251 +Ref: glos_log_buffer11454958 +Ref: glos_log_file11455227 +Ref: glos_log_group11455492 +Ref: glos_logical11455763 +Ref: glos_logical_backup11456156 +Ref: glos_loose_11456858 +Ref: glos_lru11457338 +Ref: glos_lsn11458498 +Ref: glos_master_server11459529 +Ref: glos_master_thread11459904 +Ref: glos_merge11460636 +Ref: glos_metrics_counter11461121 +Ref: glos_midpoint_insertion_strategy11461646 +Ref: glos_mini_transaction11462280 +Ref: glos_mrg_file11462662 +Ref: glos_multi_core11463020 +Ref: glos_multiversion_concurrency_control11463146 +Ref: glos_mutex11463208 +Ref: glos_mvcc11463875 +Ref: glos_my_cnf11464753 +Ref: glos_my_ini11464906 +Ref: glos_myd_file11465053 +Ref: glos_myi_file11465421 +Ref: glos_mysql11465791 +Ref: glos_mysql_enterprise_backup11466097 +Ref: glos_mysqlbackup_command11466453 +Ref: glos_mysqld11466961 +Ref: glos_mysqldump11467226 +Ref: glos_neighbor_page11467792 +Ref: glos_next_key_lock11468550 +Ref: glos_non_blocking_io11468795 +Ref: glos_non_repeatable_read11468929 +Ref: glos_normalized11469898 +Ref: glos_not_null_constraint11471401 +Ref: glos_null11472002 +Ref: glos_off_page_column11473771 +Ref: glos_oltp11474222 +Ref: glos_online11475131 +Ref: glos_opt_file11475688 +Ref: glos_optimistic11476013 +Ref: glos_optimizer11477718 +Ref: glos_option11478046 +Ref: glos_option_file11478409 +Ref: glos_overflow_page11478730 +Ref: glos_page11479086 +Ref: glos_page_cleaner11480355 +Ref: glos_page_size11480729 +Ref: glos_par_file11482216 +Ref: glos_parent_table11482528 +Ref: glos_partial_backup11483106 +Ref: glos_partial_index11483391 +Ref: glos_performance_schema11483625 +Ref: glos_persistent_statistics11483981 +Ref: glos_pessimistic11484435 +Ref: glos_phantom11485154 +Ref: glos_physical11486249 +Ref: glos_physical_backup11486626 +Ref: glos_pitr11487159 +Ref: glos_plan_stability11487266 +Ref: glos_plugin11487553 +Ref: glos_point_in_time_recovery11488230 +Ref: glos_prefix11489056 +Ref: glos_prepared_backup11489100 +Ref: glos_primary_key11489670 +Ref: glos_process11490196 +Ref: glos_pseudo_record11490653 +Ref: glos_pthreads11490908 +Ref: glos_purge11491161 +Ref: glos_purge_buffering11491571 +Ref: glos_purge_thread11492272 +Ref: glos_query11492474 +Ref: glos_query_execution_plan11493180 +Ref: glos_query_log11493634 +Ref: glos_raid11493691 +Ref: glos_random_dive11494023 +Ref: glos_raw_backup11494738 +Ref: glos_read_committed11495385 +Ref: glos_read_uncommitted11496427 +Ref: glos_read_view11497393 +Ref: glos_read_ahead11498013 +Ref: glos_record_lock11498873 +Ref: glos_redo_log11499260 +Ref: glos_redundant_row_format11500274 +Ref: glos_referential_integrity11500796 +Ref: glos_relational11501565 +Ref: glos_relevance11503248 +Ref: glos_repeatable_read11503693 +Ref: glos_replication11504593 +Ref: glos_restore11505175 +Ref: glos_rollback11505856 +Ref: glos_rollback_segment11506377 +Ref: glos_row11506573 +Ref: glos_row_format11507110 +Ref: glos_row_lock11508100 +Ref: glos_row_based_replication11508690 +Ref: glos_row_level_locking11509034 +Ref: glos_rw_lock11509570 +Ref: glos_savepoint11510127 +Ref: glos_scalability11510682 +Ref: glos_schema11511272 +Ref: glos_search_index11512555 +Ref: glos_secondary_index11512875 +Ref: glos_segment11513891 +Ref: glos_selectivity11515021 +Ref: glos_semi_consistent_read11515641 +Ref: glos_serializable11516478 +Ref: glos_server11517486 +Ref: glos_shared_lock11517976 +Ref: glos_shared_tablespace11518304 +Ref: glos_sharp_checkpoint11518434 +Ref: glos_shutdown11518908 +Ref: glos_slave_server11519428 +Ref: glos_slow_query_log11520676 +Ref: glos_slow_shutdown11521093 +Ref: glos_snapshot11521516 +Ref: glos_spin11521899 +Ref: glos_sql11522482 +Ref: glos_ssd11522750 +Ref: glos_statement_based_replication11523226 +Ref: glos_stemming11523641 +Ref: glos_stopword11524050 +Ref: glos_storage_engine11524415 +Ref: glos_strict_mode11525302 +Ref: glos_sublist11525936 +Ref: glos_supremum_record11526379 +Ref: glos_system_tablespace11526899 +Ref: glos_table11528319 +Ref: glos_table_lock11530847 +Ref: glos_table_scan11531631 +Ref: glos_table_type11531682 +Ref: glos_tablespace11531951 +Ref: glos_tablespace_dictionary11532950 +Ref: glos_temporary_table11533688 +Ref: glos_text_collection11534484 +Ref: glos_thread11534607 +Ref: glos_torn_page11534895 +Ref: glos_tps11535340 +Ref: glos_transaction11535720 +Ref: glos_transaction_id11536395 +Ref: glos_trg_file11536645 +Ref: glos_trn_file11536989 +Ref: glos_troubleshooting11537342 +Ref: glos_truncate11537487 +Ref: glos_tuple11538611 +Ref: glos_two_phase_commit11539064 +Ref: glos_undo11539510 +Ref: glos_undo_buffer11539796 +Ref: glos_undo_log11539841 +Ref: glos_unique_constraint11540550 +Ref: glos_unique_index11541072 +Ref: glos_unique_key11541757 +Ref: glos_victim11542172 +Ref: glos_wait11542509 +Ref: glos_warm_backup11543339 +Ref: glos_warm_up11543722 +Ref: glos_windows11544868 +Ref: glos_workload11545360 +Ref: glos_write_combining11545812 +Ref: glos_xa11546311 +Ref: glos_young11546861  End Tag Table diff -Nru mysql-5.5-5.5.20/extra/yassl/certs/ca-cert.pem mysql-5.5-5.5.22/extra/yassl/certs/ca-cert.pem --- mysql-5.5-5.5.20/extra/yassl/certs/ca-cert.pem 2011-12-16 19:52:06.000000000 +0000 +++ mysql-5.5-5.5.22/extra/yassl/certs/ca-cert.pem 2012-03-02 19:44:46.000000000 +0000 @@ -1,53 +1,56 @@ Certificate: Data: Version: 3 (0x2) - Serial Number: 0 (0x0) + Serial Number: + 8a:37:22:65:73:f5:aa:e8 Signature Algorithm: md5WithRSAEncryption - Issuer: C=US, ST=Oregon, L=Portland, O=sawtooth, CN=www.sawtooth-consulting.com/emailAddress=info@yassl.com + Issuer: C=US, ST=Montana, L=Bozeman, O=sawtooth, OU=consulting, CN=www.sawtooth-consulting.com/emailAddress=info@yassl.com Validity - Not Before: Mar 7 03:10:11 2005 GMT - Not After : Apr 1 03:10:11 2046 GMT - Subject: C=US, ST=Oregon, L=Portland, O=sawtooth, CN=www.sawtooth-consulting.com/emailAddress=info@yassl.com + Not Before: Jun 30 18:47:10 2010 GMT + Not After : Mar 26 18:47:10 2013 GMT + Subject: C=US, ST=Montana, L=Bozeman, O=sawtooth, OU=consulting, CN=www.sawtooth-consulting.com/emailAddress=info@yassl.com Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (512 bit) Modulus (512 bit): - 00:ef:c1:e3:9a:3c:6e:6e:cb:26:6f:05:be:e0:cb: - 57:a0:4b:68:e6:1b:f9:95:db:01:92:aa:6e:a6:b5: - 2d:b1:2b:50:fd:db:13:f2:c5:d8:b8:4f:75:28:53: - 72:e8:e5:11:9d:bb:c3:4f:4f:09:fd:4c:e7:46:d5: - 1d:bb:35:02:af + 00:97:30:b9:1a:92:ef:25:4f:ca:4c:11:31:95:1a: + e1:c0:10:19:0a:20:b9:37:80:1a:57:38:02:4e:1b: + c5:0f:28:4f:da:e3:c9:16:aa:50:bd:4a:fb:b7:71: + c7:35:cc:63:81:c1:dd:9d:33:f9:38:16:88:32:a0: + aa:56:23:03:a3 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Subject Key Identifier: - 1D:EF:A1:B8:81:78:12:47:E8:57:06:08:74:18:F7:D3:AA:D8:F7:BD + 3B:66:FD:A0:40:C6:F4:E2:70:CF:21:1A:0C:4F:67:FE:B7:4B:42:09 X509v3 Authority Key Identifier: - keyid:1D:EF:A1:B8:81:78:12:47:E8:57:06:08:74:18:F7:D3:AA:D8:F7:BD - DirName:/C=US/ST=Oregon/L=Portland/O=sawtooth/CN=www.sawtooth-consulting.com/emailAddress=info@yassl.com - serial:00 + keyid:3B:66:FD:A0:40:C6:F4:E2:70:CF:21:1A:0C:4F:67:FE:B7:4B:42:09 + DirName:/C=US/ST=Montana/L=Bozeman/O=sawtooth/OU=consulting/CN=www.sawtooth-consulting.com/emailAddress=info@yassl.com + serial:8A:37:22:65:73:F5:AA:E8 X509v3 Basic Constraints: CA:TRUE Signature Algorithm: md5WithRSAEncryption - d9:77:e3:07:d9:2e:ec:2f:9b:8e:9e:ca:b4:00:0b:ef:c7:74: - cb:f4:f6:44:2f:02:75:17:a5:74:3e:26:b2:26:fd:1f:ab:3a: - df:d5:e3:05:14:08:d0:8c:1d:c9:3e:e1:59:6f:b3:38:5d:af: - 78:60:e3:c5:6a:69:96:80:7d:00 + 32:65:a2:b1:dc:6d:e0:8d:8b:c8:58:29:8e:b8:18:4b:62:88: + 13:67:f8:6c:75:46:75:8f:8a:19:a6:a3:d5:3c:fc:57:4e:7a: + 68:a9:fc:93:dc:ae:29:7d:bb:4e:ec:ea:55:fa:a4:e3:00:61: + f4:b0:34:6d:d1:d5:a4:64:24:f8 -----BEGIN CERTIFICATE----- -MIIC7zCCApmgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBiTELMAkGA1UEBhMCVVMx -DzANBgNVBAgTBk9yZWdvbjERMA8GA1UEBxMIUG9ydGxhbmQxETAPBgNVBAoTCHNh -d3Rvb3RoMSQwIgYDVQQDExt3d3cuc2F3dG9vdGgtY29uc3VsdGluZy5jb20xHTAb -BgkqhkiG9w0BCQEWDmluZm9AeWFzc2wuY29tMB4XDTA1MDMwNzAzMTAxMVoXDTQ2 -MDQwMTAzMTAxMVowgYkxCzAJBgNVBAYTAlVTMQ8wDQYDVQQIEwZPcmVnb24xETAP -BgNVBAcTCFBvcnRsYW5kMREwDwYDVQQKEwhzYXd0b290aDEkMCIGA1UEAxMbd3d3 -LnNhd3Rvb3RoLWNvbnN1bHRpbmcuY29tMR0wGwYJKoZIhvcNAQkBFg5pbmZvQHlh -c3NsLmNvbTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDvweOaPG5uyyZvBb7gy1eg -S2jmG/mV2wGSqm6mtS2xK1D92xPyxdi4T3UoU3Lo5RGdu8NPTwn9TOdG1R27NQKv -AgMBAAGjgekwgeYwHQYDVR0OBBYEFB3vobiBeBJH6FcGCHQY99Oq2Pe9MIG2BgNV -HSMEga4wgauAFB3vobiBeBJH6FcGCHQY99Oq2Pe9oYGPpIGMMIGJMQswCQYDVQQG -EwJVUzEPMA0GA1UECBMGT3JlZ29uMREwDwYDVQQHEwhQb3J0bGFuZDERMA8GA1UE -ChMIc2F3dG9vdGgxJDAiBgNVBAMTG3d3dy5zYXd0b290aC1jb25zdWx0aW5nLmNv -bTEdMBsGCSqGSIb3DQEJARYOaW5mb0B5YXNzbC5jb22CAQAwDAYDVR0TBAUwAwEB -/zANBgkqhkiG9w0BAQQFAANBANl34wfZLuwvm46eyrQAC+/HdMv09kQvAnUXpXQ+ -JrIm/R+rOt/V4wUUCNCMHck+4Vlvszhdr3hg48VqaZaAfQA= +MIIDQDCCAuqgAwIBAgIJAIo3ImVz9aroMA0GCSqGSIb3DQEBBAUAMIGeMQswCQYD +VQQGEwJVUzEQMA4GA1UECBMHTW9udGFuYTEQMA4GA1UEBxMHQm96ZW1hbjERMA8G +A1UEChMIc2F3dG9vdGgxEzARBgNVBAsTCmNvbnN1bHRpbmcxJDAiBgNVBAMTG3d3 +dy5zYXd0b290aC1jb25zdWx0aW5nLmNvbTEdMBsGCSqGSIb3DQEJARYOaW5mb0B5 +YXNzbC5jb20wHhcNMTAwNjMwMTg0NzEwWhcNMTMwMzI2MTg0NzEwWjCBnjELMAkG +A1UEBhMCVVMxEDAOBgNVBAgTB01vbnRhbmExEDAOBgNVBAcTB0JvemVtYW4xETAP +BgNVBAoTCHNhd3Rvb3RoMRMwEQYDVQQLEwpjb25zdWx0aW5nMSQwIgYDVQQDExt3 +d3cuc2F3dG9vdGgtY29uc3VsdGluZy5jb20xHTAbBgkqhkiG9w0BCQEWDmluZm9A +eWFzc2wuY29tMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJcwuRqS7yVPykwRMZUa +4cAQGQoguTeAGlc4Ak4bxQ8oT9rjyRaqUL1K+7dxxzXMY4HB3Z0z+TgWiDKgqlYj +A6MCAwEAAaOCAQcwggEDMB0GA1UdDgQWBBQ7Zv2gQMb04nDPIRoMT2f+t0tCCTCB +0wYDVR0jBIHLMIHIgBQ7Zv2gQMb04nDPIRoMT2f+t0tCCaGBpKSBoTCBnjELMAkG +A1UEBhMCVVMxEDAOBgNVBAgTB01vbnRhbmExEDAOBgNVBAcTB0JvemVtYW4xETAP +BgNVBAoTCHNhd3Rvb3RoMRMwEQYDVQQLEwpjb25zdWx0aW5nMSQwIgYDVQQDExt3 +d3cuc2F3dG9vdGgtY29uc3VsdGluZy5jb20xHTAbBgkqhkiG9w0BCQEWDmluZm9A +eWFzc2wuY29tggkAijciZXP1qugwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQF +AANBADJlorHcbeCNi8hYKY64GEtiiBNn+Gx1RnWPihmmo9U8/FdOemip/JPcril9 +u07s6lX6pOMAYfSwNG3R1aRkJPg= -----END CERTIFICATE----- diff -Nru mysql-5.5-5.5.20/extra/yassl/certs/ca-key.pem mysql-5.5-5.5.22/extra/yassl/certs/ca-key.pem --- mysql-5.5-5.5.20/extra/yassl/certs/ca-key.pem 1970-01-01 00:00:00.000000000 +0000 +++ mysql-5.5-5.5.22/extra/yassl/certs/ca-key.pem 2012-03-02 19:44:46.000000000 +0000 @@ -0,0 +1,9 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIBOQIBAAJBAJcwuRqS7yVPykwRMZUa4cAQGQoguTeAGlc4Ak4bxQ8oT9rjyRaq +UL1K+7dxxzXMY4HB3Z0z+TgWiDKgqlYjA6MCAwEAAQJAEQ9TY7c+uuQU/J5YDO4a +mRR37tegbq3Kyxqrz+p8QuhqLDtVh13GaF7rVU70vyNHm+cgihUyzho/PViAkPBo +qQIhAMU8/RDhDLgL5BxID4sxKIVBtg+imFSbyKVyg7oQLUcXAiEAxDu94O45Cf4a +np9R0thumY/QqWpCkycWAB7fFEuaf1UCIEH+bg4/vqm2ENUFp23DPPOZUPlaRe3J +UhFJh5mx3/RxAiBq++8vfHFYg1Lb/BxOCXVy/zdRxf753ytdcXdJx1Y56QIgVgpN +FNfYJofQfWaP96sjlc0usrT28uceHx0QmHqolVc= +-----END RSA PRIVATE KEY----- Binary files /tmp/BFkNYwQDHp/mysql-5.5-5.5.20/extra/yassl/certs/client-cert.der and /tmp/u8w54JxzCZ/mysql-5.5-5.5.22/extra/yassl/certs/client-cert.der differ diff -Nru mysql-5.5-5.5.20/extra/yassl/certs/client-cert.pem mysql-5.5-5.5.22/extra/yassl/certs/client-cert.pem --- mysql-5.5-5.5.20/extra/yassl/certs/client-cert.pem 2011-12-16 19:52:06.000000000 +0000 +++ mysql-5.5-5.5.22/extra/yassl/certs/client-cert.pem 2012-03-02 19:44:46.000000000 +0000 @@ -1,52 +1,55 @@ Certificate: Data: Version: 3 (0x2) - Serial Number: 0 (0x0) + Serial Number: + c5:d7:6c:11:36:f0:35:e1 Signature Algorithm: md5WithRSAEncryption - Issuer: C=US, ST=Oregon, L=Portland, O=yaSSL, CN=www.yassl.com/emailAddress=info@yassl.com + Issuer: C=US, ST=Oregon, L=Portland, O=yaSSL, OU=programming, CN=www.yassl.com/emailAddress=info@yassl.com Validity - Not Before: Mar 7 03:00:31 2005 GMT - Not After : Apr 1 03:00:31 2046 GMT - Subject: C=US, ST=Oregon, L=Portland, O=yaSSL, CN=www.yassl.com/emailAddress=info@yassl.com + Not Before: Jun 30 18:39:39 2010 GMT + Not After : Mar 26 18:39:40 2013 GMT + Subject: C=US, ST=Oregon, L=Portland, O=yaSSL, OU=programming, CN=www.yassl.com/emailAddress=info@yassl.com Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (512 bit) Modulus (512 bit): - 00:cd:1f:78:47:f8:b8:d6:08:bf:bd:7c:23:61:86: - 36:28:ac:ee:3c:a8:9a:94:e6:d5:26:e8:71:50:b2: - 26:8b:1c:1e:3f:75:b2:d3:b3:67:95:0c:fd:76:28: - 65:d5:ce:12:82:9e:06:00:a2:09:dd:ce:3a:26:dd: - 46:2a:a0:45:71 + 00:bd:51:4a:14:fd:6a:19:84:0c:33:38:fc:27:32: + 9c:97:0b:fc:a4:18:60:69:4e:d9:d8:78:50:0b:e9: + 20:5d:d6:1d:70:1c:0c:24:9f:23:82:cc:3a:01:d5: + 97:17:b2:73:6c:86:cf:b5:f1:e5:ce:68:0c:d9:a2: + 12:39:7c:f2:53 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Subject Key Identifier: - AE:25:5E:FA:4D:A3:5B:2B:87:DE:F1:2A:F5:42:C0:FF:CE:B5:B4:AD + 5C:F7:29:21:69:7A:09:78:9E:7B:CD:53:42:02:EC:CE:29:0D:11:DF X509v3 Authority Key Identifier: - keyid:AE:25:5E:FA:4D:A3:5B:2B:87:DE:F1:2A:F5:42:C0:FF:CE:B5:B4:AD - DirName:/C=US/ST=Oregon/L=Portland/O=yaSSL/CN=www.yassl.com/emailAddress=info@yassl.com - serial:00 + keyid:5C:F7:29:21:69:7A:09:78:9E:7B:CD:53:42:02:EC:CE:29:0D:11:DF + DirName:/C=US/ST=Oregon/L=Portland/O=yaSSL/OU=programming/CN=www.yassl.com/emailAddress=info@yassl.com + serial:C5:D7:6C:11:36:F0:35:E1 X509v3 Basic Constraints: CA:TRUE Signature Algorithm: md5WithRSAEncryption - 59:19:ae:1b:4e:65:9e:ca:f1:b8:3d:ff:c7:5e:15:86:10:97: - 8c:3e:22:32:ab:4e:75:a7:70:83:f2:fb:2f:af:fe:26:28:e9: - 4f:d4:c9:49:7c:6f:51:7e:2a:ff:a0:5b:25:45:2e:66:d9:0d: - 92:94:e5:b8:60:c6:67:1a:f3:03 + b4:a5:f1:71:26:4d:b9:ff:54:f3:09:1f:ac:e1:19:59:e5:ec: + 57:e3:f1:0b:b2:8f:f3:29:eb:6b:c6:fa:27:33:3e:91:d0:77: + 43:c9:ce:1e:0f:71:07:a9:f7:26:e0:7e:ff:30:7d:52:0a:e1: + 80:48:46:bb:99:e9:d9:77:ce:75 -----BEGIN CERTIFICATE----- -MIICtzCCAmGgAwIBAgIBADANBgkqhkiG9w0BAQQFADB4MQswCQYDVQQGEwJVUzEP -MA0GA1UECBMGT3JlZ29uMREwDwYDVQQHEwhQb3J0bGFuZDEOMAwGA1UEChMFeWFT -U0wxFjAUBgNVBAMTDXd3dy55YXNzbC5jb20xHTAbBgkqhkiG9w0BCQEWDmluZm9A -eWFzc2wuY29tMB4XDTA1MDMwNzAzMDAzMVoXDTQ2MDQwMTAzMDAzMVoweDELMAkG -A1UEBhMCVVMxDzANBgNVBAgTBk9yZWdvbjERMA8GA1UEBxMIUG9ydGxhbmQxDjAM -BgNVBAoTBXlhU1NMMRYwFAYDVQQDEw13d3cueWFzc2wuY29tMR0wGwYJKoZIhvcN -AQkBFg5pbmZvQHlhc3NsLmNvbTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDNH3hH -+LjWCL+9fCNhhjYorO48qJqU5tUm6HFQsiaLHB4/dbLTs2eVDP12KGXVzhKCngYA -ogndzjom3UYqoEVxAgMBAAGjgdUwgdIwHQYDVR0OBBYEFK4lXvpNo1srh97xKvVC -wP/OtbStMIGiBgNVHSMEgZowgZeAFK4lXvpNo1srh97xKvVCwP/OtbStoXykejB4 -MQswCQYDVQQGEwJVUzEPMA0GA1UECBMGT3JlZ29uMREwDwYDVQQHEwhQb3J0bGFu -ZDEOMAwGA1UEChMFeWFTU0wxFjAUBgNVBAMTDXd3dy55YXNzbC5jb20xHTAbBgkq -hkiG9w0BCQEWDmluZm9AeWFzc2wuY29tggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZI -hvcNAQEEBQADQQBZGa4bTmWeyvG4Pf/HXhWGEJeMPiIyq051p3CD8vsvr/4mKOlP -1MlJfG9Rfir/oFslRS5m2Q2SlOW4YMZnGvMD +MIIDDjCCArigAwIBAgIJAMXXbBE28DXhMA0GCSqGSIb3DQEBBAUAMIGOMQswCQYD +VQQGEwJVUzEPMA0GA1UECBMGT3JlZ29uMREwDwYDVQQHEwhQb3J0bGFuZDEOMAwG +A1UEChMFeWFTU0wxFDASBgNVBAsTC3Byb2dyYW1taW5nMRYwFAYDVQQDEw13d3cu +eWFzc2wuY29tMR0wGwYJKoZIhvcNAQkBFg5pbmZvQHlhc3NsLmNvbTAeFw0xMDA2 +MzAxODM5MzlaFw0xMzAzMjYxODM5NDBaMIGOMQswCQYDVQQGEwJVUzEPMA0GA1UE +CBMGT3JlZ29uMREwDwYDVQQHEwhQb3J0bGFuZDEOMAwGA1UEChMFeWFTU0wxFDAS +BgNVBAsTC3Byb2dyYW1taW5nMRYwFAYDVQQDEw13d3cueWFzc2wuY29tMR0wGwYJ +KoZIhvcNAQkBFg5pbmZvQHlhc3NsLmNvbTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgC +QQC9UUoU/WoZhAwzOPwnMpyXC/ykGGBpTtnYeFAL6SBd1h1wHAwknyOCzDoB1ZcX +snNshs+18eXOaAzZohI5fPJTAgMBAAGjgfYwgfMwHQYDVR0OBBYEFFz3KSFpegl4 +nnvNU0IC7M4pDRHfMIHDBgNVHSMEgbswgbiAFFz3KSFpegl4nnvNU0IC7M4pDRHf +oYGUpIGRMIGOMQswCQYDVQQGEwJVUzEPMA0GA1UECBMGT3JlZ29uMREwDwYDVQQH +EwhQb3J0bGFuZDEOMAwGA1UEChMFeWFTU0wxFDASBgNVBAsTC3Byb2dyYW1taW5n +MRYwFAYDVQQDEw13d3cueWFzc2wuY29tMR0wGwYJKoZIhvcNAQkBFg5pbmZvQHlh +c3NsLmNvbYIJAMXXbBE28DXhMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQAD +QQC0pfFxJk25/1TzCR+s4RlZ5exX4/ELso/zKetrxvonMz6R0HdDyc4eD3EHqfcm +4H7/MH1SCuGASEa7menZd851 -----END CERTIFICATE----- Binary files /tmp/BFkNYwQDHp/mysql-5.5-5.5.20/extra/yassl/certs/client-key.der and /tmp/u8w54JxzCZ/mysql-5.5-5.5.22/extra/yassl/certs/client-key.der differ diff -Nru mysql-5.5-5.5.20/extra/yassl/certs/client-keyEnc3.pem mysql-5.5-5.5.22/extra/yassl/certs/client-keyEnc3.pem --- mysql-5.5-5.5.20/extra/yassl/certs/client-keyEnc3.pem 1970-01-01 00:00:00.000000000 +0000 +++ mysql-5.5-5.5.22/extra/yassl/certs/client-keyEnc3.pem 2012-03-02 19:44:46.000000000 +0000 @@ -0,0 +1,12 @@ +-----BEGIN RSA PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: DES-EDE3-CBC,BDE979D13CCC0ABD + +N7yz2JV13EmQ7MZPL5wamid5+G1V1gp8FKqMemAC5JDxonS/W9oViMLUcxbfPTDx +FznKdYSVTIQ7vv3ofmDG4MEyV/2C568N2kdtAw+jTfrZFN+IU9CI+W+In/nacirF +02sAcvDMofustnooKNOO7/iyb5+3vRvEt5vSSRQn5WuSQ9sUKjuzoLs/lbf7fyAt +4NeqfI3rYBZXxiUOLITOGXzGNRuFoY+o2uDCfelLAJ8uhiVG6ME3LeJEo1dT5lZ8 +CSJOLPasKg0iG4V7olM4j9FvAfZr48RRsSfUen756Jo2HpI4bad8LKhFYIdNs2Au +WwKLmjpo6QB9hBmRshR04rEXPdrgTqLBExCE08PyaGYnWU8ggWritCeBzDQFj/n4 +sI+NO0Mymuvg98e5RpO52lg3Xnqv9RIK3guLFOmI6aEHC0PS4WwOEQ== +-----END RSA PRIVATE KEY----- diff -Nru mysql-5.5-5.5.20/extra/yassl/certs/client-keyEnc.pem mysql-5.5-5.5.22/extra/yassl/certs/client-keyEnc.pem --- mysql-5.5-5.5.20/extra/yassl/certs/client-keyEnc.pem 1970-01-01 00:00:00.000000000 +0000 +++ mysql-5.5-5.5.22/extra/yassl/certs/client-keyEnc.pem 2012-03-02 19:44:46.000000000 +0000 @@ -0,0 +1,12 @@ +-----BEGIN RSA PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: DES-CBC,B9D8FB94E38635AB + +e7bVyzL1RF6p7hl8GDaOrRTcgB4ip+pWWUcnNf6y2tsuAQx/c/Bd5c9ZDc3L5AXC +oOAzWYB+ay1vWkmAQB4ivFS5QzGDf8870d4FbOejwmgPhiHdZNw5xNwscAN6ps0v +dFaUrR9nzWmbycsQCjXZGIZtGFCtXkA8Gdl5OMO4o+rzM0muNPS5fb++x7oNl1YG +gjReu2sQ85dPfMlnoHhr8Pz9LBcxVyOmcqtmT0SOSuPcoj6aDtcZ+EY9MQf6SR9E +ysmrJKMtp+ABgXglAj5hbT0dMpoJ2KpJYk62JAh/A6DDyv5YYUI0W57xY5+QzaV+ +YXnIvqwLjJ3cXEV4YH7ozLHAESgnAAUoQsin42rrRKt7GxjSdBoFhWjH69V2nl65 +LYRNjE1O5BBEX+rz0S+fe2ZZgT17kUr7eLZCq15J+L5xWQ7R4ERc0w== +-----END RSA PRIVATE KEY----- diff -Nru mysql-5.5-5.5.20/extra/yassl/certs/client-key.pem mysql-5.5-5.5.22/extra/yassl/certs/client-key.pem --- mysql-5.5-5.5.20/extra/yassl/certs/client-key.pem 2011-12-16 19:52:06.000000000 +0000 +++ mysql-5.5-5.5.22/extra/yassl/certs/client-key.pem 2012-03-02 19:44:46.000000000 +0000 @@ -1,9 +1,9 @@ -----BEGIN RSA PRIVATE KEY----- -MIIBOgIBAAJBAM0feEf4uNYIv718I2GGNiis7jyompTm1SbocVCyJoscHj91stOz -Z5UM/XYoZdXOEoKeBgCiCd3OOibdRiqgRXECAwEAAQJAXwa6OVVvg7Bv63+MAI0l -n/hlMfLGEj9R9gFvJXwywPSEQhijOZmedpHALufFPNHtwba9dmbqMkBAw9JDaAgg -QQIhAO+mBaSmoG5AYVKYQZiASe/2wMZjaQSN+zFLyF97OX8ZAiEA2x5iRmXUkbOT -8Td/vx8R9mq9W5CJu+cN+SWGwTYhPBkCIGZFM6NQeKaUUvQshdHO7b66Twpa4jZP -YSNoc9pLe/4BAiB+jIvBkKo2A/rbg2waG32qTXdTXKTPiuA9Fnk/OV30cQIhANuA -uMdo+T+rYcNGJ1hCYKDe9JWBpNfSQ+H/A7sWuW8L +MIIBPAIBAAJBAL1RShT9ahmEDDM4/CcynJcL/KQYYGlO2dh4UAvpIF3WHXAcDCSf +I4LMOgHVlxeyc2yGz7Xx5c5oDNmiEjl88lMCAwEAAQJAVGHWLlLhpqvXsEEXCvWh +HCYono+K8YVGzhiaPSTU212fCoQryIxsXQKGBjhFdZm96DZWp+Vd/t/u+B4ZeaqY ++QIhAOBEfbFtdZqk5OmbbRsRVPI7+YYmubgY1TVIPqmxHQ4NAiEA2BrTQkjOb3ul +A/SZO04fJUZsm7Ng92FWHDJsRancSd8CIQCmGbQqZBK1TamJZ6dAY+7RViAx/p6Q +vjuzMeXPUrFdRQIhAMkfBhg9bCqjFyt8PBPOm/vz8+ZgZlE0/JAXeV7IPCVfAiEA +gZwCFm1ghGxmaoB424YC4DHeDeN/g9xwJHT7EuM9Mvc= -----END RSA PRIVATE KEY----- Binary files /tmp/BFkNYwQDHp/mysql-5.5-5.5.20/extra/yassl/certs/dsa512.der and /tmp/u8w54JxzCZ/mysql-5.5-5.5.22/extra/yassl/certs/dsa512.der differ diff -Nru mysql-5.5-5.5.20/extra/yassl/certs/dsa-cert.pem mysql-5.5-5.5.22/extra/yassl/certs/dsa-cert.pem --- mysql-5.5-5.5.20/extra/yassl/certs/dsa-cert.pem 2011-12-16 19:52:06.000000000 +0000 +++ mysql-5.5-5.5.22/extra/yassl/certs/dsa-cert.pem 2012-03-02 19:44:46.000000000 +0000 @@ -1,13 +1,14 @@ Certificate: Data: Version: 3 (0x2) - Serial Number: 0 (0x0) + Serial Number: + ce:df:23:31:64:b4:13:da Signature Algorithm: dsaWithSHA1 - Issuer: C=US, ST=Oregon, L=Portland, O=yaSSL DSA, CN=yaSSL DSA/emailAddress=info@yassl.com + Issuer: C=US, ST=Oregon, L=Portland, O=yaSSL, OU=testing, CN=www.yassl.com/emailAddress=info@yassl.com Validity - Not Before: Mar 7 03:22:00 2005 GMT - Not After : Apr 1 03:22:00 2046 GMT - Subject: C=US, ST=Oregon, L=Portland, O=yaSSL DSA, CN=yaSSL DSA/emailAddress=info@yassl.com + Not Before: Jun 30 18:56:38 2010 GMT + Not After : Mar 26 18:56:39 2013 GMT + Subject: C=US, ST=Oregon, L=Portland, O=yaSSL, OU=testing, CN=www.yassl.com/emailAddress=info@yassl.com Subject Public Key Info: Public Key Algorithm: dsaEncryption DSA Public Key: @@ -37,32 +38,33 @@ BE:F9:8C:5D:D6:1C:B4:EE:81:DD:36:56:0A:21:E4:61:44:73:E9:E2 X509v3 Authority Key Identifier: keyid:BE:F9:8C:5D:D6:1C:B4:EE:81:DD:36:56:0A:21:E4:61:44:73:E9:E2 - DirName:/C=US/ST=Oregon/L=Portland/O=yaSSL DSA/CN=yaSSL DSA/emailAddress=info@yassl.com - serial:00 + DirName:/C=US/ST=Oregon/L=Portland/O=yaSSL/OU=testing/CN=www.yassl.com/emailAddress=info@yassl.com + serial:CE:DF:23:31:64:B4:13:DA X509v3 Basic Constraints: CA:TRUE Signature Algorithm: dsaWithSHA1 - 30:2c:02:14:7e:5e:94:fc:7f:ca:81:ab:b3:32:f7:21:83:48: - 48:5f:0a:f1:13:ca:02:14:73:54:32:14:51:22:bf:0b:ec:d7: - 6a:6a:fa:a7:1d:46:b4:c2:a3:b5 + 30:2d:02:14:00:a3:21:20:34:6a:2c:f9:fb:76:d7:20:c9:c0: + 35:1b:64:9a:c2:83:02:15:00:a4:59:ac:6d:da:85:48:ff:f5: + 0d:49:72:c8:cd:91:fc:ec:2f:5c:63 -----BEGIN CERTIFICATE----- -MIIDMjCCAvKgAwIBAgIBADAJBgcqhkjOOAQDMHgxCzAJBgNVBAYTAlVTMQ8wDQYD -VQQIEwZPcmVnb24xETAPBgNVBAcTCFBvcnRsYW5kMRIwEAYDVQQKEwl5YVNTTCBE -U0ExEjAQBgNVBAMTCXlhU1NMIERTQTEdMBsGCSqGSIb3DQEJARYOaW5mb0B5YXNz -bC5jb20wHhcNMDUwMzA3MDMyMjAwWhcNNDYwNDAxMDMyMjAwWjB4MQswCQYDVQQG -EwJVUzEPMA0GA1UECBMGT3JlZ29uMREwDwYDVQQHEwhQb3J0bGFuZDESMBAGA1UE -ChMJeWFTU0wgRFNBMRIwEAYDVQQDEwl5YVNTTCBEU0ExHTAbBgkqhkiG9w0BCQEW -DmluZm9AeWFzc2wuY29tMIHwMIGoBgcqhkjOOAQBMIGcAkEAmSlpgMk8mGhFqYL+ -Z+uViMW0DNYmRZUZLKAgW37faencww/zYQolm/IhAWrNqow358pm21b0D3160Ri5 -Qv0bEQIVAK0lKasKnwkcwa0DIHZ/prfdTQMJAkASiJna59ALk5vm7jwhf5yztI2l -jOI3gD8X0YFPvfBxtjIIVN2/AeKzdwZkdYoE1nk5sQIDA8YGdOWQBQoQRhkxA0MA -AkAEhKAmMXIM6E9dUxdisYDKwBZfwx7qxdmYOPm+VlNHaM4IIlccuw13kc9bNu3z -JIKQis2QfNt3+Rctc3Pvu7mCo4HVMIHSMB0GA1UdDgQWBBS++Yxd1hy07oHdNlYK -IeRhRHPp4jCBogYDVR0jBIGaMIGXgBS++Yxd1hy07oHdNlYKIeRhRHPp4qF8pHow -eDELMAkGA1UEBhMCVVMxDzANBgNVBAgTBk9yZWdvbjERMA8GA1UEBxMIUG9ydGxh -bmQxEjAQBgNVBAoTCXlhU1NMIERTQTESMBAGA1UEAxMJeWFTU0wgRFNBMR0wGwYJ -KoZIhvcNAQkBFg5pbmZvQHlhc3NsLmNvbYIBADAMBgNVHRMEBTADAQH/MAkGByqG -SM44BAMDLwAwLAIUfl6U/H/KgauzMvchg0hIXwrxE8oCFHNUMhRRIr8L7Ndqavqn -HUa0wqO1 +MIIDfjCCAz2gAwIBAgIJAM7fIzFktBPaMAkGByqGSM44BAMwgYoxCzAJBgNVBAYT +AlVTMQ8wDQYDVQQIEwZPcmVnb24xETAPBgNVBAcTCFBvcnRsYW5kMQ4wDAYDVQQK +EwV5YVNTTDEQMA4GA1UECxMHdGVzdGluZzEWMBQGA1UEAxMNd3d3Lnlhc3NsLmNv +bTEdMBsGCSqGSIb3DQEJARYOaW5mb0B5YXNzbC5jb20wHhcNMTAwNjMwMTg1NjM4 +WhcNMTMwMzI2MTg1NjM5WjCBijELMAkGA1UEBhMCVVMxDzANBgNVBAgTBk9yZWdv +bjERMA8GA1UEBxMIUG9ydGxhbmQxDjAMBgNVBAoTBXlhU1NMMRAwDgYDVQQLEwd0 +ZXN0aW5nMRYwFAYDVQQDEw13d3cueWFzc2wuY29tMR0wGwYJKoZIhvcNAQkBFg5p +bmZvQHlhc3NsLmNvbTCB8DCBqAYHKoZIzjgEATCBnAJBAJkpaYDJPJhoRamC/mfr +lYjFtAzWJkWVGSygIFt+32np3MMP82EKJZvyIQFqzaqMN+fKZttW9A99etEYuUL9 +GxECFQCtJSmrCp8JHMGtAyB2f6a33U0DCQJAEoiZ2ufQC5Ob5u48IX+cs7SNpYzi +N4A/F9GBT73wcbYyCFTdvwHis3cGZHWKBNZ5ObECAwPGBnTlkAUKEEYZMQNDAAJA +BISgJjFyDOhPXVMXYrGAysAWX8Me6sXZmDj5vlZTR2jOCCJXHLsNd5HPWzbt8ySC +kIrNkHzbd/kXLXNz77u5gqOB8jCB7zAdBgNVHQ4EFgQUvvmMXdYctO6B3TZWCiHk +YURz6eIwgb8GA1UdIwSBtzCBtIAUvvmMXdYctO6B3TZWCiHkYURz6eKhgZCkgY0w +gYoxCzAJBgNVBAYTAlVTMQ8wDQYDVQQIEwZPcmVnb24xETAPBgNVBAcTCFBvcnRs +YW5kMQ4wDAYDVQQKEwV5YVNTTDEQMA4GA1UECxMHdGVzdGluZzEWMBQGA1UEAxMN +d3d3Lnlhc3NsLmNvbTEdMBsGCSqGSIb3DQEJARYOaW5mb0B5YXNzbC5jb22CCQDO +3yMxZLQT2jAMBgNVHRMEBTADAQH/MAkGByqGSM44BAMDMAAwLQIUAKMhIDRqLPn7 +dtcgycA1G2SawoMCFQCkWaxt2oVI//UNSXLIzZH87C9cYw== -----END CERTIFICATE----- diff -Nru mysql-5.5-5.5.20/extra/yassl/certs/server-cert.pem mysql-5.5-5.5.22/extra/yassl/certs/server-cert.pem --- mysql-5.5-5.5.20/extra/yassl/certs/server-cert.pem 2011-12-16 19:52:06.000000000 +0000 +++ mysql-5.5-5.5.22/extra/yassl/certs/server-cert.pem 2012-03-02 19:44:46.000000000 +0000 @@ -3,36 +3,37 @@ Version: 1 (0x0) Serial Number: 1 (0x1) Signature Algorithm: md5WithRSAEncryption - Issuer: C=US, ST=Oregon, L=Portland, O=sawtooth, CN=www.sawtooth-consulting.com/emailAddress=info@yassl.com + Issuer: C=US, ST=Montana, L=Bozeman, O=sawtooth, OU=consulting, CN=www.sawtooth-consulting.com/emailAddress=info@yassl.com Validity - Not Before: Mar 8 03:00:47 2005 GMT - Not After : Apr 2 03:00:47 2046 GMT - Subject: C=US, ST=Oregon, L=Portland, O=taoSoftDev, CN=www.taosoftdev.com/emailAddress=info@yassl.com + Not Before: Jun 30 18:52:17 2010 GMT + Not After : Mar 26 18:52:17 2013 GMT + Subject: C=US, ST=Montana, L=Bozeman, O=yaSSL, OU=support, CN=www.yassl.com/emailAddress=info@yassl.com Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (512 bit) Modulus (512 bit): - 00:a4:68:bb:bc:b7:27:5f:3c:f5:78:c6:1a:af:b9: - 95:fc:7e:61:1f:a8:81:0a:ca:43:88:9a:03:e0:d0: - a6:79:70:16:34:b9:7c:75:54:ca:70:19:66:38:be: - 6e:28:7e:a5:ff:6b:3c:83:2f:39:42:c3:15:f3:bd: - f2:25:93:22:e7 + 00:c6:7b:c0:68:81:2f:de:82:3f:f9:ac:c3:86:4a: + 66:b7:ec:d4:f1:f6:64:21:ff:f5:a2:34:42:d0:38: + 9f:c6:dd:3b:6e:26:65:6a:54:96:dd:d2:7b:eb:36: + a2:ae:7e:2a:9e:7e:56:a5:b6:87:9f:15:c7:18:66: + 7e:16:77:e2:a7 Exponent: 65537 (0x10001) Signature Algorithm: md5WithRSAEncryption - 36:72:12:3b:ac:e4:58:83:09:86:4f:71:2a:3a:0d:8a:05:27: - 75:f3:3e:62:4f:ab:b8:70:20:cd:ad:70:ab:91:11:68:f8:82: - 33:e2:78:85:a8:16:f5:66:bd:68:2c:5a:26:15:12:1e:6e:83: - c7:6d:62:b9:c3:ff:e1:86:e4:e6 + 58:a9:98:e7:16:52:4c:40:e7:e1:47:92:19:1b:3a:8f:97:6c: + 7b:b7:b0:cb:20:6d:ad:b5:d3:47:58:d8:e4:f2:3e:32:e9:ef: + 87:77:e5:54:36:f4:8d:50:8d:07:b4:77:45:ea:9d:a4:33:36: + 9b:0b:e0:74:58:11:c5:01:7b:4d -----BEGIN CERTIFICATE----- -MIIB9zCCAaECAQEwDQYJKoZIhvcNAQEEBQAwgYkxCzAJBgNVBAYTAlVTMQ8wDQYD -VQQIEwZPcmVnb24xETAPBgNVBAcTCFBvcnRsYW5kMREwDwYDVQQKEwhzYXd0b290 -aDEkMCIGA1UEAxMbd3d3LnNhd3Rvb3RoLWNvbnN1bHRpbmcuY29tMR0wGwYJKoZI -hvcNAQkBFg5pbmZvQHlhc3NsLmNvbTAeFw0wNTAzMDgwMzAwNDdaFw00NjA0MDIw -MzAwNDdaMIGCMQswCQYDVQQGEwJVUzEPMA0GA1UECBMGT3JlZ29uMREwDwYDVQQH -EwhQb3J0bGFuZDETMBEGA1UEChMKdGFvU29mdERldjEbMBkGA1UEAxMSd3d3LnRh -b3NvZnRkZXYuY29tMR0wGwYJKoZIhvcNAQkBFg5pbmZvQHlhc3NsLmNvbTBcMA0G -CSqGSIb3DQEBAQUAA0sAMEgCQQCkaLu8tydfPPV4xhqvuZX8fmEfqIEKykOImgPg -0KZ5cBY0uXx1VMpwGWY4vm4ofqX/azyDLzlCwxXzvfIlkyLnAgMBAAEwDQYJKoZI -hvcNAQEEBQADQQA2chI7rORYgwmGT3EqOg2KBSd18z5iT6u4cCDNrXCrkRFo+IIz -4niFqBb1Zr1oLFomFRIeboPHbWK5w//hhuTm +MIICFDCCAb4CAQEwDQYJKoZIhvcNAQEEBQAwgZ4xCzAJBgNVBAYTAlVTMRAwDgYD +VQQIEwdNb250YW5hMRAwDgYDVQQHEwdCb3plbWFuMREwDwYDVQQKEwhzYXd0b290 +aDETMBEGA1UECxMKY29uc3VsdGluZzEkMCIGA1UEAxMbd3d3LnNhd3Rvb3RoLWNv +bnN1bHRpbmcuY29tMR0wGwYJKoZIhvcNAQkBFg5pbmZvQHlhc3NsLmNvbTAeFw0x +MDA2MzAxODUyMTdaFw0xMzAzMjYxODUyMTdaMIGKMQswCQYDVQQGEwJVUzEQMA4G +A1UECBMHTW9udGFuYTEQMA4GA1UEBxMHQm96ZW1hbjEOMAwGA1UEChMFeWFTU0wx +EDAOBgNVBAsTB3N1cHBvcnQxFjAUBgNVBAMTDXd3dy55YXNzbC5jb20xHTAbBgkq +hkiG9w0BCQEWDmluZm9AeWFzc2wuY29tMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJB +AMZ7wGiBL96CP/msw4ZKZrfs1PH2ZCH/9aI0QtA4n8bdO24mZWpUlt3Se+s2oq5+ +Kp5+VqW2h58VxxhmfhZ34qcCAwEAATANBgkqhkiG9w0BAQQFAANBAFipmOcWUkxA +5+FHkhkbOo+XbHu3sMsgba2100dY2OTyPjLp74d35VQ29I1QjQe0d0XqnaQzNpsL +4HRYEcUBe00= -----END CERTIFICATE----- diff -Nru mysql-5.5-5.5.20/extra/yassl/certs/server-keyEnc.pem mysql-5.5-5.5.22/extra/yassl/certs/server-keyEnc.pem --- mysql-5.5-5.5.20/extra/yassl/certs/server-keyEnc.pem 1970-01-01 00:00:00.000000000 +0000 +++ mysql-5.5-5.5.22/extra/yassl/certs/server-keyEnc.pem 2012-03-02 19:44:46.000000000 +0000 @@ -0,0 +1,12 @@ +-----BEGIN RSA PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: DES-CBC,08132C1FFF5BC8CC + +gsvuAsGmB8AkR23M25w4E6wuywfBey1Jqh3g71gJcnsUYwynex9dvfAU0lTowOXh +sb7ld1KNjEMzrht9AC1IC0iE1rLqvRQZOdJ7h3n7aHZQ4a/HjcwAhqJq0ZW45m6Q +mpoO5fRISjx2VbKFRUz6Xj2x0/do3IjQhpuUDVrTFFe1sEySM6APZ6CVpcnTOyPR +ADyLDKzOi2E+sj1UXs58pct56FaqTIZPUEflICU3k6q9FPU6gsYANRLfzegclkv4 +JAx6mKVSJuYnjCCppx8WBwGJa1J1GcYRJ3qFfdbUzL4bcXTvoFkJEnDkHsXgDUS6 +xmT0XGT3IMaW8cwQ8KD8m5YYI/L26Mas/w3eA2ekyMR8pYICjXp/YZtcKxxkQSVE +Uv/+D+20KbNAHIW5Mrxf61cX/CggGEbVP8ZhDY1flh8= +-----END RSA PRIVATE KEY----- diff -Nru mysql-5.5-5.5.20/extra/yassl/certs/server-key.pem mysql-5.5-5.5.22/extra/yassl/certs/server-key.pem --- mysql-5.5-5.5.20/extra/yassl/certs/server-key.pem 2011-12-16 19:52:06.000000000 +0000 +++ mysql-5.5-5.5.22/extra/yassl/certs/server-key.pem 2012-03-02 19:44:46.000000000 +0000 @@ -1,9 +1,9 @@ -----BEGIN RSA PRIVATE KEY----- -MIIBOQIBAAJBAKRou7y3J1889XjGGq+5lfx+YR+ogQrKQ4iaA+DQpnlwFjS5fHVU -ynAZZji+bih+pf9rPIMvOULDFfO98iWTIucCAwEAAQJABLVvMw931DV1vljGKORC -1HF2LKbx0zJJzt7CX6z6J54vcE79K3NYXdU6o7/j1WTtfD47tFG+4ljGvSYPmrCI -2QIhANfiY6is6JUJGGgeMxyWeQRPXfaE9Yrk6OhxHhpYf5CTAiEAwvWraeLPy/NE -B+0w80mh8tCv2tpuKaYMOG53XpYX3N0CIDy/Bj3rUZLGOWjqvoUXzjupPY5lgVYw -7Vyin87YAiUjAiAgM8X5em5KSMc+6+2+8bWfTtsNMjEqDfRMyepLpE0SvQIgTSYL -WWfcZoRUPDM9GEuQ40nifVNjobzvjTW4aYyHCEI= +MIIBOwIBAAJBAMZ7wGiBL96CP/msw4ZKZrfs1PH2ZCH/9aI0QtA4n8bdO24mZWpU +lt3Se+s2oq5+Kp5+VqW2h58VxxhmfhZ34qcCAwEAAQJBAJSbGxgjgV+rTZL2Ev58 +viN/IoB25cm/Bn4Heu7DNn2A2kpdGX2cCaf7rEQoIKCiHxvopvxOcd/7nLS/gNli +dCECIQD/cX/9fvB1Uajw0fmvwNON9+3P9uJSqpig90zL32pwjQIhAMbqee9TBMN4 +TxXbgWqA92PrCXe8WDZ3PwoJqdR6MRUDAiEAny+TDF1z6hiWiGTCDgXDkKBlwgjf +p5aKgR077XzwLu0CICVpWEGg1ZaF/CnaPP7w/pZ2UDOK4vRrfRnAM4bY7H5NAiBS +1eXJ/MCZ2uPfpl7XK2BU9P69KdKUk5WHxdRchVvcDg== -----END RSA PRIVATE KEY----- diff -Nru mysql-5.5-5.5.20/extra/yassl/certs/taoCert.txt mysql-5.5-5.5.22/extra/yassl/certs/taoCert.txt --- mysql-5.5-5.5.20/extra/yassl/certs/taoCert.txt 2011-12-16 19:52:06.000000000 +0000 +++ mysql-5.5-5.5.22/extra/yassl/certs/taoCert.txt 2012-03-02 19:44:46.000000000 +0000 @@ -47,4 +47,16 @@ b) openssl rsa -in key.pem -outform DER -out key.der +**** To encrypt rsa key already in pem ********** + +a) openssl rsa server-keyEnc.pem + +note location of des, pass = yassl123 + + +*** To make a public key from a private key ****** + + +openssl rsa -in 1024rsa.priv -pubout -out 1024rsa.pub + diff -Nru mysql-5.5-5.5.20/extra/yassl/examples/client/client.cpp mysql-5.5-5.5.22/extra/yassl/examples/client/client.cpp --- mysql-5.5-5.5.20/extra/yassl/examples/client/client.cpp 2011-12-16 19:52:06.000000000 +0000 +++ mysql-5.5-5.5.22/extra/yassl/examples/client/client.cpp 2012-03-02 19:44:46.000000000 +0000 @@ -36,15 +36,20 @@ void NonBlockingSSL_Connect(SSL* ssl, SSL_CTX* ctx, SOCKET_T& sockfd) { int ret = SSL_connect(ssl); - while (ret =! SSL_SUCCESS && SSL_get_error(ssl, 0) == - SSL_ERROR_WANT_READ) { - printf("... client would block\n"); + int err = SSL_get_error(ssl, 0); + while (ret != SSL_SUCCESS && (err == SSL_ERROR_WANT_READ || + err == SSL_ERROR_WANT_WRITE)) { + if (err == SSL_ERROR_WANT_READ) + printf("... client would read block\n"); + else + printf("... client would write block\n"); #ifdef _WIN32 Sleep(1000); #else sleep(1); #endif ret = SSL_connect(ssl); + err = SSL_get_error(ssl, 0); } if (ret != SSL_SUCCESS) ClientError(ctx, ssl, sockfd, "SSL_connect failed"); @@ -81,7 +86,8 @@ #ifdef NON_BLOCKING NonBlockingSSL_Connect(ssl, ctx, sockfd); #else - if (SSL_connect(ssl) != SSL_SUCCESS) + // if you get an error here see note at top of README + if (SSL_connect(ssl) != SSL_SUCCESS) ClientError(ctx, ssl, sockfd, "SSL_connect failed"); #endif showPeer(ssl); @@ -105,7 +111,7 @@ int input = SSL_read(ssl, reply, sizeof(reply)); if (input > 0) { reply[input] = 0; - printf("Server response: %s\n", reply); + printf("Server response: %s\n", reply); } #ifdef TEST_RESUME @@ -121,18 +127,18 @@ tcp_connect(sockfd); SSL_set_fd(sslResume, sockfd); SSL_set_session(sslResume, session); - + if (SSL_connect(sslResume) != SSL_SUCCESS) ClientError(ctx, sslResume, sockfd, "SSL_resume failed"); showPeer(sslResume); - + if (SSL_write(sslResume, msg, sizeof(msg)) != sizeof(msg)) ClientError(ctx, sslResume, sockfd, "SSL_write failed"); input = SSL_read(sslResume, reply, sizeof(reply)); if (input > 0) { reply[input] = 0; - printf("Server response: %s\n", reply); + printf("Server response: %s\n", reply); } SSL_shutdown(sslResume); diff -Nru mysql-5.5-5.5.20/extra/yassl/examples/echoclient/echoclient.cpp mysql-5.5-5.5.22/extra/yassl/examples/echoclient/echoclient.cpp --- mysql-5.5-5.5.20/extra/yassl/examples/echoclient/echoclient.cpp 2011-12-16 19:52:06.000000000 +0000 +++ mysql-5.5-5.5.22/extra/yassl/examples/echoclient/echoclient.cpp 2012-03-02 19:44:46.000000000 +0000 @@ -74,10 +74,10 @@ char send[1024]; char reply[1024]; - + while (fgets(send, sizeof(send), fin)) { - int sendSz = strlen(send) + 1; + int sendSz = (int)strlen(send) + 1; if (SSL_write(ssl, send, sendSz) != sendSz) EchoClientError(ctx, ssl, sockfd, "SSL_write failed"); @@ -86,7 +86,7 @@ break; } - if (SSL_read(ssl, reply, sizeof(reply)) > 0) + if (SSL_read(ssl, reply, sizeof(reply)) > 0) fputs(reply, fout); } diff -Nru mysql-5.5-5.5.20/extra/yassl/examples/echoserver/echoserver.cpp mysql-5.5-5.5.22/extra/yassl/examples/echoserver/echoserver.cpp --- mysql-5.5-5.5.20/extra/yassl/examples/echoserver/echoserver.cpp 2011-12-16 19:52:06.000000000 +0000 +++ mysql-5.5-5.5.22/extra/yassl/examples/echoserver/echoserver.cpp 2012-03-02 19:44:46.000000000 +0000 @@ -93,11 +93,11 @@ #endif while (!shutdown) { - sockaddr_in client; + SOCKADDR_IN_T client; socklen_t client_len = sizeof(client); SOCKET_T clientfd = accept(sockfd, (sockaddr*)&client, (ACCEPT_THIRD_T)&client_len); - if (clientfd == -1) { + if (clientfd == (SOCKET_T) -1) { SSL_CTX_free(ctx); tcp_close(sockfd); err_sys("tcp accept failed"); @@ -111,11 +111,11 @@ tcp_close(clientfd); continue; } - + char command[1024]; int echoSz(0); while ( (echoSz = SSL_read(ssl, command, sizeof(command))) > 0) { - + if ( strncmp(command, "quit", 4) == 0) { printf("client sent quit command: shutting down!\n"); shutdown = true; @@ -127,7 +127,7 @@ char header[] = "\n
\n";
                 char body[]   = "greetings from yaSSL\n";
                 char footer[] = "\r\n\r\n";
-            
+
                 strncpy(command, type, sizeof(type));
                 echoSz = sizeof(type) - 1;
 
@@ -140,7 +140,7 @@
 
                 if (SSL_write(ssl, command, echoSz) != echoSz)
                     EchoError(ctx, ssl, sockfd, clientfd, "SSL_write failed");
-
+               
                 break;
             }
             command[echoSz] = 0;
diff -Nru mysql-5.5-5.5.20/extra/yassl/examples/server/server.cpp mysql-5.5-5.5.22/extra/yassl/examples/server/server.cpp
--- mysql-5.5-5.5.20/extra/yassl/examples/server/server.cpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/examples/server/server.cpp	2012-03-02 19:44:46.000000000 +0000
@@ -35,15 +35,20 @@
     void NonBlockingSSL_Accept(SSL* ssl, SSL_CTX* ctx, SOCKET_T& clientfd)
     {
         int ret = SSL_accept(ssl);
-        while (ret != SSL_SUCCESS && SSL_get_error(ssl, 0) ==
-                                     SSL_ERROR_WANT_READ) {
-            printf("... server would block\n");
+        int err = SSL_get_error(ssl, 0);
+        while (ret != SSL_SUCCESS && (err == SSL_ERROR_WANT_READ ||
+                                      err == SSL_ERROR_WANT_WRITE)) {
+            if (err == SSL_ERROR_WANT_READ)
+                printf("... server would read block\n");
+            else
+                printf("... server would write block\n");
             #ifdef _WIN32
                 Sleep(1000);
             #else
                 sleep(1);
             #endif
             ret = SSL_accept(ssl);
+            err = SSL_get_error(ssl, 0);
         }
         if (ret != SSL_SUCCESS)
             ServerError(ctx, ssl, clientfd, "SSL_accept failed");
@@ -78,14 +83,14 @@
 
     SSL* ssl = SSL_new(ctx);
     SSL_set_fd(ssl, clientfd);
-   
+
 #ifdef NON_BLOCKING
     NonBlockingSSL_Accept(ssl, ctx, clientfd);
 #else
     if (SSL_accept(ssl) != SSL_SUCCESS)
         ServerError(ctx, ssl, clientfd, "SSL_accept failed");
 #endif
-
+     
     showPeer(ssl);
     printf("Using Cipher Suite: %s\n", SSL_get_cipher(ssl));
 
@@ -93,7 +98,7 @@
     int input = SSL_read(ssl, command, sizeof(command));
     if (input > 0) {
         command[input] = 0;
-    printf("First client command: %s\n", command);
+        printf("First client command: %s\n", command);
     }
 
     char msg[] = "I hear you, fa shizzle!";
diff -Nru mysql-5.5-5.5.20/extra/yassl/include/buffer.hpp mysql-5.5-5.5.22/extra/yassl/include/buffer.hpp
--- mysql-5.5-5.5.20/extra/yassl/include/buffer.hpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/include/buffer.hpp	2012-03-02 19:44:46.000000000 +0000
@@ -46,12 +46,6 @@
 const uint AUTO = 0xFEEDBEEF;
 
 
-// Checking Policy should implement a check function that tests whether the
-// index is within the size limit of the array
-struct Check {
-    void check(uint i, uint limit);
-};
-
 
 struct NoCheck {
     void check(uint, uint);
@@ -66,7 +60,7 @@
  * write to the buffer bulk wise and have the correct size
  */
 
-class input_buffer : public Check {
+class input_buffer : public NoCheck {
     uint   size_;                // number of elements in buffer
     uint   current_;             // current offset position in buffer
     byte*  buffer_;              // storage for buffer
@@ -132,7 +126,7 @@
  * Not using vector because need checked []access and the ability to
  * write to the buffer bulk wise and retain correct size
  */
-class output_buffer : public Check {
+class output_buffer : public NoCheck {
     uint    current_;                // current offset and elements in buffer
     byte*   buffer_;                 // storage for buffer
     byte*   end_;                    // end of storage marker
diff -Nru mysql-5.5-5.5.20/extra/yassl/include/openssl/ssl.h mysql-5.5-5.5.22/extra/yassl/include/openssl/ssl.h
--- mysql-5.5-5.5.20/extra/yassl/include/openssl/ssl.h	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/include/openssl/ssl.h	2012-03-02 19:44:46.000000000 +0000
@@ -1,5 +1,5 @@
 /*
-   Copyright (c) 2005-2007 MySQL AB, 2008 Sun Microsystems, Inc.
+   Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
    Use is subject to license terms.
 
    This program is free software; you can redistribute it and/or modify
@@ -30,12 +30,12 @@
 #include "prefix_ssl.h"
 #endif
 
-#include    /* ERR_print fp */
+#include     /* ERR_print fp */
 #include "opensslv.h" /* for version number */
 #include "rsa.h"
 
 
-#define YASSL_VERSION "1.7.2"
+#define YASSL_VERSION "2.2.0"
 
 
 #if defined(__cplusplus)
@@ -43,9 +43,9 @@
 #endif
 
  void yaSSL_CleanUp();   /* call once at end of application use to
-                                      free static singleton memory holders,
-                                      not a leak per se, but helpful when 
-                                      looking for them                      */
+                            free static singleton memory holders,
+                            not a leak per se, but helpful when
+                            looking for them                      */
 
 #if defined(__cplusplus)
 } // extern
@@ -70,11 +70,11 @@
     class X509;
     class X509_NAME;
 #else
-    typedef struct SSL         SSL;          
+    typedef struct SSL          SSL;          
     typedef struct SSL_SESSION  SSL_SESSION;
-    typedef struct SSL_METHOD  SSL_METHOD;
-    typedef struct SSL_CTX     SSL_CTX;
-    typedef struct SSL_CIPHER  SSL_CIPHER;
+    typedef struct SSL_METHOD   SSL_METHOD;
+    typedef struct SSL_CTX      SSL_CTX;
+    typedef struct SSL_CIPHER   SSL_CIPHER;
 
     typedef struct RSA RSA;
 
@@ -107,6 +107,15 @@
 
 /* X509 stuff, different file? */
 
+/* because mySQL dereferences to use error and current_cert, even after calling
+ * get functions for local references */
+typedef struct X509_STORE_CTX {
+    int   error;
+    int   error_depth;
+    X509* current_cert;
+} X509_STORE_CTX;
+
+
 typedef struct X509_STORE         X509_STORE;
 typedef struct X509_LOOKUP        X509_LOOKUP;
 typedef struct X509_OBJECT { char c; } X509_OBJECT;
@@ -125,16 +134,6 @@
 
 
 
-/* because mySQL dereferences to use error and current_cert, even after calling
- * get functions for local references */
-typedef struct X509_STORE_CTX {
-    int   error;
-    int   error_depth;
-    X509* current_cert;
-} X509_STORE_CTX;
-
-
-
 X509* X509_STORE_CTX_get_current_cert(X509_STORE_CTX*);
 int   X509_STORE_CTX_get_error(X509_STORE_CTX*);
 int   X509_STORE_CTX_get_error_depth(X509_STORE_CTX*);
@@ -205,7 +204,7 @@
 int  SSL_set_fd (SSL*, YASSL_SOCKET_T);
 YASSL_SOCKET_T SSL_get_fd(const SSL*);
 int  SSL_connect(SSL*);                    /* if you get an error from connect
-                                              see note at top of REAMDE */
+                                              see note at top of README       */
 int  SSL_write(SSL*, const void*, int);
 int  SSL_read(SSL*, void*, int);
 int  SSL_accept(SSL*);
@@ -351,11 +350,11 @@
     SSL_ERROR_ZERO_RETURN      = 84,
     SSL_ERROR_SSL              = 85,
 
-    SSL_SENT_SHUTDOWN     = 90,
-    SSL_RECEIVED_SHUTDOWN = 91,
+    SSL_ST_CONNECT        = 90,
+    SSL_ST_ACCEPT         = 91,
     SSL_CB_LOOP           = 92,
-    SSL_ST_CONNECT        = 93,
-    SSL_ST_ACCEPT         = 94,
+    SSL_SENT_SHUTDOWN     = 93,
+    SSL_RECEIVED_SHUTDOWN = 94,
     SSL_CB_ALERT          = 95,
     SSL_CB_READ           = 96,
     SSL_CB_HANDSHAKE_DONE = 97
@@ -366,7 +365,7 @@
 SSL_METHOD *SSLv3_method(void);
 SSL_METHOD *SSLv3_server_method(void);
 SSL_METHOD *SSLv3_client_method(void);
-SSL_METHOD *TLSv1_server_method(void);  
+SSL_METHOD *TLSv1_server_method(void);
 SSL_METHOD *TLSv1_client_method(void);
 SSL_METHOD *TLSv1_1_server_method(void);
 SSL_METHOD *TLSv1_1_client_method(void);
diff -Nru mysql-5.5-5.5.20/extra/yassl/include/socket_wrapper.hpp mysql-5.5-5.5.22/extra/yassl/include/socket_wrapper.hpp
--- mysql-5.5-5.5.20/extra/yassl/include/socket_wrapper.hpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/include/socket_wrapper.hpp	2012-03-02 19:44:46.000000000 +0000
@@ -26,7 +26,6 @@
 #ifndef yaSSL_SOCKET_WRAPPER_HPP
 #define yaSSL_SOCKET_WRAPPER_HPP
 
-#include 
 
 #ifdef _WIN32
     #include 
@@ -73,7 +72,8 @@
     uint     get_ready() const;
     socket_t get_fd()    const;
 
-    uint send(const byte* buf, unsigned int len, int flags = 0) const;
+    uint send(const byte* buf, unsigned int len, unsigned int& sent,
+              int flags = 0);
     uint receive(byte* buf, unsigned int len, int flags = 0);
 
     bool wait();
diff -Nru mysql-5.5-5.5.20/extra/yassl/include/yassl_int.hpp mysql-5.5-5.5.22/extra/yassl/include/yassl_int.hpp
--- mysql-5.5-5.5.20/extra/yassl/include/yassl_int.hpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/include/yassl_int.hpp	2012-03-02 19:44:46.000000000 +0000
@@ -168,7 +168,7 @@
 
 // openSSL X509 names
 class X509_NAME {
-    char* name_;
+    char*       name_;
     size_t      sz_;
     ASN1_STRING entry_;
 public:
@@ -246,11 +246,11 @@
     SSL_SESSION(const SSL&, RandomPool&);
     ~SSL_SESSION();
 
-    const opaque* GetID()      const;
-    const opaque* GetSecret()  const;
-    const Cipher* GetSuite()   const;
-          uint    GetBornOn()  const;
-          uint    GetTimeOut() const;
+    const opaque* GetID()       const;
+    const opaque* GetSecret()   const;
+    const Cipher* GetSuite()    const;
+          uint    GetBornOn()   const;
+          uint    GetTimeOut()  const;
           X509*   GetPeerX509() const;
           void    SetTimeOut(uint);
 
@@ -417,33 +417,33 @@
 public:
     typedef STL::list CertList;
 private:
-    SSL_METHOD* method_;
-    x509*       certificate_;
-    x509*       privateKey_;
-    CertList    caList_;
-    Ciphers     ciphers_;
-    DH_Parms    dhParms_;
+    SSL_METHOD*     method_;
+    x509*           certificate_;
+    x509*           privateKey_;
+    CertList        caList_;
+    Ciphers         ciphers_;
+    DH_Parms        dhParms_;
     pem_password_cb passwordCb_;
     void*           userData_;
     bool            sessionCacheOff_;
     bool            sessionCacheFlushOff_;
-    Stats       stats_;
-    Mutex       mutex_;         // for Stats
+    Stats           stats_;
+    Mutex           mutex_;         // for Stats
     VerifyCallback  verifyCallback_;
 public:
     explicit SSL_CTX(SSL_METHOD* meth);
     ~SSL_CTX();
 
-    const x509*       getCert()     const;
-    const x509*       getKey()      const;
-    const SSL_METHOD* getMethod()   const;
-    const Ciphers&    GetCiphers()  const;
-    const DH_Parms&   GetDH_Parms() const;
-    const Stats&      GetStats()    const;
-    VerifyCallback    getVerifyCallback() const;
+    const x509*       getCert()       const;
+    const x509*       getKey()        const;
+    const SSL_METHOD* getMethod()     const;
+    const Ciphers&    GetCiphers()    const;
+    const DH_Parms&   GetDH_Parms()   const;
+    const Stats&      GetStats()      const;
+    const VerifyCallback getVerifyCallback() const;
     pem_password_cb   GetPasswordCb() const;
           void*       GetUserData()   const;
-          bool        GetSessionCacheOff() const;
+          bool        GetSessionCacheOff()      const;
           bool        GetSessionCacheFlushOff() const;
 
     void setVerifyPeer();
@@ -532,10 +532,13 @@
 public: 
     typedef STL::list  inputList;
     typedef STL::list outputList;
+    int prevSent;     // previous plain text bytes sent when got WANT_WRITE
+    int plainSz;      // plain text bytes in buffer to send when got WANT_WRITE 
 private:
-    inputList  dataList_;                // list of users app data / handshake
-    outputList handShakeList_;           // buffered handshake msgs
-    input_buffer* rawInput_;             // buffered raw input yet to process
+    inputList      dataList_;             // list of users app data / handshake
+    outputList     handShakeList_;        // buffered handshake msgs
+    input_buffer*  rawInput_;             // buffered raw input yet to process
+    output_buffer* output_;               // WANT_WRITE buffered output 
 public:
     Buffers();
     ~Buffers();
@@ -546,11 +549,13 @@
     inputList&  useData();
     outputList& useHandShake();
 
-    void          SetRawInput(input_buffer*);  // takes ownership
-    input_buffer* TakeRawInput();              // takes ownership 
+    void           SetRawInput(input_buffer*);  // takes ownership
+    input_buffer*  TakeRawInput();              // takes ownership 
+    void           SetOutput(output_buffer*);   // takes ownership
+    output_buffer* TakeOutput();                // takes ownership 
 private:
     Buffers(const Buffers&);             // hide copy
-    Buffers& operator=(const Buffers&); // and assign   
+    Buffers& operator=(const Buffers&);  // and assign   
 };
 
 
@@ -652,6 +657,7 @@
     void deriveKeys();
     void deriveTLSKeys();
     void Send(const byte*, uint);
+    void SendWriteBuffered();
 
     uint bufferedData();
     uint get_SEQIncrement(bool);
diff -Nru mysql-5.5-5.5.20/extra/yassl/include/yassl_types.hpp mysql-5.5-5.5.22/extra/yassl/include/yassl_types.hpp
--- mysql-5.5-5.5.20/extra/yassl/include/yassl_types.hpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/include/yassl_types.hpp	2012-03-02 19:44:46.000000000 +0000
@@ -26,7 +26,6 @@
 #define yaSSL_TYPES_HPP
 
 #include 
-#include 
 #include "type_traits.hpp"
 
 
@@ -37,6 +36,13 @@
 #endif
 
 
+#ifdef _MSC_VER
+    // disable conversion warning
+    // 4996 warning to use MS extensions e.g., strcpy_s instead of strncpy
+    #pragma warning(disable:4244 4996)
+#endif
+
+
 namespace yaSSL {
 
 #define YASSL_LIB
@@ -63,29 +69,29 @@
     template
     void ysDelete(T* ptr)
     {
-    if (ptr) ptr->~T();
-    ::operator delete(ptr, yaSSL::ys);
+        if (ptr) ptr->~T();
+        ::operator delete(ptr, yaSSL::ys);
     }
 
     template
     void ysArrayDelete(T* ptr)
     {
-    // can't do array placement destruction since not tracking size in
-    // allocation, only allow builtins to use array placement since they
-    // don't need destructors called
-    typedef char builtin[TaoCrypt::IsFundamentalType::Yes ? 1 : -1];
-    (void)sizeof(builtin);
+        // can't do array placement destruction since not tracking size in
+        // allocation, only allow builtins to use array placement since they
+        // don't need destructors called
+        typedef char builtin[TaoCrypt::IsFundamentalType::Yes ? 1 : -1];
+        (void)sizeof(builtin);
 
-    ::operator delete[](ptr, yaSSL::ys);
+        ::operator delete[](ptr, yaSSL::ys);
     }
 
     #define NEW_YS new (yaSSL::ys)
 
     // to resolve compiler generated operator delete on base classes with
-    // virtual destructors (when on stack), make sure doesn't get called
+    // virtual destructors (when on stack)
     class virtual_base {
     public:
-    static void operator delete(void*) { assert(0); }
+        static void operator delete(void*) { }
     };
 
 
@@ -124,7 +130,7 @@
 
 typedef unsigned int uint;
 
- 
+
 #ifdef USE_SYS_STL
     // use system STL
     #define STL_VECTOR_FILE    
diff -Nru mysql-5.5-5.5.20/extra/yassl/INSTALL mysql-5.5-5.5.22/extra/yassl/INSTALL
--- mysql-5.5-5.5.20/extra/yassl/INSTALL	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/INSTALL	2012-03-02 19:44:46.000000000 +0000
@@ -1,13 +1,19 @@
-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software
-Foundation, Inc.
+Installation Instructions
+*************************
 
-   This file is free documentation; the Free Software Foundation gives
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
+2006 Free Software Foundation, Inc.
+
+This file is free documentation; the Free Software Foundation gives
 unlimited permission to copy, distribute and modify it.
 
 Basic Installation
 ==================
 
-   These are generic installation instructions.
+Briefly, the shell commands `./configure; make; make install' should
+configure, build, and install this package.  The following
+more-detailed instructions are generic; see the `README' file for
+instructions specific to this package.
 
    The `configure' shell script attempts to guess correct values for
 various system-dependent variables used during compilation.  It uses
@@ -20,9 +26,9 @@
 
    It can also use an optional file (typically called `config.cache'
 and enabled with `--cache-file=config.cache' or simply `-C') that saves
-the results of its tests to speed up reconfiguring.  (Caching is
+the results of its tests to speed up reconfiguring.  Caching is
 disabled by default to prevent problems with accidental use of stale
-cache files.)
+cache files.
 
    If you need to do unusual things to compile the package, please try
 to figure out how `configure' could check whether to do them, and mail
@@ -32,20 +38,17 @@
 may remove or edit it.
 
    The file `configure.ac' (or `configure.in') is used to create
-`configure' by a program called `autoconf'.  You only need
-`configure.ac' if you want to change it or regenerate `configure' using
-a newer version of `autoconf'.
+`configure' by a program called `autoconf'.  You need `configure.ac' if
+you want to change it or regenerate `configure' using a newer version
+of `autoconf'.
 
 The simplest way to compile this package is:
 
   1. `cd' to the directory containing the package's source code and type
-     `./configure' to configure the package for your system.  If you're
-     using `csh' on an old version of System V, you might need to type
-     `sh ./configure' instead to prevent `csh' from trying to execute
-     `configure' itself.
+     `./configure' to configure the package for your system.
 
-     Running `configure' takes awhile.  While running, it prints some
-     messages telling which features it is checking for.
+     Running `configure' might take a while.  While running, it prints
+     some messages telling which features it is checking for.
 
   2. Type `make' to compile the package.
 
@@ -67,51 +70,49 @@
 Compilers and Options
 =====================
 
-   Some systems require unusual options for compilation or linking that
-the `configure' script does not know about.  Run `./configure --help'
-for details on some of the pertinent environment variables.
+Some systems require unusual options for compilation or linking that the
+`configure' script does not know about.  Run `./configure --help' for
+details on some of the pertinent environment variables.
 
    You can give `configure' initial values for configuration parameters
 by setting variables in the command line or in the environment.  Here
 is an example:
 
-     ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
+     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
 
    *Note Defining Variables::, for more details.
 
 Compiling For Multiple Architectures
 ====================================
 
-   You can compile the package for more than one kind of computer at the
+You can compile the package for more than one kind of computer at the
 same time, by placing the object files for each architecture in their
-own directory.  To do this, you must use a version of `make' that
-supports the `VPATH' variable, such as GNU `make'.  `cd' to the
+own directory.  To do this, you can use GNU `make'.  `cd' to the
 directory where you want the object files and executables to go and run
 the `configure' script.  `configure' automatically checks for the
 source code in the directory that `configure' is in and in `..'.
 
-   If you have to use a `make' that does not support the `VPATH'
-variable, you have to compile the package for one architecture at a
-time in the source code directory.  After you have installed the
-package for one architecture, use `make distclean' before reconfiguring
-for another architecture.
+   With a non-GNU `make', it is safer to compile the package for one
+architecture at a time in the source code directory.  After you have
+installed the package for one architecture, use `make distclean' before
+reconfiguring for another architecture.
 
 Installation Names
 ==================
 
-   By default, `make install' will install the package's files in
-`/usr/local/bin', `/usr/local/man', etc.  You can specify an
-installation prefix other than `/usr/local' by giving `configure' the
-option `--prefix=PATH'.
+By default, `make install' installs the package's commands under
+`/usr/local/bin', include files under `/usr/local/include', etc.  You
+can specify an installation prefix other than `/usr/local' by giving
+`configure' the option `--prefix=PREFIX'.
 
    You can specify separate installation prefixes for
 architecture-specific files and architecture-independent files.  If you
-give `configure' the option `--exec-prefix=PATH', the package will use
-PATH as the prefix for installing programs and libraries.
-Documentation and other data files will still use the regular prefix.
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
 
    In addition, if you use an unusual directory layout you can give
-options like `--bindir=PATH' to specify different values for particular
+options like `--bindir=DIR' to specify different values for particular
 kinds of files.  Run `configure --help' for a list of the directories
 you can set and what kinds of files go in them.
 
@@ -122,7 +123,7 @@
 Optional Features
 =================
 
-   Some packages pay attention to `--enable-FEATURE' options to
+Some packages pay attention to `--enable-FEATURE' options to
 `configure', where FEATURE indicates an optional part of the package.
 They may also pay attention to `--with-PACKAGE' options, where PACKAGE
 is something like `gnu-as' or `x' (for the X Window System).  The
@@ -137,11 +138,11 @@
 Specifying the System Type
 ==========================
 
-   There may be some features `configure' cannot figure out
-automatically, but needs to determine by the type of machine the package
-will run on.  Usually, assuming the package is built to be run on the
-_same_ architectures, `configure' can figure that out, but if it prints
-a message saying it cannot guess the machine type, give it the
+There may be some features `configure' cannot figure out automatically,
+but needs to determine by the type of machine the package will run on.
+Usually, assuming the package is built to be run on the _same_
+architectures, `configure' can figure that out, but if it prints a
+message saying it cannot guess the machine type, give it the
 `--build=TYPE' option.  TYPE can either be a short name for the system
 type, such as `sun4', or a canonical name which has the form:
 
@@ -156,7 +157,7 @@
 need to know the machine type.
 
    If you are _building_ compiler tools for cross-compiling, you should
-use the `--target=TYPE' option to select the type of system they will
+use the option `--target=TYPE' to select the type of system they will
 produce code for.
 
    If you want to _use_ a cross compiler, that generates code for a
@@ -167,9 +168,9 @@
 Sharing Defaults
 ================
 
-   If you want to set default values for `configure' scripts to share,
-you can create a site shell script called `config.site' that gives
-default values for variables like `CC', `cache_file', and `prefix'.
+If you want to set default values for `configure' scripts to share, you
+can create a site shell script called `config.site' that gives default
+values for variables like `CC', `cache_file', and `prefix'.
 `configure' looks for `PREFIX/share/config.site' if it exists, then
 `PREFIX/etc/config.site' if it exists.  Or, you can set the
 `CONFIG_SITE' environment variable to the location of the site script.
@@ -178,7 +179,7 @@
 Defining Variables
 ==================
 
-   Variables not defined in a site shell script can be set in the
+Variables not defined in a site shell script can be set in the
 environment passed to `configure'.  However, some packages may run
 configure again during the build, and the customized values of these
 variables may be lost.  In order to avoid this problem, you should set
@@ -186,14 +187,18 @@
 
      ./configure CC=/usr/local2/bin/gcc
 
-will cause the specified gcc to be used as the C compiler (unless it is
+causes the specified `gcc' to be used as the C compiler (unless it is
 overridden in the site shell script).
 
+Unfortunately, this technique does not work for `CONFIG_SHELL' due to
+an Autoconf bug.  Until the bug is fixed you can use this workaround:
+
+     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
+
 `configure' Invocation
 ======================
 
-   `configure' recognizes the following options to control how it
-operates.
+`configure' recognizes the following options to control how it operates.
 
 `--help'
 `-h'
diff -Nru mysql-5.5-5.5.20/extra/yassl/README mysql-5.5-5.5.22/extra/yassl/README
--- mysql-5.5-5.5.20/extra/yassl/README	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/README	2012-03-02 19:44:46.000000000 +0000
@@ -1,3 +1,120 @@
+*** Note, Please read ***
+
+yaSSL takes a different approach to certificate verification than OpenSSL does.
+The default policy for the client is to verify the server, this means that if
+you don't load CAs to verify the server you'll get a connect error, unable to 
+verify.  It you want to mimic OpenSSL behavior of not verifying the server and
+reducing security you can do this by calling:
+
+SSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, 0);
+
+before calling SSL_new();
+
+*** end Note ***
+
+yaSSL Release notes, version 2.1.2 (9/2/2011)
+
+    This release of yaSSL contains bug fixes, better non-blocking support with
+    SSL_write, and OpenSSL RSA public key format support.
+
+See normal  build instructions below under 1.0.6.
+See libcurl build instructions below under 1.3.0 and note in 1.5.8.
+
+
+*****************yaSSL Release notes, version 2.0.0 (7/6/2010)
+
+    This release of yaSSL contains bug fixes, new testing certs,
+    and a security patch for a potential heap overflow on forged application
+    data processing.  Vulnerability discovered by Matthieu Bonetti from VUPEN
+    Security http://www.vupen.com.
+
+See normal  build instructions below under 1.0.6.
+See libcurl build instructions below under 1.3.0 and note in 1.5.8.
+
+
+*****************yaSSL Release notes, version 1.9.9 (1/26/2010)
+
+    This release of yaSSL contains bug fixes, the removal of assert() s and
+    a security patch for a buffer overflow possibility in certificate name
+    processing. 
+
+See normal  build instructions below under 1.0.6.
+See libcurl build instructions below under 1.3.0 and note in 1.5.8.
+
+
+*****************yaSSL Release notes, version 1.9.8 (10/14/09)
+
+    This release of yaSSL contains bug fixes and adds new stream ciphers
+    Rabbit and HC-128
+
+See normal  build instructions below under 1.0.6.
+See libcurl build instructions below under 1.3.0 and note in 1.5.8.
+
+
+*****************yaSSL Release notes, version 1.9.6 (11/13/08)
+
+    This release of yaSSL contains bug fixes, adds autconf shared library
+    support and has better server suite detection based on certficate and
+    private key.
+
+See normal  build instructions below under 1.0.6.
+See libcurl build instructions below under 1.3.0 and note in 1.5.8.
+
+
+*****************yaSSL Release notes, version 1.9.2 (9/24/08)
+
+    This release of yaSSL contains bug fixes and improved certificate verify
+    callback support. 
+
+See normal  build instructions below under 1.0.6.
+See libcurl build instructions below under 1.3.0 and note in 1.5.8.
+
+
+*****************yaSSL Release notes, version 1.8.8 (5/7/08)
+
+    This release of yaSSL contains bug fixes, and better socket handling. 
+
+See normal  build instructions below under 1.0.6.
+See libcurl build instructions below under 1.3.0 and note in 1.5.8.
+
+
+*****************yaSSL Release notes, version 1.8.6 (1/31/08)
+
+    This release of yaSSL contains bug fixes, and fixes security problems
+    associated with using SSL 2.0 client hellos and improper input handling.
+    Please upgrade to this version if you are using a previous one. 
+
+See normal  build instructions below under 1.0.6.
+See libcurl build instructions below under 1.3.0 and note in 1.5.8.
+
+
+*****************yaSSL Release notes, version 1.7.5 (10/15/07)
+
+    This release of yaSSL contains bug fixes, adds MSVC 2005 project support,
+    GCC 4.2 support, IPV6 support and test, and new test certificates. 
+
+See normal  build instructions below under 1.0.6.
+See libcurl build instructions below under 1.3.0 and note in 1.5.8.
+
+
+*****************yaSSL Release notes, version 1.7.2 (8/20/07)
+
+    This release of yaSSL contains bug fixes and adds initial OpenVPN support.
+    Just configure at this point and beginning of build. 
+
+See normal  build instructions below under 1.0.6.
+See libcurl build instructions below under 1.3.0 and note in 1.5.8.
+
+
+*****************yaSSL Release notes, version 1.6.8 (4/16/07)
+
+    This release of yaSSL contains bug fixes and adds SHA-256, SHA-512, SHA-224,
+    and SHA-384.
+
+See normal  build instructions below under 1.0.6.
+See libcurl build instructions below under 1.3.0 and note in 1.5.8.
+
+
 *****************yaSSL Release notes, version 1.6.0 (2/22/07)
 
     This release of yaSSL contains bug fixes, portability enhancements, and
@@ -13,7 +130,7 @@
 
 
 
-    Since yaSSL now supports zlib, as does libcur, the libcurl build test can
+    Since yaSSL now supports zlib, as does libcurl, the libcurl build test can
     fail if yaSSL is built with zlib support since the zlib library isn't 
     passed.  You can do two things to fix this: 
 
@@ -518,7 +635,7 @@
 *********************
 
 Contact: please send comments or questions to Todd A Ouska at todd@yassl.com
-and/or Larry Stefonic at larry@yassl.com or 425-741-6858.
+and/or Larry Stefonic at larry@yassl.com.
 
 
 
diff -Nru mysql-5.5-5.5.20/extra/yassl/src/buffer.cpp mysql-5.5-5.5.22/extra/yassl/src/buffer.cpp
--- mysql-5.5-5.5.20/extra/yassl/src/buffer.cpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/src/buffer.cpp	2012-03-02 19:44:46.000000000 +0000
@@ -32,14 +32,6 @@
 
 
 
-// Checking Policy should implement a check function that tests whether the
-// index is within the size limit of the array
-
-void Check::check(uint i, uint limit) 
-{ 
-    assert(i < limit);
-}
-
 
 void NoCheck::check(uint, uint) 
 {
@@ -83,7 +75,6 @@
 // users can pass defualt zero length buffer and then allocate
 void input_buffer::allocate(uint s) 
 { 
-    assert(!buffer_);       // find realloc error
     buffer_ = NEW_YS byte[s];
     end_ = buffer_ + s; 
 }
@@ -141,7 +132,6 @@
 // user passes in AUTO index for ease of use
 const byte& input_buffer::operator[](uint i) 
 {
-    assert (i == AUTO);
     check(current_, size_);
     return buffer_[current_++];
 }
@@ -238,7 +228,6 @@
 // users can pass defualt zero length buffer and then allocate
 void output_buffer::allocate(uint s) 
 { 
-    assert(!buffer_);   // find realloc error
     buffer_ = NEW_YS byte[s]; end_ = buffer_ + s; 
 }
 
@@ -254,7 +243,6 @@
 // user passes in AUTO as index for ease of use
 byte& output_buffer::operator[](uint i) 
 {
-    assert(i == AUTO);
     check(current_, get_capacity());
     return buffer_[current_++];
 }
diff -Nru mysql-5.5-5.5.20/extra/yassl/src/cert_wrapper.cpp mysql-5.5-5.5.22/extra/yassl/src/cert_wrapper.cpp
--- mysql-5.5-5.5.20/extra/yassl/src/cert_wrapper.cpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/src/cert_wrapper.cpp	2012-03-02 19:44:46.000000000 +0000
@@ -250,7 +250,8 @@
         TaoCrypt::Source source((*last)->get_buffer(), (*last)->get_length());
         TaoCrypt::CertDecoder cert(source, true, &signers_, verifyNone_);
 
-        if (int err = cert.GetError().What())
+        int err = cert.GetError().What();
+        if ( err )
             return err;
 
         const TaoCrypt::PublicKey& key = cert.GetPublicKey();
@@ -266,7 +267,7 @@
         TaoCrypt::CertDecoder cert(source, true, &signers_, verifyNone_);
 
         int err = cert.GetError().What();
-        if ( err )
+        if ( err && err != TaoCrypt::SIG_OTHER_E)
             return err;
 
         uint sz = cert.GetPublicKey().size();
@@ -327,7 +328,6 @@
 // Store OpenSSL type peer's cert
 void CertManager::setPeerX509(X509* x)
 {
-    assert(peerX509_ == 0);
     if (x == 0) return;
 
     X509_NAME* issuer   = x->GetIssuer();
diff -Nru mysql-5.5-5.5.20/extra/yassl/src/crypto_wrapper.cpp mysql-5.5-5.5.22/extra/yassl/src/crypto_wrapper.cpp
--- mysql-5.5-5.5.20/extra/yassl/src/crypto_wrapper.cpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/src/crypto_wrapper.cpp	2012-03-02 19:44:46.000000000 +0000
@@ -955,7 +955,7 @@
             }
             // get blank line
             if (fgets(line, sizeof(line), file))
-              begin = ftell(file);
+            begin = ftell(file);
         }
           
     }
diff -Nru mysql-5.5-5.5.20/extra/yassl/src/handshake.cpp mysql-5.5-5.5.22/extra/yassl/src/handshake.cpp
--- mysql-5.5-5.5.20/extra/yassl/src/handshake.cpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/src/handshake.cpp	2012-03-02 19:44:46.000000000 +0000
@@ -50,7 +50,7 @@
     hello.suite_len_ = ssl.getSecurity().get_parms().suites_size_;
     memcpy(hello.cipher_suites_, ssl.getSecurity().get_parms().suites_,
            hello.suite_len_);
-    hello.comp_len_ = 1;                   
+    hello.comp_len_ = 1;
 
     hello.set_length(sizeof(ProtocolVersion) +
                      RAN_LEN +
@@ -528,8 +528,9 @@
     input.read(len, sizeof(len));
     uint16 randomLen;
     ato16(len, randomLen);
+
     if (ch.suite_len_ > MAX_SUITE_SZ || sessionLen > ID_LEN ||
-        randomLen > RAN_LEN) {
+                                        randomLen > RAN_LEN) {
         ssl.SetError(bad_input);
         return;
     }
@@ -707,7 +708,7 @@
 {
     // wait for input if blocking
     if (!ssl.useSocket().wait()) {
-      ssl.SetError(receive_error);
+        ssl.SetError(receive_error);
         return 0;
     }
     uint ready = ssl.getSocket().get_ready();
@@ -750,8 +751,8 @@
         if (static_cast(RECORD_HEADER) > buffer.get_remaining())
             needHdr = true;
         else {
-        buffer >> hdr;
-        ssl.verifyState(hdr);
+            buffer >> hdr;
+            ssl.verifyState(hdr);
         }
 
         // make sure we have enough input in buffer to process this record
@@ -789,9 +790,8 @@
 void processReply(SSL& ssl)
 {
     if (ssl.GetError()) return;
-
-    if (DoProcessReply(ssl))
-    {
+  
+    if (DoProcessReply(ssl)) {
         // didn't complete process
         if (!ssl.getSocket().IsNonBlocking()) {
             // keep trying now, blocking ok
@@ -857,6 +857,7 @@
     if (ssl.GetError()) return;
     ServerKeyExchange sk(ssl);
     sk.build(ssl);
+    if (ssl.GetError()) return;
 
     RecordLayerHeader rlHeader;
     HandShakeHeader   hsHeader;
@@ -875,8 +876,7 @@
 // send change cipher
 void sendChangeCipher(SSL& ssl, BufferOutput buffer)
 {
-    if (ssl.getSecurity().get_parms().entity_ == server_end)
-    {
+    if (ssl.getSecurity().get_parms().entity_ == server_end) {
         if (ssl.getSecurity().get_resuming())
             ssl.verifyState(clientKeyExchangeComplete);
         else
@@ -913,7 +913,7 @@
     }
     else {
         if (!ssl.getSecurity().GetContext()->GetSessionCacheOff())
-        GetSessions().add(ssl);  // store session
+            GetSessions().add(ssl);  // store session
         if (side == client_end)
             buildFinished(ssl, ssl.useHashes().use_verify(), server); // server
     }   
@@ -929,12 +929,22 @@
 // send data
 int sendData(SSL& ssl, const void* buffer, int sz)
 {
+    int sent = 0;
+
     if (ssl.GetError() == YasslError(SSL_ERROR_WANT_READ))
         ssl.SetError(no_error);
 
+    if (ssl.GetError() == YasslError(SSL_ERROR_WANT_WRITE)) {
+        ssl.SetError(no_error);
+        ssl.SendWriteBuffered();
+        if (!ssl.GetError()) {
+            // advance sent to prvevious sent + plain size just sent
+            sent = ssl.useBuffers().prevSent + ssl.useBuffers().plainSz;
+        }
+    }
+
     ssl.verfiyHandShakeComplete();
     if (ssl.GetError()) return -1;
-    int sent = 0;
 
     for (;;) {
         int len = min(sz - sent, MAX_RECORD_SIZE);
@@ -943,6 +953,8 @@
 
         Data data;
 
+        if (sent == sz) break;
+
         if (ssl.CompressionOn()) {
             if (Compress(static_cast(buffer) + sent, len,
                          tmp) == -1) {
@@ -957,9 +969,14 @@
         buildMessage(ssl, out, data);
         ssl.Send(out.get_buffer(), out.get_size());
 
-        if (ssl.GetError()) return -1;
+        if (ssl.GetError()) {
+            if (ssl.GetError() == YasslError(SSL_ERROR_WANT_WRITE)) {
+                ssl.useBuffers().plainSz  = len;
+                ssl.useBuffers().prevSent = sent;
+            }
+            return -1;
+        }
         sent += len;
-        if (sent == sz) break;
     }
     ssl.useLog().ShowData(sent, true);
     return sent;
@@ -992,7 +1009,7 @@
     if (peek)
         ssl.PeekData(data);
     else
-    ssl.fillData(data);
+        ssl.fillData(data);
 
     ssl.useLog().ShowData(data.get_length());
     if (ssl.GetError()) return -1;
diff -Nru mysql-5.5-5.5.20/extra/yassl/src/socket_wrapper.cpp mysql-5.5-5.5.22/extra/yassl/src/socket_wrapper.cpp
--- mysql-5.5-5.5.20/extra/yassl/src/socket_wrapper.cpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/src/socket_wrapper.cpp	2012-03-02 19:44:46.000000000 +0000
@@ -109,19 +109,28 @@
 }
 
 
-uint Socket::send(const byte* buf, unsigned int sz, int flags) const
+uint Socket::send(const byte* buf, unsigned int sz, unsigned int& written,
+                  int flags)
 {
     const byte* pos = buf;
     const byte* end = pos + sz;
 
+    wouldBlock_ = false;
+
     while (pos != end) {
         int sent = ::send(socket_, reinterpret_cast(pos),
                           static_cast(end - pos), flags);
-
-    if (sent == -1)
-        return 0;
-
+        if (sent == -1) {
+            if (get_lastError() == SOCKET_EWOULDBLOCK || 
+                get_lastError() == SOCKET_EAGAIN) {
+                wouldBlock_  = true; // would have blocked this time only
+                nonBlocking_ = true; // nonblocking, win32 only way to tell 
+                return 0;
+            }
+            return static_cast(-1);
+        }
         pos += sent;
+        written += sent;
     }
 
     return sz;
@@ -140,8 +149,8 @@
             get_lastError() == SOCKET_EAGAIN) {
             wouldBlock_  = true; // would have blocked this time only
             nonBlocking_ = true; // socket nonblocking, win32 only way to tell
-        return 0;
-    }
+            return 0;
+        }
     }
     else if (recvd == 0)
         return static_cast(-1);
diff -Nru mysql-5.5-5.5.20/extra/yassl/src/ssl.cpp mysql-5.5-5.5.22/extra/yassl/src/ssl.cpp
--- mysql-5.5-5.5.20/extra/yassl/src/ssl.cpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/src/ssl.cpp	2012-03-02 19:44:46.000000000 +0000
@@ -252,60 +252,73 @@
     if (ssl->GetError() == YasslError(SSL_ERROR_WANT_READ))
         ssl->SetError(no_error);
 
+    if (ssl->GetError() == YasslError(SSL_ERROR_WANT_WRITE)) {
+    
+        ssl->SetError(no_error);
+        ssl->SendWriteBuffered();
+        if (!ssl->GetError())
+            ssl->useStates().UseConnect() =
+                             ConnectState(ssl->getStates().GetConnect() + 1);
+    }
+
     ClientState neededState;
 
     switch (ssl->getStates().GetConnect()) {
 
     case CONNECT_BEGIN :
-    sendClientHello(*ssl);
+        sendClientHello(*ssl);
         if (!ssl->GetError())
             ssl->useStates().UseConnect() = CLIENT_HELLO_SENT;
 
     case CLIENT_HELLO_SENT :
         neededState = ssl->getSecurity().get_resuming() ?
-        serverFinishedComplete : serverHelloDoneComplete;
-    while (ssl->getStates().getClient() < neededState) {
-        if (ssl->GetError()) break;
-    processReply(*ssl);
-    }
+                      serverFinishedComplete : serverHelloDoneComplete;
+        while (ssl->getStates().getClient() < neededState) {
+            if (ssl->GetError()) break;
+            processReply(*ssl);
+            // if resumption failed, reset needed state 
+            if (neededState == serverFinishedComplete)
+                if (!ssl->getSecurity().get_resuming())
+                    neededState = serverHelloDoneComplete;
+        }
         if (!ssl->GetError())
             ssl->useStates().UseConnect() = FIRST_REPLY_DONE;
 
     case FIRST_REPLY_DONE :
-    if(ssl->getCrypto().get_certManager().sendVerify())
-        sendCertificate(*ssl);
+        if(ssl->getCrypto().get_certManager().sendVerify())
+            sendCertificate(*ssl);
 
-    if (!ssl->getSecurity().get_resuming())
-        sendClientKeyExchange(*ssl);
+        if (!ssl->getSecurity().get_resuming())
+            sendClientKeyExchange(*ssl);
 
-    if(ssl->getCrypto().get_certManager().sendVerify())
-        sendCertificateVerify(*ssl);
+        if(ssl->getCrypto().get_certManager().sendVerify())
+            sendCertificateVerify(*ssl);
 
-    sendChangeCipher(*ssl);
-    sendFinished(*ssl, client_end);
-    ssl->flushBuffer();
+        sendChangeCipher(*ssl);
+        sendFinished(*ssl, client_end);
+        ssl->flushBuffer();
 
         if (!ssl->GetError())
             ssl->useStates().UseConnect() = FINISHED_DONE;
 
     case FINISHED_DONE :
-    if (!ssl->getSecurity().get_resuming())
-        while (ssl->getStates().getClient() < serverFinishedComplete) {
-            if (ssl->GetError()) break;
-        processReply(*ssl);
-        }
+        if (!ssl->getSecurity().get_resuming())
+            while (ssl->getStates().getClient() < serverFinishedComplete) {
+                if (ssl->GetError()) break;
+                processReply(*ssl);
+            }
         if (!ssl->GetError())
             ssl->useStates().UseConnect() = SECOND_REPLY_DONE;
 
     case SECOND_REPLY_DONE :
-    ssl->verifyState(serverFinishedComplete);
-    ssl->useLog().ShowTCP(ssl->getSocket().get_fd());
+        ssl->verifyState(serverFinishedComplete);
+        ssl->useLog().ShowTCP(ssl->getSocket().get_fd());
 
         if (ssl->GetError()) {
             GetErrors().Add(ssl->GetError());
-        return SSL_FATAL_ERROR;
+            return SSL_FATAL_ERROR;
         }   
-    return SSL_SUCCESS;
+        return SSL_SUCCESS;
 
     default :
         return SSL_FATAL_ERROR; // unkown state
@@ -331,27 +344,36 @@
     if (ssl->GetError() == YasslError(SSL_ERROR_WANT_READ))
         ssl->SetError(no_error);
 
+    if (ssl->GetError() == YasslError(SSL_ERROR_WANT_WRITE)) {
+    
+        ssl->SetError(no_error);
+        ssl->SendWriteBuffered();
+        if (!ssl->GetError())
+            ssl->useStates().UseAccept() =
+                             AcceptState(ssl->getStates().GetAccept() + 1);
+    }
+
     switch (ssl->getStates().GetAccept()) {
 
     case ACCEPT_BEGIN :
-    processReply(*ssl);
+        processReply(*ssl);
         if (!ssl->GetError())
             ssl->useStates().UseAccept() = ACCEPT_FIRST_REPLY_DONE;
 
     case ACCEPT_FIRST_REPLY_DONE :
-    sendServerHello(*ssl);
+        sendServerHello(*ssl);
 
-    if (!ssl->getSecurity().get_resuming()) {
-        sendCertificate(*ssl);
+        if (!ssl->getSecurity().get_resuming()) {
+            sendCertificate(*ssl);
 
-        if (ssl->getSecurity().get_connection().send_server_key_)
-            sendServerKeyExchange(*ssl);
+            if (ssl->getSecurity().get_connection().send_server_key_)
+                sendServerKeyExchange(*ssl);
 
-        if(ssl->getCrypto().get_certManager().verifyPeer())
-            sendCertificateRequest(*ssl);
+            if(ssl->getCrypto().get_certManager().verifyPeer())
+                sendCertificateRequest(*ssl);
 
-        sendServerHelloDone(*ssl);
-        ssl->flushBuffer();
+            sendServerHelloDone(*ssl);
+            ssl->flushBuffer();
         }
       
         if (!ssl->GetError())
@@ -359,40 +381,40 @@
 
     case SERVER_HELLO_DONE :
         if (!ssl->getSecurity().get_resuming()) {
-        while (ssl->getStates().getServer() < clientFinishedComplete) {
-            if (ssl->GetError()) break;
-            processReply(*ssl);
+            while (ssl->getStates().getServer() < clientFinishedComplete) {
+                if (ssl->GetError()) break;
+                processReply(*ssl);
+            }
         }
-    }
         if (!ssl->GetError())
             ssl->useStates().UseAccept() = ACCEPT_SECOND_REPLY_DONE;
 
     case ACCEPT_SECOND_REPLY_DONE :
-    sendChangeCipher(*ssl);
-    sendFinished(*ssl, server_end);
-    ssl->flushBuffer();
+        sendChangeCipher(*ssl);
+        sendFinished(*ssl, server_end);
+        ssl->flushBuffer();
 
         if (!ssl->GetError())
             ssl->useStates().UseAccept() = ACCEPT_FINISHED_DONE;
 
     case ACCEPT_FINISHED_DONE :
-    if (ssl->getSecurity().get_resuming()) {
-        while (ssl->getStates().getServer() < clientFinishedComplete) {
-          if (ssl->GetError()) break;
-          processReply(*ssl);
-      }
-    }
+        if (ssl->getSecurity().get_resuming()) {
+            while (ssl->getStates().getServer() < clientFinishedComplete) {
+                if (ssl->GetError()) break;
+                processReply(*ssl);
+            }
+        }
         if (!ssl->GetError())
             ssl->useStates().UseAccept() = ACCEPT_THIRD_REPLY_DONE;
 
     case ACCEPT_THIRD_REPLY_DONE :
-    ssl->useLog().ShowTCP(ssl->getSocket().get_fd());
+        ssl->useLog().ShowTCP(ssl->getSocket().get_fd());
 
         if (ssl->GetError()) {
             GetErrors().Add(ssl->GetError());
-        return SSL_FATAL_ERROR;
+            return SSL_FATAL_ERROR;
         }
-    return SSL_SUCCESS;
+        return SSL_SUCCESS;
 
     default:
         return SSL_FATAL_ERROR; // unknown state
@@ -1097,7 +1119,6 @@
             ivLeft    -= store;
         }
     }
-    assert(keyOutput == (keyLen + ivLen));
     return keyOutput;
 }
 
diff -Nru mysql-5.5-5.5.20/extra/yassl/src/yassl.cpp mysql-5.5-5.5.22/extra/yassl/src/yassl.cpp
--- mysql-5.5-5.5.20/extra/yassl/src/yassl.cpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/src/yassl.cpp	2012-03-02 19:44:46.000000000 +0000
@@ -69,13 +69,13 @@
 
     if (base.ca_)
         if (SSL_CTX_load_verify_locations(base.ctx_,
-            base.ca_, 0) != SSL_SUCCESS) assert(0);
+            base.ca_, 0) != SSL_SUCCESS) throw(0);
     if (base.cert_)
         if (SSL_CTX_use_certificate_file(base.ctx_,
-            base.cert_, SSL_FILETYPE_PEM) != SSL_SUCCESS) assert(0);
+            base.cert_, SSL_FILETYPE_PEM) != SSL_SUCCESS) throw(0);
     if (base.key_)
         if (SSL_CTX_use_PrivateKey_file(base.ctx_, base.key_,
-            SSL_FILETYPE_PEM) != SSL_SUCCESS) assert(0);
+            SSL_FILETYPE_PEM) != SSL_SUCCESS) throw(0);
 
     if (end == server_end) SetDH(base);
 
diff -Nru mysql-5.5-5.5.20/extra/yassl/src/yassl_error.cpp mysql-5.5-5.5.22/extra/yassl/src/yassl_error.cpp
--- mysql-5.5-5.5.20/extra/yassl/src/yassl_error.cpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/src/yassl_error.cpp	2012-03-02 19:44:46.000000000 +0000
@@ -31,6 +31,11 @@
     #pragma warning(disable: 4996)
 #endif
 
+#ifdef _MSC_VER
+    // 4996 warning to use MS extensions e.g., strcpy_s instead of strncpy
+    #pragma warning(disable: 4996)
+#endif
+
 namespace yaSSL {
 
 
@@ -59,8 +64,9 @@
 {
     using namespace TaoCrypt;
     const int max = MAX_ERROR_SZ;  // shorthand
+    int localError = error;        // errors from a few enums 
 
-    switch (error) {
+    switch (localError) {
 
         // yaSSL proper errors
     case range_error :
@@ -121,7 +127,7 @@
 
     case certificate_error :
         strncpy(buffer, "unable to proccess cerificate", max);
-        break; 
+        break;
 
     case privateKey_error :
         strncpy(buffer, "unable to proccess private key, bad format", max);
@@ -130,7 +136,7 @@
     case badVersion_error :
         strncpy(buffer, "protocol version mismatch", max);
         break;
-        
+
     case compress_error :
         strncpy(buffer, "compression error", max);
         break;
@@ -148,6 +154,10 @@
         strncpy(buffer, "the read operation would block", max);
         break;
 
+    case SSL_ERROR_WANT_WRITE :
+        strncpy(buffer, "the write operation would block", max);
+        break;
+
     case CERTFICATE_ERROR :
         strncpy(buffer, "Unable to verify certificate", max);
         break;
diff -Nru mysql-5.5-5.5.20/extra/yassl/src/yassl_imp.cpp mysql-5.5-5.5.22/extra/yassl/src/yassl_imp.cpp
--- mysql-5.5-5.5.20/extra/yassl/src/yassl_imp.cpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/src/yassl_imp.cpp	2012-03-02 19:44:46.000000000 +0000
@@ -1,5 +1,5 @@
 /*
-   Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+   Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -117,7 +117,7 @@
     if (*dhClient.get_agreedKey() == 0) 
         ssl.set_preMaster(dhClient.get_agreedKey() + 1, keyLength - 1);
     else
-    ssl.set_preMaster(dhClient.get_agreedKey(), keyLength);
+        ssl.set_preMaster(dhClient.get_agreedKey(), keyLength);
 }
 
 
@@ -135,8 +135,7 @@
     mySTL::auto_ptr auth;
     const CertManager& cert = ssl.getCrypto().get_certManager();
     
-    if (ssl.getSecurity().get_parms().sig_algo_ == rsa_sa_algo)
-    {
+    if (ssl.getSecurity().get_parms().sig_algo_ == rsa_sa_algo) {
         if (cert.get_keyType() != rsa_sa_algo) {
             ssl.SetError(privateKey_error);
             return;
@@ -925,8 +924,6 @@
 
 void Data::SetData(uint16 len, const opaque* buffer)
 {
-    assert(write_buffer_ == 0);
-
     length_ = len;
     write_buffer_ = buffer;
 }
@@ -992,6 +989,11 @@
     int dataSz = msgSz - ivExtra - digestSz - pad - padSz;
     opaque verify[SHA_LEN];
 
+    if (dataSz < 0) {
+        ssl.SetError(bad_input);
+        return;
+    }
+
     const byte* rawData = input.get_buffer() + input.get_current();
 
     // read data
@@ -1006,10 +1008,10 @@
                                             tmp.get_buffer(), tmp.get_size()));
         }
         else {
-        input_buffer* data;
-        ssl.addData(data = NEW_YS input_buffer(dataSz));
-        input.read(data->get_buffer(), dataSz);
-        data->add_size(dataSz);
+            input_buffer* data;
+            ssl.addData(data = NEW_YS input_buffer(dataSz));
+            input.read(data->get_buffer(), dataSz);
+            data->add_size(dataSz);
         }
 
         if (ssl.isTLS())
@@ -1085,19 +1087,37 @@
     uint32 list_sz;
     byte   tmp[3];
 
+    if (input.get_remaining() < sizeof(tmp)) {
+        ssl.SetError(YasslError(bad_input));
+        return;
+    }
     tmp[0] = input[AUTO];
     tmp[1] = input[AUTO];
     tmp[2] = input[AUTO];
     c24to32(tmp, list_sz);
+
+    if (list_sz > (uint)MAX_RECORD_SIZE) { // sanity check
+        ssl.SetError(YasslError(bad_input));
+        return;
+    }
     
     while (list_sz) {
         // cert size
         uint32 cert_sz;
+
+        if (input.get_remaining() < sizeof(tmp)) {
+            ssl.SetError(YasslError(bad_input));
+            return;
+        }
         tmp[0] = input[AUTO];
         tmp[1] = input[AUTO];
         tmp[2] = input[AUTO];
         c24to32(tmp, cert_sz);
         
+        if (cert_sz > (uint)MAX_RECORD_SIZE || input.get_remaining() < cert_sz){
+            ssl.SetError(YasslError(bad_input));
+            return;
+        }
         x509* myCert;
         cm.AddPeerCert(myCert = NEW_YS x509(cert_sz));
         input.read(myCert->use_buffer(), myCert->get_length());
@@ -1294,12 +1314,11 @@
     ssl.set_pending(cipher_suite_[1]);
     ssl.set_random(random_, server_end);
     if (id_len_)
-    ssl.set_sessionID(session_id_);
+        ssl.set_sessionID(session_id_);
     else
         ssl.useSecurity().use_connection().sessionID_Set_ = false;
 
-    if (ssl.getSecurity().get_resuming())
-    {
+    if (ssl.getSecurity().get_resuming()) {
         if (memcmp(session_id_, ssl.getSecurity().get_resume().GetID(),
                    ID_LEN) == 0) {
             ssl.set_masterSecret(ssl.getSecurity().get_resume().GetSecret());
@@ -1423,7 +1442,7 @@
     if (hello.id_len_) input.read(hello.session_id_, ID_LEN);
     
     // Suites
-    byte tmp[2];
+    byte   tmp[2];
     uint16 len;
     tmp[0] = input[AUTO];
     tmp[1] = input[AUTO];
@@ -1431,8 +1450,8 @@
 
     hello.suite_len_ = min(len, static_cast(MAX_SUITE_SZ));
     input.read(hello.cipher_suites_, hello.suite_len_);
-    if (len > hello.suite_len_) // ignore extra suites
-        input.set_current(input.get_current() + len -  hello.suite_len_);
+    if (len > hello.suite_len_)  // ignore extra suites
+        input.set_current(input.get_current() + len - hello.suite_len_);
 
     // Compression
     hello.comp_len_ = input[AUTO];
@@ -1496,8 +1515,9 @@
     if (ssl.GetMultiProtocol()) {   // SSLv23 support
         if (ssl.isTLS() && client_version_.minor_ < 1) {
             // downgrade to SSLv3
-        ssl.useSecurity().use_connection().TurnOffTLS();
-        ProtocolVersion pv = ssl.getSecurity().get_connection().version_;
+            ssl.useSecurity().use_connection().TurnOffTLS();
+            
+            ProtocolVersion pv = ssl.getSecurity().get_connection().version_;
             bool removeDH  = ssl.getSecurity().get_parms().removeDH_;
             bool removeRSA = false;
             bool removeDSA = false;
@@ -1511,7 +1531,7 @@
             // reset w/ SSL suites
             ssl.useSecurity().use_parms().SetSuites(pv, removeDH, removeRSA,
                                                     removeDSA);
-    }
+        }
         else if (ssl.isTLSv1_1() && client_version_.minor_ == 1)
             // downgrade to TLSv1, but use same suites
             ssl.useSecurity().use_connection().TurnOffTLS1_1();
@@ -1542,6 +1562,7 @@
         ssl.set_session(session);
         ssl.useSecurity().set_resuming(true);
         ssl.matchSuite(session->GetSuite(), SUITE_LEN);
+        if (ssl.GetError()) return;
         ssl.set_pending(ssl.getSecurity().get_parms().suite_[1]);
         ssl.set_masterSecret(session->GetSecret());
 
@@ -2038,7 +2059,7 @@
     // verify hashes
     const  Finished& verify = ssl.getHashes().get_verify();
     uint finishedSz = ssl.isTLS() ? TLS_FINISHED_SZ : FINISHED_SZ;
-
+    
     input.read(hashes_.md5_, finishedSz);
 
     if (memcmp(&hashes_, &verify.hashes_, finishedSz)) {
diff -Nru mysql-5.5-5.5.20/extra/yassl/src/yassl_int.cpp mysql-5.5-5.5.22/extra/yassl/src/yassl_int.cpp
--- mysql-5.5-5.5.20/extra/yassl/src/yassl_int.cpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/src/yassl_int.cpp	2012-03-02 19:44:46.000000000 +0000
@@ -1,5 +1,5 @@
 /*
-   Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
+   Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -308,8 +308,9 @@
             SetError(YasslError(err));
             return;
         }
-        else if (serverSide && !(ctx->GetCiphers().setSuites_)) {
+        else if (serverSide && ctx->GetCiphers().setSuites_ == 0) {
             // remove RSA or DSA suites depending on cert key type
+            // but don't override user sets
             ProtocolVersion pv = secure_.get_connection().version_;
             
             bool removeDH  = secure_.use_parms().removeDH_;
@@ -1128,8 +1129,28 @@
 
 void SSL::Send(const byte* buffer, uint sz)
 {
-    if (socket_.send(buffer, sz) != sz)
-        SetError(send_error);
+    unsigned int sent = 0;
+
+    if (socket_.send(buffer, sz, sent) != sz) {
+        if (socket_.WouldBlock()) {
+            buffers_.SetOutput(NEW_YS output_buffer(sz - sent, buffer + sent,
+                                                    sz - sent));
+            SetError(YasslError(SSL_ERROR_WANT_WRITE));
+        }
+        else
+            SetError(send_error);
+    }
+}
+
+
+void SSL::SendWriteBuffered()
+{
+    output_buffer* out = buffers_.TakeOutput();
+
+    if (out) {
+        mySTL::auto_ptr tmp(out);
+        Send(out->get_buffer(), out->get_size());
+    }
 }
 
 
@@ -1291,7 +1312,6 @@
             if (secure_.use_parms().suites_[i] == peer[j]) {
                 secure_.use_parms().suite_[0] = 0x00;
                 secure_.use_parms().suite_[1] = peer[j];
-
                 return;
             }
 
@@ -1435,7 +1455,6 @@
 
 void SSL_SESSION::CopyX509(X509* x)
 {
-    assert(peerX509_ == 0);
     if (x == 0) return;
 
     X509_NAME* issuer   = x->GetIssuer();
@@ -1833,7 +1852,7 @@
 }
 
 
-VerifyCallback SSL_CTX::getVerifyCallback() const
+const VerifyCallback SSL_CTX::getVerifyCallback() const
 {
     return verifyCallback_;
 }
@@ -2232,7 +2251,7 @@
 }
 
 
-Buffers::Buffers() : rawInput_(0)
+Buffers::Buffers() : prevSent(0), plainSz(0), rawInput_(0), output_(0)
 {}
 
 
@@ -2243,12 +2262,18 @@
     STL::for_each(dataList_.begin(), dataList_.end(),
                   del_ptr_zero()) ;
     ysDelete(rawInput_);
+    ysDelete(output_);
+}
+
+
+void Buffers::SetOutput(output_buffer* ob)
+{
+    output_ = ob;
 }
 
 
 void Buffers::SetRawInput(input_buffer* ib)
 {
-    assert(rawInput_ == 0);
     rawInput_ = ib;
 }
 
@@ -2262,6 +2287,15 @@
 }
 
 
+output_buffer* Buffers::TakeOutput()
+{
+    output_buffer* ret = output_;
+    output_ = 0;
+
+    return ret;
+}
+
+
 const Buffers::inputList& Buffers::getData() const
 {
     return dataList_;
@@ -2536,14 +2570,12 @@
     // these versions should never get called
     int Compress(const byte* in, int sz, input_buffer& buffer)
     {
-        assert(0);  
         return -1;
     } 
 
 
     int DeCompress(input_buffer& in, int sz, input_buffer& out)
     {
-        assert(0);  
         return -1;
     } 
 
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/benchmark/benchmark.cpp mysql-5.5-5.5.22/extra/yassl/taocrypt/benchmark/benchmark.cpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/benchmark/benchmark.cpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/benchmark/benchmark.cpp	2012-03-02 19:44:46.000000000 +0000
@@ -117,7 +117,7 @@
 
     double persec = 1 / total * megs;
 
-    printf("3DES     %d megs took %5.3f seconds, %5.2f MB/s\n", megs, total,
+    printf("3DES     %d megs took %5.3f seconds, %6.2f MB/s\n", megs, total,
                                                              persec);
 }
 
@@ -137,7 +137,7 @@
     double persec = 1 / total * megs;
 
     if (show)
-        printf("AES      %d megs took %5.3f seconds, %5.2f MB/s\n", megs, total,
+        printf("AES      %d megs took %5.3f seconds, %6.2f MB/s\n", megs, total,
                                                                  persec);
 }
 
@@ -156,7 +156,7 @@
 
     double persec = 1 / total * megs;
 
-    printf("Twofish  %d megs took %5.3f seconds, %5.2f MB/s\n", megs, total,
+    printf("Twofish  %d megs took %5.3f seconds, %6.2f MB/s\n", megs, total,
                                                             persec);
 
 }
@@ -176,7 +176,7 @@
 
     double persec = 1 / total * megs;
 
-    printf("Blowfish %d megs took %5.3f seconds, %5.2f MB/s\n", megs, total,
+    printf("Blowfish %d megs took %5.3f seconds, %6.2f MB/s\n", megs, total,
                                                              persec);
 }
 
@@ -195,7 +195,7 @@
 
     double persec = 1 / total * megs;
 
-    printf("ARC4     %d megs took %5.3f seconds, %5.2f MB/s\n", megs, total,
+    printf("ARC4     %d megs took %5.3f seconds, %6.2f MB/s\n", megs, total,
                                                              persec);
 }
 
@@ -217,7 +217,7 @@
 
     double persec = 1 / total * megs;
 
-    printf("MD5      %d megs took %5.3f seconds, %5.2f MB/s\n", megs, total,
+    printf("MD5      %d megs took %5.3f seconds, %6.2f MB/s\n", megs, total,
                                                              persec);
 }
 
@@ -245,7 +245,7 @@
 
     double persec = 1 / total * megs;
 
-    printf("SHA      %d megs took %5.3f seconds, %5.2f MB/s\n", megs, total,
+    printf("SHA      %d megs took %5.3f seconds, %6.2f MB/s\n", megs, total,
                                                              persec);
 }
 
@@ -267,7 +267,7 @@
 
     double persec = 1 / total * megs;
 
-    printf("RIPEMD   %d megs took %5.3f seconds, %5.2f MB/s\n", megs, total,
+    printf("RIPEMD   %d megs took %5.3f seconds, %6.2f MB/s\n", megs, total,
                                                              persec);
 }
 
@@ -290,7 +290,7 @@
     byte      message[] = "Everyone gets Friday off.";
     byte      cipher[128];  // for 1024 bit
     byte      plain[128];   // for 1024 bit
-    const int len = strlen((char*)message);
+    const int len = (word32)strlen((char*)message);
     
     int i;    
     double start = current_time();
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/benchmark/benchmark.dsp mysql-5.5-5.5.22/extra/yassl/taocrypt/benchmark/benchmark.dsp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/benchmark/benchmark.dsp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/benchmark/benchmark.dsp	2012-03-02 19:44:46.000000000 +0000
@@ -49,8 +49,8 @@
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib  kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib  kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
 
 !ELSEIF  "$(CFG)" == "benchmark - Win32 Debug"
 
@@ -64,7 +64,7 @@
 # PROP Output_Dir "Debug"
 # PROP Intermediate_Dir "Debug"
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ  /c
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
 # ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\include" /I "..\mySTL" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ  /c
 # ADD BASE RSC /l 0x409 /d "_DEBUG"
 # ADD RSC /l 0x409 /d "_DEBUG"
@@ -72,8 +72,8 @@
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib  kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib  kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
 
 !ENDIF 
 
Binary files /tmp/BFkNYwQDHp/mysql-5.5-5.5.20/extra/yassl/taocrypt/benchmark/dh1024.der and /tmp/u8w54JxzCZ/mysql-5.5-5.5.22/extra/yassl/taocrypt/benchmark/dh1024.der differ
Binary files /tmp/BFkNYwQDHp/mysql-5.5-5.5.20/extra/yassl/taocrypt/benchmark/dsa1024.der and /tmp/u8w54JxzCZ/mysql-5.5-5.5.22/extra/yassl/taocrypt/benchmark/dsa1024.der differ
Binary files /tmp/BFkNYwQDHp/mysql-5.5-5.5.20/extra/yassl/taocrypt/benchmark/rsa1024.der and /tmp/u8w54JxzCZ/mysql-5.5-5.5.22/extra/yassl/taocrypt/benchmark/rsa1024.der differ
Binary files /tmp/BFkNYwQDHp/mysql-5.5-5.5.20/extra/yassl/taocrypt/certs/client-cert.der and /tmp/u8w54JxzCZ/mysql-5.5-5.5.22/extra/yassl/taocrypt/certs/client-cert.der differ
Binary files /tmp/BFkNYwQDHp/mysql-5.5-5.5.20/extra/yassl/taocrypt/certs/client-key.der and /tmp/u8w54JxzCZ/mysql-5.5-5.5.22/extra/yassl/taocrypt/certs/client-key.der differ
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/certs/dh1024.dat mysql-5.5-5.5.22/extra/yassl/taocrypt/certs/dh1024.dat
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/certs/dh1024.dat	1970-01-01 00:00:00.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/certs/dh1024.dat	2012-03-02 19:44:46.000000000 +0000
@@ -0,0 +1 @@
+30818702818100DA9A18547FF03B385CC16508C173A7EF4EB61CB40EF8FEF3B31F145051676166BCDC3FE6B799FC394D08C26385F9413F896E09117E46209D6923602683CEA100924A6EE695281775C619DAA94EA8CB3691B4275B0183F1D39639EBC92995FE645D6C1BC28D409E585549BBD2C5DCDD6C208B04EADD8B7A6D997F72CBAD88390F020102
\ No newline at end of file
Binary files /tmp/BFkNYwQDHp/mysql-5.5-5.5.20/extra/yassl/taocrypt/certs/dsa512.der and /tmp/u8w54JxzCZ/mysql-5.5-5.5.22/extra/yassl/taocrypt/certs/dsa512.der differ
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/CMakeLists.txt mysql-5.5-5.5.22/extra/yassl/taocrypt/CMakeLists.txt
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/CMakeLists.txt	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/CMakeLists.txt	2012-03-02 19:44:46.000000000 +0000
@@ -20,12 +20,14 @@
 ADD_DEFINITIONS(${SSL_DEFINES})
 SET(TAOCRYPT_SOURCES		src/aes.cpp src/aestables.cpp src/algebra.cpp src/arc4.cpp src/asn.cpp src/coding.cpp 
 				src/des.cpp src/dh.cpp src/dsa.cpp src/file.cpp src/hash.cpp src/integer.cpp src/md2.cpp 
-				src/md4.cpp src/md5.cpp src/misc.cpp src/random.cpp src/ripemd.cpp src/rsa.cpp src/sha.cpp
+				src/md4.cpp src/md5.cpp src/misc.cpp src/random.cpp src/ripemd.cpp src/rsa.cpp src/sha.cpp 
+                                src/rabbit.cpp src/hc128.cpp
 				include/aes.hpp include/algebra.hpp include/arc4.hpp include/asn.hpp include/block.hpp 
 				include/coding.hpp include/des.hpp include/dh.hpp include/dsa.hpp include/dsa.hpp
 				include/error.hpp include/file.hpp include/hash.hpp include/hmac.hpp include/integer.hpp 
 				include/md2.hpp include/md5.hpp include/misc.hpp include/modarith.hpp include/modes.hpp
-				include/random.hpp include/ripemd.hpp include/rsa.hpp include/sha.hpp)
+				include/random.hpp include/ripemd.hpp include/rsa.hpp include/sha.hpp
+                                include/rabbit.hpp include/hc128.hpp)
 
 IF(HAVE_EXPLICIT_TEMPLATE_INSTANTIATION)
   SET(TAOCRYPT_SOURCES ${TAOCRYPT_SOURCES} src/template_instnt.cpp)
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/include/asn.hpp mysql-5.5-5.5.22/extra/yassl/taocrypt/include/asn.hpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/include/asn.hpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/include/asn.hpp	2012-03-02 19:44:46.000000000 +0000
@@ -167,6 +167,7 @@
     void Decode(RSA_PublicKey&);
 private:
     void ReadHeader();
+    void ReadHeaderOpenSSL();
 };
 
 
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/include/block.hpp mysql-5.5-5.5.22/extra/yassl/taocrypt/include/block.hpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/include/block.hpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/include/block.hpp	2012-03-02 19:44:46.000000000 +0000
@@ -61,10 +61,6 @@
     void          destroy(pointer p) {p->~T();}
     size_type     max_size() const {return ~size_type(0)/sizeof(T);}
 protected:
-    static void CheckSize(size_t n)
-    {
-        assert(n <= ~size_t(0) / sizeof(T));
-    }
 };
 
 
@@ -101,7 +97,8 @@
 
     pointer allocate(size_type n, const void* = 0)
     {
-        this->CheckSize(n);
+        if (n > this->max_size())
+            return 0;
         if (n == 0)
             return 0;
         return NEW_TC T[n];
@@ -144,9 +141,8 @@
         return *this;
     }
 
-    T& operator[] (word32 i) { assert(i < sz_); return buffer_[i]; }
-    const T& operator[] (word32 i) const 
-        { assert(i < sz_); return buffer_[i]; }
+    T& operator[] (word32 i) { return buffer_[i]; }
+    const T& operator[] (word32 i) const { return buffer_[i]; }
 
     T* operator+ (word32 i) { return buffer_ + i; }
     const T* operator+ (word32 i) const { return buffer_ + i; }
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/include/blowfish.hpp mysql-5.5-5.5.22/extra/yassl/taocrypt/include/blowfish.hpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/include/blowfish.hpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/include/blowfish.hpp	2012-03-02 19:44:46.000000000 +0000
@@ -59,11 +59,11 @@
     void SetKey(const byte* key, word32 sz, CipherDir fake = ENCRYPTION);
     void SetIV(const byte* iv) { memcpy(r_, iv, BLOCK_SIZE); }
 private:
-	static const word32 p_init_[ROUNDS + 2];
-	static const word32 s_init_[4 * 256];
+    static const word32 p_init_[ROUNDS + 2];
+    static const word32 s_init_[4 * 256];
 
-	word32 pbox_[ROUNDS + 2 + 4 * 256];
-	word32* sbox_;
+    word32 pbox_[ROUNDS + 2 + 4 * 256];
+    word32* sbox_;
 
     void crypt_block(const word32 in[2], word32 out[2]) const;
     void AsmProcess(const byte* in, byte* out) const;
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/include/des.hpp mysql-5.5-5.5.22/extra/yassl/taocrypt/include/des.hpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/include/des.hpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/include/des.hpp	2012-03-02 19:44:46.000000000 +0000
@@ -84,7 +84,7 @@
 // DES_EDE3
 class DES_EDE3 : public Mode_BASE {
 public:
-    DES_EDE3(CipherDir DIR, Mode MODE) 
+    DES_EDE3(CipherDir DIR, Mode MODE)
         : Mode_BASE(DES_BLOCK_SIZE, DIR, MODE) {}
 
     void SetKey(const byte*, word32, CipherDir dir);
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/include/file.hpp mysql-5.5-5.5.22/extra/yassl/taocrypt/include/file.hpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/include/file.hpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/include/file.hpp	2012-03-02 19:44:46.000000000 +0000
@@ -1,5 +1,5 @@
 /*
-   Copyright (C) 2000-2007 MySQL AB
+   Copyright (C) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -39,25 +39,32 @@
     explicit Source(word32 sz = 0) : buffer_(sz), current_(0) {}
     Source(const byte* b, word32 sz) : buffer_(b, sz), current_(0) {}
 
+    word32 remaining()         { if (GetError().What()) return 0;
+                                 else return buffer_.size() - current_; } 
     word32 size() const        { return buffer_.size(); }
     void   grow(word32 sz)     { buffer_.CleanGrow(sz); }
+
+    bool IsLeft(word32 sz) { if (remaining() >= sz) return true;
+                             else { SetError(CONTENT_E); return false; } }
    
     const byte*  get_buffer()  const { return buffer_.get_buffer(); }
     const byte*  get_current() const { return &buffer_[current_]; }
     word32       get_index()   const { return current_; }
-    void         set_index(word32 i) { current_ = i; }
+    void         set_index(word32 i) { if (i < size()) current_ = i; }
 
     byte operator[] (word32 i) { current_ = i; return next(); }
-    byte next() { return buffer_[current_++]; }
-    byte prev() { return buffer_[--current_]; }
+    byte next() { if (IsLeft(1)) return buffer_[current_++]; else return 0; }
+    byte prev() { if (current_)  return buffer_[--current_]; else return 0; }
 
     void add(const byte* data, word32 len)
     {
-        memcpy(buffer_.get_buffer() + current_, data, len);
-        current_ += len;
+        if (IsLeft(len)) {
+            memcpy(buffer_.get_buffer() + current_, data, len);
+            current_ += len;
+        }
     }
 
-    void advance(word32 i) { current_ += i; }
+    void advance(word32 i) { if (IsLeft(i)) current_ += i; }
     void reset(ByteBlock&);
 
     Error  GetError()              { return error_; }
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/include/hash.hpp mysql-5.5-5.5.22/extra/yassl/taocrypt/include/hash.hpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/include/hash.hpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/include/hash.hpp	2012-03-02 19:44:46.000000000 +0000
@@ -63,8 +63,8 @@
     word32          buffLen_;   // in bytes
     HashLengthType  loLen_;     // length in bytes
     HashLengthType  hiLen_;     // length in bytes
-    word32  digest_[MaxDigestSz];
-    word32  buffer_[MaxBufferSz / sizeof(word32)];
+    word32          digest_[MaxDigestSz];
+    word32          buffer_[MaxBufferSz / sizeof(word32)];
 
     virtual void Transform() = 0;
 
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/include/hc128.hpp mysql-5.5-5.5.22/extra/yassl/taocrypt/include/hc128.hpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/include/hc128.hpp	1970-01-01 00:00:00.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/include/hc128.hpp	2012-03-02 19:44:46.000000000 +0000
@@ -0,0 +1,63 @@
+/*
+   Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ 
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; version 2 of the License.
+ 
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+ 
+   You should have received a copy of the GNU General Public License
+   along with this program; see the file COPYING. If not, write to the
+   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+   MA  02110-1301  USA.
+*/
+
+/* hc128.hpp defines HC128
+*/
+
+
+#ifndef TAO_CRYPT_HC128_HPP
+#define TAO_CRYPT_HC128_HPP
+
+#include "misc.hpp"
+
+namespace TaoCrypt {
+
+
+// HC128 encryption and decryption
+class HC128 {
+public:
+
+    typedef HC128 Encryption;
+    typedef HC128 Decryption;
+
+
+    HC128() {}
+
+    void Process(byte*, const byte*, word32);
+    void SetKey(const byte*, const byte*);
+private:
+    word32 T_[1024];             /* P[i] = T[i];  Q[i] = T[1024 + i ]; */
+    word32 X_[16];
+    word32 Y_[16];
+    word32 counter1024_;         /* counter1024 = i mod 1024 at the ith step */
+    word32 key_[8];
+    word32 iv_[8];
+
+    void SetIV(const byte*);
+    void GenerateKeystream(word32*);
+    void SetupUpdate();
+
+    HC128(const HC128&);                  // hide copy
+    const HC128 operator=(const HC128&);  // and assign
+};
+
+} // namespace
+
+
+#endif // TAO_CRYPT_HC128_HPP
+
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/include/integer.hpp mysql-5.5-5.5.22/extra/yassl/taocrypt/include/integer.hpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/include/integer.hpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/include/integer.hpp	2012-03-02 19:44:46.000000000 +0000
@@ -110,13 +110,6 @@
 #endif
 
 
-// general MIN
-template inline
-const T& min(const T& a, const T& b)
-{
-    return a < b ? a : b;
-}
-
 
 // general MAX
 template inline
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/include/kernelc.hpp mysql-5.5-5.5.22/extra/yassl/taocrypt/include/kernelc.hpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/include/kernelc.hpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/include/kernelc.hpp	2012-03-02 19:44:46.000000000 +0000
@@ -30,17 +30,5 @@
 extern "C" void* memset(void*, int, size_t);
 extern "C" void  printk(char *fmt, ...);
 
-#define KERN_ERR "<3>"   /* error conditions */
-
-#if defined(NDEBUG)
-    #define assert(p)  	((void)0)
-#else
-    #define assert(expr)   \
-    if (!(expr))         { \
-         printk(KERN_ERR "Assertion failed! %s,%s,%s,line=%d\n", \
-         #expr,__FILE__,__FUNCTION__,__LINE__); }
-#endif
-
-
 
 #endif // TAOCRYPT_KERNELC_HPP
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/include/misc.hpp mysql-5.5-5.5.22/extra/yassl/taocrypt/include/misc.hpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/include/misc.hpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/include/misc.hpp	2012-03-02 19:44:46.000000000 +0000
@@ -24,7 +24,6 @@
 
 #if !defined(DO_TAOCRYPT_KERNEL_MODE)
     #include 
-    #include 
     #include 
 #else
     #include "kernelc.hpp"
@@ -62,30 +61,30 @@
     template
     void tcDelete(T* ptr)
     {
-    if (ptr) ptr->~T();
-    ::operator delete(ptr, TaoCrypt::tc);
+        if (ptr) ptr->~T();
+        ::operator delete(ptr, TaoCrypt::tc);
     }
 
     template
     void tcArrayDelete(T* ptr)
     {
-    // can't do array placement destruction since not tracking size in
-    // allocation, only allow builtins to use array placement since they
-    // don't need destructors called
-    typedef char builtin[IsFundamentalType::Yes ? 1 : -1];
-    (void)sizeof(builtin);
+        // can't do array placement destruction since not tracking size in
+        // allocation, only allow builtins to use array placement since they
+        // don't need destructors called
+        typedef char builtin[IsFundamentalType::Yes ? 1 : -1];
+        (void)sizeof(builtin);
 
-    ::operator delete[](ptr, TaoCrypt::tc);
+        ::operator delete[](ptr, TaoCrypt::tc);
     }
 
     #define NEW_TC new (TaoCrypt::tc)
 
 
     // to resolve compiler generated operator delete on base classes with
-    // virtual destructors (when on stack), make sure doesn't get called
+    // virtual destructors (when on stack)
     class virtual_base {
     public:
-    static void operator delete(void*) { assert(0); }
+        static void operator delete(void*) { }
     };
 
 #else // YASSL_PURE_C
@@ -366,7 +365,6 @@
 template 
 inline T2 ModPowerOf2(T1 a, T2 b)
 {
-    assert(IsPowerOf2(b));
     return T2(a) & (b-1);
 }
 
@@ -409,14 +407,12 @@
 
 template  inline T rotlFixed(T x, unsigned int y)
 {
-    assert(y < sizeof(T)*8);
-        return (x<>(sizeof(T)*8-y));
+    return (x<>(sizeof(T)*8-y));
 }
 
 template  inline T rotrFixed(T x, unsigned int y)
 {
-    assert(y < sizeof(T)*8);
-        return (x>>y) | (x<<(sizeof(T)*8-y));
+    return (x>>y) | (x<<(sizeof(T)*8-y));
 }
 
 #ifdef INTEL_INTRINSICS
@@ -425,13 +421,11 @@
 
 template<> inline word32 rotlFixed(word32 x, word32 y)
 {
-    assert(y < 32);
     return y ? _lrotl(x, y) : x;
 }
 
 template<> inline word32 rotrFixed(word32 x, word32 y)
 {
-    assert(y < 32);
     return y ? _lrotr(x, y) : x;
 }
 
@@ -441,7 +435,9 @@
 #undef min
 #endif 
 
-inline word32 min(word32 a, word32 b)
+
+template 
+inline const T& min(const T& a, const T& b)
 {
     return a < b ? a : b;
 }
@@ -486,7 +482,6 @@
 template 
 inline void ByteReverse(T* out, const T* in, word32 byteCount)
 {
-    assert(byteCount % sizeof(T) == 0);
     word32 count = byteCount/sizeof(T);
     for (word32 i=0; i(block));
         return ByteReverseIf(*reinterpret_cast(block), order);
-    }
     else
         return UnalignedGetWord(order, block);
 }
@@ -699,7 +691,6 @@
 {
     if (assumeAligned)
     {
-        assert(IsAligned(block));
         if (xorBlock)
             *reinterpret_cast(block) = ByteReverseIf(value, order) 
                 ^ *reinterpret_cast(xorBlock);
@@ -812,7 +803,6 @@
 inline
 word ShiftWordsLeftByBits(word* r, unsigned int n, unsigned int shiftBits)
 {
-    assert (shiftBits=0; i--)
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/include/modes.hpp mysql-5.5-5.5.22/extra/yassl/taocrypt/include/modes.hpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/include/modes.hpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/include/modes.hpp	2012-03-02 19:44:46.000000000 +0000
@@ -61,9 +61,7 @@
     explicit Mode_BASE(int sz, CipherDir dir, Mode mode) 
         : blockSz_(sz), reg_(reinterpret_cast(r_)),
           tmp_(reinterpret_cast(t_)), dir_(dir), mode_(mode)
-    { 
-        assert(sz <= MaxBlockSz);
-    }
+    {}
     virtual ~Mode_BASE() {}
 
     virtual void Process(byte*, const byte*, word32);
@@ -96,8 +94,7 @@
 {
     if (mode_ == ECB)
         ECB_Process(out, in, sz);
-    else if (mode_ == CBC)
-    {
+    else if (mode_ == CBC) {
         if (dir_ == ENCRYPTION)
             CBC_Encrypt(out, in, sz);
         else
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/include/pwdbased.hpp mysql-5.5-5.5.22/extra/yassl/taocrypt/include/pwdbased.hpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/include/pwdbased.hpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/include/pwdbased.hpp	2012-03-02 19:44:46.000000000 +0000
@@ -48,8 +48,9 @@
                                  word32 pLen, const byte* salt, word32 sLen,
                                  word32 iterations) const
 {
-	assert(dLen <= MaxDerivedKeyLength());
-	assert(iterations > 0);
+	if (dLen > MaxDerivedKeyLength())
+        return 0;
+
 
     ByteBlock buffer(T::DIGEST_SIZE);
 	HMAC   hmac;
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/include/rabbit.hpp mysql-5.5-5.5.22/extra/yassl/taocrypt/include/rabbit.hpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/include/rabbit.hpp	1970-01-01 00:00:00.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/include/rabbit.hpp	2012-03-02 19:44:46.000000000 +0000
@@ -0,0 +1,65 @@
+/*
+   Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ 
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; version 2 of the License.
+ 
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+ 
+   You should have received a copy of the GNU General Public License
+   along with this program; see the file COPYING. If not, write to the
+   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+   MA  02110-1301  USA.
+*/
+
+/* rabbit.hpp defines Rabbit
+*/
+
+
+#ifndef TAO_CRYPT_RABBIT_HPP
+#define TAO_CRYPT_RABBIT_HPP
+
+#include "misc.hpp"
+
+namespace TaoCrypt {
+
+
+// Rabbit encryption and decryption
+class Rabbit {
+public:
+
+    typedef Rabbit Encryption;
+    typedef Rabbit Decryption;
+
+    enum RabbitCtx { Master = 0, Work = 1 };
+
+    Rabbit() {}
+
+    void Process(byte*, const byte*, word32);
+    void SetKey(const byte*, const byte*);
+private:
+    struct Ctx {
+        word32 x[8];
+        word32 c[8];
+        word32 carry;
+    };
+
+    Ctx masterCtx_;
+    Ctx workCtx_;
+
+    void NextState(RabbitCtx);
+    void SetIV(const byte*);
+
+    Rabbit(const Rabbit&);                  // hide copy
+    const Rabbit operator=(const Rabbit&);  // and assign
+};
+
+} // namespace
+
+
+#endif // TAO_CRYPT_RABBIT_HPP
+
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/include/rsa.hpp mysql-5.5-5.5.22/extra/yassl/taocrypt/include/rsa.hpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/include/rsa.hpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/include/rsa.hpp	2012-03-02 19:44:46.000000000 +0000
@@ -178,7 +178,8 @@
                                  RandomNumberGenerator& rng)
 {
     PK_Lengths lengths(key_.GetModulus());
-    assert(sz <= lengths.FixedMaxPlaintextLength());
+    if (sz > lengths.FixedMaxPlaintextLength())
+        return;
 
     ByteBlock paddedBlock(lengths.PaddedBlockByteLength());
     padding_.Pad(plain, sz, paddedBlock.get_buffer(),
@@ -195,7 +196,6 @@
                                    RandomNumberGenerator& rng)
 {
     PK_Lengths lengths(key_.GetModulus());
-    assert(sz == lengths.FixedCiphertextLength());
 
     if (sz != lengths.FixedCiphertextLength())
         return 0;
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/include/runtime.hpp mysql-5.5-5.5.22/extra/yassl/taocrypt/include/runtime.hpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/include/runtime.hpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/include/runtime.hpp	2012-03-02 19:44:46.000000000 +0000
@@ -31,7 +31,6 @@
 
 #ifdef __sun
  
-#include 
 
 // Handler for pure virtual functions
 namespace __Crun {
@@ -46,9 +45,7 @@
 #if __GNUC__ > 2
 
 extern "C" {
-#if !defined(DO_TAOCRYPT_KERNEL_MODE)
-    #include 
-#else
+#if defined(DO_TAOCRYPT_KERNEL_MODE)
     #include "kernelc.hpp"
 #endif
     int __cxa_pure_virtual () __attribute__ ((weak));
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/include/types.hpp mysql-5.5-5.5.22/extra/yassl/taocrypt/include/types.hpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/include/types.hpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/include/types.hpp	2012-03-02 19:44:46.000000000 +0000
@@ -62,7 +62,7 @@
 // compilers we've found 64-bit multiply insructions for
 #if defined(__GNUC__) || defined(_MSC_VER) || defined(__DECCXX)
     #if !(defined(__ICC) || defined(__INTEL_COMPILER))
-    #define HAVE_64_MULTIPLY
+        #define HAVE_64_MULTIPLY
     #endif
 #endif
 
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/mySTL/stdexcept.hpp mysql-5.5-5.5.22/extra/yassl/taocrypt/mySTL/stdexcept.hpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/mySTL/stdexcept.hpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/mySTL/stdexcept.hpp	2012-03-02 19:44:46.000000000 +0000
@@ -26,7 +26,6 @@
 
 
 #include   // strncpy
-#include   // assert
 #include   // size_t
 
 
@@ -41,7 +40,7 @@
     virtual const char* what() const { return ""; }
 
     // for compiler generated call, never used
-    static void operator delete(void*) { assert(0); }
+    static void operator delete(void*) { }
 private:
     // don't allow dynamic creation of exceptions
     static void* operator new(size_t);
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/mySTL/vector.hpp mysql-5.5-5.5.22/extra/yassl/taocrypt/mySTL/vector.hpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/mySTL/vector.hpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/mySTL/vector.hpp	2012-03-02 19:44:46.000000000 +0000
@@ -26,7 +26,6 @@
 
 #include "helpers.hpp"    // construct, destory, fill, etc.
 #include "algorithm.hpp"  // swap
-#include        // assert
 
 
 namespace mySTL {
@@ -141,9 +140,9 @@
     // for growing, n must be bigger than other size
     vector(size_t n, const vector& other) : vec_(n)
     {
-        assert(n > other.size());
-        vec_.finish_ = uninit_copy(other.vec_.start_, other.vec_.finish_,
-                                   vec_.start_);   
+        if (n > other.size())
+            vec_.finish_ = uninit_copy(other.vec_.start_, other.vec_.finish_,
+                                       vec_.start_);
     }
 };
 
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/README mysql-5.5-5.5.22/extra/yassl/taocrypt/README
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/README	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/README	2012-03-02 19:44:46.000000000 +0000
@@ -21,7 +21,7 @@
 Public Key Crypto: RSA, DSA, Diffie-Hellman
 Password based key derivation: PBKDF2 from PKCS #5
 Pseudo Random Number Generators
-Lare Integer Support
+Large Integer Support
 Base 16/64 encoding/decoding
 DER encoding/decoding
 X.509 processing
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/src/aes.cpp mysql-5.5-5.5.22/extra/yassl/taocrypt/src/aes.cpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/src/aes.cpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/src/aes.cpp	2012-03-02 19:44:46.000000000 +0000
@@ -78,7 +78,7 @@
                 out += BLOCK_SIZE;
                 in  += BLOCK_SIZE;
             }
-    }
+   }
 }
 
 #endif // DO_AES_ASM
@@ -86,8 +86,13 @@
 
 void AES::SetKey(const byte* userKey, word32 keylen, CipherDir /*dummy*/)
 {
-    assert( (keylen == 16) || (keylen == 24) || (keylen == 32) );
-
+    if (keylen <= 16)
+        keylen = 16;
+    else if (keylen >= 32)
+        keylen = 32;
+    else if (keylen != 24)
+        keylen = 24;
+    
     rounds_ = keylen/4 + 6;
 
     word32 temp, *rk = key_;
@@ -245,34 +250,34 @@
     for (;;) {
         t0 =
             Te0[GETBYTE(s0, 3)] ^
-            Te1[GETBYTE(s1, 2)] ^
-            Te2[GETBYTE(s2, 1)] ^
-            Te3[GETBYTE(s3, 0)] ^
+            Te1[GETBYTE(s1, 2)]  ^
+            Te2[GETBYTE(s2, 1)]  ^
+            Te3[GETBYTE(s3, 0)]  ^
             rk[4];
         t1 =
             Te0[GETBYTE(s1, 3)] ^
-            Te1[GETBYTE(s2, 2)] ^
-            Te2[GETBYTE(s3, 1)] ^
-            Te3[GETBYTE(s0, 0)] ^
+            Te1[GETBYTE(s2, 2)]  ^
+            Te2[GETBYTE(s3, 1)]  ^
+            Te3[GETBYTE(s0, 0)]  ^
             rk[5];
         t2 =
             Te0[GETBYTE(s2, 3)] ^
-            Te1[GETBYTE(s3, 2)] ^
-            Te2[GETBYTE(s0, 1)] ^
-            Te3[GETBYTE(s1, 0)] ^
+            Te1[GETBYTE(s3, 2)]  ^
+            Te2[GETBYTE(s0, 1)]  ^
+            Te3[GETBYTE(s1, 0)]  ^
             rk[6];
         t3 =
             Te0[GETBYTE(s3, 3)] ^
-            Te1[GETBYTE(s0, 2)] ^
-            Te2[GETBYTE(s1, 1)] ^
-            Te3[GETBYTE(s2, 0)] ^
+            Te1[GETBYTE(s0, 2)]  ^
+            Te2[GETBYTE(s1, 1)]  ^
+            Te3[GETBYTE(s2, 0)]  ^
             rk[7];
 
         rk += 8;
         if (--r == 0) {
             break;
         }
-
+        
         s0 =
             Te0[GETBYTE(t0, 3)] ^
             Te1[GETBYTE(t1, 2)] ^
@@ -421,7 +426,7 @@
         (Td4[GETBYTE(t3, 2)] & 0x00ff0000) ^
         (Td4[GETBYTE(t2, 1)] & 0x0000ff00) ^
         (Td4[GETBYTE(t1, 0)] & 0x000000ff) ^
-    rk[0];
+        rk[0];
     s1 =
         (Td4[GETBYTE(t1, 3)] & 0xff000000) ^
         (Td4[GETBYTE(t0, 2)] & 0x00ff0000) ^
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/src/aestables.cpp mysql-5.5-5.5.22/extra/yassl/taocrypt/src/aestables.cpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/src/aestables.cpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/src/aestables.cpp	2012-03-02 19:44:46.000000000 +0000
@@ -33,6 +33,4 @@
 };
 
 
-
-
 } // namespace
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/src/algebra.cpp mysql-5.5-5.5.22/extra/yassl/taocrypt/src/algebra.cpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/src/algebra.cpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/src/algebra.cpp	2012-03-02 19:44:46.000000000 +0000
@@ -247,7 +247,6 @@
 
     for (i=0; iNotNegative());
         exponents.push_back(WindowSlider(*expBegin++, InversionIsFast(), 0));
         exponents[i].FindNextWindow();
         buckets[i].resize(1<<(exponents[i].windowSize-1), Identity());
@@ -288,7 +287,7 @@
         r = buckets[i][buckets[i].size()-1];
         if (buckets[i].size() > 1)
         {
-            for (int j= (unsigned int) (buckets[i].size()) - 2; j >= 1; j--)
+            for (size_t j = buckets[i].size()-2; j >= 1; j--)
             {
                 Accumulate(buckets[i][j], buckets[i][j+1]);
                 Accumulate(r, buckets[i][j]);
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/src/arc4.cpp mysql-5.5-5.5.22/extra/yassl/taocrypt/src/arc4.cpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/src/arc4.cpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/src/arc4.cpp	2012-03-02 19:44:46.000000000 +0000
@@ -104,7 +104,7 @@
 #ifdef DO_ARC4_ASM
 
 #ifdef _MSC_VER
-    __declspec(naked) 
+    __declspec(naked)
 #else
     __attribute__ ((noinline))
 #endif
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/src/asn.cpp mysql-5.5-5.5.22/extra/yassl/taocrypt/src/asn.cpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/src/asn.cpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/src/asn.cpp	2012-03-02 19:44:46.000000000 +0000
@@ -1,5 +1,5 @@
 /*
-   Copyright (c) 2005-2007 MySQL AB, 2009, 2010 Sun Microsystems, Inc.
+   Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
    Use is subject to license terms.
 
    This program is free software; you can redistribute it and/or modify
@@ -111,7 +111,8 @@
     GetTime(certTime.tm_min,  date, i); 
     GetTime(certTime.tm_sec,  date, i); 
 
-    assert(date[i] == 'Z');     // only Zulu supported for this profile
+    if (date[i] != 'Z')     // only Zulu supported for this profile
+        return false;
 
     time_t ltime = time(0);
     tm* localTime = gmtime(<ime);
@@ -143,6 +144,8 @@
     if (b >= LONG_LENGTH) {        
         word32 bytes = b & 0x7F;
 
+        if (source.IsLeft(bytes) == false) return 0;
+
         while (bytes--) {
             b = source.next();
             length = (length << 8) | b;
@@ -214,9 +217,9 @@
 Signer::Signer(const byte* k, word32 kSz, const char* n, const byte* h)
     : key_(k, kSz)
 {
-        size_t sz = strlen(n);
-        memcpy(name_, n, sz);
-        name_[sz] = 0;
+    size_t sz = strlen(n);
+    memcpy(name_, n, sz);
+    name_[sz] = 0;
 
     memcpy(hash_, h, SHA::DIGEST_SIZE);
 }
@@ -364,12 +367,59 @@
     ReadHeader();
     if (source_.GetError().What()) return;
 
+    ReadHeaderOpenSSL();   // may or may not be
+    if (source_.GetError().What()) return;
+
     // public key
     key.SetModulus(GetInteger(Integer().Ref()));
     key.SetPublicExponent(GetInteger(Integer().Ref()));
 }
 
 
+// Read OpenSSL format public header
+void RSA_Public_Decoder::ReadHeaderOpenSSL()
+{
+    byte b = source_.next();  // peek
+    source_.prev();
+
+    if (b != INTEGER) { // have OpenSSL public format
+        GetSequence();
+        b = source_.next();
+        if (b != OBJECT_IDENTIFIER) {
+            source_.SetError(OBJECT_ID_E);
+            return;
+        }
+
+        word32 len = GetLength(source_);
+        source_.advance(len);
+
+        b = source_.next();
+        if (b == TAG_NULL) {   // could have NULL tag and 0 terminator, may not 
+            b = source_.next();
+            if (b != 0) {
+                source_.SetError(EXPECT_0_E);
+                return; 
+            }
+        }
+        else
+            source_.prev();   // put back
+
+        b = source_.next();
+        if (b != BIT_STRING) {   
+            source_.SetError(BIT_STR_E);
+            return; 
+        }
+
+        len = GetLength(source_); 
+        b = source_.next();
+        if (b != 0)           // could have 0
+            source_.prev();   // put back
+        
+        GetSequence();
+    }
+}
+
+
 void RSA_Public_Decoder::ReadHeader()
 {
     GetSequence();
@@ -420,12 +470,12 @@
                          bool noVerify, CertType ct)
     : BER_Decoder(s), certBegin_(0), sigIndex_(0), sigLength_(0),
       signature_(0), verify_(!noVerify)
-{ 
+{
     issuer_[0] = 0;
     subject_[0] = 0;
 
     if (decode)
-        Decode(signers, ct); 
+        Decode(signers, ct);
 
 }
 
@@ -470,9 +520,9 @@
         source_.SetError(SIG_OID_E);
         return;
     }
-
+    
     if (ct != CA && verify_ && !ValidateSignature(signers))
-            source_.SetError(SIG_OTHER_E);
+        source_.SetError(SIG_OTHER_E);
 }
 
 
@@ -530,8 +580,10 @@
     read = source_.get_index() - read;
     length += read;
 
+    if (source_.GetError().What()) return;
     while (read--) source_.prev();
 
+    if (source_.IsLeft(length) == false) return;
     key_.SetSize(length);
     key_.SetKey(source_.get_current());
     source_.advance(length);
@@ -563,6 +615,8 @@
     word32 length = GetLength(source_);
     length += source_.get_index() - idx;
 
+    if (source_.IsLeft(length) == false) return;
+
     key_.AddToEnd(source_.get_buffer() + idx, length);    
 }
 
@@ -572,6 +626,8 @@
 {
     if (source_.GetError().What()) return 0;
     word32 length = GetSequence();
+
+    if (source_.GetError().What()) return 0;
     
     byte b = source_.next();
     if (b != OBJECT_IDENTIFIER) {
@@ -580,26 +636,25 @@
     }
 
     length = GetLength(source_);
+    if (source_.IsLeft(length) == false) return 0;
+
     word32 oid = 0;
-    
     while(length--)
         oid += source_.next();        // just sum it up for now
 
-    if (oid != SHAwDSA && oid != DSAk) {
-        b = source_.next();               // should have NULL tag and 0
-
-        if (b != TAG_NULL) {
-            source_.SetError(TAG_NULL_E);
-            return 0;
-        }
-
+    // could have NULL tag and 0 terminator, but may not
+    b = source_.next();
+    if (b == TAG_NULL) {
         b = source_.next();
         if (b != 0) {
             source_.SetError(EXPECT_0_E);
             return 0;
         }
     }
- 
+    else
+        // go back, didn't have it
+        b = source_.prev();
+
     return oid;
 }
 
@@ -616,6 +671,10 @@
     }
 
     sigLength_ = GetLength(source_);
+    if (sigLength_ == 0 || source_.IsLeft(sigLength_) == false) {
+        source_.SetError(CONTENT_E);
+        return 0;
+    }
   
     b = source_.next();
     if (b != 0) {
@@ -653,20 +712,22 @@
 }
 
 
-char *CertDecoder::AddTag(char *ptr, const char *buf_end, 
-                          const char *tag_name, word32 tag_name_length,
-                          word32 tag_value_length)
+// memory length checked add tag to buffer
+char* CertDecoder::AddTag(char* ptr, const char* buf_end, const char* tag_name,
+                          word32 tag_name_length, word32 tag_value_length)
 {
-  if (ptr + tag_name_length + tag_value_length > buf_end)
-      return 0;
-    
-  memcpy(ptr, tag_name, tag_name_length);
-  ptr+= tag_name_length;
-  
-  memcpy(ptr, source_.get_current(), tag_value_length);
-  ptr+= tag_value_length;
-  
-  return ptr;
+    if (ptr + tag_name_length + tag_value_length > buf_end) {
+        source_.SetError(CONTENT_E);
+        return 0;
+    }
+
+    memcpy(ptr, tag_name, tag_name_length);
+    ptr += tag_name_length;
+
+    memcpy(ptr, source_.get_current(), tag_value_length);
+    ptr += tag_value_length;
+
+    return ptr;
 }
 
 
@@ -679,18 +740,20 @@
     word32 length = GetSequence();  // length of all distinguished names
 
     if (length >= ASN_NAME_MAX)
-        goto err;
+        return;
+    if (source_.IsLeft(length) == false) return;
     length += source_.get_index();
-
-    char *ptr, *buf_end;
+    
+    char* ptr;
+    char* buf_end;
 
     if (nt == ISSUER) {
-        ptr= issuer_;
-        buf_end= ptr + sizeof(issuer_) - 1;  // 1 byte for trailing 0
+        ptr = issuer_;
+        buf_end = ptr + sizeof(issuer_) - 1;   // 1 byte for trailing 0
     }
     else {
-        ptr= subject_;
-        buf_end= ptr + sizeof(subject_) - 1;  // 1 byte for trailing 0
+        ptr = subject_;
+        buf_end = ptr + sizeof(subject_) - 1;  // 1 byte for trailing 0
     }
 
     while (source_.get_index() < length) {
@@ -704,7 +767,10 @@
         }
 
         word32 oidSz = GetLength(source_);
+        if (source_.IsLeft(oidSz) == false) return;
+
         byte joint[2];
+        if (source_.IsLeft(sizeof(joint)) == false) return;
         memcpy(joint, source_.get_current(), sizeof(joint));
 
         // v1 name types
@@ -714,62 +780,68 @@
             b              = source_.next();    // strType
             word32 strLen  = GetLength(source_);
 
+            if (source_.IsLeft(strLen) == false) return;
+
             switch (id) {
             case COMMON_NAME:
-                if (!(ptr= AddTag(ptr, buf_end, "/CN=", 4, strLen)))
-                  goto err;
+                if (!(ptr = AddTag(ptr, buf_end, "/CN=", 4, strLen)))
+                    return;
                 break;
             case SUR_NAME:
-                if (!(ptr= AddTag(ptr, buf_end, "/SN=", 4, strLen)))
-                  goto err;
+                if (!(ptr = AddTag(ptr, buf_end, "/SN=", 4, strLen)))
+                    return;
                 break;
             case COUNTRY_NAME:
-                if (!(ptr= AddTag(ptr, buf_end, "/C=", 3, strLen)))
-                  goto err;
+                if (!(ptr = AddTag(ptr, buf_end, "/C=", 3, strLen)))
+                    return;
                 break;
             case LOCALITY_NAME:
-                if (!(ptr= AddTag(ptr, buf_end, "/L=", 3, strLen)))
-                  goto err;
+                if (!(ptr = AddTag(ptr, buf_end, "/L=", 3, strLen)))
+                    return;
                 break;
             case STATE_NAME:
-                if (!(ptr= AddTag(ptr, buf_end, "/ST=", 4, strLen)))
-                  goto err;
+                if (!(ptr = AddTag(ptr, buf_end, "/ST=", 4, strLen)))
+                    return;
                 break;
             case ORG_NAME:
-                if (!(ptr= AddTag(ptr, buf_end, "/O=", 3, strLen)))
-                  goto err;
+                if (!(ptr = AddTag(ptr, buf_end, "/O=", 3, strLen)))
+                    return;
                 break;
             case ORGUNIT_NAME:
-                if (!(ptr= AddTag(ptr, buf_end, "/OU=", 4, strLen)))
-                  goto err;
+                if (!(ptr = AddTag(ptr, buf_end, "/OU=", 4, strLen)))
+                    return;
                 break;
             }
 
             sha.Update(source_.get_current(), strLen);
             source_.advance(strLen);
         }
-        else {
+        else { 
             bool email = false;
             if (joint[0] == 0x2a && joint[1] == 0x86)  // email id hdr
                 email = true;
 
             source_.advance(oidSz + 1);
             word32 length = GetLength(source_);
+            if (source_.IsLeft(length) == false) return;
 
-            if (email && !(ptr= AddTag(ptr, buf_end, "/emailAddress=", 14, length)))
-                goto err;
+            if (email) {
+                if (!(ptr = AddTag(ptr, buf_end, "/emailAddress=", 14, length))) {
+                    source_.SetError(CONTENT_E);
+                    return; 
+                }
+            }
 
             source_.advance(length);
         }
     }
-    *ptr= 0;
 
-    sha.Final(nt == ISSUER ? issuerHash_ : subjectHash_);
-        
-    return;
-    
-err:
-    source_.SetError(CONTENT_E);
+    *ptr = 0;
+
+    if (nt == ISSUER)
+        sha.Final(issuerHash_);
+    else
+        sha.Final(subjectHash_);
 }
 
 
@@ -785,6 +857,8 @@
     }
 
     word32 length = GetLength(source_);
+    if (source_.IsLeft(length) == false) return;
+
     byte date[MAX_DATE_SZ];
     if (length > MAX_DATE_SZ || length < MIN_DATE_SZ) {
         source_.SetError(DATE_SZ_E);
@@ -794,8 +868,7 @@
     memcpy(date, source_.get_current(), length);
     source_.advance(length);
 
-    if (!ValidateDate(date, b, dt) && verify_)
-    {
+    if (!ValidateDate(date, b, dt) && verify_) {
         if (dt == BEFORE)
             source_.SetError(BEFORE_DATE_E);
         else
@@ -856,7 +929,8 @@
 // validate signature signed by someone else
 bool CertDecoder::ValidateSignature(SignerList* signers)
 {
-    assert(signers);
+    if (!signers)
+        return false;
 
     SignerList::iterator first = signers->begin();
     SignerList::iterator last  = signers->end();
@@ -1077,8 +1151,7 @@
         return 0;
     }
     word32 rLen = GetLength(source);
-    if (rLen != 20)
-    {
+    if (rLen != 20) {
         if (rLen == 21) {       // zero at front, eat
             source.next();
             --rLen;
@@ -1101,8 +1174,7 @@
         return 0;
     }
     word32 sLen = GetLength(source);
-    if (sLen != 20)
-    {
+    if (sLen != 20) {
         if (sLen == 21) {
             source.next();          // zero at front, eat
             --sLen;
@@ -1123,6 +1195,7 @@
 }
 
 
+/*
 // Get Cert in PEM format from BEGIN to END
 int GetCert(Source& source)
 {
@@ -1174,12 +1247,10 @@
 
 
     // Get MacData optional
-    /*
-    mac     digestInfo  like certdecoder::getdigest?
-    macsalt octet string
-    iter    integer
+    // mac     digestInfo  like certdecoder::getdigest?
+    // macsalt octet string
+    // iter    integer
     
-    */
 }
 
 
@@ -1199,6 +1270,7 @@
 
     return 0;
 }
+*/
 
 
 
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/src/blowfish.cpp mysql-5.5-5.5.22/extra/yassl/taocrypt/src/blowfish.cpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/src/blowfish.cpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/src/blowfish.cpp	2012-03-02 19:44:46.000000000 +0000
@@ -86,7 +86,10 @@
 
 void Blowfish::SetKey(const byte* key_string, word32 keylength, CipherDir dir)
 {
-	assert(keylength >= 4 && keylength <= 56);
+    if (keylength < 4)
+        keylength = 4;
+    else if (keylength > 56)
+        keylength = 56;
 
 	unsigned i, j=0, k;
 	word32 data, dspace[2] = {0, 0};
@@ -165,16 +168,21 @@
 	word32 left  = in[0];
 	word32 right = in[1];
 
+	const word32  *const s = sbox_;
 	const word32* p = pbox_;
-    word32 tmp;
 
 	left ^= p[0];
 
-    BF_ROUNDS
-
-#if ROUNDS == 20
-    BF_EXTRA_ROUNDS
-#endif
+    // roll back up and use s and p index instead of just p
+    for (unsigned i = 0; i < ROUNDS / 2; i++) {
+        right ^= (((s[GETBYTE(left,3)] + s[256+GETBYTE(left,2)])
+            ^ s[2*256+GETBYTE(left,1)]) + s[3*256+GETBYTE(left,0)])
+            ^ p[2*i+1];
+
+        left ^= (((s[GETBYTE(right,3)] + s[256+GETBYTE(right,2)])
+            ^ s[2*256+GETBYTE(right,1)]) + s[3*256+GETBYTE(right,0)])
+            ^ p[2*i+2];
+    }
 
 	right ^= p[ROUNDS + 1];
 
@@ -188,17 +196,23 @@
 void Blowfish::ProcessAndXorBlock(const byte* in, const byte* xOr, byte* out)
     const
 {
-    word32 tmp, left, right;
+    word32 left, right;
+	const word32  *const s = sbox_;
     const word32* p = pbox_;
     
     gpBlock::Get(in)(left)(right);
 	left ^= p[0];
 
-    BF_ROUNDS
-
-#if ROUNDS == 20
-    BF_EXTRA_ROUNDS
-#endif
+    // roll back up and use s and p index instead of just p
+    for (unsigned i = 0; i < ROUNDS / 2; i++) {
+        right ^= (((s[GETBYTE(left,3)] + s[256+GETBYTE(left,2)])
+            ^ s[2*256+GETBYTE(left,1)]) + s[3*256+GETBYTE(left,0)])
+            ^ p[2*i+1];
+
+        left ^= (((s[GETBYTE(right,3)] + s[256+GETBYTE(right,2)])
+            ^ s[2*256+GETBYTE(right,1)]) + s[3*256+GETBYTE(right,0)])
+            ^ p[2*i+2];
+    }
 
 	right ^= p[ROUNDS + 1];
 
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/src/coding.cpp mysql-5.5-5.5.22/extra/yassl/taocrypt/src/coding.cpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/src/coding.cpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/src/coding.cpp	2012-03-02 19:44:46.000000000 +0000
@@ -95,7 +95,6 @@
 void HexDecoder::Decode()
 {
     word32 bytes = coded_.size();
-    assert((bytes % 2) == 0);
     decoded_.New(bytes / 2);
 
     word32 i(0);
@@ -104,15 +103,9 @@
         byte b  = coded_.next() - 0x30;  // 0 starts at 0x30
         byte b2 = coded_.next() - 0x30;
 
-        // sanity checks
-        assert( b  < sizeof(hexDecode)/sizeof(hexDecode[0]) );
-        assert( b2 < sizeof(hexDecode)/sizeof(hexDecode[0]) );
-
         b  = hexDecode[b];
         b2 = hexDecode[b2];
-        
-        assert( b != bad && b2 != bad );
-        
+
         decoded_[i++] = (b << 4) | b2;
         bytes -= 2;
     }
@@ -174,9 +167,9 @@
     } 
 
     encoded_[i++] = '\n';
-    assert(i == outSz);
-
-    plain_.reset(encoded_);
+    
+    if (i == outSz)
+        plain_.reset(encoded_);
 }
 
 
@@ -197,7 +190,6 @@
         byte e3 = coded_.next();
         byte e4 = coded_.next();
 
-        // do asserts first
         if (e1 == 0)            // end file 0's
             break;
 
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/src/dsa.cpp mysql-5.5-5.5.22/extra/yassl/taocrypt/src/dsa.cpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/src/dsa.cpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/src/dsa.cpp	2012-03-02 19:44:46.000000000 +0000
@@ -183,7 +183,8 @@
     Integer kInv = k.InverseMod(q);
     s_ = (kInv * (H + x*r_)) % q;
 
-    assert(!!r_ && !!s_);
+    if (!(!!r_ && !!s_))
+        return -1;
 
     int rSz = r_.ByteCount();
 
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/src/hash.cpp mysql-5.5-5.5.22/extra/yassl/taocrypt/src/hash.cpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/src/hash.cpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/src/hash.cpp	2012-03-02 19:44:46.000000000 +0000
@@ -21,7 +21,6 @@
 
 #include "runtime.hpp"
 #include 
-#include 
 
 #include "hash.hpp"
 
@@ -31,8 +30,6 @@
 
 HASHwithTransform::HASHwithTransform(word32 digSz, word32 buffSz)
 {
-    assert(digSz  <= MaxDigestSz);
-    assert(buffSz <= MaxBufferSz);
 }
 
 
@@ -73,15 +70,15 @@
 // Final process, place digest in hash
 void HASHwithTransform::Final(byte* hash)
 {
-    word32    blockSz   = getBlockSize();
-    word32    digestSz  = getDigestSize();
-    word32    padSz     = getPadSize();
-    ByteOrder order     = getByteOrder();
+    word32    blockSz  = getBlockSize();
+    word32    digestSz = getDigestSize();
+    word32    padSz    = getPadSize();
+    ByteOrder order    = getByteOrder();
 
     AddLength(buffLen_);                        // before adding pads
     HashLengthType preLoLen = GetBitCountLo();
     HashLengthType preHiLen = GetBitCountHi();
-    byte*     local     = reinterpret_cast(buffer_);
+    byte*     local         = reinterpret_cast(buffer_);
 
     local[buffLen_++] = 0x80;  // add 1
 
@@ -95,7 +92,7 @@
         buffLen_ = 0;
     }
     memset(&local[buffLen_], 0, padSz - buffLen_);
-
+   
     ByteReverseIf(local, local, blockSz, order);
     
     memcpy(&local[padSz],   order ? &preHiLen : &preLoLen, sizeof(preLoLen));
@@ -113,8 +110,6 @@
 
 HASH64withTransform::HASH64withTransform(word32 digSz, word32 buffSz)
 {
-    assert(digSz  <= MaxDigestSz);
-    assert(buffSz <= MaxBufferSz);
 }
 
 
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/src/hc128.cpp mysql-5.5-5.5.22/extra/yassl/taocrypt/src/hc128.cpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/src/hc128.cpp	1970-01-01 00:00:00.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/src/hc128.cpp	2012-03-02 19:44:46.000000000 +0000
@@ -0,0 +1,317 @@
+/*
+   Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ 
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; version 2 of the License.
+ 
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+ 
+   You should have received a copy of the GNU General Public License
+   along with this program; see the file COPYING. If not, write to the
+   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+   MA  02110-1301  USA.
+*/
+
+
+#include "runtime.hpp"
+#include "hc128.hpp"
+
+
+
+namespace TaoCrypt {
+
+
+
+
+#ifdef BIG_ENDIAN_ORDER
+    #define LITTLE32(x) ByteReverse((word32)x)
+#else
+    #define LITTLE32(x) (x)
+#endif
+
+
+/*h1 function*/
+#define h1(x, y) {                              \
+     byte a,c;                                  \
+     a = (byte) (x);                            \
+     c = (byte) ((x) >> 16);                    \
+     y = (T_[512+a])+(T_[512+256+c]);           \
+}
+
+/*h2 function*/
+#define h2(x, y) {                              \
+     byte a,c;                                  \
+     a = (byte) (x);                            \
+     c = (byte) ((x) >> 16);                    \
+     y = (T_[a])+(T_[256+c]);                   \
+}
+
+/*one step of HC-128, update P and generate 32 bits keystream*/
+#define step_P(u,v,a,b,c,d,n){                  \
+     word32 tem0,tem1,tem2,tem3;                \
+     h1((X_[(d)]),tem3);                        \
+     tem0 = rotrFixed((T_[(v)]),23);            \
+     tem1 = rotrFixed((X_[(c)]),10);            \
+     tem2 = rotrFixed((X_[(b)]),8);             \
+     (T_[(u)]) += tem2+(tem0 ^ tem1);           \
+     (X_[(a)]) = (T_[(u)]);                     \
+     (n) = tem3 ^ (T_[(u)]) ;                   \
+}       
+
+/*one step of HC-128, update Q and generate 32 bits keystream*/
+#define step_Q(u,v,a,b,c,d,n){                  \
+     word32 tem0,tem1,tem2,tem3;                \
+     h2((Y_[(d)]),tem3);                        \
+     tem0 = rotrFixed((T_[(v)]),(32-23));       \
+     tem1 = rotrFixed((Y_[(c)]),(32-10));       \
+     tem2 = rotrFixed((Y_[(b)]),(32-8));        \
+     (T_[(u)]) += tem2 + (tem0 ^ tem1);         \
+     (Y_[(a)]) = (T_[(u)]);                     \
+     (n) = tem3 ^ (T_[(u)]) ;                   \
+}   
+
+
+/*16 steps of HC-128, generate 512 bits keystream*/
+void HC128::GenerateKeystream(word32* keystream)  
+{
+   word32 cc,dd;
+   cc = counter1024_ & 0x1ff;
+   dd = (cc+16)&0x1ff;
+
+   if (counter1024_ < 512)	
+   {   		
+      counter1024_ = (counter1024_ + 16) & 0x3ff;
+      step_P(cc+0, cc+1, 0, 6, 13,4, keystream[0]);
+      step_P(cc+1, cc+2, 1, 7, 14,5, keystream[1]);
+      step_P(cc+2, cc+3, 2, 8, 15,6, keystream[2]);
+      step_P(cc+3, cc+4, 3, 9, 0, 7, keystream[3]);
+      step_P(cc+4, cc+5, 4, 10,1, 8, keystream[4]);
+      step_P(cc+5, cc+6, 5, 11,2, 9, keystream[5]);
+      step_P(cc+6, cc+7, 6, 12,3, 10,keystream[6]);
+      step_P(cc+7, cc+8, 7, 13,4, 11,keystream[7]);
+      step_P(cc+8, cc+9, 8, 14,5, 12,keystream[8]);
+      step_P(cc+9, cc+10,9, 15,6, 13,keystream[9]);
+      step_P(cc+10,cc+11,10,0, 7, 14,keystream[10]);
+      step_P(cc+11,cc+12,11,1, 8, 15,keystream[11]);
+      step_P(cc+12,cc+13,12,2, 9, 0, keystream[12]);
+      step_P(cc+13,cc+14,13,3, 10,1, keystream[13]);
+      step_P(cc+14,cc+15,14,4, 11,2, keystream[14]);
+      step_P(cc+15,dd+0, 15,5, 12,3, keystream[15]);
+   }
+   else				    
+   {
+	  counter1024_ = (counter1024_ + 16) & 0x3ff;
+      step_Q(512+cc+0, 512+cc+1, 0, 6, 13,4, keystream[0]);
+      step_Q(512+cc+1, 512+cc+2, 1, 7, 14,5, keystream[1]);
+      step_Q(512+cc+2, 512+cc+3, 2, 8, 15,6, keystream[2]);
+      step_Q(512+cc+3, 512+cc+4, 3, 9, 0, 7, keystream[3]);
+      step_Q(512+cc+4, 512+cc+5, 4, 10,1, 8, keystream[4]);
+      step_Q(512+cc+5, 512+cc+6, 5, 11,2, 9, keystream[5]);
+      step_Q(512+cc+6, 512+cc+7, 6, 12,3, 10,keystream[6]);
+      step_Q(512+cc+7, 512+cc+8, 7, 13,4, 11,keystream[7]);
+      step_Q(512+cc+8, 512+cc+9, 8, 14,5, 12,keystream[8]);
+      step_Q(512+cc+9, 512+cc+10,9, 15,6, 13,keystream[9]);
+      step_Q(512+cc+10,512+cc+11,10,0, 7, 14,keystream[10]);
+      step_Q(512+cc+11,512+cc+12,11,1, 8, 15,keystream[11]);
+      step_Q(512+cc+12,512+cc+13,12,2, 9, 0, keystream[12]);
+      step_Q(512+cc+13,512+cc+14,13,3, 10,1, keystream[13]);
+      step_Q(512+cc+14,512+cc+15,14,4, 11,2, keystream[14]);
+      step_Q(512+cc+15,512+dd+0, 15,5, 12,3, keystream[15]);
+   }
+}
+
+
+/* The following defines the initialization functions */
+#define f1(x)  (rotrFixed((x),7)  ^ rotrFixed((x),18) ^ ((x) >> 3))
+#define f2(x)  (rotrFixed((x),17) ^ rotrFixed((x),19) ^ ((x) >> 10))
+
+/*update table P*/
+#define update_P(u,v,a,b,c,d){                      \
+     word32 tem0,tem1,tem2,tem3;                    \
+     tem0 = rotrFixed((T_[(v)]),23);                \
+     tem1 = rotrFixed((X_[(c)]),10);                \
+     tem2 = rotrFixed((X_[(b)]),8);                 \
+     h1((X_[(d)]),tem3);                            \
+     (T_[(u)]) = ((T_[(u)]) + tem2+(tem0^tem1)) ^ tem3;     \
+     (X_[(a)]) = (T_[(u)]);                         \
+}  
+
+/*update table Q*/
+#define update_Q(u,v,a,b,c,d){                      \
+     word32 tem0,tem1,tem2,tem3;                    \
+     tem0 = rotrFixed((T_[(v)]),(32-23));           \
+     tem1 = rotrFixed((Y_[(c)]),(32-10));           \
+     tem2 = rotrFixed((Y_[(b)]),(32-8));            \
+     h2((Y_[(d)]),tem3);                            \
+     (T_[(u)]) = ((T_[(u)]) + tem2+(tem0^tem1)) ^ tem3;     \
+     (Y_[(a)]) = (T_[(u)]);                         \
+}     
+
+/*16 steps of HC-128, without generating keystream, */
+/*but use the outputs to update P and Q*/
+void HC128::SetupUpdate()  /*each time 16 steps*/
+{
+   word32 cc,dd;
+   cc = counter1024_ & 0x1ff;
+   dd = (cc+16)&0x1ff;
+
+   if (counter1024_ < 512)	
+   {   		
+      counter1024_ = (counter1024_ + 16) & 0x3ff;
+      update_P(cc+0, cc+1, 0, 6, 13, 4);
+      update_P(cc+1, cc+2, 1, 7, 14, 5);
+      update_P(cc+2, cc+3, 2, 8, 15, 6);
+      update_P(cc+3, cc+4, 3, 9, 0,  7);
+      update_P(cc+4, cc+5, 4, 10,1,  8);
+      update_P(cc+5, cc+6, 5, 11,2,  9);
+      update_P(cc+6, cc+7, 6, 12,3,  10);
+      update_P(cc+7, cc+8, 7, 13,4,  11);
+      update_P(cc+8, cc+9, 8, 14,5,  12);
+      update_P(cc+9, cc+10,9, 15,6,  13);
+      update_P(cc+10,cc+11,10,0, 7,  14);
+      update_P(cc+11,cc+12,11,1, 8,  15);
+      update_P(cc+12,cc+13,12,2, 9,  0);
+      update_P(cc+13,cc+14,13,3, 10, 1);
+      update_P(cc+14,cc+15,14,4, 11, 2);
+      update_P(cc+15,dd+0, 15,5, 12, 3);   
+   }
+   else				    
+   {
+      counter1024_ = (counter1024_ + 16) & 0x3ff;
+      update_Q(512+cc+0, 512+cc+1, 0, 6, 13, 4);
+      update_Q(512+cc+1, 512+cc+2, 1, 7, 14, 5);
+      update_Q(512+cc+2, 512+cc+3, 2, 8, 15, 6);
+      update_Q(512+cc+3, 512+cc+4, 3, 9, 0,  7);
+      update_Q(512+cc+4, 512+cc+5, 4, 10,1,  8);
+      update_Q(512+cc+5, 512+cc+6, 5, 11,2,  9);
+      update_Q(512+cc+6, 512+cc+7, 6, 12,3,  10);
+      update_Q(512+cc+7, 512+cc+8, 7, 13,4,  11);
+      update_Q(512+cc+8, 512+cc+9, 8, 14,5,  12);
+      update_Q(512+cc+9, 512+cc+10,9, 15,6,  13);
+      update_Q(512+cc+10,512+cc+11,10,0, 7,  14);
+      update_Q(512+cc+11,512+cc+12,11,1, 8,  15);
+      update_Q(512+cc+12,512+cc+13,12,2, 9,  0);
+      update_Q(512+cc+13,512+cc+14,13,3, 10, 1);
+      update_Q(512+cc+14,512+cc+15,14,4, 11, 2);
+      update_Q(512+cc+15,512+dd+0, 15,5, 12, 3); 
+   }       
+}
+
+
+/* for the 128-bit key:  key[0]...key[15]
+*  key[0] is the least significant byte of ctx->key[0] (K_0);
+*  key[3] is the most significant byte of ctx->key[0]  (K_0);
+*  ...
+*  key[12] is the least significant byte of ctx->key[3] (K_3)
+*  key[15] is the most significant byte of ctx->key[3]  (K_3)
+*
+*  for the 128-bit iv:  iv[0]...iv[15]
+*  iv[0] is the least significant byte of ctx->iv[0] (IV_0);
+*  iv[3] is the most significant byte of ctx->iv[0]  (IV_0);
+*  ...
+*  iv[12] is the least significant byte of ctx->iv[3] (IV_3)
+*  iv[15] is the most significant byte of ctx->iv[3]  (IV_3)
+*/
+
+
+
+void HC128::SetIV(const byte* iv)
+{ 
+    word32 i;
+	
+	for (i = 0; i < (128 >> 5); i++)
+        iv_[i] = LITTLE32(((word32*)iv)[i]);
+	
+    for (; i < 8; i++) iv_[i] = iv_[i-4];
+  
+    /* expand the key and IV into the table T */ 
+    /* (expand the key and IV into the table P and Q) */ 
+	
+	for (i = 0; i < 8;  i++)   T_[i] = key_[i];
+	for (i = 8; i < 16; i++)   T_[i] = iv_[i-8];
+
+    for (i = 16; i < (256+16); i++) 
+		T_[i] = f2(T_[i-2]) + T_[i-7] + f1(T_[i-15]) + T_[i-16]+i;
+    
+	for (i = 0; i < 16;  i++)  T_[i] = T_[256+i];
+
+	for (i = 16; i < 1024; i++) 
+		T_[i] = f2(T_[i-2]) + T_[i-7] + f1(T_[i-15]) + T_[i-16]+256+i;
+    
+    /* initialize counter1024, X and Y */
+	counter1024_ = 0;
+	for (i = 0; i < 16; i++) X_[i] = T_[512-16+i];
+    for (i = 0; i < 16; i++) Y_[i] = T_[512+512-16+i];
+    
+    /* run the cipher 1024 steps before generating the output */
+	for (i = 0; i < 64; i++)  SetupUpdate();  
+}
+
+
+void HC128::SetKey(const byte* key, const byte* iv)
+{ 
+  word32 i;  
+
+  /* Key size in bits 128 */ 
+  for (i = 0; i < (128 >> 5); i++)
+      key_[i] = LITTLE32(((word32*)key)[i]);
+ 
+  for ( ; i < 8 ; i++) key_[i] = key_[i-4];
+
+  SetIV(iv);
+}
+
+
+/* The following defines the encryption of data stream */
+void HC128::Process(byte* output, const byte* input, word32 msglen)
+{
+  word32 i, keystream[16];
+
+  for ( ; msglen >= 64; msglen -= 64, input += 64, output += 64)
+  {
+	  GenerateKeystream(keystream);
+
+      /* unroll loop */
+	  ((word32*)output)[0]  = ((word32*)input)[0]  ^ LITTLE32(keystream[0]);
+	  ((word32*)output)[1]  = ((word32*)input)[1]  ^ LITTLE32(keystream[1]);
+	  ((word32*)output)[2]  = ((word32*)input)[2]  ^ LITTLE32(keystream[2]);
+	  ((word32*)output)[3]  = ((word32*)input)[3]  ^ LITTLE32(keystream[3]);
+	  ((word32*)output)[4]  = ((word32*)input)[4]  ^ LITTLE32(keystream[4]);
+	  ((word32*)output)[5]  = ((word32*)input)[5]  ^ LITTLE32(keystream[5]);
+	  ((word32*)output)[6]  = ((word32*)input)[6]  ^ LITTLE32(keystream[6]);
+	  ((word32*)output)[7]  = ((word32*)input)[7]  ^ LITTLE32(keystream[7]);
+	  ((word32*)output)[8]  = ((word32*)input)[8]  ^ LITTLE32(keystream[8]);
+	  ((word32*)output)[9]  = ((word32*)input)[9]  ^ LITTLE32(keystream[9]);
+	  ((word32*)output)[10] = ((word32*)input)[10] ^ LITTLE32(keystream[10]);
+	  ((word32*)output)[11] = ((word32*)input)[11] ^ LITTLE32(keystream[11]);
+	  ((word32*)output)[12] = ((word32*)input)[12] ^ LITTLE32(keystream[12]);
+	  ((word32*)output)[13] = ((word32*)input)[13] ^ LITTLE32(keystream[13]);
+	  ((word32*)output)[14] = ((word32*)input)[14] ^ LITTLE32(keystream[14]);
+	  ((word32*)output)[15] = ((word32*)input)[15] ^ LITTLE32(keystream[15]);
+  }
+
+  if (msglen > 0)
+  {
+      GenerateKeystream(keystream);
+
+#ifdef BIG_ENDIAN_ORDER
+      {
+          word32 wordsLeft = msglen / sizeof(word32);
+          if (msglen % sizeof(word32)) wordsLeft++;
+          
+          ByteReverse(keystream, keystream, wordsLeft * sizeof(word32));
+      }
+#endif
+
+      for (i = 0; i < msglen; i++)
+	      output[i] = input[i] ^ ((byte*)keystream)[i];
+  }
+
+}
+
+
+}  // namespace
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/src/integer.cpp mysql-5.5-5.5.22/extra/yassl/taocrypt/src/integer.cpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/src/integer.cpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/src/integer.cpp	2012-03-02 19:44:46.000000000 +0000
@@ -1,5 +1,5 @@
 /*
-   Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+   Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -73,7 +73,8 @@
 CPP_TYPENAME AlignedAllocator::pointer AlignedAllocator::allocate(
                                            size_type n, const void *)
 {
-    CheckSize(n);
+    if (n > max_size())
+        return 0;
     if (n == 0)
         return 0;
     if (n >= 4)
@@ -91,16 +92,13 @@
     #endif
 
     #ifdef TAOCRYPT_NO_ALIGNED_ALLOC
-        assert(m_pBlock == 0);
         m_pBlock = p;
         if (!IsAlignedOn(p, 16))
         {
-            assert(IsAlignedOn(p, 8));
             p = (byte *)p + 8;
         }
     #endif
 
-        assert(IsAlignedOn(p, 16));
         return (T*)p;
     }
     return NEW_TC T[n];
@@ -116,7 +114,6 @@
         #ifdef TAOCRYPT_MM_MALLOC_AVAILABLE
             _mm_free(p);
         #elif defined(TAOCRYPT_NO_ALIGNED_ALLOC)
-            assert(m_pBlock == p || (byte*)m_pBlock+8 == p);
             free(m_pBlock);
             m_pBlock = 0;
         #else
@@ -284,14 +281,14 @@
 
 private:
     struct dword_struct
-    {
-    #ifdef LITTLE_ENDIAN_ORDER
-        word low;
-        word high;
-    #else
-        word high;
-        word low;
-    #endif
+        {
+        #ifdef LITTLE_ENDIAN_ORDER
+            word low;
+            word high;
+        #else
+            word high;
+            word low;
+        #endif
     };
 
     union
@@ -365,9 +362,6 @@
 template 
 S DivideThreeWordsByTwo(S* A, S B0, S B1, D* dummy_VC6_WorkAround = 0)
 {
-    // assert {A[2],A[1]} < {B1,B0}, so quotient can fit in a S
-    assert(A[2] < B1 || (A[2]==B1 && A[1] < B0));
-
     // estimate the quotient: do a 2 S by 1 S divide
     S Q;
     if (S(B1+1) == 0)
@@ -393,7 +387,6 @@
         A[1] = u.GetLowHalf();
         A[2] += u.GetHighHalf();
         Q++;
-        assert(Q);	// shouldn't overflow
     }
 
     return Q;
@@ -491,7 +484,6 @@
 
 static word Increment(word *A, unsigned int N, word B=1)
 {
-    assert(N);
     word t = A[0];
     A[0] = t+B;
     if (A[0] >= t)
@@ -504,7 +496,6 @@
 
 static word Decrement(word *A, unsigned int N, word B=1)
 {
-    assert(N);
     word t = A[0];
     A[0] = t-B;
     if (A[0] <= t)
@@ -538,14 +529,11 @@
 
 static word AtomicInverseModPower2(word A)
 {
-    assert(A%2==1);
-
     word R=A%8;
 
     for (unsigned i=3; i=2 && N%2==0);
-
     if (LowLevel::MultiplyRecursionLimit() >= 8 && N==8)
         LowLevel::Multiply8(R, A, B);
     else if (LowLevel::MultiplyRecursionLimit() >= 4 && N==4)
@@ -2188,7 +2169,6 @@
         carry += LowLevel::Add(T0, T0, R2, N);
         carry += LowLevel::Add(R1, R1, T0, N);
 
-        assert (carry >= 0 && carry <= 2);
         Increment(R3, N2, carry);
     }
 }
@@ -2196,9 +2176,6 @@
 
 void RecursiveSquare(word *R, word *T, const word *A, unsigned int N)                     
 {
-    assert(N && N%2==0);
-    if (LowLevel::SquareRecursionLimit() >= 8 && N==8)
-        LowLevel::Square8(R, A);
     if (LowLevel::SquareRecursionLimit() >= 4 && N==4)
         LowLevel::Square4(R, A);
     else if (N==2)
@@ -2227,7 +2204,6 @@
 void RecursiveMultiplyBottom(word *R, word *T, const word *A, const word *B,
                              unsigned int N)
 {
-    assert(N>=2 && N%2==0);
     if (LowLevel::MultiplyBottomRecursionLimit() >= 8 && N==8)
         LowLevel::Multiply8Bottom(R, A, B);
     else if (LowLevel::MultiplyBottomRecursionLimit() >= 4 && N==4)
@@ -2250,8 +2226,6 @@
 void RecursiveMultiplyTop(word *R, word *T, const word *L, const word *A,
                           const word *B, unsigned int N)
 {
-    assert(N>=2 && N%2==0);
-
     if (N==4)
     {
         LowLevel::Multiply4(T, A, B);
@@ -2315,7 +2289,6 @@
         carry += Increment(R0, N2, c2+t);
         carry += LowLevel::Add(R0, R0, T1, N2);
         carry += LowLevel::Add(R0, R0, T3, N2);
-        assert (carry >= 0 && carry <= 2);
 
         CopyWords(R1, T3, N2);
         Increment(R1, N2, carry);
@@ -2364,9 +2337,6 @@
         STL::swap(NA, NB);
     }
 
-    assert(NB % NA == 0);
-    assert((NB/NA)%2 == 0); 	// NB is an even multiple of NA
-
     if (NA==2 && !A[1])
     {
         switch (A[0])
@@ -2433,8 +2403,6 @@
 unsigned int AlmostInverse(word *R, word *T, const word *A, unsigned int NA,
                            const word *M, unsigned int N)
 {
-    assert(NA<=N && N && N%2==0);
-
     word *b = T;
     word *c = T+N;
     word *f = T+2*N;
@@ -2460,7 +2428,6 @@
 
             ShiftWordsRightByWords(f, fgLen, 1);
             if (c[bcLen-1]) bcLen+=2;
-            assert(bcLen <= N);
             ShiftWordsLeftByWords(c, bcLen, 1);
             k+=WORD_BITS;
             t=f[0];
@@ -2489,7 +2456,6 @@
         {
             c[bcLen] = t;
             bcLen+=2;
-            assert(bcLen <= N);
         }
 
         if (f[fgLen-2]==0 && g[fgLen-2]==0 && f[fgLen-1]==0 && g[fgLen-1]==0)
@@ -2508,7 +2474,6 @@
         {
             b[bcLen] = 1;
             bcLen+=2;
-            assert(bcLen <= N);
         }
     }
 }
@@ -2622,11 +2587,14 @@
     }
 
     word32 length = GetLength(source);
+    if (length == 0 || source.GetError().What()) return;
 
     if ( (b = source.next()) == 0x00)
         length--;
     else
         source.prev();
+
+    if (source.IsLeft(length) == false) return;
  
     unsigned int words = (length + WORD_SIZE - 1) / WORD_SIZE;
     words = RoundupSize(words);
@@ -2741,8 +2709,6 @@
 void Integer::Randomize(RandomNumberGenerator& rng, const Integer& min,
                         const Integer& max)
 {
-    assert(min <= max);
-
     Integer range = max - min;
     const unsigned int nbits = range.BitCount();
 
@@ -2881,7 +2847,7 @@
     else
     {
         word borrow = Decrement(reg_.get_buffer(), reg_.size());
-        assert(!borrow);
+        (void)borrow;           // shut up compiler
         if (WordCount()==0)
             *this = Zero();
     }
@@ -2998,7 +2964,6 @@
                                b.reg_.get_buffer(), bSize);
         CopyWords(diff.reg_+bSize, a.reg_+bSize, aSize-bSize);
         borrow = Decrement(diff.reg_+bSize, aSize-bSize, borrow);
-        assert(!borrow);
         diff.sign_ = Integer::POSITIVE;
     }
     else
@@ -3007,7 +2972,6 @@
                                a.reg_.get_buffer(), aSize);
         CopyWords(diff.reg_+aSize, b.reg_+aSize, bSize-aSize);
         borrow = Decrement(diff.reg_+aSize, bSize-aSize, borrow);
-        assert(!borrow);
         diff.sign_ = Integer::NEGATIVE;
     }
 }
@@ -3067,7 +3031,6 @@
 
 unsigned long Integer::GetBits(unsigned int i, unsigned int n) const
 {
-    assert(n <= sizeof(unsigned long)*8);
     unsigned long v = 0;
     for (unsigned int j=0; j(reg_[1]);
     return sign_ == POSITIVE ? value : -(signed long)value;
@@ -3227,11 +3188,9 @@
     {
         // multiply quotient and divisor and add remainder, make sure it 
         // equals dividend
-        assert(!T[2] && !T[3] && (T[1] < B[1] || (T[1]==B[1] && T[0]= 0)
     {
         R[N] -= Subtract(R, R, B, N);
         Q[1] += (++Q[0]==0);
-        assert(Q[0] || Q[1]); // no overflow
     }
 }
 
@@ -3280,10 +3236,6 @@
 void Divide(word* R, word* Q, word* T, const word* A, unsigned int NA,
             const word* B, unsigned int NB)
 {
-    assert(NA && NB && NA%2==0 && NB%2==0);
-    assert(B[NB-1] || B[NB-2]);
-    assert(NB <= NA);
-
     // set up temporary work space
     word *const TA=T;
     word *const TB=T+NA+2;
@@ -3294,7 +3246,6 @@
     TB[0] = TB[NB-1] = 0;
     CopyWords(TB+shiftWords, B, NB-shiftWords);
     unsigned shiftBits = WORD_BITS - BitPrecision(TB[NB-1]);
-    assert(shiftBits < WORD_BITS);
     ShiftWordsLeftByBits(TB, NB, shiftBits);
 
     // copy A into TA and normalize it
@@ -3314,7 +3265,6 @@
     else
     {
         NA+=2;
-        assert(Compare(TA+NA-NB, TB, NB) < 0);
     }
 
     word BT[2];
@@ -3340,8 +3290,6 @@
     unsigned aSize = a.WordCount();
     unsigned bSize = b.WordCount();
 
-    assert(bSize);
-
     if (a.PositiveCompare(b) == -1)
     {
         remainder = a;
@@ -3429,8 +3377,6 @@
 void Integer::Divide(word &remainder, Integer "ient,
                      const Integer ÷nd, word divisor)
 {
-    assert(divisor);
-
     if ((divisor & (divisor-1)) == 0)	// divisor is a power of 2
     {
         quotient = dividend >> (BitPrecision(divisor)-1);
@@ -3470,8 +3416,6 @@
 
 word Integer::Modulo(word divisor) const
 {
-    assert(divisor);
-
     word remainder;
 
     if ((divisor & (divisor-1)) == 0)	// divisor is a power of 2
@@ -3517,7 +3461,6 @@
 
     // overestimate square root
     Integer x, y = Power2((BitCount()+1)/2);
-    assert(y*y >= *this);
 
     do
     {
@@ -3562,8 +3505,6 @@
 
 Integer Integer::InverseMod(const Integer &m) const
 {
-    assert(m.NotNegative());
-
     if (IsNegative() || *this>=m)
         return (*this%m).InverseMod(m);
 
@@ -3806,7 +3747,7 @@
     word borrow = Subtract(T, X+N, T, N);
     // defend against timing attack by doing this Add even when not needed
     word carry = Add(T+N, T, M, N);
-    assert(carry || !borrow);
+    (void)carry;            // shut up compiler
     CopyWords(R, T + (borrow ? N : 0), N);
 }
 
@@ -3862,7 +3803,6 @@
       u((word)0, modulus.reg_.size()),
       workspace(5*modulus.reg_.size())
 {
-    assert(modulus.IsOdd());
     RecursiveInverseModPower2(u.reg_.get_buffer(), workspace.get_buffer(),
                               modulus.reg_.get_buffer(), modulus.reg_.size());
 }
@@ -3873,7 +3813,6 @@
     word *const T = workspace.begin();
     word *const R = result.reg_.begin();
     const unsigned int N = modulus.reg_.size();
-    assert(a.reg_.size()<=N && b.reg_.size()<=N);
 
     AsymmetricMultiply(T, T+2*N, a.reg_.get_buffer(), a.reg_.size(),
                        b.reg_.get_buffer(), b.reg_.size());
@@ -3888,7 +3827,6 @@
     word *const T = workspace.begin();
     word *const R = result.reg_.begin();
     const unsigned int N = modulus.reg_.size();
-    assert(a.reg_.size()<=N);
 
     TaoCrypt::Square(T, T+2*N, a.reg_.get_buffer(), a.reg_.size());
     SetWords(T+2*a.reg_.size(), 0, 2*N-2*a.reg_.size());
@@ -3902,7 +3840,6 @@
     word *const T = workspace.begin();
     word *const R = result.reg_.begin();
     const unsigned int N = modulus.reg_.size();
-    assert(a.reg_.size()<=N);
 
     CopyWords(T, a.reg_.get_buffer(), a.reg_.size());
     SetWords(T+a.reg_.size(), 0, 2*N-a.reg_.size());
@@ -3919,7 +3856,6 @@
     word *const T = workspace.begin();
     word *const R = result.reg_.begin();
     const unsigned int N = modulus.reg_.size();
-    assert(a.reg_.size()<=N);
 
     CopyWords(T, a.reg_.get_buffer(), a.reg_.size());
     SetWords(T+a.reg_.size(), 0, 2*N-a.reg_.size());
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/src/md4.cpp mysql-5.5-5.5.22/extra/yassl/taocrypt/src/md4.cpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/src/md4.cpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/src/md4.cpp	2012-03-02 19:44:46.000000000 +0000
@@ -27,7 +27,7 @@
     #include "algorithm.hpp"
 #endif
 
-   
+
 namespace STL = STL_NAMESPACE;
    
 
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/src/md5.cpp mysql-5.5-5.5.22/extra/yassl/taocrypt/src/md5.cpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/src/md5.cpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/src/md5.cpp	2012-03-02 19:44:46.000000000 +0000
@@ -30,7 +30,7 @@
 
 namespace STL = STL_NAMESPACE;
 
-   
+
 
 namespace TaoCrypt {
 
@@ -108,14 +108,14 @@
 
     // at once for asm
     if (buffLen_ == 0) {
-            word32 times = len / BLOCK_SIZE;
-            if (times) {
-                AsmTransform(data, times);
-                const word32 add = BLOCK_SIZE * times;
-                AddLength(add);
-                len  -= add;
-                data += add;
-            }
+        word32 times = len / BLOCK_SIZE;
+        if (times) {
+            AsmTransform(data, times);
+            const word32 add = BLOCK_SIZE * times;
+            AddLength(add);
+            len  -= add;
+            data += add;
+        }
     }
 
     // cache any data left
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/src/misc.cpp mysql-5.5-5.5.22/extra/yassl/taocrypt/src/misc.cpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/src/misc.cpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/src/misc.cpp	2012-03-02 19:44:46.000000000 +0000
@@ -41,28 +41,28 @@
 
     void* operator new(size_t sz, TaoCrypt::new_t)
     {
-    void* ptr = malloc(sz ? sz : 1);
-    if (!ptr) abort();
+        void* ptr = malloc(sz ? sz : 1);
+        if (!ptr) abort();
 
-    return ptr;
+        return ptr;
     }
 
 
     void operator delete(void* ptr, TaoCrypt::new_t)
     {
-    if (ptr) free(ptr);
+        if (ptr) free(ptr);
     }
 
 
     void* operator new[](size_t sz, TaoCrypt::new_t nt)
     {
-    return ::operator new(sz, nt);
+        return ::operator new(sz, nt);
     }
 
 
     void operator delete[](void* ptr, TaoCrypt::new_t nt)
     {
-    ::operator delete(ptr, nt);
+        ::operator delete(ptr, nt);
     }
 
 
@@ -89,7 +89,6 @@
 // Handler for pure virtual functions
 namespace __Crun {
     void pure_error() {
-      assert(!"Aborted: pure virtual method called.");
     }
 }
 
@@ -100,7 +99,6 @@
 extern "C" {
 
     int __cxa_pure_virtual() {
-      assert(!"Aborted: pure virtual method called.");
       return 0;
     }
 
@@ -196,8 +194,8 @@
     return true;
 #else
     word32 eax, ebx;
-        __asm__ __volatile
-        (
+    __asm__ __volatile
+    (
         /* Put EFLAGS in eax and ebx */
         "pushf;"
         "pushf;"
@@ -214,9 +212,9 @@
         "pop %0;"
         "popf"
         : "=r" (eax), "=r" (ebx)
-            :
+        :
         : "cc"
-        );
+    );
 
     if (eax == ebx)
         return false;
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/src/rabbit.cpp mysql-5.5-5.5.22/extra/yassl/taocrypt/src/rabbit.cpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/src/rabbit.cpp	1970-01-01 00:00:00.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/src/rabbit.cpp	2012-03-02 19:44:46.000000000 +0000
@@ -0,0 +1,250 @@
+/*
+   Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ 
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; version 2 of the License.
+ 
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+ 
+   You should have received a copy of the GNU General Public License
+   along with this program; see the file COPYING. If not, write to the
+   Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+   MA  02110-1301  USA.
+*/
+
+
+#include "runtime.hpp"
+#include "rabbit.hpp"
+
+
+
+namespace TaoCrypt {
+
+
+#define U32V(x)  (word32)(x)
+
+
+#ifdef BIG_ENDIAN_ORDER
+    #define LITTLE32(x) ByteReverse((word32)x)
+#else
+    #define LITTLE32(x) (x)
+#endif
+
+
+// local
+namespace {
+
+
+/* Square a 32-bit unsigned integer to obtain the 64-bit result and return */
+/* the upper 32 bits XOR the lower 32 bits */
+word32 RABBIT_g_func(word32 x)
+{
+    /* Temporary variables */
+    word32 a, b, h, l;
+
+    /* Construct high and low argument for squaring */
+    a = x&0xFFFF;
+    b = x>>16;
+
+    /* Calculate high and low result of squaring */
+    h = (((U32V(a*a)>>17) + U32V(a*b))>>15) + b*b;
+    l = x*x;
+
+    /* Return high XOR low */
+    return U32V(h^l);
+}
+
+
+} // namespace local
+
+
+/* Calculate the next internal state */
+void Rabbit::NextState(RabbitCtx which)
+{
+    /* Temporary variables */
+    word32 g[8], c_old[8], i;
+
+    Ctx* ctx;
+
+    if (which == Master)
+        ctx = &masterCtx_;
+    else
+        ctx = &workCtx_;
+
+    /* Save old counter values */
+    for (i=0; i<8; i++)
+        c_old[i] = ctx->c[i];
+
+    /* Calculate new counter values */
+    ctx->c[0] = U32V(ctx->c[0] + 0x4D34D34D + ctx->carry);
+    ctx->c[1] = U32V(ctx->c[1] + 0xD34D34D3 + (ctx->c[0] < c_old[0]));
+    ctx->c[2] = U32V(ctx->c[2] + 0x34D34D34 + (ctx->c[1] < c_old[1]));
+    ctx->c[3] = U32V(ctx->c[3] + 0x4D34D34D + (ctx->c[2] < c_old[2]));
+    ctx->c[4] = U32V(ctx->c[4] + 0xD34D34D3 + (ctx->c[3] < c_old[3]));
+    ctx->c[5] = U32V(ctx->c[5] + 0x34D34D34 + (ctx->c[4] < c_old[4]));
+    ctx->c[6] = U32V(ctx->c[6] + 0x4D34D34D + (ctx->c[5] < c_old[5]));
+    ctx->c[7] = U32V(ctx->c[7] + 0xD34D34D3 + (ctx->c[6] < c_old[6]));
+    ctx->carry = (ctx->c[7] < c_old[7]);
+   
+    /* Calculate the g-values */
+    for (i=0;i<8;i++)
+        g[i] = RABBIT_g_func(U32V(ctx->x[i] + ctx->c[i]));
+
+    /* Calculate new state values */
+    ctx->x[0] = U32V(g[0] + rotlFixed(g[7],16) + rotlFixed(g[6], 16));
+    ctx->x[1] = U32V(g[1] + rotlFixed(g[0], 8) + g[7]);
+    ctx->x[2] = U32V(g[2] + rotlFixed(g[1],16) + rotlFixed(g[0], 16));
+    ctx->x[3] = U32V(g[3] + rotlFixed(g[2], 8) + g[1]);
+    ctx->x[4] = U32V(g[4] + rotlFixed(g[3],16) + rotlFixed(g[2], 16));
+    ctx->x[5] = U32V(g[5] + rotlFixed(g[4], 8) + g[3]);
+    ctx->x[6] = U32V(g[6] + rotlFixed(g[5],16) + rotlFixed(g[4], 16));
+    ctx->x[7] = U32V(g[7] + rotlFixed(g[6], 8) + g[5]);
+}
+
+
+/* IV setup */
+void Rabbit::SetIV(const byte* iv)
+{
+    /* Temporary variables */
+    word32 i0, i1, i2, i3, i;
+      
+    /* Generate four subvectors */
+    i0 = LITTLE32(*(word32*)(iv+0));
+    i2 = LITTLE32(*(word32*)(iv+4));
+    i1 = (i0>>16) | (i2&0xFFFF0000);
+    i3 = (i2<<16) | (i0&0x0000FFFF);
+
+    /* Modify counter values */
+    workCtx_.c[0] = masterCtx_.c[0] ^ i0;
+    workCtx_.c[1] = masterCtx_.c[1] ^ i1;
+    workCtx_.c[2] = masterCtx_.c[2] ^ i2;
+    workCtx_.c[3] = masterCtx_.c[3] ^ i3;
+    workCtx_.c[4] = masterCtx_.c[4] ^ i0;
+    workCtx_.c[5] = masterCtx_.c[5] ^ i1;
+    workCtx_.c[6] = masterCtx_.c[6] ^ i2;
+    workCtx_.c[7] = masterCtx_.c[7] ^ i3;
+
+    /* Copy state variables */
+    for (i=0; i<8; i++)
+        workCtx_.x[i] = masterCtx_.x[i];
+    workCtx_.carry = masterCtx_.carry;
+
+    /* Iterate the system four times */
+    for (i=0; i<4; i++)
+        NextState(Work);
+}
+
+
+/* Key setup */
+void Rabbit::SetKey(const byte* key, const byte* iv)
+{
+    /* Temporary variables */
+    word32 k0, k1, k2, k3, i;
+
+    /* Generate four subkeys */
+    k0 = LITTLE32(*(word32*)(key+ 0));
+    k1 = LITTLE32(*(word32*)(key+ 4));
+    k2 = LITTLE32(*(word32*)(key+ 8));
+    k3 = LITTLE32(*(word32*)(key+12));
+
+    /* Generate initial state variables */
+    masterCtx_.x[0] = k0;
+    masterCtx_.x[2] = k1;
+    masterCtx_.x[4] = k2;
+    masterCtx_.x[6] = k3;
+    masterCtx_.x[1] = U32V(k3<<16) | (k2>>16);
+    masterCtx_.x[3] = U32V(k0<<16) | (k3>>16);
+    masterCtx_.x[5] = U32V(k1<<16) | (k0>>16);
+    masterCtx_.x[7] = U32V(k2<<16) | (k1>>16);
+
+    /* Generate initial counter values */
+    masterCtx_.c[0] = rotlFixed(k2, 16);
+    masterCtx_.c[2] = rotlFixed(k3, 16);
+    masterCtx_.c[4] = rotlFixed(k0, 16);
+    masterCtx_.c[6] = rotlFixed(k1, 16);
+    masterCtx_.c[1] = (k0&0xFFFF0000) | (k1&0xFFFF);
+    masterCtx_.c[3] = (k1&0xFFFF0000) | (k2&0xFFFF);
+    masterCtx_.c[5] = (k2&0xFFFF0000) | (k3&0xFFFF);
+    masterCtx_.c[7] = (k3&0xFFFF0000) | (k0&0xFFFF);
+
+    /* Clear carry bit */
+    masterCtx_.carry = 0;
+
+    /* Iterate the system four times */
+    for (i=0; i<4; i++)
+        NextState(Master);
+
+    /* Modify the counters */
+    for (i=0; i<8; i++)
+        masterCtx_.c[i] ^= masterCtx_.x[(i+4)&0x7];
+
+    /* Copy master instance to work instance */
+    for (i=0; i<8; i++) {
+        workCtx_.x[i] = masterCtx_.x[i];
+        workCtx_.c[i] = masterCtx_.c[i];
+    }
+    workCtx_.carry = masterCtx_.carry;
+
+    if (iv) SetIV(iv);    
+}
+
+
+/* Encrypt/decrypt a message of any size */
+void Rabbit::Process(byte* output, const byte* input, word32 msglen)
+{
+    /* Temporary variables */
+    word32 i;
+    byte buffer[16];
+
+    /* Encrypt/decrypt all full blocks */
+    while (msglen >= 16) {
+        /* Iterate the system */
+        NextState(Work);
+
+        /* Encrypt/decrypt 16 bytes of data */
+        *(word32*)(output+ 0) = *(word32*)(input+ 0) ^
+                   LITTLE32(workCtx_.x[0] ^ (workCtx_.x[5]>>16) ^
+                   U32V(workCtx_.x[3]<<16));
+        *(word32*)(output+ 4) = *(word32*)(input+ 4) ^
+                   LITTLE32(workCtx_.x[2] ^ (workCtx_.x[7]>>16) ^
+                   U32V(workCtx_.x[5]<<16));
+        *(word32*)(output+ 8) = *(word32*)(input+ 8) ^
+                   LITTLE32(workCtx_.x[4] ^ (workCtx_.x[1]>>16) ^
+                   U32V(workCtx_.x[7]<<16));
+        *(word32*)(output+12) = *(word32*)(input+12) ^
+                   LITTLE32(workCtx_.x[6] ^ (workCtx_.x[3]>>16) ^
+                   U32V(workCtx_.x[1]<<16));
+
+        /* Increment pointers and decrement length */
+        input  += 16;
+        output += 16;
+        msglen -= 16;
+    }
+
+    /* Encrypt/decrypt remaining data */
+    if (msglen) {
+        /* Iterate the system */
+        NextState(Work);
+
+        /* Generate 16 bytes of pseudo-random data */
+        *(word32*)(buffer+ 0) = LITTLE32(workCtx_.x[0] ^
+                  (workCtx_.x[5]>>16) ^ U32V(workCtx_.x[3]<<16));
+        *(word32*)(buffer+ 4) = LITTLE32(workCtx_.x[2] ^ 
+                  (workCtx_.x[7]>>16) ^ U32V(workCtx_.x[5]<<16));
+        *(word32*)(buffer+ 8) = LITTLE32(workCtx_.x[4] ^ 
+                  (workCtx_.x[1]>>16) ^ U32V(workCtx_.x[7]<<16));
+        *(word32*)(buffer+12) = LITTLE32(workCtx_.x[6] ^ 
+                  (workCtx_.x[3]>>16) ^ U32V(workCtx_.x[1]<<16));
+
+        /* Encrypt/decrypt the data */
+        for (i=0; i maxOutputLen) || invalid;
@@ -179,7 +179,8 @@
     unsigned i=1;
     while (i maxOutputLen) || invalid;
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/src/sha.cpp mysql-5.5-5.5.22/extra/yassl/taocrypt/src/sha.cpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/src/sha.cpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/src/sha.cpp	2012-03-02 19:44:46.000000000 +0000
@@ -344,14 +344,14 @@
 
     // all at once for asm
     if (buffLen_ == 0) {
-            word32 times = len / BLOCK_SIZE;
-            if (times) {
-                AsmTransform(data, times);
-                const word32 add = BLOCK_SIZE * times;
-                AddLength(add);
-                 len  -= add;
-                data += add;
-            }
+        word32 times = len / BLOCK_SIZE;
+        if (times) {
+            AsmTransform(data, times);
+            const word32 add = BLOCK_SIZE * times;
+            AddLength(add);
+            len  -= add;
+            data += add;
+        }
     }
 
     // cache any data left
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/src/template_instnt.cpp mysql-5.5-5.5.22/extra/yassl/taocrypt/src/template_instnt.cpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/src/template_instnt.cpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/src/template_instnt.cpp	2012-03-02 19:44:46.000000000 +0000
@@ -61,7 +61,6 @@
 template class HMAC;
 template class HMAC;
 template class HMAC;
-
 }
 
 namespace mySTL {
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/src/twofish.cpp mysql-5.5-5.5.22/extra/yassl/taocrypt/src/twofish.cpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/src/twofish.cpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/src/twofish.cpp	2012-03-02 19:44:46.000000000 +0000
@@ -140,8 +140,6 @@
 
 void Twofish::SetKey(const byte* userKey, word32 keylen, CipherDir /*dummy*/)
 {
-	assert(keylen >= 16 && keylen <= 32);
-
 	unsigned int len = (keylen <= 16 ? 2 : (keylen <= 24 ? 3 : 4));
     word32 key[8];
 	GetUserKey(LittleEndianOrder, key, len*2, userKey, keylen);
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/taocrypt.dsp mysql-5.5-5.5.22/extra/yassl/taocrypt/taocrypt.dsp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/taocrypt.dsp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/taocrypt.dsp	2012-03-02 19:44:46.000000000 +0000
@@ -138,6 +138,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE=.\src\hc128.cpp
+# End Source File
+# Begin Source File
+
 SOURCE=.\src\integer.cpp
 # End Source File
 # Begin Source File
@@ -158,6 +162,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE=.\src\rabbit.cpp
+# End Source File
+# Begin Source File
+
 SOURCE=.\src\random.cpp
 # End Source File
 # Begin Source File
@@ -238,6 +246,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE=.\include\hc128.hpp
+# End Source File
+# Begin Source File
+
 SOURCE=.\include\hmac.hpp
 # End Source File
 # Begin Source File
@@ -274,6 +286,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE=.\include\rabbit.hpp
+# End Source File
+# Begin Source File
+
 SOURCE=.\include\random.hpp
 # End Source File
 # Begin Source File
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/test/memory.cpp mysql-5.5-5.5.22/extra/yassl/taocrypt/test/memory.cpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/test/memory.cpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/test/memory.cpp	2012-03-02 19:44:46.000000000 +0000
@@ -328,3 +328,32 @@
 {
     ::operator delete(ptr);
 }
+
+
+extern "C" {
+
+void* XMALLOC(size_t sz, void* head)
+{
+    return ::operator new(sz);
+}
+
+void* XREALLOC(void* ptr, size_t sz, void* heap)
+{
+    void* ret = ::operator new(sz);
+
+    if (ret && ptr)
+        memcpy(ret, ptr, sz);
+
+    if (ret)
+        ::operator delete(ptr);
+    return ret;
+}
+
+
+void XFREE(void* ptr, void* heap)
+{
+    ::operator delete(ptr);
+}
+
+}  // extern "C"
+
diff -Nru mysql-5.5-5.5.20/extra/yassl/taocrypt/test/test.cpp mysql-5.5-5.5.22/extra/yassl/taocrypt/test/test.cpp
--- mysql-5.5-5.5.20/extra/yassl/taocrypt/test/test.cpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/taocrypt/test/test.cpp	2012-03-02 19:44:46.000000000 +0000
@@ -41,6 +41,8 @@
 #include "coding.hpp"
 #include "random.hpp"
 #include "pwdbased.hpp"
+#include "rabbit.hpp"
+#include "hc128.hpp"
 
 
 
@@ -100,16 +102,18 @@
 using TaoCrypt::tcArrayDelete;
 using TaoCrypt::GetCert;
 using TaoCrypt::GetPKCS_Cert;
-
+using TaoCrypt::Rabbit;
+using TaoCrypt::HC128;
 
 struct testVector {
     byte*  input_;
     byte*  output_; 
-    size_t inLen_;
-    size_t outLen_;
+    word32 inLen_;
+    word32 outLen_;
 
     testVector(const char* in, const char* out) : input_((byte*)in),
-               output_((byte*)out), inLen_(strlen(in)), outLen_(strlen(out)) {}
+               output_((byte*)out), inLen_((word32)strlen(in)),
+               outLen_((word32)strlen(out)) {}
 };
 
 int  sha_test();
@@ -134,13 +138,15 @@
 int  dh_test();
 int  pwdbased_test();
 int  pkcs12_test();
+int  rabbit_test();
+int  hc128_test();
 
 TaoCrypt::RandomNumberGenerator rng;
 
 
 void err_sys(const char* msg, int es)
 {
-    printf("%s", msg);
+    printf("%s\n", msg);
     exit(es);    
 }
 
@@ -176,7 +182,7 @@
 void taocrypt_test(void* args)
 {
     ((func_args*)args)->return_code = -1; // error state
-    
+
     msg    = NEW_TC byte[24];
     plain  = NEW_TC byte[24];
     cipher = NEW_TC byte[24];
@@ -243,6 +249,16 @@
     else
         printf( "ARC4     test passed!\n");
 
+    if ( (ret = rabbit_test()) )
+        err_sys("Rabbit   test failed!\n", ret);
+    else
+        printf( "Rabbit   test passed!\n");
+
+    if ( (ret = hc128_test()) )
+        err_sys("HC128    test failed!\n", ret);
+    else
+        printf( "HC128    test passed!\n");
+
     if ( (ret = des_test()) )
         err_sys("DES      test failed!\n", ret);
     else
@@ -320,16 +336,16 @@
 void file_test(const char* file, byte* check)
 {
     FILE* f;
-    int   i(0);
-    MD5   md5;
-    byte  buf[1024];
-    byte  md5sum[MD5::DIGEST_SIZE];
+    int i = 0;
+    MD5    md5;
+    byte   buf[1024];
+    byte   md5sum[MD5::DIGEST_SIZE];
     
     if( !( f = fopen( file, "rb" ) )) {
         printf("Can't open %s\n", file);
         return;
     }
-    while( ( i = fread(buf, 1, sizeof(buf), f )) > 0 )
+    while( ( i = (int)fread(buf, 1, sizeof(buf), f )) > 0 )
         md5.Update(buf, i);
     
     md5.Final(md5sum);
@@ -718,7 +734,7 @@
 
     int times( sizeof(test_hmacMD5) / sizeof(testVector) );
     for (int i = 0; i < times; ++i) {
-        hmacMD5.SetKey((byte*)keys[i], strlen(keys[i]));
+        hmacMD5.SetKey((byte*)keys[i], (word32)strlen(keys[i]));
         hmacMD5.Update(test_hmacMD5[i].input_, test_hmacMD5[i].inLen_);
         hmacMD5.Final(hash);
 
@@ -761,8 +777,8 @@
         ARC4::Encryption enc;
         ARC4::Decryption dec;
 
-        enc.SetKey((byte*)keys[i], strlen(keys[i]));
-        dec.SetKey((byte*)keys[i], strlen(keys[i]));
+        enc.SetKey((byte*)keys[i], (word32)strlen(keys[i]));
+        dec.SetKey((byte*)keys[i], (word32)strlen(keys[i]));
 
         enc.Process(cipher, test_arc4[i].input_, test_arc4[i].outLen_);
         dec.Process(plain,  cipher, test_arc4[i].outLen_);
@@ -778,6 +794,114 @@
 }
 
 
+int rabbit_test()
+{
+    byte cipher[16];
+    byte plain[16];
+
+    const char* keys[] = 
+    {           
+        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
+        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
+        "\xAC\xC3\x51\xDC\xF1\x62\xFC\x3B\xFE\x36\x3D\x2E\x29\x13\x28\x91"
+    };
+
+    const char* ivs[] =
+    {
+        "\x00\x00\x00\x00\x00\x00\x00\x00",
+        "\x59\x7E\x26\xC1\x75\xF5\x73\xC3",
+        0
+    };
+
+
+    testVector test_rabbit[] =
+    {
+        testVector("\x00\x00\x00\x00\x00\x00\x00\x00",
+                   "\xED\xB7\x05\x67\x37\x5D\xCD\x7C"),
+        testVector("\x00\x00\x00\x00\x00\x00\x00\x00",
+                   "\x6D\x7D\x01\x22\x92\xCC\xDC\xE0"),
+        testVector("\x00\x00\x00\x00\x00\x00\x00\x00",
+                   "\x9C\x51\xE2\x87\x84\xC3\x7F\xE9")
+    };
+
+
+    int times( sizeof(test_rabbit) / sizeof(testVector) );
+    for (int i = 0; i < times; ++i) {
+        Rabbit::Encryption enc;
+        Rabbit::Decryption dec;
+
+        enc.SetKey((byte*)keys[i], (byte*)ivs[i]);
+        dec.SetKey((byte*)keys[i], (byte*)ivs[i]);
+
+        enc.Process(cipher, test_rabbit[i].input_, test_rabbit[i].outLen_);
+        dec.Process(plain,  cipher, test_rabbit[i].outLen_);
+
+        if (memcmp(plain, test_rabbit[i].input_, test_rabbit[i].outLen_))
+            return -230 - i;
+
+        if (memcmp(cipher, test_rabbit[i].output_, test_rabbit[i].outLen_))
+            return -240 - i;
+    }
+
+    return 0;
+}
+
+
+int hc128_test()
+{
+    byte cipher[16];
+    byte plain[16];
+
+    const char* keys[] = 
+    {           
+        "\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
+        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
+        "\x00\x53\xA6\xF9\x4C\x9F\xF2\x45\x98\xEB\x3E\x91\xE4\x37\x8A\xDD",
+        "\x0F\x62\xB5\x08\x5B\xAE\x01\x54\xA7\xFA\x4D\xA0\xF3\x46\x99\xEC"
+    };
+
+    const char* ivs[] =
+    {
+        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
+        "\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
+        "\x0D\x74\xDB\x42\xA9\x10\x77\xDE\x45\xAC\x13\x7A\xE1\x48\xAF\x16",
+        "\x28\x8F\xF6\x5D\xC4\x2B\x92\xF9\x60\xC7\x2E\x95\xFC\x63\xCA\x31"
+    };
+
+    testVector test_hc128[] =
+    {
+        testVector("\x00\x00\x00\x00\x00\x00\x00\x00",
+                   "\x37\x86\x02\xB9\x8F\x32\xA7\x48"),
+        testVector("\x00\x00\x00\x00\x00\x00\x00\x00",
+                   "\x33\x7F\x86\x11\xC6\xED\x61\x5F"),
+        testVector("\x00\x00\x00\x00\x00\x00\x00\x00",
+                   "\x2E\x1E\xD1\x2A\x85\x51\xC0\x5A"),
+      testVector("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
+                 "\x1C\xD8\xAE\xDD\xFE\x52\xE2\x17\xE8\x35\xD0\xB7\xE8\x4E\x29")
+    };
+
+    int times( sizeof(test_hc128) / sizeof(testVector) );
+    for (int i = 0; i < times; ++i) {
+        HC128::Encryption enc;
+        HC128::Decryption dec;
+
+        enc.SetKey((byte*)keys[i], (byte*)ivs[i]);
+        dec.SetKey((byte*)keys[i], (byte*)ivs[i]);
+
+        enc.Process(cipher, test_hc128[i].input_, test_hc128[i].outLen_);
+        dec.Process(plain,  cipher, test_hc128[i].outLen_);
+
+        if (memcmp(plain, test_hc128[i].input_, test_hc128[i].outLen_))
+            return -330 - i;
+
+        if (memcmp(cipher, test_hc128[i].output_, test_hc128[i].outLen_))
+            return -340 - i;
+    }
+
+    return 0;
+}
+
+
 int des_test()
 {
     //ECB mode
@@ -1040,7 +1164,7 @@
 
     RSAES_Encryptor enc(priv);
     byte message[] = "Everyone gets Friday off.";
-    const int len(strlen((char*)message));
+    const word32 len = (word32)strlen((char*)message);
     byte cipher[64];
     enc.Encrypt(message, len, cipher, rng);
 
@@ -1068,6 +1192,8 @@
         }
     }
     CertDecoder cd(source2, true, 0, false, CertDecoder::CA);
+    if (cd.GetError().What())
+        err_sys("cert error", -80);
     Source source3(cd.GetPublicKey().GetKey(), cd.GetPublicKey().size());
     RSA_PublicKey pub(source3);
  
@@ -1188,6 +1314,7 @@
 }
 
 
+/*
 int pkcs12_test()
 {
     Source cert;
@@ -1220,4 +1347,5 @@
 
     return 0;
 }
+*/
 
diff -Nru mysql-5.5-5.5.20/extra/yassl/testsuite/test.hpp mysql-5.5-5.5.22/extra/yassl/testsuite/test.hpp
--- mysql-5.5-5.5.20/extra/yassl/testsuite/test.hpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/testsuite/test.hpp	2012-03-02 19:44:46.000000000 +0000
@@ -23,6 +23,7 @@
 
 #include "runtime.hpp"
 #include "openssl/ssl.h"   /* openssl compatibility test */
+#include "error.hpp"
 #include 
 #include 
 #include 
@@ -32,6 +33,10 @@
 #ifdef _WIN32
     #include 
     #include 
+    #ifdef TEST_IPV6            // don't require newer SDK for IPV4
+	    #include 
+        #include 
+    #endif
     #define SOCKET_T unsigned int
 #else
     #include 
@@ -42,6 +47,9 @@
     #include 
     #include 
     #include 
+    #ifdef TEST_IPV6
+        #include 
+    #endif
     #include 
 #ifdef NON_BLOCKING
     #include 
@@ -50,6 +58,13 @@
 #endif /* _WIN32 */
 
 
+#ifdef _MSC_VER
+    // disable conversion warning
+    // 4996 warning to use MS extensions e.g., strcpy_s instead of strncpy
+    #pragma warning(disable:4244 4996)
+#endif
+
+
 #if !defined(_SOCKLEN_T) && (defined(_WIN32) || defined(__APPLE__))
     typedef int socklen_t;
 #endif
@@ -64,6 +79,15 @@
 #endif
 
 
+#ifdef TEST_IPV6
+    typedef sockaddr_in6 SOCKADDR_IN_T;
+    #define AF_INET_V    AF_INET6
+#else
+    typedef sockaddr_in  SOCKADDR_IN_T;
+    #define AF_INET_V    AF_INET
+#endif
+   
+
 // Check if _POSIX_THREADS should be forced
 #if !defined(_POSIX_THREADS) && defined(__hpux)
 // HPUX does not define _POSIX_THREADS as it's not _fully_ implemented
@@ -73,7 +97,7 @@
 
 #ifndef _POSIX_THREADS
     typedef unsigned int  THREAD_RETURN;
-    typedef unsigned long THREAD_TYPE;
+    typedef HANDLE        THREAD_TYPE;
     #define YASSL_API __stdcall
 #else
     typedef void*         THREAD_RETURN;
@@ -120,8 +144,8 @@
 void join_thread(THREAD_TYPE);
 
 // yaSSL
-const char* const    yasslIP   = "127.0.0.1";
-const unsigned short yasslPort = 11111;
+const char* const    yasslIP      = "127.0.0.1";
+const unsigned short yasslPort    =  11111;
 
 
 // client
@@ -180,7 +204,7 @@
 
 static int PasswordCallBack(char* passwd, int sz, int rw, void* userdata)
 {
-    strncpy(passwd, "12345678", sz);
+    strncpy(passwd, "yassl123", sz);
     return 8;
 }
 
@@ -300,14 +324,35 @@
 }
 
 
-inline void tcp_socket(SOCKET_T& sockfd, sockaddr_in& addr)
+inline void tcp_socket(SOCKET_T& sockfd, SOCKADDR_IN_T& addr)
 {
-    sockfd = socket(AF_INET, SOCK_STREAM, 0);
+    sockfd = socket(AF_INET_V, SOCK_STREAM, 0);
     memset(&addr, 0, sizeof(addr));
-    addr.sin_family = AF_INET;
 
+#ifdef TEST_IPV6
+    addr.sin6_family = AF_INET_V;
+    addr.sin6_port = htons(yasslPort);
+    addr.sin6_addr = in6addr_loopback;
+
+    /* // for external testing later 
+    addrinfo hints;
+    memset(&hints, 0, sizeof(hints));
+    hints.ai_family   = AF_INET_V;
+    hints.ai_socktype = SOCK_STREAM;
+    hints.ai_flags    = AI_PASSIVE;
+
+    getaddrinfo(yasslIP6, yasslPortStr, &hints, info);
+    // then use info connect(sockfd, info->ai_addr, info->ai_addrlen)
+
+    if (*info == 0)
+        err_sys("getaddrinfo failed");
+        */   // end external testing later
+#else
+    addr.sin_family = AF_INET_V;
     addr.sin_port = htons(yasslPort);
     addr.sin_addr.s_addr = inet_addr(yasslIP);
+#endif
+
 }
 
 
@@ -318,13 +363,13 @@
 #else
     close(sockfd);
 #endif
-    sockfd = -1;
+    sockfd = (SOCKET_T) -1;
 }
 
 
 inline void tcp_connect(SOCKET_T& sockfd)
 {
-    sockaddr_in addr;
+    SOCKADDR_IN_T addr;
     tcp_socket(sockfd, addr);
 
     if (connect(sockfd, (const sockaddr*)&addr, sizeof(addr)) != 0) {
@@ -336,9 +381,15 @@
 
 inline void tcp_listen(SOCKET_T& sockfd)
 {
-    sockaddr_in addr;
+    SOCKADDR_IN_T addr;
     tcp_socket(sockfd, addr);
 
+#ifndef _WIN32
+    int       on  = 1;
+    socklen_t len = sizeof(on);
+    setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &on, len);
+#endif
+
     if (bind(sockfd, (const sockaddr*)&addr, sizeof(addr)) != 0) {
         tcp_close(sockfd);
         err_sys("tcp bind failed");
@@ -355,7 +406,7 @@
 {
     tcp_listen(sockfd);
 
-    sockaddr_in client;
+    SOCKADDR_IN_T client;
     socklen_t client_len = sizeof(client);
 
 #if defined(_POSIX_THREADS) && defined(NO_MAIN_DRIVER)
@@ -369,7 +420,7 @@
 
     clientfd = accept(sockfd, (sockaddr*)&client, (ACCEPT_THIRD_T)&client_len);
 
-    if (clientfd == -1) {
+    if (clientfd == (SOCKET_T) -1) {
         tcp_close(sockfd);
         err_sys("tcp accept failed");
     }
@@ -387,10 +438,8 @@
         char* issuer  = X509_NAME_oneline(X509_get_issuer_name(peer), 0, 0);
         char* subject = X509_NAME_oneline(X509_get_subject_name(peer), 0, 0);
 
-        printf("peer's cert info:\n");
-        printf("issuer : %s\n", issuer);
-        printf("subject: %s\n", subject);
-
+        printf("peer's cert info:\n issuer : %s\n subject: %s\n", issuer,
+                                                                  subject);
         free(subject);
         free(issuer);
     }
@@ -436,5 +485,19 @@
 }
 
 
+inline int verify_callback(int preverify_ok, X509_STORE_CTX* ctx)
+{
+    X509* err_cert = X509_STORE_CTX_get_current_cert(ctx);
+    int   err      = X509_STORE_CTX_get_error(ctx);
+    int   depth    = X509_STORE_CTX_get_error_depth(ctx);
+
+    // test allow self signed
+    if (err_cert && depth == 0 && err == TaoCrypt::SIG_OTHER_E)
+        return 1;
+
+    return 0;
+}
+
+
 #endif // yaSSL_TEST_HPP
 
diff -Nru mysql-5.5-5.5.20/extra/yassl/testsuite/testsuite.cpp mysql-5.5-5.5.22/extra/yassl/testsuite/testsuite.cpp
--- mysql-5.5-5.5.20/extra/yassl/testsuite/testsuite.cpp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/extra/yassl/testsuite/testsuite.cpp	2012-03-02 19:44:46.000000000 +0000
@@ -119,7 +119,7 @@
 void start_thread(THREAD_FUNC fun, func_args* args, THREAD_TYPE* thread)
 {
 #ifndef _POSIX_THREADS
-    *thread = _beginthreadex(0, 0, fun, args, 0, 0);
+    *thread = (HANDLE)_beginthreadex(0, 0, fun, args, 0, 0);
 #else
     pthread_create(thread, 0, fun, args);
 #endif
@@ -129,9 +129,9 @@
 void join_thread(THREAD_TYPE thread)
 {
 #ifndef _POSIX_THREADS
-    int res = WaitForSingleObject(reinterpret_cast(thread), INFINITE);
+    int res = WaitForSingleObject(thread, INFINITE);
     assert(res == WAIT_OBJECT_0);
-    res = CloseHandle(reinterpret_cast(thread));
+    res = CloseHandle(thread);
     assert(res);
 #else
     pthread_join(thread, 0);
@@ -158,7 +158,7 @@
 {
     /* test des encrypt/decrypt */
     char data[] = "this is my data ";
-    int  dataSz = strlen(data);
+    int  dataSz = (int)strlen(data);
     DES_key_schedule key[3];
     byte iv[8];
     EVP_BytesToKey(EVP_des_ede3_cbc(), EVP_md5(), NULL, (byte*)data, dataSz, 1,
diff -Nru mysql-5.5-5.5.20/include/m_ctype.h mysql-5.5-5.5.22/include/m_ctype.h
--- mysql-5.5-5.5.20/include/m_ctype.h	2011-12-16 19:52:07.000000000 +0000
+++ mysql-5.5-5.5.22/include/m_ctype.h	2012-03-02 19:44:47.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
+/* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -66,6 +66,8 @@
 
 extern MY_UNICASE_INFO *my_unicase_default[256];
 extern MY_UNICASE_INFO *my_unicase_turkish[256];
+extern MY_UNICASE_INFO *my_unicase_mysql500[256];
+
 
 typedef struct uni_ctype_st
 {
@@ -337,6 +339,7 @@
 extern CHARSET_INFO my_charset_ucs2_general_ci;
 extern CHARSET_INFO my_charset_ucs2_bin;
 extern CHARSET_INFO my_charset_ucs2_unicode_ci;
+extern CHARSET_INFO my_charset_ucs2_general_mysql500_ci;
 extern CHARSET_INFO my_charset_ujis_japanese_ci;
 extern CHARSET_INFO my_charset_ujis_bin;
 extern CHARSET_INFO my_charset_utf16_bin;
@@ -349,6 +352,7 @@
 extern MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_utf8_general_ci;
 extern CHARSET_INFO my_charset_utf8_unicode_ci;
 extern CHARSET_INFO my_charset_utf8_bin;
+extern CHARSET_INFO my_charset_utf8_general_mysql500_ci;
 extern CHARSET_INFO my_charset_utf8mb4_bin;
 extern CHARSET_INFO my_charset_utf8mb4_general_ci;
 extern CHARSET_INFO my_charset_utf8mb4_unicode_ci;
diff -Nru mysql-5.5-5.5.20/include/m_string.h mysql-5.5-5.5.22/include/m_string.h
--- mysql-5.5-5.5.20/include/m_string.h	2011-12-16 19:52:07.000000000 +0000
+++ mysql-5.5-5.5.22/include/m_string.h	2012-03-02 19:44:47.000000000 +0000
@@ -60,7 +60,9 @@
 # define bfill(A,B,C)           memset((A),(C),(B))
 #endif
 
-#if !defined(bzero) && !defined(HAVE_BZERO)
+#if !defined(bzero) && (!defined(HAVE_BZERO) || !HAVE_DECL_BZERO || defined(_AIX))
+/* See autoconf doku: "HAVE_DECL_symbol" will be defined after configure, to 0 or 1 */
+/* AIX has bzero() as a function, but the declaration prototype is strangely hidden */
 # define bzero(A,B)             memset((A),0,(B))
 #endif
 
diff -Nru mysql-5.5-5.5.20/include/my_global.h mysql-5.5-5.5.22/include/my_global.h
--- mysql-5.5-5.5.20/include/my_global.h	2011-12-16 19:52:07.000000000 +0000
+++ mysql-5.5-5.5.22/include/my_global.h	2012-03-02 19:44:47.000000000 +0000
@@ -1,5 +1,5 @@
 /*
-   Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
+   Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -1364,11 +1364,31 @@
 
 #ifndef HAVE_DLERROR
 #ifdef _WIN32
+#define DLERROR_GENERATE(errmsg, error_number) \
+  char win_errormsg[2048]; \
+  if(FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, \
+                   0, error_number, 0, win_errormsg, 2048, NULL)) \
+  { \
+    char *ptr; \
+    for (ptr= &win_errormsg[0] + strlen(win_errormsg) - 1; \
+         ptr >= &win_errormsg[0] && strchr("\r\n\t\0x20", *ptr); \
+         ptr--) \
+      *ptr= 0; \
+    errmsg= win_errormsg; \
+  } \
+  else \
+    errmsg= ""
 #define dlerror() ""
-#else
+#define dlopen_errno GetLastError()
+#else /* _WIN32 */
 #define dlerror() "No support for dynamic loading (static build?)"
-#endif
-#endif
+#define DLERROR_GENERATE(errmsg, error_number) errmsg= dlerror()
+#define dlopen_errno errno
+#endif /* _WIN32 */
+#else /* HAVE_DLERROR */
+#define DLERROR_GENERATE(errmsg, error_number) errmsg= dlerror()
+#define dlopen_errno errno
+#endif /* HAVE_DLERROR */
 
 
 /*
diff -Nru mysql-5.5-5.5.20/include/myisam.h mysql-5.5-5.5.22/include/myisam.h
--- mysql-5.5-5.5.20/include/myisam.h	2011-12-16 19:52:07.000000000 +0000
+++ mysql-5.5-5.5.22/include/myisam.h	2012-03-02 19:44:47.000000000 +0000
@@ -1,5 +1,5 @@
 /*
-   Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
+   Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -401,14 +401,14 @@
   ulonglong max_data_file_length;
   ulonglong keys_in_use;
   ulonglong max_record_length;
+  ulonglong sort_buffer_length;
   my_off_t search_after_block;
   my_off_t new_file_pos,key_file_blocks;
   my_off_t keydata,totaldata,key_blocks,start_check_pos;
   ha_rows total_records,total_deleted;
   ha_checksum record_checksum,glob_crc;
   ulonglong use_buffers;
-  ulong read_buffer_length,write_buffer_length,
-	sort_buffer_length,sort_key_blocks;
+  ulong read_buffer_length, write_buffer_length, sort_key_blocks;
   uint out_flag,warning_printed,error_printed,verbose;
   uint opt_sort_key,total_files,max_level;
   uint testflag, key_cache_block_size;
diff -Nru mysql-5.5-5.5.20/include/mysql/plugin.h mysql-5.5-5.5.22/include/mysql/plugin.h
--- mysql-5.5-5.5.20/include/mysql/plugin.h	2011-12-16 19:52:07.000000000 +0000
+++ mysql-5.5-5.5.22/include/mysql/plugin.h	2012-03-02 19:44:47.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+/* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -Nru mysql-5.5-5.5.20/include/welcome_copyright_notice.h mysql-5.5-5.5.22/include/welcome_copyright_notice.h
--- mysql-5.5-5.5.20/include/welcome_copyright_notice.h	2011-12-16 19:52:07.000000000 +0000
+++ mysql-5.5-5.5.22/include/welcome_copyright_notice.h	2012-03-02 19:44:47.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+/* Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -Nru mysql-5.5-5.5.20/INSTALL-SOURCE mysql-5.5-5.5.22/INSTALL-SOURCE
--- mysql-5.5-5.5.20/INSTALL-SOURCE	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/INSTALL-SOURCE	2012-03-02 19:44:56.000000000 +0000
@@ -507,8 +507,8 @@
 shell> md5sum package_name
 
    Example:
-shell> md5sum mysql-standard-5.5.20-linux-i686.tar.gz
-aaab65abbec64d5e907dcd41b8699945  mysql-standard-5.5.20-linux-i686.ta
+shell> md5sum mysql-standard-5.5.23-linux-i686.tar.gz
+aaab65abbec64d5e907dcd41b8699945  mysql-standard-5.5.23-linux-i686.ta
 r.gz
 
    You should verify that the resulting checksum (the string of
@@ -635,8 +635,8 @@
 
    Table 2.1. MySQL Package and Signature Files
        File Type                      File Name
-   Distribution file mysql-standard-5.5.20-linux-i686.tar.gz
-   Signature file    mysql-standard-5.5.20-linux-i686.tar.gz.asc
+   Distribution file mysql-standard-5.5.23-linux-i686.tar.gz
+   Signature file    mysql-standard-5.5.23-linux-i686.tar.gz.asc
 
    Make sure that both files are stored in the same directory and
    then run the following command to verify the signature for the
@@ -644,7 +644,7 @@
 shell> gpg --verify package_name.asc
 
    Example:
-shell> gpg --verify mysql-standard-5.5.20-linux-i686.tar.gz.asc
+shell> gpg --verify mysql-standard-5.5.23-linux-i686.tar.gz.asc
 gpg: Signature made Tue 01 Feb 2011 02:38:30 AM CST using DSA key ID
 5072E1F5
 gpg: Good signature from "MySQL Release Engineering  rpm --checksig package_name.rpm
 
    Example:
-shell> rpm --checksig MySQL-server-5.5.20-0.glibc23.i386.rpm
-MySQL-server-5.5.20-0.glibc23.i386.rpm: md5 gpg OK
+shell> rpm --checksig MySQL-server-5.5.23-0.glibc23.i386.rpm
+MySQL-server-5.5.23-0.glibc23.i386.rpm: md5 gpg OK
 
    Note
 
@@ -740,7 +740,7 @@
 
    MySQL compressed tar file binary distributions have names of the
    form mysql-VERSION-OS.tar.gz, where VERSION is a number (for
-   example, 5.5.20), and OS indicates the type of operating system
+   example, 5.5.23), and OS indicates the type of operating system
    for which the distribution is intended (for example, pc-linux-i686
    or winx64).
 
@@ -1051,7 +1051,7 @@
    within the "Complete Package."
 
      * MySQL Installer: This package has a file name similar to
-       mysql-installer-5.5.20.0.msi and utilizes MSI's to
+       mysql-installer-5.5.23.0.msi and utilizes MSI's to
        automatically install MySQL server and other products. It will
        download and apply updates to itself, and for each of the
        installed products. It also configures the additional
@@ -1062,13 +1062,13 @@
        Server with its components.
 
      * The Complete Package: This package has a file name similar to
-       mysql-5.5.20-win32.msi and contains all files needed for a
+       mysql-5.5.23-win32.msi and contains all files needed for a
        complete Windows installation, including the Configuration
        Wizard. This package includes optional components such as the
        embedded server and benchmark suite.
 
      * The Noinstall Archive: This package has a file name similar to
-       mysql-5.5.20-win32.zip and contains all the files found in the
+       mysql-5.5.23-win32.zip and contains all the files found in the
        Complete install package, with the exception of the
        Configuration Wizard. This package does not include an
        automated installer, and must be manually installed and
@@ -1477,7 +1477,7 @@
    directory. In a default installation it contains C:\Program
    Files\MySQL\MySQL Server 5.5\. The Version string contains the
    release number. For example, for an installation of MySQL Server
-   5.5.20, the key contains a value of 5.5.20.
+   5.5.23, the key contains a value of 5.5.23.
 
    These registry keys are used to help external tools identify the
    installed location of the MySQL server, preventing a complete scan
@@ -1567,7 +1567,7 @@
    the command line (or within a script), you need to use the
    msiexec.exe tool. For example, to perform a quiet installation
    (which shows no dialog boxes or progress):
-shell> msiexec /i /quiet mysql-5.5.20.msi
+shell> msiexec /i /quiet mysql-5.5.23.msi
 
    The /i indicates that you want to perform an installation. The
    /quiet option indicates that you want no interactive elements.
@@ -1575,7 +1575,7 @@
    To provide a dialog box showing the progress during installation,
    and the dialog boxes providing information on the installation and
    registration of MySQL, use /passive mode instead of /quiet:
-shell> msiexec /i /passive mysql-5.5.20.msi
+shell> msiexec /i /passive mysql-5.5.23.msi
 
    Regardless of the mode of the installation, installing the package
    in this manner performs a 'Typical' installation, and installs the
@@ -1583,7 +1583,7 @@
 
    You can also use this method to uninstall MySQL by using the
    /uninstall or /x options:
-shell> msiexec /x /quiet mysql-5.5.20.msi
+shell> msiexec /x /quiet mysql-5.5.23.msi
 
    To install MySQL and configure a MySQL instance from the command
    line, see Section 2.3.5.13, "MySQL Server Instance Config Wizard:
@@ -2168,7 +2168,7 @@
    service name MySQL55 and setting the root password to 1234.
 shell> MySQLInstanceConfig.exe -i -q "-lC:\mysql_install_log.txt" »
    "-nMySQL Server 5.5" "-pC:\Program Files\MySQL\MySQL Server 5.5" -
-v5.5.20 »
+v5.5.23 »
    "-tmy-template.ini" "-cC:\mytest.ini" ServerType=DEVELOPMENT Datab
 aseType=MIXED »
    ConnectionUsage=DSS Port=3311 ServiceName=MySQL55 RootPassword=123
@@ -2184,7 +2184,7 @@
 Installing service ...
 
 Product Name:         MySQL Server 5.5
-Version:              5.5.20
+Version:              5.5.23
 Installation Path:    C:\Program Files\MySQL\MySQL Server 5.5\
 
 Creating configuration file C:\mytest.ini using template my-template.
@@ -2437,7 +2437,7 @@
    something like this, which indicates that the server is ready to
    service client connections:
 mysqld: ready for connections
-Version: '5.5.20'  socket: ''  port: 3306
+Version: '5.5.23'  socket: ''  port: 3306
 
    The server continues to write to the console any further
    diagnostic output it produces. You can open a new console window
@@ -3488,7 +3488,10 @@
    capabilities, and conventions (including communication setup), and
    that the instructions in this manual do not necessarily apply to
    installing them. The vendor's instructions should be consulted
-   instead.
+   instead. Because of these differences, RPM packages built by us
+   check whether such RPMs built by other vendors are installed. If
+   so, the RPM does not install and produces a message explaining
+   this.
 
    In most cases, you need to install only the MySQL-server and
    MySQL-client packages to get a functional MySQL installation. The
@@ -3936,7 +3939,7 @@
        in /etc/init.d/mysql.
        To enable MySQL to start automatically at the normal (default)
        run levels, you can use:
-root-shell> rc-update add default mysql
+root-shell> rc-update add mysql default
 
 2.6. Installing MySQL on Solaris and OpenSolaris
 
@@ -4016,15 +4019,15 @@
    To use this package, download the corresponding
    mysql-VERSION-solaris10-PLATFORM.pkg.gz file, then decompress it.
    For example:
-shell> gunzip mysql-5.5.20-solaris10-x86_64.pkg.gz
+shell> gunzip mysql-5.5.23-solaris10-x86_64.pkg.gz
 
    To install a new package, use pkgadd and follow the onscreen
    prompts. You must have root privileges to perform this operation:
-shell> pkgadd -d mysql-5.5.20-solaris10-x86_64.pkg
+shell> pkgadd -d mysql-5.5.23-solaris10-x86_64.pkg
 
 The following packages are available:
   1  mysql     MySQL Community Server (GPL)
-               (i86pc) 5.5.20
+               (i86pc) 5.5.23
 
 Select package(s) you wish to process (or 'all' to process
 all packages). (default: all) [?,??,q]:
@@ -4061,7 +4064,7 @@
    The typical upgrade sequence is therefore:
 shell> mysqladmin shutdown
 shell> pkgrm mysql
-shell> pkgadd -d mysql-5.5.20-solaris10-x86_64.pkg
+shell> pkgadd -d mysql-5.5.23-solaris10-x86_64.pkg
 shell> mysql_upgrade
 shell> mysqld_safe &
 
@@ -4312,7 +4315,7 @@
        Standard distributions are available as compressed tar files,
        Zip archives, or RPM packages. Distribution files have names
        of the form mysql-VERSION.tar.gz, mysql-VERSION.zip, or
-       mysql-VERSION.rpm, where VERSION is a number like 5.5.20. File
+       mysql-VERSION.rpm, where VERSION is a number like 5.5.23. File
        names for source distributions can be distinguished from those
        for precompiled binary distributions in that source
        distribution names are generic and include no platform name,
@@ -4844,23 +4847,43 @@
    INSTALL_SQLBENCHDIR sql-bench directory PREFIX 5.5.7
    INSTALL_SUPPORTFILESDIR Extra support files directory
    PREFIX/support-files 5.5.7
+   MEMCACHED_HOME Path to memcached [none] 5.5.16-ndb-7.2.2
    MYSQL_DATADIR Data directory 5.5.7
    MYSQL_MAINTAINER_MODE Whether to enable MySQL maintainer-specific
    development environment OFF 5.5.7
+   MYSQL_PROJECT_NAME Windows/Mac OS X project name 3306 5.5.21
    MYSQL_TCP_PORT TCP/IP port number 3306 5.5.7
    MYSQL_UNIX_ADDR Unix socket file /tmp/mysql.sock 5.5.7
    ODBC_INCLUDES ODBC includes directory
    ODBC_LIB_DIR ODBC library directory
    SYSCONFDIR Option file directory 5.5.7
+   WITH_BUNDLED_LIBEVENT Use bundled libevent when building
+   ndbmemcache ON 5.5.16-ndb-7.2.2
+   WITH_BUNDLED_MEMCACHED Use bundled memcached when building
+   ndbmemcache ON 5.5.16-ndb-7.2.2
+   WITH_CLASSPATH Classpath to use when building MySQL Cluster
+   Connector for Java. Default is an empty string.
    WITH_COMMENT Comment about compilation environment 5.5.7
    WITH_DEBUG Whether to include debugging support OFF 5.5.7
    WITH_EMBEDDED_SERVER Whether to build embedded server OFF 5.5.7
    WITH_xxx_STORAGE_ENGINE Compile storage engine xxx statically into
    server 5.5.7
+   WITH_ERROR_INSERT Enable error injection in the NDBCLUSTER storage
+   engine. Should not be used for building binaries intended for
+   production. OFF
    WITH_EXTRA_CHARSETS Which extra character sets to include all
    5.5.7
    WITH_LIBWRAP Whether to include libwrap (TCP wrappers) support OFF
    5.5.7
+   WITH_NDB_BINLOG Enable binary logging by default by mysqld. ON
+   WITH_NDB_DEBUG Produce a debug build for testing or
+   troubleshooting. OFF
+   WITH_NDB_PORT Default port used by a management server built with
+   this option. If this option was not used to build it, the
+   management server's default port is 1186. [none]
+   WITH_NDB_TEST Include NDB API test programs. OFF
+   WITH_NDBCLUSTER_STORAGE_ENGINE Build the NDB storage engine ON
+   WITH_NDBMTD Build multi-threaded data node. ON
    WITH_READLINE Use bundled readline OFF 5.5.7
    WITH_SSL Type of SSL support no 5.5.7
    WITH_UNIXODBC Enable unixODBC support OFF
@@ -5047,7 +5070,10 @@
    MySQL Cluster using the MySQL Cluster sources. It cannot be used
    to enable clustering support in other MySQL source trees or
    distributions. In MySQL Cluster NDB 7.2 source distributions, it
-   is enabled by default.
+   is enabled by default. See Section 16.2.1.3, "Building MySQL
+   Cluster from Source on Linux," and Section 16.2.2.2, "Compiling
+   and Installing MySQL Cluster from Source on Windows," for more
+   information.
 
    To exclude a storage engine from the build, use
    -DWITHOUT_engine_STORAGE_ENGINE=1. Examples:
@@ -5132,6 +5158,10 @@
        environment. If enabled, this option causes compiler warnings
        to become errors.
 
+     * -DMYSQL_PROJECT_NAME=name
+       For Windows or Mac OS X, the project name to incorporate into
+       the project file name. This option was added in MySQL 5.5.21.
+
      * -DMYSQL_TCP_PORT=port_num
        The port number on on which the server listens for TCP/IP
        connections. The default is 3306.
@@ -5223,6 +5253,82 @@
        server is disabled. To enable connection authentication,
        define this flag.
 
+CMake Options for Compiling MySQL Cluster
+
+   The following options are for use when building MySQL Cluster NDB
+   7.2 and. These options are supported only with the MySQL Cluster
+   NDB 7.2 and later MySQL Cluster sources; they are not supported
+   with sources from the MySQL 5.5 Server tree.
+
+     * -DMEMCACHED_HOME=path
+       Perform the build using the memcached (version 1.6 or later)
+       installed in the system directory indicated by path. Files
+       from this installation that are used in the build include the
+       memcached binary, header files, and libraries, as well as the
+       memcached_utilities library and the header file
+       engine_testapp.h.
+       You must leave this option unset when building ndbmemcache
+       using the bundled memcached sources (WITH_BUNDLED_MEMCACHED
+       option); in other words, the bundled sources are used by
+       default).
+       This option was added in MySQL Cluster NDB 7.2.2.
+       While additional CMake options---such as for SASL
+       authorization and for providing dtrace support---are available
+       for use when compiling memcached from external sources, these
+       options are currently not enabled for the memcached sources
+       bundled with MySQL Cluster.
+
+     * -DWITH_BUNDLED_LIBEVENT={ON|OFF}
+       Use the libevent included in the MySQL Cluster sources when
+       building MySQL Cluster with ndbmemcached support (MySQL
+       Cluster NDB 7.2.2 and later). Enabled by default. OFF causes
+       the system's libevent to be used instead.
+
+     * -DWITH_BUNDLED_MEMCACHED={ON|OFF}
+       Build the memcached sources included in the MySQL Cluster
+       source tree (MySQL Cluster NDB 7.2.3 and later), then use the
+       resulting memcached server when building the ndbmemcache
+       engine. In this case, make install places the memcached binary
+       in the installation bin directory, and the ndbmemcache engine
+       shared object file ndb_engine.so in the installation lib
+       directory.
+       This option is ON by default.
+
+     * -DWITH_CLASSPATH=path
+       Sets the classpath for building MySQL Cluster Connector for
+       Java. Default is empty.
+
+     * -DWITH_ERROR_INSERT={ON|OFF}
+       Enables error injection in the NDB kernel. For testing only;
+       not intended for use in building production binaries. Default
+       is OFF.
+
+     * -DWITH_NDBCLUSTER_STORAGE_ENGINE={ON|OFF}
+       Build and link in support for the NDB (NDBCLUSTER) storage
+       engine in mysqld. Default is ON.
+
+     * -DWITH_NDBMTD={ON|OFF}
+       Build the multithreaded data node executable ndbmtd. Default s
+       ON.
+
+     * -DWITH_NDB_BINLOG={ON|OFF}
+       Enable binary logging by default in the mysqld built using
+       this option. ON by default.
+
+     * -DWITH_NDB_DEBUG={ON|OFF}
+       Enable building the debug versions of the MySQL Cluster
+       binaries. OFF by default.
+
+     * -DWITH_NDB_PORT=port
+       Causes the MySQL Cluster management server (ndb_mgmd) that is
+       built to use this port by default. If this option is unset,
+       the resulting management server tries to use port 1186 by
+       default.
+
+     * -DWITH_NDB_TEST={ON|OFF}
+       If enabled, include a set of NDB API test programs. The
+       default is OFF.
+
 2.9.5. Dealing with Problems Compiling MySQL
 
    The solution to many problems involves reconfiguring. If you do
@@ -5250,9 +5356,9 @@
 shell> del CMakeCache.txt
 
    If you build out of the source tree, remove and recreate your
-   build directory before re-running CMake. For instructions on out
-   of source building, see Section 2.9.2, "Installing MySQL from a
-   Standard Source Distribution."
+   build directory before re-running CMake. For instructions on
+   building outside of the source tree, see
+   http://forge.mysql.com/wiki/CMake.
 
    On some systems, warnings may occur due to differences in system
    include files. The following list describes other problems that
@@ -5300,9 +5406,6 @@
        The maximum table size is not actually exceeded; the error is
        caused by bugs in older versions of bison.
 
-     * On Debian Linux 3.0, you need to install gawk instead of the
-       default mawk.
-
    For information about acquiring or updating tools, see the system
    requirements in Section 2.9, "Installing MySQL from Source."
 
@@ -5549,10 +5652,10 @@
        on your platform and version of MySQL, but should be similar
        to that shown here:
 shell> bin/mysqladmin version
-mysqladmin  Ver 14.12 Distrib 5.5.20, for pc-linux-gnu on i686
+mysqladmin  Ver 14.12 Distrib 5.5.23, for pc-linux-gnu on i686
 ...
 
-Server version          5.5.20
+Server version          5.5.23
 Protocol version        10
 Connection              Localhost via UNIX socket
 UNIX socket             /var/lib/mysql/mysql.sock
@@ -6683,7 +6786,7 @@
 shell> mysql_upgrade
        With the --skip-grant-tables option, the server does no
        password or privilege checking, so any client can connect and
-       effectively have all privilges. For additional security, use
+       effectively have all privileges. For additional security, use
        the --skip-networking option as well to prevent remote clients
        from connecting.
        Note
@@ -6800,7 +6903,7 @@
 
      * Incompatible change: In very old versions of MySQL (prior to
        4.1), the TIMESTAMP data type supported a display width, which
-       was silenty ignored beginning with MySQL 4.1. This is
+       was silently ignored beginning with MySQL 4.1. This is
        deprecated in MySQL 5.1, and removed altogether in MySQL 5.5.
        These changes in behavior can lead to two problem scenarios
        when trying to use TIMESTAMP(N) columns with a MySQL 5.5 or
@@ -6901,9 +7004,9 @@
 
           + The --language option for specifying the directory for
             the error message file is now deprecated. The new
-            --lc-messages-dir and --lc-messages options should be
-            used instead, and --language is handled as an alias for
-            --lc-messages-dir.
+            lc_messages_dir and lc_messages system variables should
+            be used instead, and the server treats --language as an
+            alias for lc_messages_dir.
 
           + The language system variable has been removed and
             replaced with the new lc_messages_dir and lc_messages
@@ -6921,7 +7024,7 @@
             and returning them to the client in the character set
             specified by the character_set_results system variable.
             The content of error messages therefore may in some cases
-            differ from the messags returned previously.
+            differ from the messages returned previously.
        For more information, see Section 9.2, "Setting the Error
        Message Language," and Section 9.1.6, "Character Set for Error
        Messages."
@@ -7117,7 +7220,7 @@
 shell> mysql_upgrade
        With the --skip-grant-tables option, the server does no
        password or privilege checking, so any client can connect and
-       effectively have all privilges. For additional security, use
+       effectively have all privileges. For additional security, use
        the --skip-networking option as well to prevent remote clients
        from connecting.
 
@@ -7179,9 +7282,9 @@
 
           + The --language option for specifying the directory for
             the error message file is now deprecated. The new
-            --lc-messages-dir and --lc-messages options should be
-            used instead, and --language is handled as an alias for
-            --lc-messages-dir.
+            lc_messages_dir and lc_messages system variables should
+            be used instead, and the server treats --language as an
+            alias for lc_messages_dir.
 
           + The language system variable has been removed and
             replaced with the new lc_messages_dir and lc_messages
@@ -7663,7 +7766,7 @@
    access. You can write a DBI script that works with many different
    database engines without change. To use DBI, you must install the
    DBI module, as well as a DataBase Driver (DBD) module for each
-   type of databas server you want to access. For MySQL, this driver
+   type of database server you want to access. For MySQL, this driver
    is the DBD::mysql module.
 
    Perl, and the DBD::MySQL module for DBI must be installed if you
@@ -7843,3 +7946,11 @@
 
    After this, you must run make realclean and then proceed with the
    installation from the beginning.
+
+   Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights
+   reserved. [1]Legal Notices
+
+References
+
+
+   1. file://localhost/data0/users/mysqldoc/docs-build/mysqldoc/refman-5.5/installing-nolink.html#legalnotice
diff -Nru mysql-5.5-5.5.20/libmysql/CMakeLists.txt mysql-5.5-5.5.22/libmysql/CMakeLists.txt
--- mysql-5.5-5.5.20/libmysql/CMakeLists.txt	2011-12-16 19:52:07.000000000 +0000
+++ mysql-5.5-5.5.22/libmysql/CMakeLists.txt	2012-03-02 19:44:45.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
 # 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,6 +25,8 @@
 ADD_DEFINITIONS(${SSL_DEFINES})
 
 SET(CLIENT_API_FUNCTIONS
+get_tty_password
+handle_options
 load_defaults
 mysql_thread_end
 mysql_thread_init
diff -Nru mysql-5.5-5.5.20/libmysqld/CMakeLists.txt mysql-5.5-5.5.22/libmysqld/CMakeLists.txt
--- mysql-5.5-5.5.20/libmysqld/CMakeLists.txt	2011-12-16 19:52:07.000000000 +0000
+++ mysql-5.5-5.5.22/libmysqld/CMakeLists.txt	2012-03-02 19:44:45.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
 # 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -Nru mysql-5.5-5.5.20/libmysqld/examples/CMakeLists.txt mysql-5.5-5.5.22/libmysqld/examples/CMakeLists.txt
--- mysql-5.5-5.5.20/libmysqld/examples/CMakeLists.txt	2011-12-16 19:52:07.000000000 +0000
+++ mysql-5.5-5.5.22/libmysqld/examples/CMakeLists.txt	2012-03-02 19:44:45.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
 # 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -Nru mysql-5.5-5.5.20/man/comp_err.1 mysql-5.5-5.5.22/man/comp_err.1
--- mysql-5.5-5.5.20/man/comp_err.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/comp_err.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBcomp_err\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBCOMP_ERR\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBCOMP_ERR\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -255,7 +255,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/innochecksum.1 mysql-5.5-5.5.22/man/innochecksum.1
--- mysql-5.5-5.5.20/man/innochecksum.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/innochecksum.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBinnochecksum\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBINNOCHECKSUM\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBINNOCHECKSUM\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -141,7 +141,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/msql2mysql.1 mysql-5.5-5.5.22/man/msql2mysql.1
--- mysql-5.5-5.5.20/man/msql2mysql.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/msql2mysql.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmsql2mysql\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBMSQL2MYSQL\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBMSQL2MYSQL\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -60,7 +60,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/myisamchk.1 mysql-5.5-5.5.22/man/myisamchk.1
--- mysql-5.5-5.5.20/man/myisamchk.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/myisamchk.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmyisamchk\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBMYISAMCHK\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBMYISAMCHK\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -2462,7 +2462,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/myisam_ftdump.1 mysql-5.5-5.5.22/man/myisam_ftdump.1
--- mysql-5.5-5.5.20/man/myisam_ftdump.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/myisam_ftdump.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmyisam_ftdump\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBMYISAM_FTDUMP\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBMYISAM_FTDUMP\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -242,7 +242,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/myisamlog.1 mysql-5.5-5.5.22/man/myisamlog.1
--- mysql-5.5-5.5.20/man/myisamlog.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/myisamlog.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmyisamlog\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBMYISAMLOG\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBMYISAMLOG\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -225,7 +225,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/myisampack.1 mysql-5.5-5.5.22/man/myisampack.1
--- mysql-5.5-5.5.20/man/myisampack.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/myisampack.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmyisampack\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBMYISAMPACK\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBMYISAMPACK\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -832,7 +832,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/my_print_defaults.1 mysql-5.5-5.5.22/man/my_print_defaults.1
--- mysql-5.5-5.5.20/man/my_print_defaults.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/my_print_defaults.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmy_print_defaults\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBMY_PRINT_DEFAULTS" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBMY_PRINT_DEFAULTS" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -195,7 +195,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/mysql.1 mysql-5.5-5.5.22/man/mysql.1
--- mysql-5.5-5.5.20/man/mysql.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/mysql.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysql\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBMYSQL\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBMYSQL\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -1621,7 +1621,7 @@
 .sp
 The delimiter string can be specified as an unquoted or quoted argument on the
 delimiter
-command line\&. Quoting can be done with either single quote (\'), douple quote ("), or backtick (`) characters\&. To include a quote within a quoted string, either quote the string with a different quote character or escape the quote with a backslash (\(lq\e\(rq) character\&. Backslash should be avoided outside of quoted strings because it is the escape character for MySQL\&. For an unquoted argument, the delimiter is read up to the first space or end of line\&. For a quoted argument, the delimiter is read up to the matching quote on the line\&.
+command line\&. Quoting can be done with either single quote (\'), double quote ("), or backtick (`) characters\&. To include a quote within a quoted string, either quote the string with a different quote character or escape the quote with a backslash (\(lq\e\(rq) character\&. Backslash should be avoided outside of quoted strings because it is the escape character for MySQL\&. For an unquoted argument, the delimiter is read up to the first space or end of line\&. For a quoted argument, the delimiter is read up to the matching quote on the line\&.
 .sp
 \fBmysql\fR
 interprets instances of the delimiter string as a statement delimiter anywhere it occurs, except within quoted strings\&. Be careful about defining a delimiter that might occur within other words\&. For example, if you define the delimiter as
@@ -2983,7 +2983,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/mysqlaccess.1 mysql-5.5-5.5.22/man/mysqlaccess.1
--- mysql-5.5-5.5.20/man/mysqlaccess.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/mysqlaccess.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysqlaccess\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBMYSQLACCESS\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBMYSQLACCESS\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -423,7 +423,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/mysqladmin.1 mysql-5.5-5.5.22/man/mysqladmin.1
--- mysql-5.5-5.5.20/man/mysqladmin.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/mysqladmin.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysqladmin\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBMYSQLADMIN\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBMYSQLADMIN\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -1141,7 +1141,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/mysqlbinlog.1 mysql-5.5-5.5.22/man/mysqlbinlog.1
--- mysql-5.5-5.5.20/man/mysqlbinlog.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/mysqlbinlog.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysqlbinlog\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBMYSQLBINLOG\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBMYSQLBINLOG\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -2057,7 +2057,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/mysqlbug.1 mysql-5.5-5.5.22/man/mysqlbug.1
--- mysql-5.5-5.5.20/man/mysqlbug.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/mysqlbug.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysqlbug\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBMYSQLBUG\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBMYSQLBUG\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -33,7 +33,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/mysqlcheck.1 mysql-5.5-5.5.22/man/mysqlcheck.1
--- mysql-5.5-5.5.20/man/mysqlcheck.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/mysqlcheck.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysqlcheck\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBMYSQLCHECK\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBMYSQLCHECK\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -922,7 +922,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/mysql_client_test.1 mysql-5.5-5.5.22/man/mysql_client_test.1
--- mysql-5.5-5.5.20/man/mysql_client_test.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/mysql_client_test.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysql_client_test\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/13/2011
+.\"      Date: 02/29/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL
 .\"  Language: English
 .\"
-.TH "\FBMYSQL_CLIENT_TEST" "1" "12/13/2011" "MySQL" "MySQL Database System"
+.TH "\FBMYSQL_CLIENT_TEST" "1" "02/29/2012" "MySQL" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -326,7 +326,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 2007, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 2007, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/mysql_config.1 mysql-5.5-5.5.22/man/mysql_config.1
--- mysql-5.5-5.5.20/man/mysql_config.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/mysql_config.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysql_config\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBMYSQL_CONFIG\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBMYSQL_CONFIG\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -224,7 +224,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/mysql_convert_table_format.1 mysql-5.5-5.5.22/man/mysql_convert_table_format.1
--- mysql-5.5-5.5.20/man/mysql_convert_table_format.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/mysql_convert_table_format.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysql_convert_table_format\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBMYSQL_CONVERT_TAB" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBMYSQL_CONVERT_TAB" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -216,7 +216,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/mysqld.8 mysql-5.5-5.5.22/man/mysqld.8
--- mysql-5.5-5.5.20/man/mysqld.8	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/mysqld.8	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysqld\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBMYSQLD\FR" "8" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBMYSQLD\FR" "8" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -53,7 +53,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/mysqld_multi.1 mysql-5.5-5.5.22/man/mysqld_multi.1
--- mysql-5.5-5.5.20/man/mysqld_multi.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/mysqld_multi.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysqld_multi\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBMYSQLD_MULTI\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBMYSQLD_MULTI\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -696,7 +696,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/mysqld_safe.1 mysql-5.5-5.5.22/man/mysqld_safe.1
--- mysql-5.5-5.5.20/man/mysqld_safe.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/mysqld_safe.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysqld_safe\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBMYSQLD_SAFE\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBMYSQLD_SAFE\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -730,6 +730,14 @@
 \fB\-\-datadir\fR
 options to indicate the directories in which the server and databases are located on your system\&.
 .PP
+Beginning with MySQL 5\&.5\&.21,
+\fBmysqld_safe\fR
+tries to use the
+\fBsleep\fR
+and
+\fBdate\fR
+system utilities to determine how many times it has attempted to start this second, and\(emif these are present and this is greater than 5 times\(emis forced to wait 1 full second before starting again\&. This is intended to prevent excessive CPU usage in the event of repeated failures\&. (Bug #11761530, Bug #54035)
+.PP
 When you use
 \fBmysqld_safe\fR
 to start
@@ -818,7 +826,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/mysqldump.1 mysql-5.5-5.5.22/man/mysqldump.1
--- mysql-5.5-5.5.20/man/mysqldump.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/mysqldump.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysqldump\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBMYSQLDUMP\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBMYSQLDUMP\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -1749,6 +1749,10 @@
 table directly, using a MySQL account that has appropriate privileges for the
 mysql
 database\&.
+.sp
+Prior to MySQL 5\&.5\&.21, this option had no effect when used together with the
+\fB\-\-xml\fR
+option\&. (Bug #11760384, Bug #52792)
 .RE
 .sp
 .RS 4
@@ -2211,6 +2215,10 @@
 .\}
 .RE
 .PP
+Prior to MySQL 5\&.5\&.21, this option prevented the
+\fB\-\-routines\fR
+option from working correctly\(emthat is, no stored routines, triggers, or events could be dumped in XML format\&. (Bug #11760384, Bug #52792)
+.PP
 You can also set the following variables by using
 \fB\-\-\fR\fB\fIvar_name\fR\fR\fB=\fR\fB\fIvalue\fR\fR
 syntax:
@@ -2399,7 +2407,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/mysqldumpslow.1 mysql-5.5-5.5.22/man/mysqldumpslow.1
--- mysql-5.5-5.5.20/man/mysqldumpslow.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/mysqldumpslow.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysqldumpslow\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBMYSQLDUMPSLOW\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBMYSQLDUMPSLOW\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -314,7 +314,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/mysql_find_rows.1 mysql-5.5-5.5.22/man/mysql_find_rows.1
--- mysql-5.5-5.5.20/man/mysql_find_rows.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/mysql_find_rows.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysql_find_rows\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBMYSQL_FIND_ROWS\F" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBMYSQL_FIND_ROWS\F" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -151,7 +151,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/mysql_fix_extensions.1 mysql-5.5-5.5.22/man/mysql_fix_extensions.1
--- mysql-5.5-5.5.20/man/mysql_fix_extensions.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/mysql_fix_extensions.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysql_fix_extensions\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBMYSQL_FIX_EXTENSI" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBMYSQL_FIX_EXTENSI" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -61,7 +61,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/mysqlhotcopy.1 mysql-5.5-5.5.22/man/mysqlhotcopy.1
--- mysql-5.5-5.5.20/man/mysqlhotcopy.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/mysqlhotcopy.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysqlhotcopy\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBMYSQLHOTCOPY\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBMYSQLHOTCOPY\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -535,7 +535,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/mysqlimport.1 mysql-5.5-5.5.22/man/mysqlimport.1
--- mysql-5.5-5.5.20/man/mysqlimport.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/mysqlimport.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysqlimport\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBMYSQLIMPORT\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBMYSQLIMPORT\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -705,7 +705,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/mysql_install_db.1 mysql-5.5-5.5.22/man/mysql_install_db.1
--- mysql-5.5-5.5.20/man/mysql_install_db.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/mysql_install_db.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysql_install_db\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBMYSQL_INSTALL_DB\" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBMYSQL_INSTALL_DB\" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -281,7 +281,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/mysql_plugin.1 mysql-5.5-5.5.22/man/mysql_plugin.1
--- mysql-5.5-5.5.20/man/mysql_plugin.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/mysql_plugin.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysql_plugin\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBMYSQL_PLUGIN\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBMYSQL_PLUGIN\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -363,7 +363,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/mysql_secure_installation.1 mysql-5.5-5.5.22/man/mysql_secure_installation.1
--- mysql-5.5-5.5.20/man/mysql_secure_installation.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/mysql_secure_installation.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysql_secure_installation\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBMYSQL_SECURE_INST" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBMYSQL_SECURE_INST" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -104,7 +104,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/mysql.server.1 mysql-5.5-5.5.22/man/mysql.server.1
--- mysql-5.5-5.5.20/man/mysql.server.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/mysql.server.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysql.server\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBMYSQL\&.SERVER\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBMYSQL\&.SERVER\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -161,7 +161,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/mysql_setpermission.1 mysql-5.5-5.5.22/man/mysql_setpermission.1
--- mysql-5.5-5.5.20/man/mysql_setpermission.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/mysql_setpermission.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysql_setpermission\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBMYSQL_SETPERMISSI" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBMYSQL_SETPERMISSI" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -163,7 +163,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/mysqlshow.1 mysql-5.5-5.5.22/man/mysqlshow.1
--- mysql-5.5-5.5.20/man/mysqlshow.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/mysqlshow.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysqlshow\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBMYSQLSHOW\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBMYSQLSHOW\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -542,7 +542,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/mysqlslap.1 mysql-5.5-5.5.22/man/mysqlslap.1
--- mysql-5.5-5.5.20/man/mysqlslap.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/mysqlslap.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysqlslap\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBMYSQLSLAP\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBMYSQLSLAP\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -992,7 +992,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/mysql-stress-test.pl.1 mysql-5.5-5.5.22/man/mysql-stress-test.pl.1
--- mysql-5.5-5.5.20/man/mysql-stress-test.pl.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/mysql-stress-test.pl.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysql-stress-test.pl\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/13/2011
+.\"      Date: 02/29/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL
 .\"  Language: English
 .\"
-.TH "\FBMYSQL\-STRESS\-TE" "1" "12/13/2011" "MySQL" "MySQL Database System"
+.TH "\FBMYSQL\-STRESS\-TE" "1" "02/29/2012" "MySQL" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -489,7 +489,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 2007, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 2007, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/mysqltest.1 mysql-5.5-5.5.22/man/mysqltest.1
--- mysql-5.5-5.5.20/man/mysqltest.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/mysqltest.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysqltest\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/13/2011
+.\"      Date: 02/29/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL
 .\"  Language: English
 .\"
-.TH "\FBMYSQLTEST\FR" "1" "12/13/2011" "MySQL" "MySQL Database System"
+.TH "\FBMYSQLTEST\FR" "1" "02/29/2012" "MySQL" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -871,7 +871,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 2007, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 2007, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/mysql-test-run.pl.1 mysql-5.5-5.5.22/man/mysql-test-run.pl.1
--- mysql-5.5-5.5.20/man/mysql-test-run.pl.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/mysql-test-run.pl.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysql-test-run.pl\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/13/2011
+.\"      Date: 02/29/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL
 .\"  Language: English
 .\"
-.TH "\FBMYSQL\-TEST\-RUN\" "1" "12/13/2011" "MySQL" "MySQL Database System"
+.TH "\FBMYSQL\-TEST\-RUN\" "1" "02/29/2012" "MySQL" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -2494,7 +2494,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 2007, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 2007, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/mysql_tzinfo_to_sql.1 mysql-5.5-5.5.22/man/mysql_tzinfo_to_sql.1
--- mysql-5.5-5.5.20/man/mysql_tzinfo_to_sql.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/mysql_tzinfo_to_sql.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysql_tzinfo_to_sql\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBMYSQL_TZINFO_TO_S" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBMYSQL_TZINFO_TO_S" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -113,7 +113,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/mysql_upgrade.1 mysql-5.5-5.5.22/man/mysql_upgrade.1
--- mysql-5.5-5.5.20/man/mysql_upgrade.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/mysql_upgrade.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysql_upgrade\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBMYSQL_UPGRADE\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBMYSQL_UPGRADE\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -426,7 +426,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/mysql_waitpid.1 mysql-5.5-5.5.22/man/mysql_waitpid.1
--- mysql-5.5-5.5.20/man/mysql_waitpid.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/mysql_waitpid.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysql_waitpid\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBMYSQL_WAITPID\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBMYSQL_WAITPID\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -120,7 +120,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/mysql_zap.1 mysql-5.5-5.5.22/man/mysql_zap.1
--- mysql-5.5-5.5.20/man/mysql_zap.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/mysql_zap.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBmysql_zap\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBMYSQL_ZAP\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBMYSQL_ZAP\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -116,7 +116,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/ndb_config.1 mysql-5.5-5.5.22/man/ndb_config.1
--- mysql-5.5-5.5.20/man/ndb_config.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/ndb_config.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBndb_config\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBNDB_CONFIG\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBNDB_CONFIG\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -424,7 +424,7 @@
 is run on a different host where
 localhost
 resolves to a different address (for example, on some versions of SUSE Linux, this is
-127\&.0\&.0\&.2)\&. In general, for best results, you should use numeric IP addresses for all MySQL Clustewr configuration values relating to hosts, or verify that all MySQL Cluster hosts handle
+127\&.0\&.0\&.2)\&. In general, for best results, you should use numeric IP addresses for all MySQL Cluster configuration values relating to hosts, or verify that all MySQL Cluster hosts handle
 localhost
 in the same fashion\&.
 .sp .5v
@@ -1247,7 +1247,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/ndb_cpcd.1 mysql-5.5-5.5.22/man/ndb_cpcd.1
--- mysql-5.5-5.5.20/man/ndb_cpcd.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/ndb_cpcd.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBndb_cpcd\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBNDB_CPCD\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBNDB_CPCD\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -30,7 +30,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/ndbd.8 mysql-5.5-5.5.22/man/ndbd.8
--- mysql-5.5-5.5.20/man/ndbd.8	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/ndbd.8	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBndbd\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBNDBD\FR" "8" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBNDBD\FR" "8" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -938,7 +938,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/ndb_delete_all.1 mysql-5.5-5.5.22/man/ndb_delete_all.1
--- mysql-5.5-5.5.20/man/ndb_delete_all.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/ndb_delete_all.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBndb_delete_all\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBNDB_DELETE_ALL\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBNDB_DELETE_ALL\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -86,7 +86,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/ndb_desc.1 mysql-5.5-5.5.22/man/ndb_desc.1
--- mysql-5.5-5.5.20/man/ndb_desc.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/ndb_desc.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBndb_desc\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBNDB_DESC\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBNDB_DESC\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -301,7 +301,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/ndbd_redo_log_reader.1 mysql-5.5-5.5.22/man/ndbd_redo_log_reader.1
--- mysql-5.5-5.5.20/man/ndbd_redo_log_reader.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/ndbd_redo_log_reader.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBndbd_redo_log_reader\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBNDBD_REDO_LOG_REA" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBNDBD_REDO_LOG_REA" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -151,7 +151,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/ndb_drop_index.1 mysql-5.5-5.5.22/man/ndb_drop_index.1
--- mysql-5.5-5.5.20/man/ndb_drop_index.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/ndb_drop_index.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBndb_drop_index\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBNDB_DROP_INDEX\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBNDB_DROP_INDEX\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -81,7 +81,7 @@
 Reading table information for completion of table and column names
 You can turn off this feature to get a quicker startup with \-A
 Welcome to the MySQL monitor\&.  Commands end with ; or \eg\&.
-Your MySQL connection id is 7 to server version: 5\&.1\&.56\-ndb\-7\&.1\&.19
+Your MySQL connection id is 7 to server version: 5\&.1\&.61\-ndb\-7\&.1\&.20
 Type \'help;\' or \'\eh\' for help\&. Type \'\ec\' to clear the buffer\&.
 mysql> \fBSHOW TABLES;\fR
 +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
@@ -112,7 +112,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/ndb_drop_table.1 mysql-5.5-5.5.22/man/ndb_drop_table.1
--- mysql-5.5-5.5.20/man/ndb_drop_table.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/ndb_drop_table.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBndb_drop_table\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBNDB_DROP_TABLE\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBNDB_DROP_TABLE\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -54,7 +54,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/ndb_error_reporter.1 mysql-5.5-5.5.22/man/ndb_error_reporter.1
--- mysql-5.5-5.5.20/man/ndb_error_reporter.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/ndb_error_reporter.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBndb_error_reporter\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBNDB_ERROR_REPORTE" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBNDB_ERROR_REPORTE" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -83,7 +83,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/ndb_mgm.1 mysql-5.5-5.5.22/man/ndb_mgm.1
--- mysql-5.5-5.5.20/man/ndb_mgm.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/ndb_mgm.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBndb_mgm\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBNDB_MGM\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBNDB_MGM\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -196,7 +196,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/ndb_mgmd.8 mysql-5.5-5.5.22/man/ndb_mgmd.8
--- mysql-5.5-5.5.20/man/ndb_mgmd.8	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/ndb_mgmd.8	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBndb_mgmd\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBNDB_MGMD\FR" "8" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBNDB_MGMD\FR" "8" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -565,7 +565,7 @@
 \fB\-\-initial\fR
 but cannot find a global configuration file, the management server cannot start\&.
 .sp
-When a management server starts, it checks for another managemen server in the same MySQL Cluster and tries to use the other management server\'s configuration data;
+When a management server starts, it checks for another management server in the same MySQL Cluster and tries to use the other management server\'s configuration data;
 \fBndb_mgmd\fR
 ignores
 \fB\-\-initial\fR
@@ -1138,7 +1138,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/ndbmtd.8 mysql-5.5-5.5.22/man/ndbmtd.8
--- mysql-5.5-5.5.20/man/ndbmtd.8	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/ndbmtd.8	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBndbmtd\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBNDBMTD\FR" "8" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBNDBMTD\FR" "8" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -84,14 +84,21 @@
 .sp -1
 .IP "  1." 4.2
 .\}
-You must set an appropriate value for the
-MaxNoOfExecutionThreads
-configuration parameter in the
-config\&.ini
-file\&. If you do not do so,
+Because
 \fBndbmtd\fR
-runs in single\-threaded mode; that is, it behaves like
-\fBndbd\fR\&.
+runs by default in single\-threaded mode (that is, it behaves like
+\fBndbd\fR), you must configure it to use multiple threads\&. This can be done by setting an appropriate value in the
+config\&.ini
+file for the
+MaxNoOfExecutionThreads
+configuration parameter or (in MySQL Cluster NDB 7\&.2\&.3 and later) the
+ThreadConfig
+configuration parameter\&. Using
+MaxNoOfExecutionThreads
+is simpler, but
+ThreadConfig
+offers more flexibility\&. For more information about these configuration parameters and their use, see
+Multi-Threading Configuration Parameters (ndbmtd)\&.
 .RE
 .sp
 .RS 4
@@ -106,163 +113,10 @@
 \fBndbmtd\fR
 processes in a somewhat different fashion from how these are generated by
 \fBndbd\fR
-failures\&.
+failures\&. These differences are discussed in more detail in the next few paragraphs\&.
 .RE
-.PP
-These differences are discussed in more detail in the next few paragraphs\&.
-.\" execution threads (MySQL Cluster)
-.\" MySQL Cluster: execution threads
-.\" ndbmtd: MaxNoOfExecutionThreads
-.\" MaxNoOfExecutionThreads: ndbmtd
 .\" ndbmtd: trace files
 .\" trace files: ndbmtd
-.PP
-\fBNumber of execution threads\fR. The
-MaxNoOfExecutionThreads
-configuration parameter is used to determine the number of local query handler (LQH) threads spawned by
-\fBndbmtd\fR\&. Although this parameter is set in
-[ndbd]
-or
-[ndbd default]
-sections of the
-config\&.ini
-file, it is exclusive to
-\fBndbmtd\fR
-and does not apply to
-\fBndbd\fR\&.
-.PP
-This parameter takes an integer value from 2 to 8 inclusive\&. Generally, you should set this parameter equal to the number of CPU cores on the data node host, as shown in the following table:
-.TS
-allbox tab(:);
-lB lB.
-T{
-Number of Cores
-T}:T{
-Recommended
-                  MaxNoOfExecutionThreads
-                  Value
-T}
-.T&
-l l
-l l
-l l.
-T{
-2
-T}:T{
-2
-T}
-T{
-4
-T}:T{
-4
-T}
-T{
-8 or more
-T}:T{
-8
-T}
-.TE
-.sp 1
-.PP
-(It is possible to set this parameter to other values within the permitted range, but these are automatically rounded as shown in the
-\fBValue Used\fR
-column of the next table in this section\&.)
-.PP
-The multi\-threaded data node process always spawns at least 4 threads, listed here:
-.sp
-.RS 4
-.ie n \{\
-\h'-04'\(bu\h'+03'\c
-.\}
-.el \{\
-.sp -1
-.IP \(bu 2.3
-.\}
-1 local query handler (LQH) thread
-.RE
-.sp
-.RS 4
-.ie n \{\
-\h'-04'\(bu\h'+03'\c
-.\}
-.el \{\
-.sp -1
-.IP \(bu 2.3
-.\}
-1 transaction coordinator (TC) thread
-.RE
-.sp
-.RS 4
-.ie n \{\
-\h'-04'\(bu\h'+03'\c
-.\}
-.el \{\
-.sp -1
-.IP \(bu 2.3
-.\}
-1 transporter thread
-.RE
-.sp
-.RS 4
-.ie n \{\
-\h'-04'\(bu\h'+03'\c
-.\}
-.el \{\
-.sp -1
-.IP \(bu 2.3
-.\}
-1 subscription manager (SUMA) thread
-.RE
-.PP
-Setting this parameter to a value between 4 and 8 inclusive causes additional LQH threads to be used by
-\fBndbmtd\fR
-(up to a maximum of 4 LQH threads), as shown in the following table:
-.TS
-allbox tab(:);
-lB lB lB.
-T{
-config\&.ini Value
-T}:T{
-Value Used
-T}:T{
-Number of LQH Threads Used
-T}
-.T&
-l l l
-l l l
-l l l.
-T{
-3
-T}:T{
-2
-T}:T{
-1
-T}
-T{
-5 or 6
-T}:T{
-4
-T}:T{
-2
-T}
-T{
-7
-T}:T{
-8
-T}:T{
-4
-T}
-.TE
-.sp 1
-.PP
-Setting this parameter outside the permitted range of values causes the management server to abort on startup with the error
-Error line \fInumber\fR: Illegal value \fIvalue\fR for parameter MaxNoOfExecutionThreads\&.
-.PP
-This parameter has a default value of 2\&.
-.PP
-Currently it is not possible to cause
-\fBndbmtd\fR
-to use more than 1 TC thread, although we plan to introduce this capability in a future MySQL Cluster release series\&.
 .\" MySQL Cluster: log files
 .\" log files (MySQL Cluster): ndbmtd
 .\" ndbmtd: trace files
@@ -340,7 +194,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/ndb_print_backup_file.1 mysql-5.5-5.5.22/man/ndb_print_backup_file.1
--- mysql-5.5-5.5.20/man/ndb_print_backup_file.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/ndb_print_backup_file.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBndb_print_backup_file\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBNDB_PRINT_BACKUP_" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBNDB_PRINT_BACKUP_" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -65,7 +65,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/ndb_print_schema_file.1 mysql-5.5-5.5.22/man/ndb_print_schema_file.1
--- mysql-5.5-5.5.20/man/ndb_print_schema_file.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/ndb_print_schema_file.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBndb_print_schema_file\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBNDB_PRINT_SCHEMA_" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBNDB_PRINT_SCHEMA_" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -59,7 +59,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/ndb_print_sys_file.1 mysql-5.5-5.5.22/man/ndb_print_sys_file.1
--- mysql-5.5-5.5.20/man/ndb_print_sys_file.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/ndb_print_sys_file.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBndb_print_sys_file\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBNDB_PRINT_SYS_FIL" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBNDB_PRINT_SYS_FIL" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -62,7 +62,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/ndb_restore.1 mysql-5.5-5.5.22/man/ndb_restore.1
--- mysql-5.5-5.5.20/man/ndb_restore.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/ndb_restore.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBndb_restore\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBNDB_RESTORE\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBNDB_RESTORE\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -428,7 +428,7 @@
 must be run twice\(emonce for each database node in the cluster where the backup was taken\&. However,
 \fBndb_restore\fR
 cannot always restore backups made from a cluster running one version of MySQL to a cluster running a different MySQL version\&. See
-\m[blue]\fBUpgrading and Downgrading MySQL Cluster\fR\m[]\&\s-2\u[1]\d\s+2, for more information\&.
+Section\ \&16.2.7, \(lqUpgrading and Downgrading MySQL Cluster NDB 7.2\(rq, for more information\&.
 .if n \{\
 .sp
 .\}
@@ -487,7 +487,7 @@
 TEXT
 and
 BLOB
-column values are always truncated to the first 256 bytes in the output; this cannot currrently be overridden when using
+column values are always truncated to the first 256 bytes in the output; this cannot currently be overridden when using
 \fB\-\-print_data\fR\&.
 .PP
 Several additional options are available for use with the
@@ -1408,7 +1408,7 @@
 .PP
 This option causes
 \fBndb_restore\fR
-to ignore any schema objects it does not recgnize while reading a native
+to ignore any schema objects it does not recognize while reading a native
 NDB
 backup\&. This can be used for restoring a backup made from a cluster running MySQL Cluster NDB 7\&.2 to a cluster running MySQL Cluster NDB 7\&.1\&.
 .PP
@@ -1538,7 +1538,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
@@ -1546,12 +1546,6 @@
 .PP
 You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or see http://www.gnu.org/licenses/.
 .sp
-.SH "NOTES"
-.IP " 1." 4
-Upgrading and Downgrading MySQL Cluster
-.RS 4
-\%http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-upgrade-downgrade.html
-.RE
 .SH "SEE ALSO"
 For more information, please refer to the MySQL Reference Manual,
 which may already be installed locally and which is also available
diff -Nru mysql-5.5-5.5.20/man/ndb_select_all.1 mysql-5.5-5.5.22/man/ndb_select_all.1
--- mysql-5.5-5.5.20/man/ndb_select_all.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/ndb_select_all.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBndb_select_all\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBNDB_SELECT_ALL\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBNDB_SELECT_ALL\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -361,7 +361,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/ndb_select_count.1 mysql-5.5-5.5.22/man/ndb_select_count.1
--- mysql-5.5-5.5.20/man/ndb_select_count.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/ndb_select_count.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBndb_select_count\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBNDB_SELECT_COUNT\" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBNDB_SELECT_COUNT\" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -64,7 +64,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/ndb_show_tables.1 mysql-5.5-5.5.22/man/ndb_show_tables.1
--- mysql-5.5-5.5.20/man/ndb_show_tables.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/ndb_show_tables.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBndb_show_tables\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBNDB_SHOW_TABLES\F" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBNDB_SHOW_TABLES\F" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -208,7 +208,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/ndb_size.pl.1 mysql-5.5-5.5.22/man/ndb_size.pl.1
--- mysql-5.5-5.5.20/man/ndb_size.pl.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/ndb_size.pl.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBndb_size.pl\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBNDB_SIZE\&.PL\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBNDB_SIZE\&.PL\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -260,7 +260,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/ndb_waiter.1 mysql-5.5-5.5.22/man/ndb_waiter.1
--- mysql-5.5-5.5.20/man/ndb_waiter.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/ndb_waiter.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBndb_waiter\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBNDB_WAITER\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBNDB_WAITER\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -381,7 +381,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/perror.1 mysql-5.5-5.5.22/man/perror.1
--- mysql-5.5-5.5.20/man/perror.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/perror.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBperror\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBPERROR\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBPERROR\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -181,7 +181,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/replace.1 mysql-5.5-5.5.22/man/replace.1
--- mysql-5.5-5.5.20/man/replace.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/replace.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBreplace\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBREPLACE\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBREPLACE\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -160,7 +160,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/resolveip.1 mysql-5.5-5.5.22/man/resolveip.1
--- mysql-5.5-5.5.20/man/resolveip.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/resolveip.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBresolveip\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBRESOLVEIP\FR" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBRESOLVEIP\FR" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -99,7 +99,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/man/resolve_stack_dump.1 mysql-5.5-5.5.22/man/resolve_stack_dump.1
--- mysql-5.5-5.5.20/man/resolve_stack_dump.1	2011-12-16 19:52:16.000000000 +0000
+++ mysql-5.5-5.5.22/man/resolve_stack_dump.1	2012-03-02 19:44:56.000000000 +0000
@@ -2,12 +2,12 @@
 .\"     Title: \fBresolve_stack_dump\fR
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.75.2 
-.\"      Date: 12/16/2011
+.\"      Date: 03/02/2012
 .\"    Manual: MySQL Database System
 .\"    Source: MySQL 5.5
 .\"  Language: English
 .\"
-.TH "\FBRESOLVE_STACK_DUM" "1" "12/16/2011" "MySQL 5\&.5" "MySQL Database System"
+.TH "\FBRESOLVE_STACK_DUM" "1" "03/02/2012" "MySQL 5\&.5" "MySQL Database System"
 .\" -----------------------------------------------------------------
 .\" * set default formatting
 .\" -----------------------------------------------------------------
@@ -117,7 +117,7 @@
 .SH "COPYRIGHT"
 .br
 .PP
-Copyright \(co 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+Copyright \(co 1997, 2012, Oracle and/or its affiliates. All rights reserved.
 .PP
 This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
 .PP
diff -Nru mysql-5.5-5.5.20/mysql-test/CMakeLists.txt mysql-5.5-5.5.22/mysql-test/CMakeLists.txt
--- mysql-5.5-5.5.20/mysql-test/CMakeLists.txt	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/CMakeLists.txt	2012-03-02 19:44:45.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
 # 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -Nru mysql-5.5-5.5.20/mysql-test/collections/default.experimental mysql-5.5-5.5.22/mysql-test/collections/default.experimental
--- mysql-5.5-5.5.20/mysql-test/collections/default.experimental	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/collections/default.experimental	2012-03-02 19:44:46.000000000 +0000
@@ -12,7 +12,6 @@
 main.sp @solaris                         # Bug#11753919 2010-01-20 alik Several test cases fail on Solaris with error Thread stack overrun
 main.wait_timeout @solaris               # Bug#11758972 2010-04-26 alik wait_timeout fails on OpenSolaris
 
-rpl.rpl_heartbeat_basic                  # BUG#12403008 2011-04-27 sven fails sporadically
 rpl.rpl_innodb_bug28430                  # Bug#11754425
 rpl.rpl_row_sp011  @solaris              # Bug#11753919 2011-07-25 sven Several test cases fail on Solaris with error Thread stack overrun
 
@@ -24,6 +23,4 @@
 sys_vars.ndb_log_update_as_write_basic
 sys_vars.have_ndbcluster_basic
 sys_vars.ndb_log_updated_only_basic
-sys_vars.query_cache_size_basic_64       # Bug#11748572 - 36747: ALLOCATING A LARGE QUERY CACHE IS NOT DETERMINISTIC
-sys_vars.query_cache_size_basic_32       # Bug#11748572 - 36747: ALLOCATING A LARGE QUERY CACHE IS NOT DETERMINISTIC
 sys_vars.rpl_init_slave_func		 # Bug#12535301 2011-05-09 andrei sys_vars.rpl_init_slave_func mismatches in daily-5.5
diff -Nru mysql-5.5-5.5.20/mysql-test/extra/rpl_tests/rpl_extra_col_master.test mysql-5.5-5.5.22/mysql-test/extra/rpl_tests/rpl_extra_col_master.test
--- mysql-5.5-5.5.20/mysql-test/extra/rpl_tests/rpl_extra_col_master.test	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/extra/rpl_tests/rpl_extra_col_master.test	2012-03-02 19:44:46.000000000 +0000
@@ -59,6 +59,8 @@
 #VARCHAR(M)    
 #
 
+--let $_saved_conn= $CURRENT_CONNECTION
+
 let $binformat = `SHOW VARIABLES LIKE '%binlog_format%'`;
 --echo
 --echo ***********************************************************
@@ -1017,3 +1019,5 @@
 connection master;
 DROP TABLE t5;
 sync_slave_with_master;
+
+--connection $_saved_conn
diff -Nru mysql-5.5-5.5.20/mysql-test/extra/rpl_tests/rpl_insert_id_pk.test mysql-5.5-5.5.22/mysql-test/extra/rpl_tests/rpl_insert_id_pk.test
--- mysql-5.5-5.5.20/mysql-test/extra/rpl_tests/rpl_insert_id_pk.test	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/extra/rpl_tests/rpl_insert_id_pk.test	2012-03-02 19:44:46.000000000 +0000
@@ -10,6 +10,8 @@
 # We also check how the foreign_key_check variable is replicated
 
 -- source include/master-slave.inc
+call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT.");
+
 #should work for both SBR and RBR
 
 create table t1(a int auto_increment, primary key(a));
@@ -50,6 +52,7 @@
 insert into t1 values (10);
 insert into t1 values (null),(null),(null);
 insert into t2 values (5,0);
+--disable_warnings ONCE
 insert into t2 (c) select * from t1 ORDER BY a;
 select * from t2 ORDER BY b;
 sync_slave_with_master;
diff -Nru mysql-5.5-5.5.20/mysql-test/extra/rpl_tests/rpl_multi_update2.test mysql-5.5-5.5.22/mysql-test/extra/rpl_tests/rpl_multi_update2.test
--- mysql-5.5-5.5.20/mysql-test/extra/rpl_tests/rpl_multi_update2.test	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/extra/rpl_tests/rpl_multi_update2.test	2012-03-02 19:44:46.000000000 +0000
@@ -17,6 +17,8 @@
 ) ENGINE=$engine_type;
 
 INSERT INTO t1 VALUES (NULL, 0);
+
+--disable_warnings ONCE
 INSERT INTO t1 SELECT NULL, 0 FROM t1;
 
 INSERT INTO t2 VALUES (NULL, 0), (NULL,1);
@@ -24,6 +26,7 @@
 SELECT * FROM t1 ORDER BY a;
 SELECT * FROM t2 ORDER BY a;
 
+--disable_warnings ONCE
 UPDATE t1, t2 SET t1.b = (t2.b+4) WHERE t1.a = t2.a;
 SELECT * FROM t1 ORDER BY a;
 SELECT * FROM t2 ORDER BY a;
diff -Nru mysql-5.5-5.5.20/mysql-test/extra/rpl_tests/rpl_multi_update3.test mysql-5.5-5.5.22/mysql-test/extra/rpl_tests/rpl_multi_update3.test
--- mysql-5.5-5.5.20/mysql-test/extra/rpl_tests/rpl_multi_update3.test	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/extra/rpl_tests/rpl_multi_update3.test	2012-03-02 19:44:46.000000000 +0000
@@ -18,6 +18,8 @@
 ) ENGINE=$engine_type;
 
 INSERT INTO t1 VALUES (NULL, 0);
+
+--disable_warnings ONCE
 INSERT INTO t1 SELECT NULL, 0 FROM t1;
 
 INSERT INTO t2 VALUES (NULL, 0), (NULL,1);
@@ -25,6 +27,7 @@
 SELECT * FROM t1 ORDER BY a;
 SELECT * FROM t2 ORDER BY a;
 
+--disable_warnings ONCE
 UPDATE t2, (SELECT a FROM t1 ORDER BY a) AS t SET t2.b = t.a+5 ;
 SELECT * FROM t1 ORDER BY a;
 SELECT * FROM t2 ORDER BY a;
diff -Nru mysql-5.5-5.5.20/mysql-test/extra/rpl_tests/rpl_multi_update.test mysql-5.5-5.5.22/mysql-test/extra/rpl_tests/rpl_multi_update.test
--- mysql-5.5-5.5.20/mysql-test/extra/rpl_tests/rpl_multi_update.test	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/extra/rpl_tests/rpl_multi_update.test	2012-03-02 19:44:46.000000000 +0000
@@ -1,5 +1,7 @@
 source include/master-slave.inc;
 
+call mtr.add_suppression('Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT.');
+
 eval CREATE TABLE t1 (
  a int unsigned not null auto_increment primary key,
  b int unsigned
@@ -11,6 +13,7 @@
 ) ENGINE=$engine_type;
 
 INSERT INTO t1 VALUES (NULL, 0);
+--disable_warnings ONCE
 INSERT INTO t1 SELECT NULL, 0 FROM t1;
 
 INSERT INTO t2 VALUES (NULL, 0), (NULL,1);
@@ -18,6 +21,7 @@
 SELECT * FROM t1 ORDER BY a;
 SELECT * FROM t2 ORDER BY a;
 
+--disable_warnings ONCE
 UPDATE t1, t2 SET t1.b = t2.b WHERE t1.a = t2.a;
 sync_slave_with_master;
 
diff -Nru mysql-5.5-5.5.20/mysql-test/extra/rpl_tests/rpl_start_stop_slave.test mysql-5.5-5.5.22/mysql-test/extra/rpl_tests/rpl_start_stop_slave.test
--- mysql-5.5-5.5.20/mysql-test/extra/rpl_tests/rpl_start_stop_slave.test	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/extra/rpl_tests/rpl_start_stop_slave.test	2012-03-02 19:44:46.000000000 +0000
@@ -177,3 +177,37 @@
 --connection master
 DROP TABLE t1;
 sync_slave_with_master;
+
+#
+# bug#3593869-64035 attempt to read a member of event_coordinates
+# referenced by NULL pointer crashes server.
+# Testing how out of valid range position value is handled with an error.
+#
+
+--connection master
+RESET MASTER;
+let $master_pos= query_get_value(SHOW MASTER STATUS, Position, 1);
+let $master_pos= `SELECT $master_pos + 1`;
+
+--connection slave
+--source include/stop_slave.inc
+--replace_regex /[0-9]+/MASTER_POS/
+eval CHANGE MASTER TO master_log_pos=$master_pos;
+
+START SLAVE;
+# ER_MASTER_FATAL_ERROR_READING_BINLOG 1236
+--let $slave_param=Last_IO_Errno
+--let $slave_param_value=1236
+--source include/wait_for_slave_param.inc
+
+--let $slave_field_result_replace= / at [0-9]*/ at XXX/
+--let $status_items= Last_IO_Errno, Last_IO_Error
+--source include/show_slave_status.inc
+
+--source include/stop_slave.inc
+RESET SLAVE;
+
+--connection master
+RESET MASTER;
+
+# Slave is stopped by bug#3593869-64035 tests.
diff -Nru mysql-5.5-5.5.20/mysql-test/include/have_32bit.inc mysql-5.5-5.5.22/mysql-test/include/have_32bit.inc
--- mysql-5.5-5.5.20/mysql-test/include/have_32bit.inc	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/include/have_32bit.inc	2012-03-02 19:44:46.000000000 +0000
@@ -3,10 +3,10 @@
 
 --disable_query_log
 --disable_warnings
-let $save = `SELECT @@global.sort_buffer_size`;
-SET @@global.sort_buffer_size = 4294967296;
-let $mach32 = `SELECT @@global.sort_buffer_size <= 4294967295`;
-eval SET @@global.sort_buffer_size = $save;
+let $save = `SELECT @@global.myisam_sort_buffer_size`;
+SET @@global.myisam_sort_buffer_size = 4294967296;
+let $mach32 = `SELECT @@global.myisam_sort_buffer_size <= 4294967295`;
+eval SET @@global.myisam_sort_buffer_size = $save;
 --enable_warnings
 --enable_query_log
 if (!$mach32)
diff -Nru mysql-5.5-5.5.20/mysql-test/include/have_example_plugin.inc mysql-5.5-5.5.22/mysql-test/include/have_example_plugin.inc
--- mysql-5.5-5.5.20/mysql-test/include/have_example_plugin.inc	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/include/have_example_plugin.inc	2012-03-02 19:44:46.000000000 +0000
@@ -15,7 +15,7 @@
 #
 # Check if --plugin-dir was setup for exampledb
 #
-if (`SELECT CONCAT('--plugin-dir=', @@plugin_dir) != '$EXAMPLE_PLUGIN_OPT'`) {
+if (`SELECT CONCAT('--plugin-dir=', REPLACE(@@plugin_dir, '\\\\', '/')) != '$EXAMPLE_PLUGIN_OPT/'`) {
   --skip Example plugin requires that --plugin-dir is set to the example plugin dir (either the .opt file does not contain \$EXAMPLE_PLUGIN_OPT or another plugin is in use)
 }
 enable_query_log;
diff -Nru mysql-5.5-5.5.20/mysql-test/include/have_semisync_plugin.inc mysql-5.5-5.5.22/mysql-test/include/have_semisync_plugin.inc
--- mysql-5.5-5.5.20/mysql-test/include/have_semisync_plugin.inc	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/include/have_semisync_plugin.inc	2012-03-02 19:44:46.000000000 +0000
@@ -16,6 +16,6 @@
 #
 # Check if --plugin-dir was setup for semisync
 #
-if (`SELECT CONCAT('--plugin-dir=', @@plugin_dir) != '$SEMISYNC_PLUGIN_OPT'`) {
+if (`SELECT CONCAT('--plugin-dir=', REPLACE(@@plugin_dir, '\\\\', '/')) != '$SEMISYNC_PLUGIN_OPT/'`) {
   --skip SEMISYNC plugin requires that --plugin-dir is set to the semisync plugin dir (either the .opt file does not contain \$SEMISYNC_PLUGIN_OPT or another plugin is in use)
 }
diff -Nru mysql-5.5-5.5.20/mysql-test/include/have_simple_parser.inc mysql-5.5-5.5.22/mysql-test/include/have_simple_parser.inc
--- mysql-5.5-5.5.20/mysql-test/include/have_simple_parser.inc	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/include/have_simple_parser.inc	2012-03-02 19:44:46.000000000 +0000
@@ -15,6 +15,6 @@
 #
 # Check if --plugin-dir was setup for simple parser
 #
-if (`SELECT CONCAT('--plugin-dir=', @@plugin_dir) != '$SIMPLE_PARSER_OPT'`) {
+if (`SELECT CONCAT('--plugin-dir=', REPLACE(@@plugin_dir, '\\\\', '/')) != '$SIMPLE_PARSER_OPT/'`) {
   --skip simple parser requires that --plugin-dir is set to the udf plugin dir (either the .opt file does not contain \$UDF_EXAMPLE_LIB_OPT or another plugin is in use)
 }
diff -Nru mysql-5.5-5.5.20/mysql-test/include/have_udf.inc mysql-5.5-5.5.22/mysql-test/include/have_udf.inc
--- mysql-5.5-5.5.20/mysql-test/include/have_udf.inc	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/include/have_udf.inc	2012-03-02 19:44:46.000000000 +0000
@@ -15,6 +15,6 @@
 #
 # Check if --plugin-dir was setup for udf
 #
-if (`SELECT CONCAT('--plugin-dir=', @@plugin_dir) != '$UDF_EXAMPLE_LIB_OPT'`) {
+if (`SELECT CONCAT('--plugin-dir=', REPLACE(@@plugin_dir, '\\\\', '/')) != '$UDF_EXAMPLE_LIB_OPT/'`) {
   --skip UDF requires that --plugin-dir is set to the udf plugin dir (either the .opt file does not contain \$UDF_EXAMPLE_LIB_OPT or another plugin is in use)
 }
diff -Nru mysql-5.5-5.5.20/mysql-test/include/libdaemon_example.ini mysql-5.5-5.5.22/mysql-test/include/libdaemon_example.ini
--- mysql-5.5-5.5.20/mysql-test/include/libdaemon_example.ini	1970-01-01 00:00:00.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/include/libdaemon_example.ini	2012-03-02 19:44:46.000000000 +0000
@@ -0,0 +1,9 @@
+#
+# Plugin configuration file. Place the following on a separate line:
+#
+# library binary file name (without .so or .dll)
+# component_name
+# [component_name] - additional components in plugin
+#
+liblibdaemon_example
+daemon_example
diff -Nru mysql-5.5-5.5.20/mysql-test/include/mtr_check.sql mysql-5.5-5.5.22/mysql-test/include/mtr_check.sql
--- mysql-5.5-5.5.20/mysql-test/include/mtr_check.sql	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/include/mtr_check.sql	2012-03-02 19:44:46.000000000 +0000
@@ -1,4 +1,4 @@
--- Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
+-- Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
 --
 -- This program is free software; you can redistribute it and/or modify
 -- it under the terms of the GNU General Public License as published by
diff -Nru mysql-5.5-5.5.20/mysql-test/include/show_slave_status.inc mysql-5.5-5.5.22/mysql-test/include/show_slave_status.inc
--- mysql-5.5-5.5.20/mysql-test/include/show_slave_status.inc	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/include/show_slave_status.inc	2012-03-02 19:44:46.000000000 +0000
@@ -55,6 +55,18 @@
 #     comma-separated list. Example:
 #
 #       --let $status_items= Master_Log_File, Relay_Master_Log_File
+#
+#   $slave_field_result_replace
+#     If set, one or more regex patterns for replacing variable
+#     text in the error message. Syntax as --replace-regex
+#
+#   $slave_sql_mode
+#     If set, change the slave sql mode during this macro, reverting
+#     to the previous on exit. Default sql_mode is NO_BACKSLASH_ESCAPES
+#     to allow replace '\' by '/' making paths OS independent. Example:
+#
+#       --let $slave_sql_mode= NO_BACKSLASH_ESCAPES
+#
 
 
 --let $_show_slave_status_items=$status_items
@@ -64,12 +76,30 @@
 }
 
 
+--let $_slave_sql_mode= NO_BACKSLASH_ESCAPES
+if ($slave_sql_mode)
+{
+  --let $_slave_sql_mode= $slave_sql_mode
+}
+--let $_previous_slave_sql_mode = `SELECT @@sql_mode`
+--disable_query_log
+eval SET sql_mode= '$_slave_sql_mode';
+--enable_query_log
+
+
 while ($_show_slave_status_items) 
 {
   --let $_show_slave_status_name= `SELECT SUBSTRING_INDEX('$_show_slave_status_items', ',', 1)`
   --let $_show_slave_status_items= `SELECT LTRIM(SUBSTRING('$_show_slave_status_items', LENGTH('$_show_slave_status_name') + 2))`
 
   --let $_show_slave_status_value= query_get_value(SHOW SLAVE STATUS, $_show_slave_status_name, 1)
+  --let $_slave_field_result_replace= /[\\]/\// $slave_field_result_replace
+  --replace_regex $_slave_field_result_replace
   --let $_show_slave_status_value= `SELECT REPLACE("$_show_slave_status_value", '$MYSQL_TEST_DIR', 'MYSQL_TEST_DIR')`
   --echo $_show_slave_status_name = '$_show_slave_status_value'
 }
+
+
+--disable_query_log
+eval SET sql_mode= '$_previous_slave_sql_mode';
+--enable_query_log
diff -Nru mysql-5.5-5.5.20/mysql-test/include/wait_for_ndb_to_binlog.inc mysql-5.5-5.5.22/mysql-test/include/wait_for_ndb_to_binlog.inc
--- mysql-5.5-5.5.20/mysql-test/include/wait_for_ndb_to_binlog.inc	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/include/wait_for_ndb_to_binlog.inc	2012-03-02 19:44:46.000000000 +0000
@@ -1,13 +1,11 @@
 # ==== Purpose ====
 # 
-#   Several test primitives from mysql-test/extra/rpl_tests 
-# shared for test cases for MyISAM, InnoDB, NDB and other 
-# engines. But for NDB all events will be added by NDB 
-# injector and now there are no way to detect the state of 
-# NDB injector therefore this primitive waits 5 sec 
-# if engine type is NDB. 
-#   In future that should be fixed by waiting of proper 
-# state of NDB injector. 
+# Several test primitives from mysql-test/extra/rpl_tests 
+# are shared for test cases for MyISAM, InnoDB, NDB and
+# other engines.
+# For NDB engine all events will be added by NDB injector
+# so tests only can continue after injector is ready, 
+# this test waits for proper injector thread state.
 #
 # ==== Usage ====
 #
@@ -17,25 +15,12 @@
 # ==== Parameters =====
 #
 # $engine_type
-#   Type of engine. If type is NDB then it waits $wait_time sec 
-#   
-# $wait_time
-#   Test will wait $wait_time seconds
-
-let $_wait_time= 5;
-
-if (!$wait_time) {
-  let $_wait_time= $wait_time;
-}
+#   Type of engine. If type is NDB then it waits for injector
+#   thread proper state.
 
 if (`SELECT UPPER(LEFT('$engine_type',3)) = 'NDB'`) {
-  while (!$_wait_time) {
-    let $_wait_time_internal= 10;
-    while (!$_wait_time_internal) {
-      sleep 0.1;
-      dec $_wait_time_internal;
-    }
-    dec $_wait_time;
-  }
+  let $show_statement= SHOW PROCESSLIST;
+  let $field= State;
+  let $condition= = 'Waiting for event from ndbcluster';
+  source include/wait_show_condition.inc;
 }
-
diff -Nru mysql-5.5-5.5.20/mysql-test/include/wait_for_slave_io_error.inc mysql-5.5-5.5.22/mysql-test/include/wait_for_slave_io_error.inc
--- mysql-5.5-5.5.20/mysql-test/include/wait_for_slave_io_error.inc	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/include/wait_for_slave_io_error.inc	2012-03-02 19:44:46.000000000 +0000
@@ -33,6 +33,10 @@
 #     (e.g., temporary connection error) and does not cause the slave
 #     IO thread to stop.
 # 
+#   $slave_io_error_replace
+#     If set, one or more regex patterns for replacing variable
+#     text in the error message. Syntax as --replace-regex
+#
 #   $slave_timeout
 #     See include/wait_for_slave_param.inc
 # 
@@ -72,6 +76,7 @@
 {
   --let $_wait_for_slave_io_error_old_status_items= $status_items
   --let $status_items= Last_IO_Error
+  --let $slave_field_result_replace= $slave_io_error_replace
   --source include/show_slave_status.inc
   --let $status_items= $_wait_for_slave_io_error_old_status_items
 }
diff -Nru mysql-5.5-5.5.20/mysql-test/mysql-stress-test.pl mysql-5.5-5.5.22/mysql-test/mysql-stress-test.pl
--- mysql-5.5-5.5.20/mysql-test/mysql-stress-test.pl	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/mysql-stress-test.pl	2012-03-02 19:44:46.000000000 +0000
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Library General Public
diff -Nru mysql-5.5-5.5.20/mysql-test/mysql-test-run.pl mysql-5.5-5.5.22/mysql-test/mysql-test-run.pl
--- mysql-5.5-5.5.20/mysql-test/mysql-test-run.pl	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/mysql-test-run.pl	2012-03-02 19:44:46.000000000 +0000
@@ -1,7 +1,7 @@
 #!/usr/bin/perl
 # -*- cperl -*-
 
-# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff -Nru mysql-5.5-5.5.20/mysql-test/r/bigint.result mysql-5.5-5.5.22/mysql-test/r/bigint.result
--- mysql-5.5-5.5.20/mysql-test/r/bigint.result	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/r/bigint.result	2012-03-02 19:44:46.000000000 +0000
@@ -438,3 +438,67 @@
 Note	1003	select 1 AS `1` from `test`.`t1` where ((`test`.`t1`.`a` = 0) and ('0' = `test`.`t1`.`b`))
 DROP TABLE t1;
 # End of 5.1 tests
+#
+# Bug#13463415 63502: INCORRECT RESULTS OF BIGINT AND DECIMAL COMPARISON
+#
+CREATE TABLE t_bigint(id BIGINT);
+INSERT INTO t_bigint VALUES (1), (2);
+SELECT id, id >= 1.1 FROM t_bigint;
+id	id >= 1.1
+1	0
+2	1
+SELECT id, 1.1 <= id FROM t_bigint;
+id	1.1 <= id
+1	0
+2	1
+SELECT id, id = 1.1 FROM t_bigint;
+id	id = 1.1
+1	0
+2	0
+SELECT id, 1.1 = id FROM t_bigint;
+id	1.1 = id
+1	0
+2	0
+SELECT * from t_bigint WHERE id = 1.1;
+id
+SELECT * from t_bigint WHERE id = 1.1e0;
+id
+SELECT * from t_bigint WHERE id = '1.1';
+id
+SELECT * from t_bigint WHERE id = '1.1e0';
+id
+SELECT * from t_bigint WHERE id IN (1.1, 2.2);
+id
+SELECT * from t_bigint WHERE id IN (1.1e0, 2.2e0);
+id
+SELECT * from t_bigint WHERE id IN ('1.1', '2.2');
+id
+SELECT * from t_bigint WHERE id IN ('1.1e0', '2.2e0');
+id
+SELECT * from t_bigint WHERE id BETWEEN 1.1 AND 1.9;
+id
+SELECT * from t_bigint WHERE id BETWEEN 1.1e0 AND 1.9e0;
+id
+SELECT * from t_bigint WHERE id BETWEEN '1.1' AND '1.9';
+id
+SELECT * from t_bigint WHERE id BETWEEN '1.1e0' AND '1.9e0';
+id
+DROP TABLE t_bigint;
+#
+# Bug#11758543 50756: BIGINT '100' MATCHES 1.001E2
+#
+CREATE TABLE t1 (a BIGINT);
+INSERT INTO t1 VALUES (1);
+SELECT * FROM t1 WHERE coalesce(a) BETWEEN 0 and 0.9;
+a
+SELECT * FROM t1 WHERE coalesce(a)=0.9;
+a
+SELECT * FROM t1 WHERE coalesce(a) in (0.8,0.9);
+a
+SELECT * FROM t1 WHERE a BETWEEN 0 AND 0.9;
+a
+SELECT * FROM t1 WHERE a=0.9;
+a
+SELECT * FROM t1 WHERE a IN (0.8,0.9);
+a
+DROP TABLE t1;
diff -Nru mysql-5.5-5.5.20/mysql-test/r/bug13633383.result mysql-5.5-5.5.22/mysql-test/r/bug13633383.result
--- mysql-5.5-5.5.20/mysql-test/r/bug13633383.result	1970-01-01 00:00:00.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/r/bug13633383.result	2012-03-02 19:44:46.000000000 +0000
@@ -0,0 +1,53 @@
+#
+# Bug#13633383 63183: SMALL SORT_BUFFER_SIZE CRASH IN MERGE_BUFFERS
+#
+CREATE TABLE t1 (
+`a` int(11) DEFAULT NULL,
+`col432` bit(8) DEFAULT NULL,
+`col433` multipoint DEFAULT NULL,
+`col434` polygon DEFAULT NULL,
+`col435` decimal(50,17) unsigned DEFAULT NULL,
+`col436` geometry NOT NULL,
+`col437` tinyblob NOT NULL,
+`col438` multipolygon DEFAULT NULL,
+`col439` mediumblob NOT NULL,
+`col440` tinyblob NOT NULL,
+`col441` double unsigned DEFAULT NULL
+);
+CREATE TABLE t2 (
+`a` multipoint DEFAULT NULL,
+`col460` date DEFAULT NULL,
+`col461` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+`col462` date NOT NULL,
+`col463` varbinary(89) NOT NULL,
+`col464` year(4) DEFAULT NULL,
+`col465` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
+`col466` varchar(236) CHARACTER SET utf8 NOT NULL,
+`col467` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
+);
+CREATE TABLE t3 (
+`FTS_DOC_ID` bigint(20) unsigned NOT NULL,
+`col577` datetime DEFAULT NULL,
+`col579` bit(38) NOT NULL,
+`col580` varchar(93) NOT NULL,
+`col581` datetime DEFAULT NULL,
+`col583` multipolygon DEFAULT NULL,
+`col584` bit(47) NOT NULL
+);
+set session sort_buffer_size= 32768;
+select  col435
+from t3
+natural right outer join t1
+natural right outer join t2 a
+left outer join t2 b on 1
+group by
+repeat('a',10000) desc,
+repeat('a',10000)
+with rollup
+;
+col435
+0.00000000000000000
+0.00000000000000000
+0.00000000000000000
+set session sort_buffer_size= default;
+DROP TABLE  t1, t2, t3;
diff -Nru mysql-5.5-5.5.20/mysql-test/r/ctype_utf8.result mysql-5.5-5.5.22/mysql-test/r/ctype_utf8.result
--- mysql-5.5-5.5.20/mysql-test/r/ctype_utf8.result	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/r/ctype_utf8.result	2012-03-02 19:44:46.000000000 +0000
@@ -1928,6 +1928,30 @@
 SELECT HEX(INSERT(_utf8 0xD18FD18E, 2, 1, 0x20));
 HEX(INSERT(_utf8 0xD18FD18E, 2, 1, 0x20))
 D120D18E
+#
+# Bug#11752408 - 43593: DUMP/BACKUP/RESTORE/UPGRADE TOOLS FAILS BECAUSE OF UTF8_GENERAL_CI
+#
+CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_general_mysql500_ci);
+INSERT INTO t1 VALUES ('a'),('r'),('s'),(_latin1 0xDF),(_latin1 0xF7),('t'),('z');
+SELECT * FROM t1 ORDER BY a;
+a
+a
+r
+s
+t
+z
+ß
+÷
+SELECT a, COUNT(*) FROM t1 GROUP BY a;
+a	COUNT(*)
+a	1
+r	1
+s	1
+t	1
+z	1
+ß	1
+÷	1
+DROP TABLE t1;
 End of 5.1 tests
 Start of 5.4 tests
 SET NAMES utf8mb3;
diff -Nru mysql-5.5-5.5.20/mysql-test/r/func_in.result mysql-5.5-5.5.22/mysql-test/r/func_in.result
--- mysql-5.5-5.5.20/mysql-test/r/func_in.result	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/r/func_in.result	2012-03-02 19:44:46.000000000 +0000
@@ -469,6 +469,8 @@
 HEX(a)
 7FFFFFFFFFFFFFFE
 7FFFFFFFFFFFFFFF
+Warnings:
+Warning	1292	Truncated incorrect DOUBLE value: 'abc'
 CREATE TABLE t3 (a BIGINT UNSIGNED);
 INSERT INTO t3 VALUES (9223372036854775551);
 SELECT HEX(a) FROM t3 WHERE a IN (9223372036854775807, 42);
diff -Nru mysql-5.5-5.5.20/mysql-test/r/func_str.result mysql-5.5-5.5.22/mysql-test/r/func_str.result
--- mysql-5.5-5.5.20/mysql-test/r/func_str.result	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/r/func_str.result	2012-03-02 19:44:46.000000000 +0000
@@ -2826,5 +2826,41 @@
 ((0xf3) * (rpad(1.0,2048,1)) << (0xcc))
 0
 #
+# Bug#13359121 LARGE NUMBERS, /STRINGS/DTOA.C:662:
+#              BALLOC: ASSERTION `K <= 15' FAILED.
+# Bug#12985021 SIMPLE QUERY WITH DECIMAL NUMBERS TAKE AN 
+#              EXTRAORDINARY LONG TIME TO EXECUTE
+SELECT @tmp_max:= @@global.max_allowed_packet;
+@tmp_max:= @@global.max_allowed_packet
+1048576
+SET @@global.max_allowed_packet=1024*1024*1024;
+SELECT @@global.max_allowed_packet;
+@@global.max_allowed_packet
+1073741824
+do
+format(rpad('111111111.1',
+1111111,
+'999999999999999999999999999999999999999999'),0,'be_BY')
+;
+DO
+round(
+concat( (
+coalesce( (
+linefromwkb('2147483648',
+-b'1111111111111111111111111111111111111111111')),
+( convert('[.DC2.]',decimal(30,30)) ),
+bit_count('')
+) ),
+( lpad( ( elt('01','}:K5')),
+sha1('P'),
+( ( select '-9223372036854775808.1' > all (select '')))
+)
+)
+)
+);
+Warnings:
+Warning	1292	Truncated incorrect DECIMAL value: '[.DC2.]'
+SET @@global.max_allowed_packet:= @tmp_max;
+#
 # End of 5.5 tests
 #
diff -Nru mysql-5.5-5.5.20/mysql-test/r/func_time.result mysql-5.5-5.5.22/mysql-test/r/func_time.result
--- mysql-5.5-5.5.20/mysql-test/r/func_time.result	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/r/func_time.result	2012-03-02 19:44:46.000000000 +0000
@@ -1402,8 +1402,220 @@
 # Bug#12584302 AFTER FIX FOR #12403504: ASSERTION FAILED: DELSUM+(INT) Y/4-TEMP > 0,
 #
 DO WEEK((DATE_ADD((CAST(0 AS DATE)), INTERVAL 1 YEAR_MONTH)), 5);
+#
+# BUG#13458237 INCONSISTENT HANDLING OF INVALIDE DATES WITH ZERO DAY
+# SIMILAR TO '2009-10-00' 
+#
+SELECT
+DATE('20091000'),
+STR_TO_DATE('200910','%Y%m'),
+LAST_DAY('2009-10-00'),
+LAST_DAY(DATE('2009-10-00')),
+LAST_DAY(DATE'2009-10-00'),
+LAST_DAY(STR_TO_DATE('200910','%Y%m')),
+WEEK('2009-10-00'),
+WEEK(DATE('2009-10-00')),
+WEEK(DATE'2009-10-00'),
+WEEK(STR_TO_DATE('200910','%Y%m')),
+WEEKOFYEAR('2009-10-00'),
+WEEKOFYEAR(DATE('2009-10-00')),
+WEEKOFYEAR(DATE'2009-10-00'),
+WEEKOFYEAR(STR_TO_DATE('200910','%Y%m')),
+DAYOFYEAR('2009-10-00'),
+DAYOFYEAR(DATE('2009-10-00')),
+DAYOFYEAR(DATE'2009-10-00'),
+DAYOFYEAR(STR_TO_DATE('200910','%Y%m')),
+WEEKDAY('2009-10-00'),
+WEEKDAY(DATE('2009-10-00')),
+WEEKDAY(DATE'2009-10-00'),
+WEEKDAY(STR_TO_DATE('200910','%Y%m')),
+TO_DAYs('2009-10-00'),
+TO_DAYs(DATE('2009-10-00')),
+TO_DAYs(DATE'2009-10-00'),
+TO_DAYs(STR_TO_DATE('200910','%Y%m'));
+DATE('20091000')	2009-10-00
+STR_TO_DATE('200910','%Y%m')	2009-10-00
+LAST_DAY('2009-10-00')	NULL
+LAST_DAY(DATE('2009-10-00'))	2009-10-31
+LAST_DAY(DATE'2009-10-00')	NULL
+LAST_DAY(STR_TO_DATE('200910','%Y%m'))	2009-10-31
+WEEK('2009-10-00')	NULL
+WEEK(DATE('2009-10-00'))	39
+WEEK(DATE'2009-10-00')	NULL
+WEEK(STR_TO_DATE('200910','%Y%m'))	NULL
+WEEKOFYEAR('2009-10-00')	NULL
+WEEKOFYEAR(DATE('2009-10-00'))	40
+WEEKOFYEAR(DATE'2009-10-00')	NULL
+WEEKOFYEAR(STR_TO_DATE('200910','%Y%m'))	NULL
+DAYOFYEAR('2009-10-00')	NULL
+DAYOFYEAR(DATE('2009-10-00'))	273
+DAYOFYEAR(DATE'2009-10-00')	NULL
+DAYOFYEAR(STR_TO_DATE('200910','%Y%m'))	NULL
+WEEKDAY('2009-10-00')	NULL
+WEEKDAY(DATE('2009-10-00'))	2
+WEEKDAY(DATE'2009-10-00')	NULL
+WEEKDAY(STR_TO_DATE('200910','%Y%m'))	NULL
+TO_DAYs('2009-10-00')	NULL
+TO_DAYs(DATE('2009-10-00'))	734045
+TO_DAYs(DATE'2009-10-00')	NULL
+TO_DAYs(STR_TO_DATE('200910','%Y%m'))	NULL
+Warnings:
+Level	Warning
+Code	1292
+Message	Incorrect datetime value: '2009-10-00'
+Level	Warning
+Code	1292
+Message	Incorrect datetime value: '2009-10-00'
+Level	Warning
+Code	1292
+Message	Incorrect datetime value: '2009-10-00'
+Level	Warning
+Code	1292
+Message	Incorrect datetime value: '2009-10-00'
+Level	Warning
+Code	1411
+Message	Incorrect datetime value: '200910' for function str_to_date
+Level	Warning
+Code	1292
+Message	Incorrect datetime value: '2009-10-00'
+Level	Warning
+Code	1292
+Message	Incorrect datetime value: '2009-10-00'
+Level	Warning
+Code	1411
+Message	Incorrect datetime value: '200910' for function str_to_date
+Level	Warning
+Code	1292
+Message	Incorrect datetime value: '2009-10-00'
+Level	Warning
+Code	1292
+Message	Incorrect datetime value: '2009-10-00'
+Level	Warning
+Code	1411
+Message	Incorrect datetime value: '200910' for function str_to_date
+Level	Warning
+Code	1292
+Message	Incorrect datetime value: '2009-10-00'
+Level	Warning
+Code	1292
+Message	Incorrect datetime value: '2009-10-00'
+Level	Warning
+Code	1411
+Message	Incorrect datetime value: '200910' for function str_to_date
+Level	Warning
+Code	1292
+Message	Incorrect datetime value: '2009-10-00'
+Level	Warning
+Code	1292
+Message	Incorrect datetime value: '2009-10-00'
+Level	Warning
+Code	1411
+Message	Incorrect datetime value: '200910' for function str_to_date
+SELECT
+DATE('00000100'),
+STR_TO_DATE('000001','%Y%m'),
+LAST_DAY('0000-01-00'),
+LAST_DAY(DATE('0000-01-00')),
+LAST_DAY(DATE'0000-01-00'),
+LAST_DAY(STR_TO_DATE('000001','%Y%m')),
+WEEK('0000-01-00'),
+WEEK(DATE('0000-01-00')),
+WEEK(DATE'0000-01-00'),
+WEEK(STR_TO_DATE('000001','%Y%m')),
+WEEKOFYEAR('0000-01-00'),
+WEEKOFYEAR(DATE('0000-01-00')),
+WEEKOFYEAR(DATE'0000-01-00'),
+WEEKOFYEAR(STR_TO_DATE('000001','%Y%m')),
+DAYOFYEAR('0000-01-00'),
+DAYOFYEAR(DATE('0000-01-00')),
+DAYOFYEAR(DATE'0000-01-00'),
+DAYOFYEAR(STR_TO_DATE('000001','%Y%m')),
+WEEKDAY('0000-01-00'),
+WEEKDAY(DATE('0000-01-00')),
+WEEKDAY(DATE'0000-01-00'),
+WEEKDAY(STR_TO_DATE('000001','%Y%m')),
+TO_DAYs('0000-01-00'),
+TO_DAYs(DATE('0000-01-00')),
+TO_DAYs(DATE'0000-01-00'),
+TO_DAYs(STR_TO_DATE('000001','%Y%m'));
+DATE('00000100')	0000-01-00
+STR_TO_DATE('000001','%Y%m')	0000-01-00
+LAST_DAY('0000-01-00')	NULL
+LAST_DAY(DATE('0000-01-00'))	0000-01-31
+LAST_DAY(DATE'0000-01-00')	NULL
+LAST_DAY(STR_TO_DATE('000001','%Y%m'))	0000-01-31
+WEEK('0000-01-00')	NULL
+WEEK(DATE('0000-01-00'))	52
+WEEK(DATE'0000-01-00')	NULL
+WEEK(STR_TO_DATE('000001','%Y%m'))	NULL
+WEEKOFYEAR('0000-01-00')	NULL
+WEEKOFYEAR(DATE('0000-01-00'))	52
+WEEKOFYEAR(DATE'0000-01-00')	NULL
+WEEKOFYEAR(STR_TO_DATE('000001','%Y%m'))	NULL
+DAYOFYEAR('0000-01-00')	NULL
+DAYOFYEAR(DATE('0000-01-00'))	0
+DAYOFYEAR(DATE'0000-01-00')	NULL
+DAYOFYEAR(STR_TO_DATE('000001','%Y%m'))	NULL
+WEEKDAY('0000-01-00')	NULL
+WEEKDAY(DATE('0000-01-00'))	5
+WEEKDAY(DATE'0000-01-00')	NULL
+WEEKDAY(STR_TO_DATE('000001','%Y%m'))	NULL
+TO_DAYs('0000-01-00')	NULL
+TO_DAYs(DATE('0000-01-00'))	0
+TO_DAYs(DATE'0000-01-00')	NULL
+TO_DAYs(STR_TO_DATE('000001','%Y%m'))	NULL
 Warnings:
-Warning	1292	Incorrect datetime value: '0'
+Level	Warning
+Code	1292
+Message	Incorrect datetime value: '0000-01-00'
+Level	Warning
+Code	1292
+Message	Incorrect datetime value: '0000-01-00'
+Level	Warning
+Code	1292
+Message	Incorrect datetime value: '0000-01-00'
+Level	Warning
+Code	1292
+Message	Incorrect datetime value: '0000-01-00'
+Level	Warning
+Code	1411
+Message	Incorrect datetime value: '000001' for function str_to_date
+Level	Warning
+Code	1292
+Message	Incorrect datetime value: '0000-01-00'
+Level	Warning
+Code	1292
+Message	Incorrect datetime value: '0000-01-00'
+Level	Warning
+Code	1411
+Message	Incorrect datetime value: '000001' for function str_to_date
+Level	Warning
+Code	1292
+Message	Incorrect datetime value: '0000-01-00'
+Level	Warning
+Code	1292
+Message	Incorrect datetime value: '0000-01-00'
+Level	Warning
+Code	1411
+Message	Incorrect datetime value: '000001' for function str_to_date
+Level	Warning
+Code	1292
+Message	Incorrect datetime value: '0000-01-00'
+Level	Warning
+Code	1292
+Message	Incorrect datetime value: '0000-01-00'
+Level	Warning
+Code	1411
+Message	Incorrect datetime value: '000001' for function str_to_date
+Level	Warning
+Code	1292
+Message	Incorrect datetime value: '0000-01-00'
+Level	Warning
+Code	1292
+Message	Incorrect datetime value: '0000-01-00'
+Level	Warning
+Code	1411
+Message	Incorrect datetime value: '000001' for function str_to_date
 End of 5.1 tests
 #
 # Bug#57039: constant subtime expression returns incorrect result.
@@ -1433,6 +1645,21 @@
 SET storage_engine=NULL;
 ERROR 42000: Variable 'storage_engine' can't be set to the value of 'NULL'
 #
+# BUG#13354387 - CRASH IN IN MY_DECIMAL::OPERATOR FOR VIEW AND FUNCTION UNIX_TIMESTAMP 
+# Part1 (5.5)
+SET time_zone='+03:00';
+CREATE TABLE t1 (a DATETIME NOT NULL);
+INSERT INTO t1 VALUES ('2009-09-20 07:32:39.06');
+INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00');
+CREATE VIEW v1 AS SELECT * FROM t1;
+SELECT CAST(UNIX_TIMESTAMP(a) AS DECIMAL(25,3)) AS c1 FROM v1 ORDER BY 1;
+c1
+0.000
+1253421159.000
+DROP VIEW v1;
+DROP TABLE t1;
+SET time_zone=DEFAULT;
+#
 # Bug #59686 crash in String::copy() with time data type
 #
 SELECT min(timestampadd(month, 1>'', from_days('%Z')));
diff -Nru mysql-5.5-5.5.20/mysql-test/r/init_connect.result mysql-5.5-5.5.22/mysql-test/r/init_connect.result
--- mysql-5.5-5.5.20/mysql-test/r/init_connect.result	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/r/init_connect.result	2012-03-02 19:44:46.000000000 +0000
@@ -20,6 +20,8 @@
 616263
 set GLOBAL init_connect="adsfsdfsdfs";
 select @a;
+ERROR 08S01: Aborted connection to db: 'test' user: 'user_1' host: 'localhost' (init_connect command failed)
+select @a;
 Got one of the listed errors
 drop table t1;
 End of 4.1 tests
diff -Nru mysql-5.5-5.5.20/mysql-test/r/join_outer.result mysql-5.5-5.5.22/mysql-test/r/join_outer.result
--- mysql-5.5-5.5.20/mysql-test/r/join_outer.result	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/r/join_outer.result	2012-03-02 19:44:46.000000000 +0000
@@ -1644,4 +1644,62 @@
 NULL
 NULL
 DROP TABLE h,m,k;
+
+# BUG#12567331 - INFINITE LOOP WHEN RESOLVING AN ALIASED COLUMN
+# USED IN GROUP BY
+
+CREATE TABLE t1 (
+col_varchar_1024_latin1_key varchar(1024),
+col_varchar_10_latin1 varchar(10),
+col_int int(11),
+pk int(11)
+);
+CREATE TABLE t2 (
+col_int_key int(11),
+col_int int(11),
+pk int(11)
+);
+PREPARE prep_stmt_9846 FROM '
+SELECT alias1.pk AS field1 FROM
+t1 AS alias1
+LEFT JOIN
+( 
+  t2 AS alias2
+  RIGHT  JOIN
+  ( 
+    t2 AS alias3
+    JOIN t1 AS alias4
+    ON 1
+  )
+  ON 1
+)
+ON 1
+GROUP BY field1';
+execute prep_stmt_9846;
+field1
+execute prep_stmt_9846;
+field1
+drop table t1,t2;
+#
+# Bug #11765810	58813: SERVER THREAD HANGS WHEN JOIN + WHERE + GROUP BY
+# IS EXECUTED TWICE FROM P
+#
+CREATE TABLE t1 ( a INT ) ENGINE = MYISAM;
+INSERT INTO t1 VALUES (1);
+PREPARE prep_stmt FROM '
+ SELECT 1 AS f FROM t1
+ LEFT JOIN t1 t2
+  RIGHT JOIN t1 t3
+    JOIN t1 t4
+   ON 1
+  ON 1
+ ON 1
+ GROUP BY f';
+EXECUTE prep_stmt;
+f
+1
+EXECUTE prep_stmt;
+f
+1
+DROP TABLE t1;
 End of 5.1 tests
diff -Nru mysql-5.5-5.5.20/mysql-test/r/multi_update.result mysql-5.5-5.5.22/mysql-test/r/multi_update.result
--- mysql-5.5-5.5.20/mysql-test/r/multi_update.result	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/r/multi_update.result	2012-03-02 19:44:46.000000000 +0000
@@ -1,3 +1,4 @@
+CALL mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT.");
 drop table if exists t1,t2,t3;
 drop database if exists mysqltest;
 drop view if exists v1;
@@ -605,7 +606,8 @@
 show binlog events from ;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
 master-bin.000001	#	Query	#	#	BEGIN
-master-bin.000001	#	Query	#	#	use `test`; UPDATE t2,t1 SET t2.a=t1.a+2
+master-bin.000001	#	Table_map	#	#	table_id: # (test.t2)
+master-bin.000001	#	Update_rows	#	#	table_id: # flags: STMT_END_F
 master-bin.000001	#	Query	#	#	COMMIT
 delete from t1;
 delete from t2;
@@ -617,7 +619,8 @@
 show binlog events from ;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
 master-bin.000001	#	Query	#	#	BEGIN
-master-bin.000001	#	Query	#	#	use `test`; UPDATE t2,t1  SET t2.a=t2.b where t2.a=t1.a
+master-bin.000001	#	Table_map	#	#	table_id: # (test.t2)
+master-bin.000001	#	Update_rows	#	#	table_id: # flags: STMT_END_F
 master-bin.000001	#	Query	#	#	COMMIT
 drop table t1, t2;
 set @@session.binlog_format= @sav_binlog_format;
diff -Nru mysql-5.5-5.5.20/mysql-test/r/myisam.result mysql-5.5-5.5.22/mysql-test/r/myisam.result
--- mysql-5.5-5.5.20/mysql-test/r/myisam.result	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/r/myisam.result	2012-03-02 19:44:46.000000000 +0000
@@ -2438,6 +2438,19 @@
 test.t1	check	status	OK
 DROP TABLE t1;
 SET GLOBAL myisam_use_mmap=default;
+#
+# BUG 11756869 - 48848: MYISAMCHK DOING SORT RECOVER IN CERTAIN
+#                       CASES RESETS DATA POINTER TO SMAL
+#
+CREATE TABLE t1(a INT, KEY(a));
+ALTER TABLE t1 DISABLE KEYS;
+SET @before:= (SELECT MAX_DATA_LENGTH FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='t1' AND TABLE_SCHEMA='test');
+FLUSH TABLES;
+SET @after:= (SELECT MAX_DATA_LENGTH FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='t1' AND TABLE_SCHEMA='test');
+SELECT @before=@after;
+@before=@after
+1
+DROP TABLE t1;
 End of 5.1 tests
 #
 # Bug#51327 MyISAM table is automatically repaired on ALTER
diff -Nru mysql-5.5-5.5.20/mysql-test/r/mysqld--help-notwin.result mysql-5.5-5.5.22/mysql-test/r/mysqld--help-notwin.result
--- mysql-5.5-5.5.20/mysql-test/r/mysqld--help-notwin.result	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/r/mysqld--help-notwin.result	2012-03-02 19:44:46.000000000 +0000
@@ -175,7 +175,8 @@
  GROUP_CONCAT()
  -?, --help          Display this help and exit.
  --ignore-builtin-innodb 
- Disable initialization of builtin InnoDB plugin
+ DEPRECATED. This option will be removed in future
+ releases. Disable initialization of builtin InnoDB plugin
  --init-connect=name Command(s) that are executed for each new connection
  --init-file=name    Read SQL commands from this file at startup
  --init-rpl-role=name 
@@ -671,6 +672,9 @@
  replication.
  --sql-mode=name     Syntax: sql-mode=mode[,mode[,mode...]]. See the manual
  for the complete list of valid sql modes
+ --stored-program-cache=# 
+ The soft upper limit for number of cached stored routines
+ for one connection.
  -s, --symbolic-links 
  Enable symbolic link support.
  --sync-binlog=#     Synchronously flush binary log to disk after every #th
@@ -935,6 +939,7 @@
 sort-buffer-size 2097152
 sporadic-binlog-dump-fail FALSE
 sql-mode 
+stored-program-cache 256
 symbolic-links FALSE
 sync-binlog 0
 sync-frm TRUE
diff -Nru mysql-5.5-5.5.20/mysql-test/r/mysqld--help-win.result mysql-5.5-5.5.22/mysql-test/r/mysqld--help-win.result
--- mysql-5.5-5.5.20/mysql-test/r/mysqld--help-win.result	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/r/mysqld--help-win.result	2012-03-02 19:44:46.000000000 +0000
@@ -175,7 +175,8 @@
  GROUP_CONCAT()
  -?, --help          Display this help and exit.
  --ignore-builtin-innodb 
- Disable initialization of builtin InnoDB plugin
+ DEPRECATED. This option will be removed in future
+ releases. Disable initialization of builtin InnoDB plugin
  --init-connect=name Command(s) that are executed for each new connection
  --init-file=name    Read SQL commands from this file at startup
  --init-rpl-role=name 
@@ -679,6 +680,9 @@
  --sql-mode=name     Syntax: sql-mode=mode[,mode[,mode...]]. See the manual
  for the complete list of valid sql modes
  --standalone        Dummy option to start as a standalone program (NT).
+ --stored-program-cache=# 
+ The soft upper limit for number of cached stored routines
+ for one connection.
  -s, --symbolic-links 
  Enable symbolic link support.
  --sync-binlog=#     Synchronously flush binary log to disk after every #th
@@ -946,6 +950,7 @@
 sort-buffer-size 2097152
 sporadic-binlog-dump-fail FALSE
 sql-mode 
+stored-program-cache 256
 symbolic-links FALSE
 sync-binlog 0
 sync-frm TRUE
diff -Nru mysql-5.5-5.5.20/mysql-test/r/mysqldump.result mysql-5.5-5.5.22/mysql-test/r/mysqldump.result
--- mysql-5.5-5.5.20/mysql-test/r/mysqldump.result	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/r/mysqldump.result	2012-03-02 19:44:46.000000000 +0000
@@ -4628,6 +4628,445 @@
 DROP DATABASE `test-database`;
 USE test;
 #
+# BUG#11760384 : 52792: mysqldump in XML mode does not dump routines.
+#
+CREATE DATABASE BUG52792;
+USE BUG52792;
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(20));
+CREATE TABLE t2 (c1 INT);
+INSERT INTO t1 VALUES (1, 'aaa'), (2, 'bbb'), (3, 'ccc');
+INSERT INTO t2 VALUES (1),(2),(3);
+# Stored Procedures.
+CREATE PROCEDURE simpleproc1 (OUT param1 INT)
+BEGIN
+SELECT COUNT(*) INTO param1 FROM t1;
+END//
+CREATE PROCEDURE simpleproc2 (OUT param1 INT)
+BEGIN
+SELECT COUNT(*) INTO param1 FROM t2;
+END//
+# Events.
+CREATE EVENT e1 ON SCHEDULE EVERY 1 SECOND DO DROP DATABASE BUG52792;
+CREATE EVENT e2 ON SCHEDULE EVERY 1 SECOND DO DROP DATABASE BUG52792;
+# Functions.
+CREATE FUNCTION `hello1` (s CHAR(20))
+RETURNS CHAR(50) DETERMINISTIC
+RETURN CONCAT('Hello, ' ,s ,'!');
+CREATE FUNCTION `hello2` (s CHAR(20))
+RETURNS CHAR(50) DETERMINISTIC
+RETURN CONCAT(']]>, ' , s ,'!');
+# Triggers.
+CREATE TRIGGER trig1 BEFORE INSERT ON t2
+FOR EACH ROW BEGIN
+INSERT INTO t2 VALUES(1);
+END;
+|
+CREATE TRIGGER trig2 AFTER INSERT ON t2
+FOR EACH ROW BEGIN
+INSERT INTO t2 VALUES(1, ']]>');
+INSERT INTO t2 VALUES(2, '');
+INSERT INTO t2 VALUES(3, ' & \ " _');
+END;
+|
+# Views
+CREATE VIEW v1 AS SELECT * FROM t1;
+CREATE VIEW v2 AS SELECT * FROM t2;
+
+# Dumping BUG52792 database in xml format.
+
+# Running 'replace_regex on timestamp'
+
+
+
+	
+		
+		
+		
+	
+	
+	
+		1
+		aaa
+	
+	
+		2
+		bbb
+	
+	
+		3
+		ccc
+	
+	
+	
+		
+		
+	
+	
+	
+		1
+	
+	
+		2
+	
+	
+		3
+	
+	
+	
+		
+
+		
+		
+');
+INSERT INTO t2 VALUES(2, '');
+INSERT INTO t2 VALUES(3, ' & \ " _');
+END
+]]>
+		
+	
+	
+		
+		
+		
+	
+	
+		
+		
+	
+	
+		
+
+		
+		
+
+		
+	
+	
+		
+
+		
+		
+, ' , s ,'!')
+]]>
+		
+		
+
+		
+		
+
+		
+	
+
+
+
+# Dumping BUG52792 database in xml format with comments.
+
+# Running 'replace_regex on timestamp'
+
+
+
+
+	
+		
+		
+		
+	
+
+	
+	
+		1
+		aaa
+	
+	
+		2
+		bbb
+	
+	
+		3
+		ccc
+	
+	
+
+	
+		
+		
+	
+
+	
+	
+		1
+	
+	
+		2
+	
+	
+		3
+	
+	
+	
+		
+
+		
+		
+');
+INSERT INTO t2 VALUES(2, '');
+INSERT INTO t2 VALUES(3, ' & \ " _');
+END
+]]>
+		
+	
+
+	
+		
+		
+		
+	
+
+	
+		
+		
+	
+
+	
+		
+
+		
+		
+
+		
+	
+
+	
+		
+
+		
+		
+, ' , s ,'!')
+]]>
+		
+		
+
+		
+		
+
+		
+	
+
+
+
+# Test to check 'Insufficient privileges' error.
+
+GRANT ALL PRIVILEGES ON BUG52792.* TO user1;
+# Running 'replace_regex on timestamp'
+
+
+
+	
+		
+		
+		
+	
+	
+	
+		1
+		aaa
+	
+	
+		2
+		bbb
+	
+	
+		3
+		ccc
+	
+	
+	
+		
+		
+	
+	
+	
+		1
+	
+	
+		2
+	
+	
+		3
+	
+	
+	
+		
+
+		
+		
+');
+INSERT INTO t2 VALUES(2, '');
+INSERT INTO t2 VALUES(3, ' & \ " _');
+END
+]]>
+		
+	
+	
+		
+		
+		
+	
+	
+		
+		
+	
+	
+		
+
+		
+		
+
+		
+	
+	
+
+
+DROP USER user1;
+DROP DATABASE BUG52792;
+# UTF-8
+CREATE DATABASE BUG52792;
+USE BUG52792;
+SET NAMES utf8;
+CREATE FUNCTION `straße` ( c1 CHAR(20))
+RETURNS CHAR(50) DETERMINISTIC
+RETURN CONCAT(']]>, ', s, '!');
+
+
+
+	
+		
+, ', s, '!')
+]]>
+		
+	
+
+
+DROP DATABASE BUG52792;
+USE test;
+#
 # End of 5.1 tests
 #
 #
@@ -4662,3 +5101,107 @@
 /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
 
 DROP TABLE t1;
+#
+# Bug#12809202 61854: MYSQLDUMP --SINGLE-TRANSACTION --FLUSH-LOG BREAKS
+#                     CONSISTENCY
+#
+DROP DATABASE IF EXISTS b12809202_db;
+CREATE DATABASE b12809202_db;
+CREATE TABLE b12809202_db.t1 (c1 INT);
+CREATE TABLE b12809202_db.t2 (c1 INT);
+INSERT INTO b12809202_db.t1 VALUES (1), (2), (3);
+INSERT INTO b12809202_db.t2 VALUES (1), (2), (3);
+# Starting mysqldump with --single-transaction & --flush-log options..
+# Note : In the following dump the transaction
+#        should start only after the logs are
+#        flushed, as 'flush logs' causes implicit
+#        commit starting 5.5.
+
+#### Dump starts here ####
+-- Connecting to localhost...
+-- main : logs flushed successfully!
+-- Starting transaction...
+-- Retrieving table structure for table t1...
+-- Sending SELECT query...
+-- Retrieving rows...
+--
+-- Host: localhost    Database: b12809202_db
+-- ------------------------------------------------------
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+
+--
+-- Table structure for table `t1`
+--
+
+DROP TABLE IF EXISTS `t1`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `t1` (
+  `c1` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `t1`
+--
+
+LOCK TABLES `t1` WRITE;
+/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
+INSERT INTO `t1` VALUES (1),(2),(3);
+-- Retrieving table structure for table t2...
+-- Sending SELECT query...
+-- Retrieving rows...
+/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
+UNLOCK TABLES;
+
+--
+-- Table structure for table `t2`
+--
+
+DROP TABLE IF EXISTS `t2`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `t2` (
+  `c1` int(11) DEFAULT NULL
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Dumping data for table `t2`
+--
+
+LOCK TABLES `t2` WRITE;
+/*!40000 ALTER TABLE `t2` DISABLE KEYS */;
+INSERT INTO `t2` VALUES (1),(2),(3);
+/*!40000 ALTER TABLE `t2` ENABLE KEYS */;
+UNLOCK TABLES;
+-- Disconnecting from localhost...
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+-- Dump completed
+#### Dump ends here ####
+DROP TABLE b12809202_db.t1;
+DROP TABLE b12809202_db.t2;
+DROP DATABASE b12809202_db;
+#
+# Delete all existing binary logs.
+#
+RESET MASTER;
diff -Nru mysql-5.5-5.5.20/mysql-test/r/mysql_plugin.result mysql-5.5-5.5.22/mysql-test/r/mysql_plugin.result
--- mysql-5.5-5.5.20/mysql-test/r/mysql_plugin.result	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/r/mysql_plugin.result	2012-03-02 19:44:46.000000000 +0000
@@ -23,12 +23,24 @@
 wicky	libdaemon_example.so
 wonky	libdaemon_example.so
 #
+# Ensure the plugin is loaded.
+#
+SELECT * FROM mysql.plugin WHERE dl like '%libdaemon%' ORDER BY name;
+name	dl
+daemon_example	libdaemon_example.so
+#
+# Ensure the plugin is replaced.
+#
+SELECT * FROM mysql.plugin WHERE dl like '%libdaemon%' ORDER BY name;
+name	dl
+daemon_example	liblibdaemon_example.so
+#
 # Disable the plugin...
 #
 #
 # Ensure the plugin isn't loaded.
 #
-SELECT * FROM mysql.plugin WHERE dl like 'libdaemon%' ORDER BY name;
+SELECT * FROM mysql.plugin WHERE dl like '%libdaemon%' ORDER BY name;
 name	dl
 #
 # Attempt to load non-existant plugin
diff -Nru mysql-5.5-5.5.20/mysql-test/r/partition_binlog_stmt.result mysql-5.5-5.5.22/mysql-test/r/partition_binlog_stmt.result
--- mysql-5.5-5.5.20/mysql-test/r/partition_binlog_stmt.result	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/r/partition_binlog_stmt.result	2012-03-02 19:44:46.000000000 +0000
@@ -8,6 +8,6 @@
 modified TIMESTAMP DEFAULT '0000-00-00 00:00:00',
 INDEX namelocs (name(255))) ENGINE = MyISAM
 PARTITION BY HASH(id) PARTITIONS 2;
-LOAD DATA LOCAL INFILE 'init_file.txt'
+LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/init_file.txt'
 INTO TABLE t1 (name);
 DROP TABLE t1;
diff -Nru mysql-5.5-5.5.20/mysql-test/r/partition_error.result mysql-5.5-5.5.22/mysql-test/r/partition_error.result
--- mysql-5.5-5.5.20/mysql-test/r/partition_error.result	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/r/partition_error.result	2012-03-02 19:44:46.000000000 +0000
@@ -1,5 +1,31 @@
 drop table if exists t1, t2;
 #
+# Bug#13608188 - 64038: CRASH IN HANDLER::HA_THD ON ALTER TABLE AFTER
+#                       REPAIR NON-EXISTING PARTITION
+#
+CREATE TABLE t1 ( a INT, b INT );
+INSERT INTO t1 VALUES (5,3),(5,6);
+ALTER TABLE t1 PARTITION BY KEY(b) PARTITIONS 3 ;
+ALTER TABLE t1 REPAIR PARTITION p1, p3;
+Table	Op	Msg_type	Msg_text
+test.t1	repair	error	Error in list of partitions to test.t1
+ALTER TABLE t1 ORDER BY b;
+DROP TABLE t1;
+#
+# Bug#13593865 - 64037: CRASH IN HA_PARTITION::CREATE_HANDLERS ON
+#                       ALTER TABLE AFTER DROP PARTITION
+#
+CREATE TABLE t1 (a INT)
+PARTITION BY RANGE (a)
+(PARTITION p0 VALUES LESS THAN (0),
+PARTITION p1 VALUES LESS THAN MAXVALUE ) ;
+ALTER TABLE t1 DROP PARTITION p1;
+ALTER TABLE t1 ANALYZE PARTITION p0, p1;
+Table	Op	Msg_type	Msg_text
+test.t1	analyze	error	Error in list of partitions to test.t1
+ALTER TABLE t1 COMMENT 'altered';
+DROP TABLE t1;
+#
 # Bug#57924: crash when creating partitioned table with
 #            multiple columns in the partition key
 #
diff -Nru mysql-5.5-5.5.20/mysql-test/r/partition.result mysql-5.5-5.5.22/mysql-test/r/partition.result
--- mysql-5.5-5.5.20/mysql-test/r/partition.result	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/r/partition.result	2012-03-02 19:44:46.000000000 +0000
@@ -2348,6 +2348,46 @@
 INSERT INTO t1 VALUES(0);
 DROP TABLE t1;
 SET GLOBAL myisam_use_mmap=default;
+#
+# Bug#13580775 ASSERTION FAILED: RECORD_LENGTH == M_RECORD_LENGTH,
+# FILE FILESORT_UTILS.CC
+#
+CREATE TABLE t1 (
+a INT PRIMARY KEY,
+b INT,
+c CHAR(1),
+d INT,
+KEY (c,d)
+) PARTITION BY KEY () PARTITIONS 1;
+INSERT INTO t1 VALUES (1,1,'a',1), (2,2,'a',1);
+SELECT 1 FROM t1 WHERE 1 IN
+(SELECT  group_concat(b)
+FROM t1
+WHERE c > geomfromtext('point(1 1)')
+GROUP BY b
+);
+1
+1
+1
+DROP TABLE t1;
+#
+# Bug#13011410 CRASH IN FILESORT CODE WITH GROUP BY/ROLLUP
+#
+CREATE TABLE t1 (
+a INT,
+b MEDIUMINT,
+c VARCHAR(300) CHARACTER SET hp8 COLLATE hp8_bin,
+PRIMARY KEY (a,c(299))) 
+ENGINE=myisam
+PARTITION BY LINEAR KEY () PARTITIONS 2;
+INSERT INTO t1 VALUES (1,2,'test'), (2,3,'hi'), (4,5,'bye');
+SELECT 1 FROM t1 WHERE b < SOME
+( SELECT 1 FROM t1 WHERE a >= 1
+GROUP BY b WITH ROLLUP
+HAVING b > geomfromtext("")
+);
+1
+DROP TABLE t1;
 End of 5.1 tests
 #
 # BUG#55385: UPDATE statement throws an error, but still updates
diff -Nru mysql-5.5-5.5.20/mysql-test/r/ps.result mysql-5.5-5.5.22/mysql-test/r/ps.result
--- mysql-5.5-5.5.20/mysql-test/r/ps.result	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/r/ps.result	2012-03-02 19:44:46.000000000 +0000
@@ -1,3 +1,4 @@
+call mtr.add_suppression('Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT.');
 drop table if exists t1,t2,t3,t4;
 drop database if exists client_test_db;
 create table t1
diff -Nru mysql-5.5-5.5.20/mysql-test/r/range.result mysql-5.5-5.5.22/mysql-test/r/range.result
--- mysql-5.5-5.5.20/mysql-test/r/range.result	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/r/range.result	2012-03-02 19:44:46.000000000 +0000
@@ -1767,4 +1767,121 @@
 SELECT * FROM t1, t1 as t2 WHERE t1.i4 BETWEEN t2.pk AND t2.pk;
 pk	i4	pk	i4
 DROP TABLE t1;
+#
+# BUG#13519696 - 62940: SELECT RESULTS VARY WITH VERSION AND
+# WITH/WITHOUT INDEX RANGE SCAN
+#
+create table t1 (id int unsigned not null auto_increment primary key);
+insert into t1 values (null);
+insert into t1 select null from t1;
+insert into t1 select null from t1;
+insert into t1 select null from t1;
+insert into t1 select null from t1;
+insert into t1 select null from t1;
+insert into t1 select null from t1;
+insert into t1 select null from t1;
+insert into t1 select null from t1;
+create table t2 (
+id int unsigned not null auto_increment,
+val decimal(5,3) not null,
+primary key (id,val),
+unique key (val,id),
+unique key (id));
+insert into t2 select null,id*0.0009 from t1;
+select count(val) from t2 ignore index (val) where val > 0.1155;
+count(val)
+128
+select count(val) from t2 force index (val)  where val > 0.1155;
+count(val)
+128
+drop table t2, t1;
+#
+# BUG#13453382 - REGRESSION SINCE 5.1.39, RANGE OPTIMIZER WRONG
+# RESULTS WITH DECIMAL CONVERSION
+#
+create table t1 (a int,b int,c int,primary key (a,c));
+insert into t1 values (1,1,2),(1,1,3),(1,1,4);
+select convert(3, signed integer) > 2.9;
+convert(3, signed integer) > 2.9
+1
+select * from t1 force  index (primary) where a=1 and c>= 2.9;
+a	b	c
+1	1	3
+1	1	4
+select * from t1 ignore index (primary) where a=1 and c>= 2.9;
+a	b	c
+1	1	3
+1	1	4
+select * from t1 force  index (primary) where a=1 and c> 2.9;
+a	b	c
+1	1	3
+1	1	4
+select * from t1 ignore index (primary) where a=1 and c> 2.9;
+a	b	c
+1	1	3
+1	1	4
+drop table t1;
+#
+# BUG#13463488 - 63437: CHAR & BETWEEN WITH INDEX RETURNS WRONG
+# RESULT AFTER MYSQL 5.1.
+#
+CREATE TABLE t1(
+F1 CHAR(5) NOT NULL,
+F2 CHAR(5) NOT NULL,
+F3 CHAR(5) NOT NULL,
+PRIMARY KEY(F1),
+INDEX IDX_F2(F2)
+);
+INSERT INTO t1 VALUES
+('A','A','A'),('AA','AA','AA'),('AAA','AAA','AAA'),
+('AAAA','AAAA','AAAA'),('AAAAA','AAAAA','AAAAA');
+SELECT * FROM t1 WHERE F1 = 'A    ';
+F1	F2	F3
+A	A	A
+SELECT * FROM t1 IGNORE INDEX(PRIMARY) WHERE F1 = 'A    ';
+F1	F2	F3
+A	A	A
+SELECT * FROM t1 WHERE F1 >= 'A    ';
+F1	F2	F3
+A	A	A
+AA	AA	AA
+AAA	AAA	AAA
+AAAA	AAAA	AAAA
+AAAAA	AAAAA	AAAAA
+SELECT * FROM t1 WHERE F1 > 'A    ';
+F1	F2	F3
+AA	AA	AA
+AAA	AAA	AAA
+AAAA	AAAA	AAAA
+AAAAA	AAAAA	AAAAA
+SELECT * FROM t1 WHERE F1 BETWEEN 'A    ' AND 'AAAAA';
+F1	F2	F3
+A	A	A
+AA	AA	AA
+AAA	AAA	AAA
+AAAA	AAAA	AAAA
+AAAAA	AAAAA	AAAAA
+SELECT * FROM t1 WHERE F2 BETWEEN 'A    ' AND 'AAAAA';
+F1	F2	F3
+A	A	A
+AA	AA	AA
+AAA	AAA	AAA
+AAAA	AAAA	AAAA
+AAAAA	AAAAA	AAAAA
+SELECT * FROM t1 WHERE F3 BETWEEN 'A    ' AND 'AAAAA';
+F1	F2	F3
+A	A	A
+AA	AA	AA
+AAA	AAA	AAA
+AAAA	AAAA	AAAA
+AAAAA	AAAAA	AAAAA
+SELECT * FROM t1 IGNORE INDEX(PRIMARY) WHERE F1 BETWEEN 'A    ' AND
+'AAAAA';
+F1	F2	F3
+A	A	A
+AA	AA	AA
+AAA	AAA	AAA
+AAAA	AAAA	AAAA
+AAAAA	AAAAA	AAAAA
+DROP TABLE t1;
 End of 5.1 tests
diff -Nru mysql-5.5-5.5.20/mysql-test/r/sp-bugs.result mysql-5.5-5.5.22/mysql-test/r/sp-bugs.result
--- mysql-5.5-5.5.20/mysql-test/r/sp-bugs.result	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/r/sp-bugs.result	2012-03-02 19:44:46.000000000 +0000
@@ -111,4 +111,23 @@
 DROP TABLE db1.t1;
 DROP DATABASE db1;
 DROP DATABASE db2;
+#
+# Bug#13105873:valgrind warning:possible crash in foreign 
+# key handling on subsequent create table if not exists 
+#
+DROP DATABASE IF EXISTS testdb;
+CREATE DATABASE testdb;
+USE testdb;
+CREATE TABLE t1 (id1 INT PRIMARY KEY);
+CREATE PROCEDURE `p1`()
+BEGIN
+CREATE TABLE IF NOT EXISTS t2(id INT PRIMARY KEY,
+CONSTRAINT FK FOREIGN KEY (id) REFERENCES t1( id1 ));
+END$
+CALL p1();
+# below stmt should not return valgrind warnings
+CALL p1();
+Warnings:
+Note	1050	Table 't2' already exists
+DROP DATABASE testdb;
 End of 5.1 tests
diff -Nru mysql-5.5-5.5.20/mysql-test/r/sp.result mysql-5.5-5.5.22/mysql-test/r/sp.result
--- mysql-5.5-5.5.20/mysql-test/r/sp.result	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/r/sp.result	2012-03-02 19:44:46.000000000 +0000
@@ -2772,20 +2772,23 @@
 drop procedure bug8116|
 drop table t3|
 drop procedure if exists bug6857|
-create procedure bug6857(counter int)
+create procedure bug6857()
 begin
 declare t0, t1 int;
 declare plus bool default 0;
-set t0 = current_time();
-while counter > 0 do
-set counter = counter - 1;
-end while;
-set t1 = current_time();
+set t0 = unix_timestamp();
+select sleep(1.1);
+set t1 = unix_timestamp();
 if t1 > t0 then
 set plus = 1;
 end if;
 select plus;
 end|
+call bug6857()|
+sleep(1.1)
+0
+plus
+1
 drop procedure bug6857|
 drop procedure if exists bug8757|
 create procedure bug8757()
@@ -7745,3 +7748,26 @@
 DROP PROCEDURE p2;
 DROP TABLE t1;
 # End of 5.5 test
+#
+# Bug#12663165 SP DEAD CODE REMOVAL DOESN'T UNDERSTAND CONTINUE HANDLERS
+#
+DROP FUNCTION IF EXISTS f1;
+CREATE FUNCTION f1() RETURNS INT
+BEGIN
+DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN END;
+BEGIN
+DECLARE CONTINUE HANDLER FOR SQLEXCEPTION RETURN f1();
+BEGIN
+DECLARE CONTINUE HANDLER FOR SQLEXCEPTION RETURN f1();
+RETURN f1();
+END;
+END;
+RETURN 1;
+END $
+SELECT f1();
+f1()
+1
+Warnings:
+Error	1424	Recursive stored functions and triggers are not allowed.
+Error	1305	FUNCTION test.f1 does not exist
+DROP FUNCTION f1;
diff -Nru mysql-5.5-5.5.20/mysql-test/r/xa.result mysql-5.5-5.5.22/mysql-test/r/xa.result
--- mysql-5.5-5.5.20/mysql-test/r/xa.result	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/r/xa.result	2012-03-02 19:44:46.000000000 +0000
@@ -206,8 +206,8 @@
 #                FAILED 
 #
 DROP TABLE IF EXISTS t1, t2;
-CREATE TABLE t1 (a INT);
-CREATE TABLE t2 (a INT);
+CREATE TABLE t1 (a INT) ENGINE=InnoDB;
+CREATE TABLE t2 (a INT) ENGINE=InnoDB;
 START TRANSACTION;
 INSERT INTO t1 VALUES (1);
 # Connection con2
@@ -217,12 +217,14 @@
 # Connection default
 # Waiting until INSERT ... is blocked
 DELETE FROM t1;
-COMMIT;
 # Connection con2
 # Reaping: INSERT INTO t2 SELECT a FROM t1
 ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
 XA COMMIT 'xid1';
 ERROR XA102: XA_RBDEADLOCK: Transaction branch was rolled back: deadlock was detected
+# Connection default
+COMMIT;
+# Connection con2
 XA START 'xid1';
 XA END 'xid1';
 XA PREPARE 'xid1';
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/binlog/r/binlog_stm_unsafe_warning.result mysql-5.5-5.5.22/mysql-test/suite/binlog/r/binlog_stm_unsafe_warning.result
--- mysql-5.5-5.5.20/mysql-test/suite/binlog/r/binlog_stm_unsafe_warning.result	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/binlog/r/binlog_stm_unsafe_warning.result	2012-03-02 19:44:46.000000000 +0000
@@ -54,13 +54,13 @@
 #
 SET @old_log_warnings = @@log_warnings;
 DROP TABLE IF EXISTS t1;
-CREATE TABLE t1 (a VARCHAR(36), b VARCHAR(10));
+CREATE TABLE t1 (a VARCHAR(36), b VARCHAR(15));
 SET GLOBAL LOG_WARNINGS = 0;
-INSERT INTO t1 VALUES(UUID(), 'Bug#46265');
+INSERT INTO t1 VALUES(UUID(), 'timestamp');
 Warnings:
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
 SET GLOBAL LOG_WARNINGS = 1;
-INSERT INTO t1 VALUES(UUID(), 'Bug#46265');
+INSERT INTO t1 VALUES(UUID(), 'timestamp');
 Warnings:
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
 DROP TABLE t1;
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/binlog/r/binlog_unsafe.result mysql-5.5-5.5.22/mysql-test/suite/binlog/r/binlog_unsafe.result
--- mysql-5.5-5.5.20/mysql-test/suite/binlog/r/binlog_unsafe.result	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/binlog/r/binlog_unsafe.result	2012-03-02 19:44:46.000000000 +0000
@@ -1760,7 +1760,7 @@
 
 Invoking function func_sidef_1 invoking statement that is unsafe in many ways.
 CREATE FUNCTION func_sidef_1() RETURNS VARCHAR(100) BEGIN INSERT INTO ta1 VALUES (47); INSERT DELAYED INTO double_autoinc_table SELECT CONCAT(UUID(), @@hostname, myfunc_int(), NULL) FROM mysql.general_log LIMIT 1; RETURN 0; END;
-* binlog_format = STATEMENT: expect 6 warnings.
+* binlog_format = STATEMENT: expect 7 warnings.
 INSERT INTO t1 SELECT func_sidef_1();
 Warnings:
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted.
@@ -1769,12 +1769,13 @@
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
+Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave.
 * SQL_LOG_BIN = 0: expect nothing logged and no warning.
 * binlog_format = MIXED: expect row events in binlog and no warning.
 
 Invoking function func_sidef_2 invoking function func_sidef_1 invoking statement that is unsafe in many ways.
 CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 SELECT func_sidef_1(); RETURN 0; END;
-* binlog_format = STATEMENT: expect 6 warnings.
+* binlog_format = STATEMENT: expect 7 warnings.
 INSERT INTO t2 SELECT func_sidef_2();
 Warnings:
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted.
@@ -1783,13 +1784,14 @@
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
+Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave.
 * SQL_LOG_BIN = 0: expect nothing logged and no warning.
 * binlog_format = MIXED: expect row events in binlog and no warning.
 DROP FUNCTION func_sidef_2;
 
 Invoking procedure proc_2 invoking function func_sidef_1 invoking statement that is unsafe in many ways.
 CREATE PROCEDURE proc_2() BEGIN INSERT INTO t1 SELECT func_sidef_1(); INSERT INTO ta2 VALUES (47); END;
-* binlog_format = STATEMENT: expect 6 warnings.
+* binlog_format = STATEMENT: expect 7 warnings.
 CALL proc_2();
 Warnings:
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted.
@@ -1798,13 +1800,14 @@
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
+Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave.
 * SQL_LOG_BIN = 0: expect nothing logged and no warning.
 * binlog_format = MIXED: expect row events in binlog and no warning.
 DROP PROCEDURE proc_2;
 
 Invoking trigger trig_2 invoking function func_sidef_1 invoking statement that is unsafe in many ways.
 CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO t1 SELECT func_sidef_1(); END;
-* binlog_format = STATEMENT: expect 6 warnings.
+* binlog_format = STATEMENT: expect 7 warnings.
 INSERT INTO trigger_table_2 VALUES (1);
 Warnings:
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted.
@@ -1813,6 +1816,7 @@
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
+Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave.
 * SQL_LOG_BIN = 0: expect nothing logged and no warning.
 * binlog_format = MIXED: expect row events in binlog and no warning.
 DROP TRIGGER trig_2;
@@ -1826,7 +1830,8 @@
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
-* binlog_format = STATEMENT: expect 6 warnings.
+Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave.
+* binlog_format = STATEMENT: expect 7 warnings.
 INSERT INTO t2 SELECT * FROM view_sidef_2;
 Warnings:
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted.
@@ -1835,13 +1840,14 @@
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
+Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave.
 * SQL_LOG_BIN = 0: expect nothing logged and no warning.
 * binlog_format = MIXED: expect row events in binlog and no warning.
 DROP VIEW view_sidef_2;
 
 Invoking prepared statement prep_2 invoking function func_sidef_1 invoking statement that is unsafe in many ways.
 PREPARE prep_2 FROM "INSERT INTO t1 SELECT func_sidef_1()";
-* binlog_format = STATEMENT: expect 6 warnings.
+* binlog_format = STATEMENT: expect 7 warnings.
 EXECUTE prep_2;
 Warnings:
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted.
@@ -1850,6 +1856,7 @@
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
+Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave.
 * SQL_LOG_BIN = 0: expect nothing logged and no warning.
 * binlog_format = MIXED: expect row events in binlog and no warning.
 DROP PREPARE prep_2;
@@ -1857,7 +1864,7 @@
 
 Invoking procedure proc_1 invoking statement that is unsafe in many ways.
 CREATE PROCEDURE proc_1() BEGIN INSERT DELAYED INTO double_autoinc_table SELECT CONCAT(UUID(), @@hostname, myfunc_int(), NULL) FROM mysql.general_log LIMIT 1; INSERT INTO ta1 VALUES (47); END;
-* binlog_format = STATEMENT: expect 6 warnings.
+* binlog_format = STATEMENT: expect 7 warnings.
 CALL proc_1();
 Warnings:
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted.
@@ -1866,12 +1873,13 @@
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
+Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave.
 * SQL_LOG_BIN = 0: expect nothing logged and no warning.
 * binlog_format = MIXED: expect row events in binlog and no warning.
 
 Invoking function func_sidef_2 invoking procedure proc_1 invoking statement that is unsafe in many ways.
 CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); CALL proc_1(); RETURN 0; END;
-* binlog_format = STATEMENT: expect 6 warnings.
+* binlog_format = STATEMENT: expect 7 warnings.
 INSERT INTO t2 SELECT func_sidef_2();
 Warnings:
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted.
@@ -1880,13 +1888,14 @@
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
+Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave.
 * SQL_LOG_BIN = 0: expect nothing logged and no warning.
 * binlog_format = MIXED: expect row events in binlog and no warning.
 DROP FUNCTION func_sidef_2;
 
 Invoking procedure proc_2 invoking procedure proc_1 invoking statement that is unsafe in many ways.
 CREATE PROCEDURE proc_2() BEGIN CALL proc_1(); INSERT INTO ta2 VALUES (47); END;
-* binlog_format = STATEMENT: expect 6 warnings.
+* binlog_format = STATEMENT: expect 7 warnings.
 CALL proc_2();
 Warnings:
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted.
@@ -1895,13 +1904,14 @@
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
+Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave.
 * SQL_LOG_BIN = 0: expect nothing logged and no warning.
 * binlog_format = MIXED: expect row events in binlog and no warning.
 DROP PROCEDURE proc_2;
 
 Invoking trigger trig_2 invoking procedure proc_1 invoking statement that is unsafe in many ways.
 CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); CALL proc_1(); END;
-* binlog_format = STATEMENT: expect 6 warnings.
+* binlog_format = STATEMENT: expect 7 warnings.
 INSERT INTO trigger_table_2 VALUES (1);
 Warnings:
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted.
@@ -1910,13 +1920,14 @@
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
+Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave.
 * SQL_LOG_BIN = 0: expect nothing logged and no warning.
 * binlog_format = MIXED: expect row events in binlog and no warning.
 DROP TRIGGER trig_2;
 
 Invoking prepared statement prep_2 invoking procedure proc_1 invoking statement that is unsafe in many ways.
 PREPARE prep_2 FROM "CALL proc_1()";
-* binlog_format = STATEMENT: expect 6 warnings.
+* binlog_format = STATEMENT: expect 7 warnings.
 EXECUTE prep_2;
 Warnings:
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted.
@@ -1925,6 +1936,7 @@
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
+Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave.
 * SQL_LOG_BIN = 0: expect nothing logged and no warning.
 * binlog_format = MIXED: expect row events in binlog and no warning.
 DROP PREPARE prep_2;
@@ -1932,7 +1944,7 @@
 
 Invoking trigger trig_1 invoking statement that is unsafe in many ways.
 CREATE TRIGGER trig_1 BEFORE INSERT ON trigger_table_1 FOR EACH ROW BEGIN INSERT INTO ta1 VALUES (47); INSERT DELAYED INTO double_autoinc_table SELECT CONCAT(UUID(), @@hostname, myfunc_int(), NULL) FROM mysql.general_log LIMIT 1; END;
-* binlog_format = STATEMENT: expect 6 warnings.
+* binlog_format = STATEMENT: expect 7 warnings.
 INSERT INTO trigger_table_1 VALUES (1);
 Warnings:
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted.
@@ -1941,12 +1953,13 @@
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
+Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave.
 * SQL_LOG_BIN = 0: expect nothing logged and no warning.
 * binlog_format = MIXED: expect row events in binlog and no warning.
 
 Invoking function func_sidef_2 invoking trigger trig_1 invoking statement that is unsafe in many ways.
 CREATE FUNCTION func_sidef_2() RETURNS VARCHAR(100) BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO trigger_table_1 VALUES (1); RETURN 0; END;
-* binlog_format = STATEMENT: expect 6 warnings.
+* binlog_format = STATEMENT: expect 7 warnings.
 INSERT INTO t2 SELECT func_sidef_2();
 Warnings:
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted.
@@ -1955,13 +1968,14 @@
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
+Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave.
 * SQL_LOG_BIN = 0: expect nothing logged and no warning.
 * binlog_format = MIXED: expect row events in binlog and no warning.
 DROP FUNCTION func_sidef_2;
 
 Invoking procedure proc_2 invoking trigger trig_1 invoking statement that is unsafe in many ways.
 CREATE PROCEDURE proc_2() BEGIN INSERT INTO trigger_table_1 VALUES (1); INSERT INTO ta2 VALUES (47); END;
-* binlog_format = STATEMENT: expect 6 warnings.
+* binlog_format = STATEMENT: expect 7 warnings.
 CALL proc_2();
 Warnings:
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted.
@@ -1970,13 +1984,14 @@
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
+Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave.
 * SQL_LOG_BIN = 0: expect nothing logged and no warning.
 * binlog_format = MIXED: expect row events in binlog and no warning.
 DROP PROCEDURE proc_2;
 
 Invoking trigger trig_2 invoking trigger trig_1 invoking statement that is unsafe in many ways.
 CREATE TRIGGER trig_2 BEFORE INSERT ON trigger_table_2 FOR EACH ROW BEGIN INSERT INTO ta2 VALUES (47); INSERT INTO trigger_table_1 VALUES (1); END;
-* binlog_format = STATEMENT: expect 6 warnings.
+* binlog_format = STATEMENT: expect 7 warnings.
 INSERT INTO trigger_table_2 VALUES (1);
 Warnings:
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted.
@@ -1985,13 +2000,14 @@
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
+Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave.
 * SQL_LOG_BIN = 0: expect nothing logged and no warning.
 * binlog_format = MIXED: expect row events in binlog and no warning.
 DROP TRIGGER trig_2;
 
 Invoking prepared statement prep_2 invoking trigger trig_1 invoking statement that is unsafe in many ways.
 PREPARE prep_2 FROM "INSERT INTO trigger_table_1 VALUES (1)";
-* binlog_format = STATEMENT: expect 6 warnings.
+* binlog_format = STATEMENT: expect 7 warnings.
 EXECUTE prep_2;
 Warnings:
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted.
@@ -2000,6 +2016,7 @@
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
+Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave.
 * SQL_LOG_BIN = 0: expect nothing logged and no warning.
 * binlog_format = MIXED: expect row events in binlog and no warning.
 DROP PREPARE prep_2;
@@ -2007,7 +2024,7 @@
 
 Invoking prepared statement prep_1 invoking statement that is unsafe in many ways.
 PREPARE prep_1 FROM "INSERT DELAYED INTO double_autoinc_table SELECT CONCAT(UUID(), @@hostname, myfunc_int(), NULL) FROM mysql.general_log LIMIT 1";
-* binlog_format = STATEMENT: expect 6 warnings.
+* binlog_format = STATEMENT: expect 7 warnings.
 EXECUTE prep_1;
 Warnings:
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted.
@@ -2016,12 +2033,13 @@
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
+Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave.
 * SQL_LOG_BIN = 0: expect nothing logged and no warning.
 * binlog_format = MIXED: expect row events in binlog and no warning.
 DROP PREPARE prep_1;
 
 Invoking statement that is unsafe in many ways.
-* binlog_format = STATEMENT: expect 6 warnings.
+* binlog_format = STATEMENT: expect 7 warnings.
 INSERT DELAYED INTO double_autoinc_table SELECT CONCAT(UUID(), @@hostname, myfunc_int(), NULL) FROM mysql.general_log LIMIT 1;
 Warnings:
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted.
@@ -2030,6 +2048,7 @@
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a UDF which may not return the same value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system variable that may have a different value on the slave.
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
+Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave.
 * SQL_LOG_BIN = 0: expect nothing logged and no warning.
 * binlog_format = MIXED: expect row events in binlog and no warning.
 
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/binlog/t/binlog_stm_unsafe_warning.test mysql-5.5-5.5.22/mysql-test/suite/binlog/t/binlog_stm_unsafe_warning.test
--- mysql-5.5-5.5.20/mysql-test/suite/binlog/t/binlog_stm_unsafe_warning.test	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/binlog/t/binlog_stm_unsafe_warning.test	2012-03-02 19:44:46.000000000 +0000
@@ -101,16 +101,24 @@
 --echo # Bug#46265: Can not disable warning about unsafe statements for binary logging
 --echo #
 
+let BINLOG_COUNTER1= `select CONVERT(NOW(),UNSIGNED) as timestmap from dual`;
+
 SET @old_log_warnings = @@log_warnings;
 
 --disable_warnings
 DROP TABLE IF EXISTS t1;
 --enable_warnings
-CREATE TABLE t1 (a VARCHAR(36), b VARCHAR(10));
+CREATE TABLE t1 (a VARCHAR(36), b VARCHAR(15));
+
 SET GLOBAL LOG_WARNINGS = 0;
-INSERT INTO t1 VALUES(UUID(), 'Bug#46265');
+# Replacing the result file content here.
+# Instead of writing $BINLOG_COUNTER1 value to result file, 
+# writing a fixed string timestamp to it.
+--replace_result $BINLOG_COUNTER1 timestamp
+eval INSERT INTO t1 VALUES(UUID(), '$BINLOG_COUNTER1');
 SET GLOBAL LOG_WARNINGS = 1;
-INSERT INTO t1 VALUES(UUID(), 'Bug#46265');
+--replace_result $BINLOG_COUNTER1 timestamp
+eval INSERT INTO t1 VALUES(UUID(), '$BINLOG_COUNTER1');
 DROP TABLE t1;
 
 SET GLOBAL log_warnings = @old_log_warnings;
@@ -132,13 +140,14 @@
   use strict;
   my $log_error= $ENV{'LOG_ERROR'} or die "LOG_ERROR not set";
   open(FILE, "$log_error") or die("Unable to open $log_error: $!\n");
-  my $count = () = grep(/Bug#46265/g,);
+  my $binlog_counter= $ENV{'BINLOG_COUNTER1'} or die "BINLOG_COUNTER1 not set";
+  my $count = () = grep(/$binlog_counter/g,); 
+  # Grep the timestamp value from the error file.
   print "Occurrences: $count\n";
   close(FILE);
 EOF
 
 # bug#50192: diplaying the unsafe warning comes out to the user warning stack
-
 -- disable_warnings
 DROP TABLE IF EXISTS t1, t2;
 -- enable_warnings
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/binlog/t/binlog_unsafe.test mysql-5.5-5.5.22/mysql-test/suite/binlog/t/binlog_unsafe.test
--- mysql-5.5-5.5.20/mysql-test/suite/binlog/t/binlog_unsafe.test	2011-12-16 19:52:05.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/binlog/t/binlog_unsafe.test	2012-03-02 19:44:46.000000000 +0000
@@ -233,7 +233,7 @@
     --let $value_0=
     --let $sel_sidef_0=
     --let $sel_retval_0=
-    --let $CRC_ARG_expected_number_of_warnings= 6
+    --let $CRC_ARG_expected_number_of_warnings= 7
   }
 
   if ($unsafe_type == 8) {
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/engines/funcs/r/db_alter_collate_ascii.result mysql-5.5-5.5.22/mysql-test/suite/engines/funcs/r/db_alter_collate_ascii.result
--- mysql-5.5-5.5.20/mysql-test/suite/engines/funcs/r/db_alter_collate_ascii.result	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/engines/funcs/r/db_alter_collate_ascii.result	2012-03-02 19:44:46.000000000 +0000
@@ -77,6 +77,7 @@
 utf8_esperanto_ci	utf8	209		#	#
 utf8_hungarian_ci	utf8	210		#	#
 utf8_sinhala_ci	utf8	211		#	#
+utf8_general_mysql500_ci	utf8	223		#	#
 ucs2_general_ci	ucs2	35	Yes	#	#
 ucs2_bin	ucs2	90		#	#
 ucs2_unicode_ci	ucs2	128		#	#
@@ -99,6 +100,7 @@
 ucs2_esperanto_ci	ucs2	145		#	#
 ucs2_hungarian_ci	ucs2	146		#	#
 ucs2_sinhala_ci	ucs2	147		#	#
+ucs2_general_mysql500_ci	ucs2	159		#	#
 cp866_general_ci	cp866	36	Yes	#	#
 cp866_bin	cp866	68		#	#
 keybcs2_general_ci	keybcs2	37	Yes	#	#
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/engines/funcs/r/db_alter_collate_utf8.result mysql-5.5-5.5.22/mysql-test/suite/engines/funcs/r/db_alter_collate_utf8.result
--- mysql-5.5-5.5.20/mysql-test/suite/engines/funcs/r/db_alter_collate_utf8.result	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/engines/funcs/r/db_alter_collate_utf8.result	2012-03-02 19:44:46.000000000 +0000
@@ -77,6 +77,7 @@
 utf8_esperanto_ci	utf8	209		#	#
 utf8_hungarian_ci	utf8	210		#	#
 utf8_sinhala_ci	utf8	211		#	#
+utf8_general_mysql500_ci	utf8	223		#	#
 ucs2_general_ci	ucs2	35	Yes	#	#
 ucs2_bin	ucs2	90		#	#
 ucs2_unicode_ci	ucs2	128		#	#
@@ -99,6 +100,7 @@
 ucs2_esperanto_ci	ucs2	145		#	#
 ucs2_hungarian_ci	ucs2	146		#	#
 ucs2_sinhala_ci	ucs2	147		#	#
+ucs2_general_mysql500_ci	ucs2	159		#	#
 cp866_general_ci	cp866	36	Yes	#	#
 cp866_bin	cp866	68		#	#
 keybcs2_general_ci	keybcs2	37	Yes	#	#
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/innodb/r/innodb-blob.result mysql-5.5-5.5.22/mysql-test/suite/innodb/r/innodb-blob.result
--- mysql-5.5-5.5.20/mysql-test/suite/innodb/r/innodb-blob.result	1970-01-01 00:00:00.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/innodb/r/innodb-blob.result	2012-03-02 19:44:46.000000000 +0000
@@ -0,0 +1,119 @@
+CREATE TABLE t1 (a INT PRIMARY KEY, b TEXT) ENGINE=InnoDB;
+CREATE TABLE t2 (a INT PRIMARY KEY) ENGINE=InnoDB;
+CREATE TABLE t3 (a INT PRIMARY KEY, b TEXT, c TEXT) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (1,REPEAT('a',30000)),(2,REPEAT('b',40000));
+SET DEBUG_SYNC='before_row_upd_extern SIGNAL have_latch WAIT_FOR go1';
+BEGIN;
+UPDATE t1 SET a=a+2;
+ROLLBACK;
+BEGIN;
+UPDATE t1 SET b=CONCAT(b,'foo');
+SET DEBUG_SYNC='now WAIT_FOR have_latch';
+SELECT a, RIGHT(b,20) FROM t1;
+SET DEBUG_SYNC='now SIGNAL go1';
+a	RIGHT(b,20)
+1	aaaaaaaaaaaaaaaaaaaa
+2	bbbbbbbbbbbbbbbbbbbb
+SET DEBUG='+d,row_ins_extern_checkpoint';
+SET DEBUG_SYNC='before_row_ins_extern_latch SIGNAL rec_not_blob WAIT_FOR crash';
+ROLLBACK;
+BEGIN;
+INSERT INTO t1 VALUES (3,REPEAT('c',50000));
+SET DEBUG_SYNC='now WAIT_FOR rec_not_blob';
+SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
+SELECT @@tx_isolation;
+@@tx_isolation
+READ-UNCOMMITTED
+SELECT a, RIGHT(b,20) FROM t1;
+a	RIGHT(b,20)
+1	aaaaaaaaaaaaaaaaaaaa
+2	bbbbbbbbbbbbbbbbbbbb
+SELECT a FROM t1;
+a
+1
+2
+3
+SET DEBUG='+d,crash_commit_before';
+INSERT INTO t2 VALUES (42);
+ERROR HY000: Lost connection to MySQL server during query
+ERROR HY000: Lost connection to MySQL server during query
+CHECK TABLE t1;
+Table	Op	Msg_type	Msg_text
+test.t1	check	status	OK
+INSERT INTO t3 VALUES
+(1,REPEAT('d',7000),REPEAT('e',100)),
+(2,REPEAT('g',7000),REPEAT('h',100));
+SET DEBUG_SYNC='before_row_upd_extern SIGNAL have_latch WAIT_FOR go';
+UPDATE t3 SET c=REPEAT('f',3000) WHERE a=1;
+SET DEBUG_SYNC='now WAIT_FOR have_latch';
+SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
+SELECT @@tx_isolation;
+@@tx_isolation
+READ-UNCOMMITTED
+SELECT a, RIGHT(b,20), RIGHT(c,20) FROM t3;
+SET DEBUG_SYNC='now SIGNAL go';
+a	RIGHT(b,20)	RIGHT(c,20)
+1	dddddddddddddddddddd	ffffffffffffffffffff
+2	gggggggggggggggggggg	hhhhhhhhhhhhhhhhhhhh
+CHECK TABLE t1,t2,t3;
+Table	Op	Msg_type	Msg_text
+test.t1	check	status	OK
+test.t2	check	status	OK
+test.t3	check	status	OK
+BEGIN;
+INSERT INTO t2 VALUES (347);
+SET DEBUG='+d,row_upd_extern_checkpoint';
+SET DEBUG_SYNC='before_row_upd_extern SIGNAL have_latch WAIT_FOR crash';
+UPDATE t3 SET c=REPEAT('i',3000) WHERE a=2;
+SET DEBUG_SYNC='now WAIT_FOR have_latch';
+SELECT info FROM information_schema.processlist
+WHERE state = 'debug sync point: before_row_upd_extern';
+info
+UPDATE t3 SET c=REPEAT('i',3000) WHERE a=2
+SET DEBUG='+d,crash_commit_before';
+COMMIT;
+ERROR HY000: Lost connection to MySQL server during query
+ERROR HY000: Lost connection to MySQL server during query
+CHECK TABLE t1,t2,t3;
+Table	Op	Msg_type	Msg_text
+test.t1	check	status	OK
+test.t2	check	status	OK
+test.t3	check	status	OK
+SELECT a, RIGHT(b,20), RIGHT(c,20) FROM t3;
+a	RIGHT(b,20)	RIGHT(c,20)
+1	dddddddddddddddddddd	ffffffffffffffffffff
+2	gggggggggggggggggggg	hhhhhhhhhhhhhhhhhhhh
+SELECT a FROM t3;
+a
+1
+2
+BEGIN;
+INSERT INTO t2 VALUES (33101);
+SET DEBUG='+d,row_upd_extern_checkpoint';
+SET DEBUG_SYNC='after_row_upd_extern SIGNAL have_latch WAIT_FOR crash';
+UPDATE t3 SET c=REPEAT('j',3000) WHERE a=2;
+SET DEBUG_SYNC='now WAIT_FOR have_latch';
+SELECT info FROM information_schema.processlist
+WHERE state = 'debug sync point: after_row_upd_extern';
+info
+UPDATE t3 SET c=REPEAT('j',3000) WHERE a=2
+SET DEBUG='+d,crash_commit_before';
+COMMIT;
+ERROR HY000: Lost connection to MySQL server during query
+ERROR HY000: Lost connection to MySQL server during query
+CHECK TABLE t1,t2,t3;
+Table	Op	Msg_type	Msg_text
+test.t1	check	status	OK
+test.t2	check	status	OK
+test.t3	check	status	OK
+SELECT a, RIGHT(b,20), RIGHT(c,20) FROM t3;
+a	RIGHT(b,20)	RIGHT(c,20)
+1	dddddddddddddddddddd	ffffffffffffffffffff
+2	gggggggggggggggggggg	hhhhhhhhhhhhhhhhhhhh
+SELECT a FROM t3;
+a
+1
+2
+SELECT * FROM t2;
+a
+DROP TABLE t1,t2,t3;
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/innodb/r/innodb_bug11754376.result mysql-5.5-5.5.22/mysql-test/suite/innodb/r/innodb_bug11754376.result
--- mysql-5.5-5.5.20/mysql-test/suite/innodb/r/innodb_bug11754376.result	1970-01-01 00:00:00.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/innodb/r/innodb_bug11754376.result	2012-03-02 19:44:46.000000000 +0000
@@ -0,0 +1,4 @@
+CREATE TABLE bug11754376 (c INT) ENGINE=INNODB;
+SET SESSION DEBUG='+d,test_normalize_table_name_low';
+DROP TABLE bug11754376;
+SET SESSION DEBUG='-d,test_normalize_table_name_low';
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/innodb/r/innodb_bug12400341.result mysql-5.5-5.5.22/mysql-test/suite/innodb/r/innodb_bug12400341.result
--- mysql-5.5-5.5.20/mysql-test/suite/innodb/r/innodb_bug12400341.result	1970-01-01 00:00:00.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/innodb/r/innodb_bug12400341.result	2012-03-02 19:44:46.000000000 +0000
@@ -0,0 +1,25 @@
+call mtr.add_suppression("InnoDB: Warning: cannot find a free slot for an undo log. Do you have too");
+show variables like "max_connections";
+Variable_name	Value
+max_connections	64
+show variables like "innodb_thread_concurrency";
+Variable_name	Value
+innodb_thread_concurrency	0
+show variables like "innodb_file_per_table";
+Variable_name	Value
+innodb_file_per_table	ON
+drop database if exists mysqltest;
+create database mysqltest;
+CREATE TABLE mysqltest.transtable (id int unsigned NOT NULL PRIMARY KEY, val int DEFAULT 0) ENGINE=InnoDB;
+select count(*) from information_schema.processlist;
+count(*)
+33
+CREATE TABLE mysqltest.testtable (id int unsigned not null primary key) ENGINE=InnoDB;
+ERROR HY000: Can't create table 'mysqltest.testtable' (errno: 177)
+select count(*) from information_schema.processlist;
+count(*)
+33
+select count(*) from information_schema.processlist;
+count(*)
+33
+drop database mysqltest;
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/innodb/r/innodb_bug13510739.result mysql-5.5-5.5.22/mysql-test/suite/innodb/r/innodb_bug13510739.result
--- mysql-5.5-5.5.20/mysql-test/suite/innodb/r/innodb_bug13510739.result	1970-01-01 00:00:00.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/innodb/r/innodb_bug13510739.result	2012-03-02 19:44:46.000000000 +0000
@@ -0,0 +1,10 @@
+CREATE TABLE bug13510739 (c INTEGER NOT NULL, PRIMARY KEY (c)) ENGINE=INNODB;
+INSERT INTO bug13510739 VALUES (1), (2), (3), (4);
+DELETE FROM bug13510739 WHERE c=2;
+HANDLER bug13510739 OPEN;
+HANDLER bug13510739 READ `primary` = (2);
+c
+HANDLER bug13510739 READ `primary` NEXT;
+c
+4
+DROP TABLE bug13510739;
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/innodb/r/innodb-index.result mysql-5.5-5.5.22/mysql-test/suite/innodb/r/innodb-index.result
--- mysql-5.5-5.5.20/mysql-test/suite/innodb/r/innodb-index.result	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/innodb/r/innodb-index.result	2012-03-02 19:44:46.000000000 +0000
@@ -114,6 +114,10 @@
   KEY `ndx_o` (`o`(500)),
   KEY `ndx_p` (`p`(500))
 ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
+create table t1(a varchar(2) primary key) engine=innodb;
+insert into t1 values('');
+create index t1a1 on t1(a(1));
+drop table t1;
 set global innodb_file_per_table=0;
 set global innodb_file_format=Antelope;
 create table t1(a int not null, b int, c char(10) not null, d varchar(20)) engine = innodb;
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/innodb/t/innodb-blob.test mysql-5.5-5.5.22/mysql-test/suite/innodb/t/innodb-blob.test
--- mysql-5.5-5.5.20/mysql-test/suite/innodb/t/innodb-blob.test	1970-01-01 00:00:00.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/innodb/t/innodb-blob.test	2012-03-02 19:44:46.000000000 +0000
@@ -0,0 +1,216 @@
+# Bug#13721257 RACE CONDITION IN UPDATES OR INSERTS OF WIDE RECORDS
+# Test what happens when a record is inserted or updated so that some
+# columns are stored off-page.
+
+--source include/have_innodb.inc
+
+# DEBUG_SYNC must be compiled in.
+--source include/have_debug_sync.inc
+
+# Valgrind would complain about memory leaks when we crash on purpose.
+--source include/not_valgrind.inc
+# Embedded server does not support crashing
+--source include/not_embedded.inc
+# Avoid CrashReporter popup on Mac
+--source include/not_crashrep.inc
+
+CREATE TABLE t1 (a INT PRIMARY KEY, b TEXT) ENGINE=InnoDB;
+CREATE TABLE t2 (a INT PRIMARY KEY) ENGINE=InnoDB;
+CREATE TABLE t3 (a INT PRIMARY KEY, b TEXT, c TEXT) ENGINE=InnoDB;
+
+INSERT INTO t1 VALUES (1,REPEAT('a',30000)),(2,REPEAT('b',40000));
+SET DEBUG_SYNC='before_row_upd_extern SIGNAL have_latch WAIT_FOR go1';
+BEGIN;
+# This will not block, because it will not store new BLOBs.
+UPDATE t1 SET a=a+2;
+ROLLBACK;
+BEGIN;
+--send
+UPDATE t1 SET b=CONCAT(b,'foo');
+
+connect (con1,localhost,root,,);
+SET DEBUG_SYNC='now WAIT_FOR have_latch';
+
+# this one should block due to the clustered index tree and leaf page latches
+--send
+SELECT a, RIGHT(b,20) FROM t1;
+
+connect (con2,localhost,root,,);
+
+# Check that the above SELECT is blocked
+let $wait_condition=
+  select count(*) = 1 from information_schema.processlist
+  where state = 'Sending data' and
+        info = 'SELECT a, RIGHT(b,20) FROM t1';
+--source include/wait_condition.inc
+
+SET DEBUG_SYNC='now SIGNAL go1';
+
+connection con1;
+reap;
+connection default;
+reap;
+SET DEBUG='+d,row_ins_extern_checkpoint';
+SET DEBUG_SYNC='before_row_ins_extern_latch SIGNAL rec_not_blob WAIT_FOR crash';
+ROLLBACK;
+BEGIN;
+--send
+INSERT INTO t1 VALUES (3,REPEAT('c',50000));
+
+connection con1;
+SET DEBUG_SYNC='now WAIT_FOR rec_not_blob';
+SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
+SELECT @@tx_isolation;
+
+# this one should see (3,NULL_BLOB)
+SELECT a, RIGHT(b,20) FROM t1;
+SELECT a FROM t1;
+
+# Request a crash, and restart the server.
+SET DEBUG='+d,crash_commit_before';
+--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--error 2013
+INSERT INTO t2 VALUES (42);
+
+disconnect con1;
+disconnect con2;
+connection default;
+# This connection should notice the crash as well.
+--error 2013
+reap;
+
+# Write file to make mysql-test-run.pl restart the server
+--enable_reconnect
+--source include/wait_until_connected_again.inc
+--disable_reconnect
+
+CHECK TABLE t1;
+
+INSERT INTO t3 VALUES
+       (1,REPEAT('d',7000),REPEAT('e',100)),
+       (2,REPEAT('g',7000),REPEAT('h',100));
+SET DEBUG_SYNC='before_row_upd_extern SIGNAL have_latch WAIT_FOR go';
+# This should move column b off-page.
+--send
+UPDATE t3 SET c=REPEAT('f',3000) WHERE a=1;
+
+connect (con1,localhost,root,,);
+SET DEBUG_SYNC='now WAIT_FOR have_latch';
+SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
+SELECT @@tx_isolation;
+
+# this one should block
+-- send
+SELECT a, RIGHT(b,20), RIGHT(c,20) FROM t3;
+
+connect (con2,localhost,root,,);
+
+# Check that the above SELECT is blocked
+let $wait_condition=
+  select count(*) = 1 from information_schema.processlist
+  where state = 'Sending data' and
+        info = 'SELECT a, RIGHT(b,20), RIGHT(c,20) FROM t3';
+--source include/wait_condition.inc
+
+SET DEBUG_SYNC='now SIGNAL go';
+
+connection con1;
+reap;
+disconnect con1;
+
+connection default;
+reap;
+
+CHECK TABLE t1,t2,t3;
+
+connection con2;
+BEGIN;
+INSERT INTO t2 VALUES (347);
+connection default;
+
+# The row_upd_extern_checkpoint was removed in Bug#13721257,
+# because the mini-transaction of the B-tree modification would
+# remain open while we are writing the off-page columns and are
+# stuck in the DEBUG_SYNC. A checkpoint involves a flush, which
+# would wait for the buffer-fix to cease.
+SET DEBUG='+d,row_upd_extern_checkpoint';
+SET DEBUG_SYNC='before_row_upd_extern SIGNAL have_latch WAIT_FOR crash';
+# This should move column b off-page.
+--send
+UPDATE t3 SET c=REPEAT('i',3000) WHERE a=2;
+
+connection con2;
+SET DEBUG_SYNC='now WAIT_FOR have_latch';
+
+# Check that the above UPDATE is blocked
+SELECT info FROM information_schema.processlist
+WHERE state = 'debug sync point: before_row_upd_extern';
+
+# Request a crash, and restart the server.
+SET DEBUG='+d,crash_commit_before';
+--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--error 2013
+COMMIT;
+
+disconnect con2;
+connection default;
+# This connection should notice the crash as well.
+--error 2013
+reap;
+
+# Write file to make mysql-test-run.pl restart the server
+--enable_reconnect
+--source include/wait_until_connected_again.inc
+--disable_reconnect
+
+CHECK TABLE t1,t2,t3;
+SELECT a, RIGHT(b,20), RIGHT(c,20) FROM t3;
+SELECT a FROM t3;
+
+connect (con2,localhost,root,,);
+BEGIN;
+INSERT INTO t2 VALUES (33101);
+connection default;
+
+# The row_upd_extern_checkpoint was removed in Bug#13721257,
+# because the mini-transaction of the B-tree modification would
+# remain open while we are writing the off-page columns and are
+# stuck in the DEBUG_SYNC. A checkpoint involves a flush, which
+# would wait for the buffer-fix to cease.
+SET DEBUG='+d,row_upd_extern_checkpoint';
+SET DEBUG_SYNC='after_row_upd_extern SIGNAL have_latch WAIT_FOR crash';
+# This should move column b off-page.
+--send
+UPDATE t3 SET c=REPEAT('j',3000) WHERE a=2;
+
+connection con2;
+SET DEBUG_SYNC='now WAIT_FOR have_latch';
+
+# Check that the above UPDATE is blocked
+SELECT info FROM information_schema.processlist
+WHERE state = 'debug sync point: after_row_upd_extern';
+
+# Request a crash, and restart the server.
+SET DEBUG='+d,crash_commit_before';
+--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+--error 2013
+COMMIT;
+
+disconnect con2;
+connection default;
+# This connection should notice the crash as well.
+--error 2013
+reap;
+
+# Write file to make mysql-test-run.pl restart the server
+--enable_reconnect
+--source include/wait_until_connected_again.inc
+--disable_reconnect
+
+CHECK TABLE t1,t2,t3;
+SELECT a, RIGHT(b,20), RIGHT(c,20) FROM t3;
+SELECT a FROM t3;
+
+SELECT * FROM t2;
+
+DROP TABLE t1,t2,t3;
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/innodb/t/innodb_bug11754376.test mysql-5.5-5.5.22/mysql-test/suite/innodb/t/innodb_bug11754376.test
--- mysql-5.5-5.5.20/mysql-test/suite/innodb/t/innodb_bug11754376.test	1970-01-01 00:00:00.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/innodb/t/innodb_bug11754376.test	2012-03-02 19:44:46.000000000 +0000
@@ -0,0 +1,16 @@
+#
+# Bug#11754376 45976: INNODB LOST FILES FOR TEMPORARY TABLES ON GRACEFUL SHUTDOWN
+#
+
+-- source include/have_debug.inc
+-- source include/have_innodb.inc
+
+CREATE TABLE bug11754376 (c INT) ENGINE=INNODB;
+
+# This will invoke test_normalize_table_name_low() in debug builds
+
+SET SESSION DEBUG='+d,test_normalize_table_name_low';
+
+DROP TABLE bug11754376;
+
+SET SESSION DEBUG='-d,test_normalize_table_name_low';
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/innodb/t/innodb_bug12400341-master.opt mysql-5.5-5.5.22/mysql-test/suite/innodb/t/innodb_bug12400341-master.opt
--- mysql-5.5-5.5.20/mysql-test/suite/innodb/t/innodb_bug12400341-master.opt	1970-01-01 00:00:00.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/innodb/t/innodb_bug12400341-master.opt	2012-03-02 19:44:46.000000000 +0000
@@ -0,0 +1 @@
+--max_connections=64 --innodb_thread_concurrency=0 --innodb_file_per_table --innodb_rollback_segments=2
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/innodb/t/innodb_bug12400341.test mysql-5.5-5.5.22/mysql-test/suite/innodb/t/innodb_bug12400341.test
--- mysql-5.5-5.5.20/mysql-test/suite/innodb/t/innodb_bug12400341.test	1970-01-01 00:00:00.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/innodb/t/innodb_bug12400341.test	2012-03-02 19:44:46.000000000 +0000
@@ -0,0 +1,103 @@
+# Test for bug #12400341: INNODB CAN LEAVE ORPHAN IBD FILES AROUND
+
+-- source include/have_innodb.inc
+
+if (`select count(*)=0 from information_schema.global_variables where variable_name = 'INNODB_TRX_RSEG_N_SLOTS_DEBUG'`)
+{
+  --skip Test requires InnoDB built with UNIV_DEBUG definition.
+}
+
+call mtr.add_suppression("InnoDB: Warning: cannot find a free slot for an undo log. Do you have too");
+
+--disable_query_log
+set @old_innodb_trx_rseg_n_slots_debug = @@innodb_trx_rseg_n_slots_debug;
+set global innodb_trx_rseg_n_slots_debug = 32;
+--enable_query_log
+
+show variables like "max_connections";
+show variables like "innodb_thread_concurrency";
+show variables like "innodb_file_per_table";
+
+--disable_warnings
+drop database if exists mysqltest;
+--enable_warnings
+
+create database mysqltest;
+CREATE TABLE mysqltest.transtable (id int unsigned NOT NULL PRIMARY KEY, val int DEFAULT 0) ENGINE=InnoDB;
+
+--disable_query_log
+#
+# Insert in 1 transaction which needs over 1 page undo record to avoid the insert_undo cached,
+# because the cached insert_undo can be reused at "CREATE TABLE" statement later.
+#
+START TRANSACTION;
+let $c = 1024;
+while ($c)
+{
+  eval INSERT INTO mysqltest.transtable (id) VALUES ($c);
+  dec $c;
+}
+COMMIT;
+
+let $c = 32;
+while ($c)
+{
+  # if failed at here, it might be shortage of file descriptors limit.
+  connect (con$c,localhost,root,,);
+  dec $c;
+}
+--enable_query_log
+
+select count(*) from information_schema.processlist;
+
+#
+# fill the all undo slots
+#
+--disable_query_log
+let $c = 32;
+while ($c)
+{
+  connection con$c;
+  START TRANSACTION;
+  eval UPDATE mysqltest.transtable SET val = 1 WHERE id = 33 - $c;
+  dec $c;
+}
+--enable_query_log
+
+connection default;
+
+--error ER_CANT_CREATE_TABLE
+CREATE TABLE mysqltest.testtable (id int unsigned not null primary key) ENGINE=InnoDB;
+
+select count(*) from information_schema.processlist;
+
+--disable_query_log
+let $c = 32;
+while ($c)
+{
+  connection con$c;
+  ROLLBACK;
+  dec $c;
+}
+--enable_query_log
+
+connection default;
+select count(*) from information_schema.processlist;
+
+--disable_query_log
+let $c = 32;
+while ($c)
+{
+  disconnect con$c;
+  dec $c;
+}
+--enable_query_log
+
+#
+# If the isolated .ibd file remained, the drop database should fail.
+#
+drop database mysqltest;
+
+--disable_query_log
+set global innodb_trx_rseg_n_slots_debug = @old_innodb_trx_rseg_n_slots_debug;
+--enable_query_log
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/innodb/t/innodb_bug13510739.test mysql-5.5-5.5.22/mysql-test/suite/innodb/t/innodb_bug13510739.test
--- mysql-5.5-5.5.20/mysql-test/suite/innodb/t/innodb_bug13510739.test	1970-01-01 00:00:00.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/innodb/t/innodb_bug13510739.test	2012-03-02 19:44:46.000000000 +0000
@@ -0,0 +1,20 @@
+#
+# Bug#13510739 63775: SERVER CRASH ON HANDLER READ NEXT AFTER DELETE RECORD.
+#
+
+-- source include/have_innodb.inc
+
+CREATE TABLE bug13510739 (c INTEGER NOT NULL, PRIMARY KEY (c)) ENGINE=INNODB;
+
+INSERT INTO bug13510739 VALUES (1), (2), (3), (4);
+
+DELETE FROM bug13510739 WHERE c=2;
+
+HANDLER bug13510739 OPEN;
+
+HANDLER bug13510739 READ `primary` = (2);
+
+# this one crashes the server if the bug is present
+HANDLER bug13510739 READ `primary` NEXT;
+
+DROP TABLE bug13510739;
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/innodb/t/innodb_bug34300.test mysql-5.5-5.5.22/mysql-test/suite/innodb/t/innodb_bug34300.test
--- mysql-5.5-5.5.20/mysql-test/suite/innodb/t/innodb_bug34300.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/innodb/t/innodb_bug34300.test	2012-03-02 19:44:46.000000000 +0000
@@ -8,6 +8,8 @@
 -- disable_query_log
 -- disable_result_log
 
+call mtr.add_suppression("InnoDB: Warning: a long semaphore wait:");
+
 # set packet size and reconnect 
 let $max_packet=`select @@global.max_allowed_packet`;
 SET @@global.max_allowed_packet=16777216;
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/innodb/t/innodb_bug53756.test mysql-5.5-5.5.22/mysql-test/suite/innodb/t/innodb_bug53756.test
--- mysql-5.5-5.5.20/mysql-test/suite/innodb/t/innodb_bug53756.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/innodb/t/innodb_bug53756.test	2012-03-02 19:44:46.000000000 +0000
@@ -139,6 +139,9 @@
 # Request a crash on next execution of commit.
 SET SESSION debug="+d,crash_commit_before";
 #
+# Write file to make mysql-test-run.pl start up the server again
+--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
+#
 # Execute the statement that causes the crash.
 --error 2013
 COMMIT;
@@ -154,9 +157,6 @@
 --echo #
 --echo # Restart server.
 #
-# Write file to make mysql-test-run.pl start up the server again
---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
-#
 # Turn on reconnect
 --enable_reconnect
 #
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/innodb/t/innodb-index.test mysql-5.5-5.5.22/mysql-test/suite/innodb/t/innodb-index.test
--- mysql-5.5-5.5.20/mysql-test/suite/innodb/t/innodb-index.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/innodb/t/innodb-index.test	2012-03-02 19:44:46.000000000 +0000
@@ -119,6 +119,11 @@
 # this file complete before dropping the table.  By then, the purge thread
 # will have delt with the updates above.
 
+# Bug#13654923 BOGUS DEBUG ASSERTION IN INDEX CREATION FOR ZERO-LENGTH RECORD
+create table t1(a varchar(2) primary key) engine=innodb;
+insert into t1 values('');
+create index t1a1 on t1(a(1));
+drop table t1;
 
 eval set global innodb_file_per_table=$per_table;
 eval set global innodb_file_format=$format;
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/rpl/r/rpl_auto_increment_11932.result mysql-5.5-5.5.22/mysql-test/suite/rpl/r/rpl_auto_increment_11932.result
--- mysql-5.5-5.5.20/mysql-test/suite/rpl/r/rpl_auto_increment_11932.result	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/rpl/r/rpl_auto_increment_11932.result	2012-03-02 19:44:46.000000000 +0000
@@ -1,5 +1,6 @@
 include/master-slave.inc
 [connection master]
+call mtr.add_suppression('Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT.');
 drop database if exists test1;
 create database test1;
 use test1;
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/rpl/r/rpl_cant_read_event_incident.result mysql-5.5-5.5.22/mysql-test/suite/rpl/r/rpl_cant_read_event_incident.result
--- mysql-5.5-5.5.20/mysql-test/suite/rpl/r/rpl_cant_read_event_incident.result	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/rpl/r/rpl_cant_read_event_incident.result	2012-03-02 19:44:46.000000000 +0000
@@ -11,7 +11,7 @@
 start slave;
 include/wait_for_slave_param.inc [Last_IO_Errno]
 Last_IO_Errno = '1236'
-Last_IO_Error = 'Got fatal error 1236 from master when reading data from binary log: 'binlog truncated in the middle of event; consider out of disk space on master; the last event was read from './master-bin.000001' at 316, the last byte read was read from './master-bin.000001' at 335.''
+Last_IO_Error = 'Got fatal error 1236 from master when reading data from binary log: 'binlog truncated in the middle of event; consider out of disk space on master; the first event '' at XXX, the last event read from './master-bin.000001' at XXX, the last byte read from './master-bin.000001' at XXX.''
 reset master;
 stop slave;
 reset slave;
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/rpl/r/rpl_heartbeat_basic.result mysql-5.5-5.5.22/mysql-test/suite/rpl/r/rpl_heartbeat_basic.result
--- mysql-5.5-5.5.20/mysql-test/suite/rpl/r/rpl_heartbeat_basic.result	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/rpl/r/rpl_heartbeat_basic.result	2012-03-02 19:44:46.000000000 +0000
@@ -270,6 +270,7 @@
 include/rpl_reset.inc
 include/stop_slave.inc
 include/rpl_change_topology.inc [new topology=1->2->1]
+CHANGE MASTER TO MASTER_HEARTBEAT_PERIOD=1;
 include/start_slave.inc
 CREATE TABLE t1 (a INT PRIMARY KEY, b VARCHAR(10));
 INSERT INTO t1 VALUES(1, 'on master');
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result mysql-5.5-5.5.22/mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result
--- mysql-5.5-5.5.20/mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result	2012-03-02 19:44:46.000000000 +0000
@@ -861,7 +861,8 @@
 master-bin.000001	#	Write_rows	#	#	table_id: # flags: STMT_END_F
 master-bin.000001	#	Xid	#	#	COMMIT /* XID */
 master-bin.000001	#	Query	#	#	BEGIN
-master-bin.000001	#	Query	#	#	use `test_rpl`; INSERT INTO t2 SELECT * FROM t1
+master-bin.000001	#	Table_map	#	#	table_id: # (test_rpl.t2)
+master-bin.000001	#	Write_rows	#	#	table_id: # flags: STMT_END_F
 master-bin.000001	#	Xid	#	#	COMMIT /* XID */
 master-bin.000001	#	Query	#	#	BEGIN
 master-bin.000001	#	Query	#	#	use `test_rpl`; INSERT INTO t2 VALUES (1, 't1, text 1') ON DUPLICATE KEY UPDATE b = 't2, text 1'
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/rpl/r/rpl_insert_id_pk.result mysql-5.5-5.5.22/mysql-test/suite/rpl/r/rpl_insert_id_pk.result
--- mysql-5.5-5.5.20/mysql-test/suite/rpl/r/rpl_insert_id_pk.result	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/rpl/r/rpl_insert_id_pk.result	2012-03-02 19:44:46.000000000 +0000
@@ -1,5 +1,6 @@
 include/master-slave.inc
 [connection master]
+call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT.");
 create table t1(a int auto_increment, primary key(a));
 create table t2(b int auto_increment, c int, primary key(b));
 insert into t1 values (1),(2),(3);
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/rpl/r/rpl_known_bugs_detection.result mysql-5.5-5.5.22/mysql-test/suite/rpl/r/rpl_known_bugs_detection.result
--- mysql-5.5-5.5.20/mysql-test/suite/rpl/r/rpl_known_bugs_detection.result	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/rpl/r/rpl_known_bugs_detection.result	2012-03-02 19:44:46.000000000 +0000
@@ -1,5 +1,6 @@
 include/master-slave.inc
 [connection master]
+call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT.");
 CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY AUTO_INCREMENT, b INT,
 UNIQUE(b));
 INSERT INTO t1(b) VALUES(1),(1),(2) ON DUPLICATE KEY UPDATE t1.b=10;
@@ -44,6 +45,7 @@
 t1.field_3 = t2.field_c;
 Warnings:
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. INSERT... SELECT... ON DUPLICATE KEY UPDATE is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are updated. This order cannot be predicted and may differ on master and the slave.
+Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave.
 INSERT INTO t2 (field_a, field_b, field_c) VALUES (6, 'f', '6f');
 INSERT INTO t1 (field_1, field_2, field_3)
 SELECT t2.field_a, t2.field_b, t2.field_c
@@ -52,6 +54,7 @@
 t1.field_3 = t2.field_c;
 Warnings:
 Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. INSERT... SELECT... ON DUPLICATE KEY UPDATE is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are updated. This order cannot be predicted and may differ on master and the slave.
+Note	1592	Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave.
 SELECT * FROM t1;
 id	field_1	field_2	field_3
 1	1	a	1a
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/rpl/r/rpl_log_pos.result mysql-5.5-5.5.22/mysql-test/suite/rpl/r/rpl_log_pos.result
--- mysql-5.5-5.5.20/mysql-test/suite/rpl/r/rpl_log_pos.result	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/rpl/r/rpl_log_pos.result	2012-03-02 19:44:46.000000000 +0000
@@ -9,6 +9,7 @@
 Read_Master_Log_Pos = '75'
 start slave;
 include/wait_for_slave_io_error.inc [errno=1236]
+Last_IO_Error = 'Got fatal error 1236 from master when reading data from binary log: 'log event entry exceeded max_allowed_packet; Increase max_allowed_packet on master; the first event 'master-bin.000001' at XXX, the last event read from './master-bin.000001' at XXX, the last byte read from './master-bin.000001' at XXX.''
 include/stop_slave_sql.inc
 show master status;
 File	Position	Binlog_Do_DB	Binlog_Ignore_DB
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/rpl/r/rpl_manual_change_index_file.result mysql-5.5-5.5.22/mysql-test/suite/rpl/r/rpl_manual_change_index_file.result
--- mysql-5.5-5.5.20/mysql-test/suite/rpl/r/rpl_manual_change_index_file.result	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/rpl/r/rpl_manual_change_index_file.result	2012-03-02 19:44:46.000000000 +0000
@@ -5,6 +5,7 @@
 FLUSH LOGS;
 call mtr.add_suppression('Got fatal error 1236 from master when reading data from binary log: .*could not find next log');
 include/wait_for_slave_io_error.inc [errno=1236]
+Last_IO_Error = 'Got fatal error 1236 from master when reading data from binary log: 'could not find next log; the first event 'master-bin.000001' at XXX, the last event read from './master-bin.000002' at XXX, the last byte read from './master-bin.000002' at XXX.''
 CREATE TABLE t2(c1 INT);
 FLUSH LOGS;
 CREATE TABLE t3(c1 INT);
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/rpl/r/rpl_multi_update2.result mysql-5.5-5.5.22/mysql-test/suite/rpl/r/rpl_multi_update2.result
--- mysql-5.5-5.5.20/mysql-test/suite/rpl/r/rpl_multi_update2.result	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/rpl/r/rpl_multi_update2.result	2012-03-02 19:44:46.000000000 +0000
@@ -1,5 +1,6 @@
 include/master-slave.inc
 [connection master]
+call mtr.add_suppression('Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT');
 drop table if exists t1,t2;
 CREATE TABLE t1 (
 a int unsigned not null auto_increment primary key,
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/rpl/r/rpl_multi_update3.result mysql-5.5-5.5.22/mysql-test/suite/rpl/r/rpl_multi_update3.result
--- mysql-5.5-5.5.20/mysql-test/suite/rpl/r/rpl_multi_update3.result	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/rpl/r/rpl_multi_update3.result	2012-03-02 19:44:46.000000000 +0000
@@ -1,5 +1,6 @@
 include/master-slave.inc
 [connection master]
+call mtr.add_suppression('Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT.');
 
 -------- Test for BUG#9361 --------
 CREATE TABLE t1 (
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/rpl/r/rpl_multi_update.result mysql-5.5-5.5.22/mysql-test/suite/rpl/r/rpl_multi_update.result
--- mysql-5.5-5.5.20/mysql-test/suite/rpl/r/rpl_multi_update.result	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/rpl/r/rpl_multi_update.result	2012-03-02 19:44:46.000000000 +0000
@@ -1,5 +1,6 @@
 include/master-slave.inc
 [connection master]
+call mtr.add_suppression('Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT.');
 CREATE TABLE t1 (
 a int unsigned not null auto_increment primary key,
 b int unsigned
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/rpl/r/rpl_packet.result mysql-5.5-5.5.22/mysql-test/suite/rpl/r/rpl_packet.result
--- mysql-5.5-5.5.20/mysql-test/suite/rpl/r/rpl_packet.result	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/rpl/r/rpl_packet.result	2012-03-02 19:44:46.000000000 +0000
@@ -37,6 +37,7 @@
 CREATE TABLE t1 (f1 int PRIMARY KEY, f2 LONGTEXT, f3 LONGTEXT) ENGINE=MyISAM;
 INSERT INTO t1(f1, f2, f3) VALUES(1, REPEAT('a', @@global.max_allowed_packet), REPEAT('b', @@global.max_allowed_packet));
 include/wait_for_slave_io_error.inc [errno=1236]
+Last_IO_Error = 'Got fatal error 1236 from master when reading data from binary log: 'log event entry exceeded max_allowed_packet; Increase max_allowed_packet on master; the first event '' at XXX, the last event read from './master-bin.000001' at XXX, the last byte read from './master-bin.000001' at XXX.''
 STOP SLAVE;
 RESET SLAVE;
 RESET MASTER;
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/rpl/r/rpl_rotate_logs.result mysql-5.5-5.5.22/mysql-test/suite/rpl/r/rpl_rotate_logs.result
--- mysql-5.5-5.5.20/mysql-test/suite/rpl/r/rpl_rotate_logs.result	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/rpl/r/rpl_rotate_logs.result	2012-03-02 19:44:46.000000000 +0000
@@ -1,3 +1,4 @@
+CALL mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT.");
 start slave;
 Got one of the listed errors
 start slave;
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/rpl/r/rpl_start_stop_slave.result mysql-5.5-5.5.22/mysql-test/suite/rpl/r/rpl_start_stop_slave.result
--- mysql-5.5-5.5.20/mysql-test/suite/rpl/r/rpl_start_stop_slave.result	1970-01-01 00:00:00.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/rpl/r/rpl_start_stop_slave.result	2012-03-02 19:44:46.000000000 +0000
@@ -0,0 +1,10 @@
+include/master-slave.inc
+[connection master]
+set @time_before_kill := (select CURRENT_TIMESTAMP);
+[Time before the query]
+[Connection ID of the slave I/O thread found]
+kill ;
+set @time_after_kill := (select CURRENT_TIMESTAMP);
+[Time after the query]
+[Killing of the slave IO thread was successful]
+include/rpl_end.inc
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/rpl/r/rpl_stm_start_stop_slave.result mysql-5.5-5.5.22/mysql-test/suite/rpl/r/rpl_stm_start_stop_slave.result
--- mysql-5.5-5.5.20/mysql-test/suite/rpl/r/rpl_stm_start_stop_slave.result	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/rpl/r/rpl_stm_start_stop_slave.result	2012-03-02 19:44:46.000000000 +0000
@@ -69,6 +69,16 @@
 include/start_slave.inc
 # Clean up
 DROP TABLE t1;
+RESET MASTER;
+include/stop_slave.inc
+CHANGE MASTER TO master_log_pos=MASTER_POS;
+START SLAVE;
+include/wait_for_slave_param.inc [Last_IO_Errno]
+Last_IO_Errno = '1236'
+Last_IO_Error = 'Got fatal error 1236 from master when reading data from binary log: 'Client requested master to start replication from impossible position; the first event 'master-bin.000001' at XXX, the last event read from './master-bin.000001' at XXX, the last byte read from './master-bin.000001' at XXX.''
+include/stop_slave.inc
+RESET SLAVE;
+RESET MASTER;
 SET @@global.innodb_flush_log_at_trx_commit= @old_innodb_flush_log_at_trx_commit;
 call mtr.add_suppression("Slave SQL.*Request to stop slave SQL Thread received while applying a group that has non-transactional changes; waiting for completion of the group");
 SET @@global.innodb_flush_log_at_trx_commit= @old_innodb_flush_log_at_trx_commit;
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/rpl/t/rpl_auto_increment_11932.test mysql-5.5-5.5.22/mysql-test/suite/rpl/t/rpl_auto_increment_11932.test
--- mysql-5.5-5.5.20/mysql-test/suite/rpl/t/rpl_auto_increment_11932.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/rpl/t/rpl_auto_increment_11932.test	2012-03-02 19:44:46.000000000 +0000
@@ -8,6 +8,7 @@
 # Test supplied by Are Casilla
 
 source include/master-slave.inc;
+call mtr.add_suppression('Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT.');
 --disable_warnings
 connection master;
 drop database if exists test1;
@@ -42,12 +43,16 @@
     $
 DELIMITER ;$
 
+--disable_warnings
 CALL simpleproc3();
+--enable_warnings
 
 select * from t2;
 
 TRUNCATE TABLE `t1`;
+--disable_warnings
 CALL simpleproc3();
+--enable_warnings
 
 select * from t1;
 
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/rpl/t/rpl_cant_read_event_incident.test mysql-5.5-5.5.22/mysql-test/suite/rpl/t/rpl_cant_read_event_incident.test
--- mysql-5.5-5.5.20/mysql-test/suite/rpl/t/rpl_cant_read_event_incident.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/rpl/t/rpl_cant_read_event_incident.test	2012-03-02 19:44:46.000000000 +0000
@@ -14,11 +14,6 @@
 
 --source include/master-slave.inc
 --source include/have_binlog_format_mixed.inc
-#
-# Bug#13050593 swallows `\' from  Last_IO_Error
-# todo: uncomment the filter once the bug is fixed.
-#
---source include/not_windows.inc
 
 call mtr.add_suppression("Error in Log_event::read_log_event()");
 
@@ -51,6 +46,7 @@
 --let $slave_param_value=1236
 --source include/wait_for_slave_param.inc
 
+--let $slave_field_result_replace= / at [0-9]*/ at XXX/
 --let $status_items= Last_IO_Errno, Last_IO_Error
 --source include/show_slave_status.inc
 
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/rpl/t/rpl_heartbeat_basic.test mysql-5.5-5.5.22/mysql-test/suite/rpl/t/rpl_heartbeat_basic.test
--- mysql-5.5-5.5.20/mysql-test/suite/rpl/t/rpl_heartbeat_basic.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/rpl/t/rpl_heartbeat_basic.test	2012-03-02 19:44:46.000000000 +0000
@@ -480,6 +480,12 @@
 --connection master
 #--replace_result $SLAVE_MYPORT SLAVE_PORT $slave_binlog SLAVE_BINLOG
 #eval CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=$SLAVE_MYPORT, MASTER_USER='root', MASTER_CONNECT_RETRY=$connect_retry, MASTER_HEARTBEAT_PERIOD=1, MASTER_LOG_FILE='$slave_binlog';
+
+# BUG#12403008 RPL_HEARTBEAT_BASIC FAILS SPORADICALLY ON PUSHBUILD
+# MASTER_HEARTBEAT_PERIOD had the default value (slave_net_timeout/2)
+# so wait on "Heartbeat event received on master", that only waits for
+# 1 minute, sometimes timeout before heartbeat arrives.
+CHANGE MASTER TO MASTER_HEARTBEAT_PERIOD=1;
 --source include/start_slave.inc
 
 # Insert data on master and on slave and make sure that it replicated for both directions
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/rpl/t/rpl_known_bugs_detection.test mysql-5.5-5.5.22/mysql-test/suite/rpl/t/rpl_known_bugs_detection.test
--- mysql-5.5-5.5.20/mysql-test/suite/rpl/t/rpl_known_bugs_detection.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/rpl/t/rpl_known_bugs_detection.test	2012-03-02 19:44:46.000000000 +0000
@@ -6,6 +6,8 @@
 source include/have_debug.inc;
 source include/master-slave.inc;
 
+call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT.");
+
 # Currently only statement-based-specific bugs are here
 -- source include/have_binlog_format_statement.inc
 
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/rpl/t/rpl_log_pos.test mysql-5.5-5.5.22/mysql-test/suite/rpl/t/rpl_log_pos.test
--- mysql-5.5-5.5.20/mysql-test/suite/rpl/t/rpl_log_pos.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/rpl/t/rpl_log_pos.test	2012-03-02 19:44:46.000000000 +0000
@@ -22,12 +22,9 @@
 source include/show_slave_status.inc;
 start slave;
 let $slave_io_errno= 1236;
-#
-# Win and Unix path is printed differently: BUG#13055685. So
-# show_slave_io_error is made 0 until the bug fixes provide necessary
-# facilities
-#
-let $show_slave_io_error= 0;
+--let $show_slave_io_error= 1
+# Mask line numbers
+--let $slave_io_error_replace= / at [0-9]*/ at XXX/
 source include/wait_for_slave_io_error.inc;
 source include/stop_slave_sql.inc;
 
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/rpl/t/rpl_manual_change_index_file.test mysql-5.5-5.5.22/mysql-test/suite/rpl/t/rpl_manual_change_index_file.test
--- mysql-5.5-5.5.20/mysql-test/suite/rpl/t/rpl_manual_change_index_file.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/rpl/t/rpl_manual_change_index_file.test	2012-03-02 19:44:46.000000000 +0000
@@ -60,12 +60,9 @@
 connection slave;
 # 1236 = ER_MASTER_FATAL_ERROR_READING_BINLOG
 --let $slave_io_errno= 1236
-#
-# Win and Unix path is printed differently: BUG#13055685. So
-# show_slave_io_error is made 0 until the bug fixes provide necessary
-# facilities
-#
---let $show_slave_io_error= 0
+--let $show_slave_io_error= 1
+# Mask line numbers
+--let $slave_io_error_replace= / at [0-9]*/ at XXX/
 --source include/wait_for_slave_io_error.inc
 
 connection master;
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/rpl/t/rpl_multi_update2.test mysql-5.5-5.5.22/mysql-test/suite/rpl/t/rpl_multi_update2.test
--- mysql-5.5-5.5.20/mysql-test/suite/rpl/t/rpl_multi_update2.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/rpl/t/rpl_multi_update2.test	2012-03-02 19:44:46.000000000 +0000
@@ -6,6 +6,7 @@
 #######################################################
 --source include/not_ndb_default.inc
 --source include/master-slave.inc
+call mtr.add_suppression('Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT');
 let $engine_type=MyISAM;
 --source extra/rpl_tests/rpl_multi_update2.test
 --source include/rpl_end.inc
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/rpl/t/rpl_multi_update3.test mysql-5.5-5.5.22/mysql-test/suite/rpl/t/rpl_multi_update3.test
--- mysql-5.5-5.5.20/mysql-test/suite/rpl/t/rpl_multi_update3.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/rpl/t/rpl_multi_update3.test	2012-03-02 19:44:46.000000000 +0000
@@ -6,6 +6,7 @@
 #######################################################
 --source include/not_ndb_default.inc
 --source include/master-slave.inc
+call mtr.add_suppression('Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT.');
 let $engine_type=MyISAM;
 -- source extra/rpl_tests/rpl_multi_update3.test
 --source include/rpl_end.inc
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/rpl/t/rpl_optimize.test mysql-5.5-5.5.22/mysql-test/suite/rpl/t/rpl_optimize.test
--- mysql-5.5-5.5.20/mysql-test/suite/rpl/t/rpl_optimize.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/rpl/t/rpl_optimize.test	2012-03-02 19:44:46.000000000 +0000
@@ -19,6 +19,7 @@
 
 create table t1 (a int not null auto_increment primary key, b int, key(b));
 INSERT INTO t1 (a) VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
+--disable_warnings
 INSERT INTO t1 (a) SELECT null FROM t1;
 INSERT INTO t1 (a) SELECT null FROM t1;
 INSERT INTO t1 (a) SELECT null FROM t1;
@@ -32,6 +33,7 @@
 INSERT INTO t1 (a) SELECT null FROM t1;
 INSERT INTO t1 (a) SELECT null FROM t1;
 INSERT INTO t1 (a) SELECT null FROM t1;
+--enable_warnings
 save_master_pos;
 # a few updates to force OPTIMIZE to do something
 --disable_warnings
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/rpl/t/rpl_packet.test mysql-5.5-5.5.22/mysql-test/suite/rpl/t/rpl_packet.test
--- mysql-5.5-5.5.20/mysql-test/suite/rpl/t/rpl_packet.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/rpl/t/rpl_packet.test	2012-03-02 19:44:46.000000000 +0000
@@ -125,12 +125,9 @@
 # The slave I/O thread must stop after receiving
 # 1236=ER_MASTER_FATAL_ERROR_READING_BINLOG error message from master.
 --let $slave_io_errno= 1236
-#
-# Win and Unix path is printed differently: BUG#13055685. So
-# show_slave_io_error is made 0 until the bug fixes provide necessary
-# facilities
-#
---let $show_slave_io_error= 0
+
+# Mask line numbers
+--let $slave_io_error_replace= / at [0-9]*/ at XXX/
 --source include/wait_for_slave_io_error.inc
 
 # Remove the bad binlog and clear error status on slave.
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/rpl/t/rpl_rotate_logs.test mysql-5.5-5.5.22/mysql-test/suite/rpl/t/rpl_rotate_logs.test
--- mysql-5.5-5.5.20/mysql-test/suite/rpl/t/rpl_rotate_logs.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/rpl/t/rpl_rotate_logs.test	2012-03-02 19:44:46.000000000 +0000
@@ -27,6 +27,7 @@
 chmod 0000 $MYSQLD_SLAVE_DATADIR/master.info;
 connection slave;
 
+CALL mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT.");
 # START SLAVE will fail because it can't read the file (mode 000)
 # (system error 13)
 --replace_result $MYSQL_TEST_DIR TESTDIR
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/rpl/t/rpl_semi_sync_event.test mysql-5.5-5.5.22/mysql-test/suite/rpl/t/rpl_semi_sync_event.test
--- mysql-5.5-5.5.20/mysql-test/suite/rpl/t/rpl_semi_sync_event.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/rpl/t/rpl_semi_sync_event.test	2012-03-02 19:44:46.000000000 +0000
@@ -52,9 +52,10 @@
 replace_result $engine_type ENGINE_TYPE;
 eval CREATE TABLE t1 (i INT NOT NULL AUTO_INCREMENT PRIMARY KEY, f varchar(8)) ENGINE=$engine_type;
 INSERT INTO t1 (f) VALUES ('a'),('a'),('a'),('a'),('a');
+--disable_warnings
 INSERT INTO t1 SELECT i+5, f FROM t1;
 INSERT INTO t1 SELECT i+10, f FROM t1;
-
+--enable_warnings
 CREATE EVENT ev1 ON SCHEDULE EVERY 1 SECOND
 DO INSERT INTO t1 VALUES (SLEEP(5),CONCAT('ev1_',CONNECTION_ID()));
 CREATE EVENT ev2 ON SCHEDULE EVERY 1 SECOND
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/rpl/t/rpl_start_stop_slave.test mysql-5.5-5.5.22/mysql-test/suite/rpl/t/rpl_start_stop_slave.test
--- mysql-5.5-5.5.20/mysql-test/suite/rpl/t/rpl_start_stop_slave.test	1970-01-01 00:00:00.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/rpl/t/rpl_start_stop_slave.test	2012-03-02 19:44:46.000000000 +0000
@@ -0,0 +1,44 @@
+#
+#BUG#11752315 : STOP SLAVE UNABLE TO COMPLETE WHEN SLAVE THREAD IS TRYING 
+#               TO RECONNECT TO 
+#
+# ==== Purpose ====
+#
+#Tests that the slave does not go to a sleep for a long duration after the 
+#master is killed and we do a START_SLAVE and STOP_SLAVE.
+#
+# ==== Method ====
+#
+#This is a new functionality of having an interruptable sleep of the slave.
+#We find the thread id for the slave thread. On finding the thread ID of the 
+#slave thread we kill the slave thread. A successful kill in less than 60 sec 
+#should serve the purpose of checking the functionality.
+#
+
+--source include/have_log_bin.inc
+--source include/master-slave.inc
+
+connection slave;
+--let $connection_id=`SELECT id FROM information_schema.processlist where state LIKE 'Waiting for master to send event'`
+
+set @time_before_kill := (select CURRENT_TIMESTAMP);
+
+--echo [Time before the query]
+--echo [Connection ID of the slave I/O thread found]
+
+--replace_regex /kill [0-9]*/kill /
+--eval kill $connection_id
+
+set @time_after_kill := (select CURRENT_TIMESTAMP);
+
+--echo [Time after the query]
+
+if(`select TIMESTAMPDIFF(SECOND,@time_after_kill, @time_before_kill) > 60`)
+{
+--echo # assert : The difference between the timestamps 'time_after_kill' and 'time_before_kill' should be less than 60sec.
+--die
+}
+
+--echo [Killing of the slave IO thread was successful]
+# End of test
+--source include/rpl_end.inc
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/rpl/t/rpl_stm_start_stop_slave.test mysql-5.5-5.5.22/mysql-test/suite/rpl/t/rpl_stm_start_stop_slave.test
--- mysql-5.5-5.5.20/mysql-test/suite/rpl/t/rpl_stm_start_stop_slave.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/rpl/t/rpl_stm_start_stop_slave.test	2012-03-02 19:44:46.000000000 +0000
@@ -22,5 +22,5 @@
 call mtr.add_suppression("Slave SQL.*Request to stop slave SQL Thread received while applying a group that has non-transactional changes; waiting for completion of the group");
 --connection master
 SET @@global.innodb_flush_log_at_trx_commit= @old_innodb_flush_log_at_trx_commit;
-
+--let $rpl_only_running_threads= 1
 --source include/rpl_end.inc
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/rpl/t/rpl_timezone.test mysql-5.5-5.5.22/mysql-test/suite/rpl/t/rpl_timezone.test
--- mysql-5.5-5.5.20/mysql-test/suite/rpl/t/rpl_timezone.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/rpl/t/rpl_timezone.test	2012-03-02 19:44:46.000000000 +0000
@@ -13,14 +13,14 @@
 # timezone used in CONVERT_TZ is not binlogged. To debug (by Guilhem
 # and possibly Konstantin).
 
+source include/master-slave.inc;
+
 --disable_query_log
 CALL mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
 --enable_query_log
 
 --disable_ps_protocol
 
-source include/master-slave.inc;
-
 # Save original timezone
 set @my_time_zone= @@global.time_zone;
 
@@ -90,6 +90,7 @@
 # from originally inserted)
 #
 set time_zone='MET';
+--disable_warnings ONCE
 insert into t2 (select * from t1);
 SELECT * FROM t1 ORDER BY n;
 sync_slave_with_master;
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/sys_vars/r/all_vars.result mysql-5.5-5.5.22/mysql-test/suite/sys_vars/r/all_vars.result
--- mysql-5.5-5.5.20/mysql-test/suite/sys_vars/r/all_vars.result	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/sys_vars/r/all_vars.result	2012-03-02 19:44:45.000000000 +0000
@@ -3,7 +3,6 @@
 load data infile "MYSQLTEST_VARDIR/tmp/sys_vars.all_vars.txt" into table t1;
 insert into t2 select variable_name from information_schema.global_variables;
 insert into t2 select variable_name from information_schema.session_variables;
-delete from t2 where variable_name='innodb_change_buffering_debug';
 update t2 set variable_name= replace(variable_name, "PERFORMANCE_SCHEMA_", "PFS_");
 select variable_name as `There should be *no* long test name listed below:` from t2
 where length(variable_name) > 50;
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/sys_vars/r/character_sets_dir_basic.result mysql-5.5-5.5.22/mysql-test/suite/sys_vars/r/character_sets_dir_basic.result
--- mysql-5.5-5.5.20/mysql-test/suite/sys_vars/r/character_sets_dir_basic.result	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/sys_vars/r/character_sets_dir_basic.result	2012-03-02 19:44:45.000000000 +0000
@@ -1,20 +1,20 @@
 select @@global.character_sets_dir;
 @@global.character_sets_dir
-MYSQL_CHARSETSDIR/
+MYSQL_CHARSETSDIR
 select @@session.character_sets_dir;
 ERROR HY000: Variable 'character_sets_dir' is a GLOBAL variable
 show global variables like 'character_sets_dir';
 Variable_name	Value
-character_sets_dir	MYSQL_CHARSETSDIR/
+character_sets_dir	MYSQL_CHARSETSDIR
 show session variables like 'character_sets_dir';
 Variable_name	Value
-character_sets_dir	MYSQL_CHARSETSDIR/
+character_sets_dir	MYSQL_CHARSETSDIR
 select * from information_schema.global_variables where variable_name='character_sets_dir';
 VARIABLE_NAME	VARIABLE_VALUE
-CHARACTER_SETS_DIR	MYSQL_CHARSETSDIR/
+CHARACTER_SETS_DIR	MYSQL_CHARSETSDIR
 select * from information_schema.session_variables where variable_name='character_sets_dir';
 VARIABLE_NAME	VARIABLE_VALUE
-CHARACTER_SETS_DIR	MYSQL_CHARSETSDIR/
+CHARACTER_SETS_DIR	MYSQL_CHARSETSDIR
 set global character_sets_dir="foo";
 ERROR HY000: Variable 'character_sets_dir' is a read only variable
 set session character_sets_dir="foo";
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/sys_vars/r/innodb_change_buffering_debug_basic.result mysql-5.5-5.5.22/mysql-test/suite/sys_vars/r/innodb_change_buffering_debug_basic.result
--- mysql-5.5-5.5.20/mysql-test/suite/sys_vars/r/innodb_change_buffering_debug_basic.result	1970-01-01 00:00:00.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/sys_vars/r/innodb_change_buffering_debug_basic.result	2012-03-02 19:44:45.000000000 +0000
@@ -0,0 +1,64 @@
+SET @start_global_value = @@global.innodb_change_buffering_debug;
+SELECT @start_global_value;
+@start_global_value
+0
+select @@global.innodb_change_buffering_debug in (0, 1);
+@@global.innodb_change_buffering_debug in (0, 1)
+1
+select @@global.innodb_change_buffering_debug;
+@@global.innodb_change_buffering_debug
+0
+select @@session.innodb_change_buffering_debug;
+ERROR HY000: Variable 'innodb_change_buffering_debug' is a GLOBAL variable
+show global variables like 'innodb_change_buffering_debug';
+Variable_name	Value
+innodb_change_buffering_debug	0
+show session variables like 'innodb_change_buffering_debug';
+Variable_name	Value
+innodb_change_buffering_debug	0
+select * from information_schema.global_variables where variable_name='innodb_change_buffering_debug';
+VARIABLE_NAME	VARIABLE_VALUE
+INNODB_CHANGE_BUFFERING_DEBUG	0
+select * from information_schema.session_variables where variable_name='innodb_change_buffering_debug';
+VARIABLE_NAME	VARIABLE_VALUE
+INNODB_CHANGE_BUFFERING_DEBUG	0
+set global innodb_change_buffering_debug=1;
+select @@global.innodb_change_buffering_debug;
+@@global.innodb_change_buffering_debug
+1
+select * from information_schema.global_variables where variable_name='innodb_change_buffering_debug';
+VARIABLE_NAME	VARIABLE_VALUE
+INNODB_CHANGE_BUFFERING_DEBUG	1
+select * from information_schema.session_variables where variable_name='innodb_change_buffering_debug';
+VARIABLE_NAME	VARIABLE_VALUE
+INNODB_CHANGE_BUFFERING_DEBUG	1
+set @@global.innodb_change_buffering_debug=0;
+select @@global.innodb_change_buffering_debug;
+@@global.innodb_change_buffering_debug
+0
+select * from information_schema.global_variables where variable_name='innodb_change_buffering_debug';
+VARIABLE_NAME	VARIABLE_VALUE
+INNODB_CHANGE_BUFFERING_DEBUG	0
+select * from information_schema.session_variables where variable_name='innodb_change_buffering_debug';
+VARIABLE_NAME	VARIABLE_VALUE
+INNODB_CHANGE_BUFFERING_DEBUG	0
+set session innodb_change_buffering_debug='some';
+ERROR HY000: Variable 'innodb_change_buffering_debug' is a GLOBAL variable and should be set with SET GLOBAL
+set @@session.innodb_change_buffering_debug='some';
+ERROR HY000: Variable 'innodb_change_buffering_debug' is a GLOBAL variable and should be set with SET GLOBAL
+set global innodb_change_buffering_debug=1.1;
+ERROR 42000: Incorrect argument type to variable 'innodb_change_buffering_debug'
+set global innodb_change_buffering_debug='foo';
+ERROR 42000: Incorrect argument type to variable 'innodb_change_buffering_debug'
+set global innodb_change_buffering_debug=-2;
+Warnings:
+Warning	1292	Truncated incorrect innodb_change_buffering_debug value: '-2'
+set global innodb_change_buffering_debug=1e1;
+ERROR 42000: Incorrect argument type to variable 'innodb_change_buffering_debug'
+set global innodb_change_buffering_debug=2;
+Warnings:
+Warning	1292	Truncated incorrect innodb_change_buffering_debug value: '2'
+SET @@global.innodb_change_buffering_debug = @start_global_value;
+SELECT @@global.innodb_change_buffering_debug;
+@@global.innodb_change_buffering_debug
+0
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/sys_vars/r/innodb_trx_rseg_n_slots_debug_basic.result mysql-5.5-5.5.22/mysql-test/suite/sys_vars/r/innodb_trx_rseg_n_slots_debug_basic.result
--- mysql-5.5-5.5.20/mysql-test/suite/sys_vars/r/innodb_trx_rseg_n_slots_debug_basic.result	1970-01-01 00:00:00.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/sys_vars/r/innodb_trx_rseg_n_slots_debug_basic.result	2012-03-02 19:44:45.000000000 +0000
@@ -0,0 +1,65 @@
+SET @start_global_value = @@global.innodb_trx_rseg_n_slots_debug;
+SELECT @start_global_value;
+@start_global_value
+0
+select @@global.innodb_trx_rseg_n_slots_debug between 0 and 1024;
+@@global.innodb_trx_rseg_n_slots_debug between 0 and 1024
+1
+select @@global.innodb_trx_rseg_n_slots_debug;
+@@global.innodb_trx_rseg_n_slots_debug
+0
+select @@session.innodb_trx_rseg_n_slots_debug;
+ERROR HY000: Variable 'innodb_trx_rseg_n_slots_debug' is a GLOBAL variable
+show global variables like 'innodb_trx_rseg_n_slots_debug';
+Variable_name	Value
+innodb_trx_rseg_n_slots_debug	0
+show session variables like 'innodb_trx_rseg_n_slots_debug';
+Variable_name	Value
+innodb_trx_rseg_n_slots_debug	0
+select * from information_schema.global_variables where variable_name='innodb_trx_rseg_n_slots_debug';
+VARIABLE_NAME	VARIABLE_VALUE
+INNODB_TRX_RSEG_N_SLOTS_DEBUG	0
+select * from information_schema.session_variables where variable_name='innodb_trx_rseg_n_slots_debug';
+VARIABLE_NAME	VARIABLE_VALUE
+INNODB_TRX_RSEG_N_SLOTS_DEBUG	0
+set global innodb_trx_rseg_n_slots_debug=1;
+select @@global.innodb_trx_rseg_n_slots_debug;
+@@global.innodb_trx_rseg_n_slots_debug
+1
+select * from information_schema.global_variables where variable_name='innodb_trx_rseg_n_slots_debug';
+VARIABLE_NAME	VARIABLE_VALUE
+INNODB_TRX_RSEG_N_SLOTS_DEBUG	1
+select * from information_schema.session_variables where variable_name='innodb_trx_rseg_n_slots_debug';
+VARIABLE_NAME	VARIABLE_VALUE
+INNODB_TRX_RSEG_N_SLOTS_DEBUG	1
+set @@global.innodb_trx_rseg_n_slots_debug=0;
+select @@global.innodb_trx_rseg_n_slots_debug;
+@@global.innodb_trx_rseg_n_slots_debug
+0
+select * from information_schema.global_variables where variable_name='innodb_trx_rseg_n_slots_debug';
+VARIABLE_NAME	VARIABLE_VALUE
+INNODB_TRX_RSEG_N_SLOTS_DEBUG	0
+select * from information_schema.session_variables where variable_name='innodb_trx_rseg_n_slots_debug';
+VARIABLE_NAME	VARIABLE_VALUE
+INNODB_TRX_RSEG_N_SLOTS_DEBUG	0
+set session innodb_trx_rseg_n_slots_debug='some';
+ERROR HY000: Variable 'innodb_trx_rseg_n_slots_debug' is a GLOBAL variable and should be set with SET GLOBAL
+set @@session.innodb_trx_rseg_n_slots_debug='some';
+ERROR HY000: Variable 'innodb_trx_rseg_n_slots_debug' is a GLOBAL variable and should be set with SET GLOBAL
+set global innodb_trx_rseg_n_slots_debug=1.1;
+ERROR 42000: Incorrect argument type to variable 'innodb_trx_rseg_n_slots_debug'
+set global innodb_trx_rseg_n_slots_debug='foo';
+ERROR 42000: Incorrect argument type to variable 'innodb_trx_rseg_n_slots_debug'
+set global innodb_trx_rseg_n_slots_debug=-2;
+Warnings:
+Warning	1292	Truncated incorrect innodb_trx_rseg_n_slots_debug value: '-2'
+set global innodb_trx_rseg_n_slots_debug=1e1;
+ERROR 42000: Incorrect argument type to variable 'innodb_trx_rseg_n_slots_debug'
+set global innodb_trx_rseg_n_slots_debug=1024;
+set global innodb_trx_rseg_n_slots_debug=1025;
+Warnings:
+Warning	1292	Truncated incorrect innodb_trx_rseg_n_slots_debug value: '1025'
+SET @@global.innodb_trx_rseg_n_slots_debug = @start_global_value;
+SELECT @@global.innodb_trx_rseg_n_slots_debug;
+@@global.innodb_trx_rseg_n_slots_debug
+0
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/sys_vars/r/plugin_dir_basic.result mysql-5.5-5.5.22/mysql-test/suite/sys_vars/r/plugin_dir_basic.result
--- mysql-5.5-5.5.20/mysql-test/suite/sys_vars/r/plugin_dir_basic.result	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/sys_vars/r/plugin_dir_basic.result	2012-03-02 19:44:45.000000000 +0000
@@ -1,20 +1,20 @@
 select @@global.plugin_dir;
 @@global.plugin_dir
-MYSQL_TMP_DIR
+MYSQL_TMP_DIR/
 select @@session.plugin_dir;
 ERROR HY000: Variable 'plugin_dir' is a GLOBAL variable
 show global variables like 'plugin_dir';
 Variable_name	Value
-plugin_dir	MYSQL_TMP_DIR
+plugin_dir	MYSQL_TMP_DIR/
 show session variables like 'plugin_dir';
 Variable_name	Value
-plugin_dir	MYSQL_TMP_DIR
+plugin_dir	MYSQL_TMP_DIR/
 select * from information_schema.global_variables where variable_name='plugin_dir';
 VARIABLE_NAME	VARIABLE_VALUE
-PLUGIN_DIR	MYSQL_TMP_DIR
+PLUGIN_DIR	MYSQL_TMP_DIR/
 select * from information_schema.session_variables where variable_name='plugin_dir';
 VARIABLE_NAME	VARIABLE_VALUE
-PLUGIN_DIR	MYSQL_TMP_DIR
+PLUGIN_DIR	MYSQL_TMP_DIR/
 set global plugin_dir=1;
 ERROR HY000: Variable 'plugin_dir' is a read only variable
 set session plugin_dir=1;
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/sys_vars/r/stored_program_cache_basic.result mysql-5.5-5.5.22/mysql-test/suite/sys_vars/r/stored_program_cache_basic.result
--- mysql-5.5-5.5.20/mysql-test/suite/sys_vars/r/stored_program_cache_basic.result	1970-01-01 00:00:00.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/sys_vars/r/stored_program_cache_basic.result	2012-03-02 19:44:45.000000000 +0000
@@ -0,0 +1,59 @@
+# Saving initial value of stored_program_cache in a temporary variable
+SET @start_value = @@global.stored_program_cache;
+SELECT @start_value;
+@start_value
+256
+# Display the DEFAULT value of stored_program_cache
+SET @@global.stored_program_cache  = DEFAULT;
+SELECT @@global.stored_program_cache;
+@@global.stored_program_cache
+256
+# Verify default value of variable
+SELECT @@global.stored_program_cache  = 256;
+@@global.stored_program_cache  = 256
+1
+# Change the value of stored_program_cache to a valid value
+SET @@global.stored_program_cache  = 512;
+SELECT @@global.stored_program_cache;
+@@global.stored_program_cache
+512
+# Change the value of stored_program_cache to invalid value
+SET @@global.stored_program_cache  = -1;
+Warnings:
+Warning	1292	Truncated incorrect stored_program_cache value: '-1'
+SELECT @@global.stored_program_cache;
+@@global.stored_program_cache
+256
+SET @@global.stored_program_cache =100000000000;
+Warnings:
+Warning	1292	Truncated incorrect stored_program_cache value: '100000000000'
+SELECT @@global.stored_program_cache;
+@@global.stored_program_cache
+524288
+SET @@global.stored_program_cache = 0;
+Warnings:
+Warning	1292	Truncated incorrect stored_program_cache value: '0'
+SELECT @@global.stored_program_cache;
+@@global.stored_program_cache
+256
+SET @@global.stored_program_cache = 10000.01;
+ERROR 42000: Incorrect argument type to variable 'stored_program_cache'
+SET @@global.stored_program_cache = ON;
+ERROR 42000: Incorrect argument type to variable 'stored_program_cache'
+SET @@global.stored_program_cache= 'test';
+ERROR 42000: Incorrect argument type to variable 'stored_program_cache'
+SET @@global.stored_program_cache = '';
+ERROR 42000: Incorrect argument type to variable 'stored_program_cache'
+# Test if accessing session stored_program_cache gives error
+SET @@session.stored_program_cache = 0;
+ERROR HY000: Variable 'stored_program_cache' is a GLOBAL variable and should be set with SET GLOBAL
+# Check if accessing variable without SCOPE points to same global variable
+SET @@global.stored_program_cache = 512;
+SELECT @@stored_program_cache = @@global.stored_program_cache;
+@@stored_program_cache = @@global.stored_program_cache
+1
+# Restore initial value
+SET @@global.stored_program_cache = @start_value;
+SELECT @@global.stored_program_cache;
+@@global.stored_program_cache
+256
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/sys_vars/t/all_vars.test mysql-5.5-5.5.22/mysql-test/suite/sys_vars/t/all_vars.test
--- mysql-5.5-5.5.20/mysql-test/suite/sys_vars/t/all_vars.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/sys_vars/t/all_vars.test	2012-03-02 19:44:45.000000000 +0000
@@ -47,9 +47,6 @@
 insert into t2 select variable_name from information_schema.global_variables;
 insert into t2 select variable_name from information_schema.session_variables;
 
-# This is only present in debug builds.
-delete from t2 where variable_name='innodb_change_buffering_debug';
-
 # Performance schema variables are too long for files named
 # 'mysql-test/suite/sys_vars/t/' ...
 # ... 'performance_schema_events_waits_history_long_size_basic-master.opt'
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/sys_vars/t/character_sets_dir_basic.test mysql-5.5-5.5.22/mysql-test/suite/sys_vars/t/character_sets_dir_basic.test
--- mysql-5.5-5.5.20/mysql-test/suite/sys_vars/t/character_sets_dir_basic.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/sys_vars/t/character_sets_dir_basic.test	2012-03-02 19:44:45.000000000 +0000
@@ -1,17 +1,26 @@
 #
 # show the global and session values;
 #
---replace_result $MYSQL_CHARSETSDIR MYSQL_CHARSETSDIR
+
+# workaround to adjust for the directory separators being different in 
+# different OSes : slash on unixes and backslash or slash on windows.
+# TODO: fix with a proper comparison in mysqltest
+let $rcd= `SELECT REPLACE('$MYSQL_CHARSETSDIR', '\\\\\', '.')`;
+let $rcd= `SELECT REPLACE('$rcd', '/', '.')`;
+let $regex_charsetdir= `SELECT '/$rcd[\\\\\/\\\\\]/MYSQL_CHARSETSDIR/'`;
+
+--replace_regex $regex_charsetdir
 select @@global.character_sets_dir;
+
 --error ER_INCORRECT_GLOBAL_LOCAL_VAR
 select @@session.character_sets_dir;
---replace_result $MYSQL_CHARSETSDIR MYSQL_CHARSETSDIR
+--replace_regex $regex_charsetdir
 show global variables like 'character_sets_dir';
---replace_result $MYSQL_CHARSETSDIR MYSQL_CHARSETSDIR
+--replace_regex $regex_charsetdir
 show session variables like 'character_sets_dir';
---replace_result $MYSQL_CHARSETSDIR MYSQL_CHARSETSDIR
+--replace_regex $regex_charsetdir
 select * from information_schema.global_variables where variable_name='character_sets_dir';
---replace_result $MYSQL_CHARSETSDIR MYSQL_CHARSETSDIR
+--replace_regex $regex_charsetdir
 select * from information_schema.session_variables where variable_name='character_sets_dir';
 
 #
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/sys_vars/t/disabled.def mysql-5.5-5.5.22/mysql-test/suite/sys_vars/t/disabled.def
--- mysql-5.5-5.5.20/mysql-test/suite/sys_vars/t/disabled.def	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/sys_vars/t/disabled.def	2012-03-02 19:44:45.000000000 +0000
@@ -11,5 +11,7 @@
 ##############################################################################
 transaction_prealloc_size_basic_32  : Bug#11748572
 transaction_prealloc_size_basic_64  : Bug#11748572
+query_cache_size_basic_32           : Bug#13535584
+query_cache_size_basic_64           : Bug#11748572
 #thread_cache_size_func             : Bug#11750172: 2008-11-07 joro main.thread_cache_size_func fails in pushbuild when run with pool of threads
 
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/sys_vars/t/innodb_change_buffering_debug_basic.test mysql-5.5-5.5.22/mysql-test/suite/sys_vars/t/innodb_change_buffering_debug_basic.test
--- mysql-5.5-5.5.20/mysql-test/suite/sys_vars/t/innodb_change_buffering_debug_basic.test	1970-01-01 00:00:00.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/sys_vars/t/innodb_change_buffering_debug_basic.test	2012-03-02 19:44:45.000000000 +0000
@@ -0,0 +1,52 @@
+--source include/have_innodb.inc
+--source include/have_debug.inc
+
+SET @start_global_value = @@global.innodb_change_buffering_debug;
+SELECT @start_global_value;
+
+#
+# exists as global only
+#
+select @@global.innodb_change_buffering_debug in (0, 1);
+select @@global.innodb_change_buffering_debug;
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+select @@session.innodb_change_buffering_debug;
+show global variables like 'innodb_change_buffering_debug';
+show session variables like 'innodb_change_buffering_debug';
+select * from information_schema.global_variables where variable_name='innodb_change_buffering_debug';
+select * from information_schema.session_variables where variable_name='innodb_change_buffering_debug';
+
+#
+# show that it's writable
+#
+set global innodb_change_buffering_debug=1;
+select @@global.innodb_change_buffering_debug;
+select * from information_schema.global_variables where variable_name='innodb_change_buffering_debug';
+select * from information_schema.session_variables where variable_name='innodb_change_buffering_debug';
+set @@global.innodb_change_buffering_debug=0;
+select @@global.innodb_change_buffering_debug;
+select * from information_schema.global_variables where variable_name='innodb_change_buffering_debug';
+select * from information_schema.session_variables where variable_name='innodb_change_buffering_debug';
+--error ER_GLOBAL_VARIABLE
+set session innodb_change_buffering_debug='some';
+--error ER_GLOBAL_VARIABLE
+set @@session.innodb_change_buffering_debug='some';
+
+#
+# incorrect types
+#
+--error ER_WRONG_TYPE_FOR_VAR
+set global innodb_change_buffering_debug=1.1;
+--error ER_WRONG_TYPE_FOR_VAR
+set global innodb_change_buffering_debug='foo';
+set global innodb_change_buffering_debug=-2;
+--error ER_WRONG_TYPE_FOR_VAR
+set global innodb_change_buffering_debug=1e1;
+set global innodb_change_buffering_debug=2;
+
+#
+# Cleanup
+#
+
+SET @@global.innodb_change_buffering_debug = @start_global_value;
+SELECT @@global.innodb_change_buffering_debug;
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/sys_vars/t/innodb_trx_rseg_n_slots_debug_basic.test mysql-5.5-5.5.22/mysql-test/suite/sys_vars/t/innodb_trx_rseg_n_slots_debug_basic.test
--- mysql-5.5-5.5.20/mysql-test/suite/sys_vars/t/innodb_trx_rseg_n_slots_debug_basic.test	1970-01-01 00:00:00.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/sys_vars/t/innodb_trx_rseg_n_slots_debug_basic.test	2012-03-02 19:44:45.000000000 +0000
@@ -0,0 +1,53 @@
+--source include/have_innodb.inc
+--source include/have_debug.inc
+
+SET @start_global_value = @@global.innodb_trx_rseg_n_slots_debug;
+SELECT @start_global_value;
+
+#
+# exists as global only
+#
+select @@global.innodb_trx_rseg_n_slots_debug between 0 and 1024;
+select @@global.innodb_trx_rseg_n_slots_debug;
+--error ER_INCORRECT_GLOBAL_LOCAL_VAR
+select @@session.innodb_trx_rseg_n_slots_debug;
+show global variables like 'innodb_trx_rseg_n_slots_debug';
+show session variables like 'innodb_trx_rseg_n_slots_debug';
+select * from information_schema.global_variables where variable_name='innodb_trx_rseg_n_slots_debug';
+select * from information_schema.session_variables where variable_name='innodb_trx_rseg_n_slots_debug';
+
+#
+# show that it's writable
+#
+set global innodb_trx_rseg_n_slots_debug=1;
+select @@global.innodb_trx_rseg_n_slots_debug;
+select * from information_schema.global_variables where variable_name='innodb_trx_rseg_n_slots_debug';
+select * from information_schema.session_variables where variable_name='innodb_trx_rseg_n_slots_debug';
+set @@global.innodb_trx_rseg_n_slots_debug=0;
+select @@global.innodb_trx_rseg_n_slots_debug;
+select * from information_schema.global_variables where variable_name='innodb_trx_rseg_n_slots_debug';
+select * from information_schema.session_variables where variable_name='innodb_trx_rseg_n_slots_debug';
+--error ER_GLOBAL_VARIABLE
+set session innodb_trx_rseg_n_slots_debug='some';
+--error ER_GLOBAL_VARIABLE
+set @@session.innodb_trx_rseg_n_slots_debug='some';
+
+#
+# incorrect types
+#
+--error ER_WRONG_TYPE_FOR_VAR
+set global innodb_trx_rseg_n_slots_debug=1.1;
+--error ER_WRONG_TYPE_FOR_VAR
+set global innodb_trx_rseg_n_slots_debug='foo';
+set global innodb_trx_rseg_n_slots_debug=-2;
+--error ER_WRONG_TYPE_FOR_VAR
+set global innodb_trx_rseg_n_slots_debug=1e1;
+set global innodb_trx_rseg_n_slots_debug=1024;
+set global innodb_trx_rseg_n_slots_debug=1025;
+
+#
+# Cleanup
+#
+
+SET @@global.innodb_trx_rseg_n_slots_debug = @start_global_value;
+SELECT @@global.innodb_trx_rseg_n_slots_debug;
diff -Nru mysql-5.5-5.5.20/mysql-test/suite/sys_vars/t/stored_program_cache_basic.test mysql-5.5-5.5.22/mysql-test/suite/sys_vars/t/stored_program_cache_basic.test
--- mysql-5.5-5.5.20/mysql-test/suite/sys_vars/t/stored_program_cache_basic.test	1970-01-01 00:00:00.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/suite/sys_vars/t/stored_program_cache_basic.test	2012-03-02 19:44:45.000000000 +0000
@@ -0,0 +1,59 @@
+# Variable Name: stored_program_cache
+# Scope: GLOBAL
+# Access Type: Dynamic
+# Data Type: numeric
+# Default Value: 256
+# Range: 256-524288
+
+--source include/load_sysvars.inc
+
+--echo # Saving initial value of stored_program_cache in a temporary variable
+SET @start_value = @@global.stored_program_cache;
+SELECT @start_value;
+
+--echo # Display the DEFAULT value of stored_program_cache
+SET @@global.stored_program_cache  = DEFAULT;
+SELECT @@global.stored_program_cache;
+
+--echo # Verify default value of variable
+SELECT @@global.stored_program_cache  = 256;
+
+--echo # Change the value of stored_program_cache to a valid value
+SET @@global.stored_program_cache  = 512;
+SELECT @@global.stored_program_cache;
+
+--echo # Change the value of stored_program_cache to invalid value
+SET @@global.stored_program_cache  = -1;
+SELECT @@global.stored_program_cache;
+
+SET @@global.stored_program_cache =100000000000;
+SELECT @@global.stored_program_cache;
+
+SET @@global.stored_program_cache = 0;
+SELECT @@global.stored_program_cache;
+
+--Error ER_WRONG_TYPE_FOR_VAR
+SET @@global.stored_program_cache = 10000.01;
+
+--Error ER_WRONG_TYPE_FOR_VAR
+SET @@global.stored_program_cache = ON;
+--Error ER_WRONG_TYPE_FOR_VAR
+SET @@global.stored_program_cache= 'test';
+
+--Error ER_WRONG_TYPE_FOR_VAR
+SET @@global.stored_program_cache = '';
+
+--echo # Test if accessing session stored_program_cache gives error
+
+--Error ER_GLOBAL_VARIABLE
+SET @@session.stored_program_cache = 0;
+
+--echo # Check if accessing variable without SCOPE points to same global variable
+
+SET @@global.stored_program_cache = 512;
+SELECT @@stored_program_cache = @@global.stored_program_cache;
+
+--echo # Restore initial value
+
+SET @@global.stored_program_cache = @start_value;
+SELECT @@global.stored_program_cache;
diff -Nru mysql-5.5-5.5.20/mysql-test/t/bigint.test mysql-5.5-5.5.22/mysql-test/t/bigint.test
--- mysql-5.5-5.5.20/mysql-test/t/bigint.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/t/bigint.test	2012-03-02 19:44:46.000000000 +0000
@@ -361,4 +361,51 @@
 
 --echo # End of 5.1 tests
 
+--echo #
+--echo # Bug#13463415 63502: INCORRECT RESULTS OF BIGINT AND DECIMAL COMPARISON
+--echo #
 
+CREATE TABLE t_bigint(id BIGINT);
+INSERT INTO t_bigint VALUES (1), (2);
+
+SELECT id, id >= 1.1 FROM t_bigint;
+SELECT id, 1.1 <= id FROM t_bigint;
+
+SELECT id, id = 1.1 FROM t_bigint;
+SELECT id, 1.1 = id FROM t_bigint;
+
+SELECT * from t_bigint WHERE id = 1.1;
+SELECT * from t_bigint WHERE id = 1.1e0;
+SELECT * from t_bigint WHERE id = '1.1';
+SELECT * from t_bigint WHERE id = '1.1e0';
+
+SELECT * from t_bigint WHERE id IN (1.1, 2.2);
+SELECT * from t_bigint WHERE id IN (1.1e0, 2.2e0);
+SELECT * from t_bigint WHERE id IN ('1.1', '2.2');
+SELECT * from t_bigint WHERE id IN ('1.1e0', '2.2e0');
+
+SELECT * from t_bigint WHERE id BETWEEN 1.1 AND 1.9;
+SELECT * from t_bigint WHERE id BETWEEN 1.1e0 AND 1.9e0;
+SELECT * from t_bigint WHERE id BETWEEN '1.1' AND '1.9';
+SELECT * from t_bigint WHERE id BETWEEN '1.1e0' AND '1.9e0';
+
+DROP TABLE t_bigint;
+
+--echo #
+--echo # Bug#11758543 50756: BIGINT '100' MATCHES 1.001E2
+--echo #
+
+CREATE TABLE t1 (a BIGINT);
+INSERT INTO t1 VALUES (1);
+
+# a. These queries correctly return 0 rows:
+SELECT * FROM t1 WHERE coalesce(a) BETWEEN 0 and 0.9;
+SELECT * FROM t1 WHERE coalesce(a)=0.9;
+SELECT * FROM t1 WHERE coalesce(a) in (0.8,0.9);
+
+# b. These queries mistakenely returned 1 row:
+SELECT * FROM t1 WHERE a BETWEEN 0 AND 0.9;
+SELECT * FROM t1 WHERE a=0.9;
+SELECT * FROM t1 WHERE a IN (0.8,0.9);
+
+DROP TABLE t1;
diff -Nru mysql-5.5-5.5.20/mysql-test/t/bug13633383.test mysql-5.5-5.5.22/mysql-test/t/bug13633383.test
--- mysql-5.5-5.5.20/mysql-test/t/bug13633383.test	1970-01-01 00:00:00.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/t/bug13633383.test	2012-03-02 19:44:46.000000000 +0000
@@ -0,0 +1,82 @@
+--echo #
+--echo # Bug#13633383 63183: SMALL SORT_BUFFER_SIZE CRASH IN MERGE_BUFFERS
+--echo #
+
+CREATE TABLE t1 (
+  `a` int(11) DEFAULT NULL,
+  `col432` bit(8) DEFAULT NULL,
+  `col433` multipoint DEFAULT NULL,
+  `col434` polygon DEFAULT NULL,
+  `col435` decimal(50,17) unsigned DEFAULT NULL,
+  `col436` geometry NOT NULL,
+  `col437` tinyblob NOT NULL,
+  `col438` multipolygon DEFAULT NULL,
+  `col439` mediumblob NOT NULL,
+  `col440` tinyblob NOT NULL,
+  `col441` double unsigned DEFAULT NULL
+);
+
+CREATE TABLE t2 (
+  `a` multipoint DEFAULT NULL,
+  `col460` date DEFAULT NULL,
+  `col461` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+  `col462` date NOT NULL,
+  `col463` varbinary(89) NOT NULL,
+  `col464` year(4) DEFAULT NULL,
+  `col465` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
+  `col466` varchar(236) CHARACTER SET utf8 NOT NULL,
+  `col467` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
+);
+
+CREATE TABLE t3 (
+  `FTS_DOC_ID` bigint(20) unsigned NOT NULL,
+  `col577` datetime DEFAULT NULL,
+  `col579` bit(38) NOT NULL,
+  `col580` varchar(93) NOT NULL,
+  `col581` datetime DEFAULT NULL,
+  `col583` multipolygon DEFAULT NULL,
+  `col584` bit(47) NOT NULL
+);
+
+--disable_query_log
+
+INSERT INTO t1 VALUES (0,0xFF,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 JæÀ',NULL,0.00000000000000000,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0àÃ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0àC\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0àC\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0',0xB623A952C5,'\0\0\0\0\0\0\0\0\0\0\0ðiøÀ\0\0\0\0jøÀ',0x22,0xD81F72A9,56403);
+INSERT INTO t1 VALUES (-32768,0x00,'\0\0\0\0\0\0\0\0\0\0\0Àrç@\0\0\0\0jøÀ','\0\0\0\0\0\0\0\0\0\0\0\0ÛâÀ\0\0\0\0jøÀ',NULL,'\0\0\0\0\0\0\0\0\0\0\0À6Ò@\0\0\0\0\0jøÀ',0xC80876AF04,'\0\0\0\0\0\0\0\0\0\0\0€[áÀ\0\0\0\0ðiøÀ',0x016C576E34,0x1B,0);
+INSERT INTO t1 VALUES (-2147483648,0x17,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0]ÇÀ',NULL,0.00000000000000000,'\0\0\0\0\0\0\0\0\0\0\0ðiøÀìÊFQƒìCµ',0x68D352,'\0\0\0\0\0\0\0\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0àÃ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0àC\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0àÃ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0àC\0\0\0\0\0àÃ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','','',0);
+INSERT INTO t1 VALUES (1,0xFF,'\0\0\0\0\0\0\0\0\0\0\0Ð÷À\0\0\0\0Àü×À','\0\0\0\0\0\0\0\0\0\0\0`6ë@\0\0\0\0à²î@',32767.00000000000000000,'\0\0\0\0\0\0\0\0\0\0\0ðiø@†ö¯{âÌ',0x1406B0C524,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0àÃ\0\0\0\0\0àC\0\0\0\0\0àC',0xC04B75CCFD,0xC4CD,1);
+INSERT INTO t1 VALUES (0,0xFF,NULL,'\0\0\0\0\0\0\0\0\0\0\0\0jø@\0\0\0\0\0(¦À',0.06140000000000000,'\0\0\0\0\0\0\0\0\0\0\0ðiø@$7”H#ÀÐ1',0x3F,'\0\0\0\0\0\0\0\0\0\0\0jøÀCHK¶µ$·',0x1E87C5DA,0xCC870E,NULL);
+
+
+INSERT INTO t2 VALUES ('\0\0\0\0\0\0\0\0\0\0\0\0k¿À\0\0\0\0\0jø@','2011-02-19','2011-08-10 14:21:44','2012-09-25',0xCCC3,0000,'2012-07-28 16:25:23','idpapxbfjrigkfqnhnfmhvtewlvxfmjhfqizhhsowbetimmkhukpzeixbfyzmsalaafssdovflpvxldldmuamfoulanivuxigbjwkzbapcxmmprpyasaozdqwqjuixajzmiepkcvnvtewdvyodupziffgzbcmsfhikbuehyhzfnxlsdzulbsrqmtszzzupcmxlvcpxahuiotgadwhpcuqmyzgrbkxzxwriqkymdaqnzz','2012-01-20 09:01:25');
+INSERT INTO t2 VALUES (NULL,'2011-05-14','2012-10-17 04:33:30','2012-01-20','',0000,'2012-05-08 11:06:53','otbywkbfwwtgpfgurtqwgfcwmmntsdxkounuzueoclrpnadghfzmbrh','2012-03-24 21:01:09');
+INSERT INTO t2 VALUES ('\0\0\0\0\0\0\06ý¹PVh,;bºö$î°','2012-07-21','2011-11-21 04:23:27','2011-06-18',0x21,0000,'2011-09-10 14:01:05','goybgohrexhfqwerpknkbyiqowvcdpyxvbklkbeeuvfbjtkmontmkmgcjutkjphewnvvobzilamtjqjbtvqgczozqcmvbbzvoxkycsvplfykmzpwljdcromsilspjuoyhxwduymxkymvmijehtutftqmpfpbesonppacogyogjqhyonizbsgzwubzgeoehryqswzkftgzhzssnlstuszpwauxmdhgjcawabnjcynzrrh','2012-11-19 18:30:51');
+INSERT INTO t2 VALUES ('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0À®ÛÀ','2012-09-01','2012-01-20 09:01:34','2011-02-12',0x1FDF59DC65,0000,'2011-07-07 19:48:34','xohwzrslzxbpxdvqfsumavjwwmsdcgczlmxrtxavsqtnpggxesvekbcelnnrxkvvlwqwbydlhwzltwaurkfltafeijstmzueiqddjdxzddymhsungndmojndbspkezvdfhqxijxxrwiolqgnsedenszkiljgropmcbxsjntjmnonnltyiysuejsznuurmonebslawybppziavystrylwunselezpbslmkzggpziffrud','2012-01-19 22:00:00');
+INSERT INTO t2 VALUES ('\0\0\0\0\0\0\0\0\0\0\0\0jø@\0\0\0\0\0\0\0\0','0000-00-00','2012-05-21 09:59:10','2011-04-17',0x02307EDF,0000,'2012-01-20 09:01:34','vjcwlxxeydntegsdqhxgriarmbvzwzwdexcalvacxhilaejpmxdpkuvblukchagzoellbdndelfednqktzobyhjqweqaugqnfikdalmaytyunjqvxcsirhaqnvqsstgrgfscnsemseebdemfditoswccsxthnddzslgjkyujxoqsvzrssymoovqmibcmbboruyxlvopengdqqgqwekrflhvjcpondxivnshvhrnqvfls','2012-09-23 23:54:02');
+
+
+INSERT INTO t3 VALUES (11787,'2012-07-24 15:22:50',0x00000000FF,'qbdydwxepydtonqnghurnuntughjwfygzttqwtmfzfbtifjcearpatksofbrfgnaccvapahywhsstdplphrxbcubhktov','2011-08-27 19:28:03',NULL,0x00000000001C);
+
+INSERT INTO t3 VALUES (11788,'2012-05-17 08:38:13',0x3FFFFFFFFF,'jkvkjxaikruljqalyvnbfjptxgbpsgnxlzthhcrswwdcfrhilwwgqmxynxjnehwmyfzdyywjzfyasuvjbrevkxtnyodiu','2012-05-09 11:09:52',NULL,0x0000000000B8);
+
+INSERT INTO t3 VALUES (1,'2011-02-17 19:55:19',0x000098FAF3,'rnzhemtrqjdrappwbmxnzkfatcgtvqklrpfpdqiwjnjbeaxpcbhqqunbzmtmitdszxyrdvkeedqwpbiefqnwvhiznwfyq','2012-11-10 18:00:25','\0\0\0\0\0\0\0\0\0\0\0\0jøÀ\0\0\0\0€1á@',0x7FFFFFFFFFFF);
+
+INSERT INTO t3 VALUES (11789,'2011-12-26 01:30:56',0x0000000001,'dhryqjghgixymqywclxpovwnlgnltuzdvggmlaxtzrsbpxkahkiahpkrddpoeftqqwejbjxrdzfgvkzvhcalopgumspgg','2011-03-21 06:25:44',NULL,0x00000000293A);
+
+INSERT INTO t3 VALUES (4294967296,'2011-04-12 21:05:37',0x0000CE3238,'xwcplgaxcpgfsmcjftxffxgmjwabpmrcycbxmwjvqtlvtlwuipuwgbuygnxomjplqohyuqyzsoiggroigcnchzpiilyhe','2012-03-20 05:35:39',NULL,0x00000000006E);
+
+--enable_query_log
+
+set session sort_buffer_size= 32768;
+select  col435
+from t3
+natural right outer join t1
+natural right outer join t2 a
+left outer join t2 b on 1
+group by
+    repeat('a',10000) desc,
+    repeat('a',10000)
+with rollup
+;
+set session sort_buffer_size= default;
+
+DROP TABLE  t1, t2, t3;
diff -Nru mysql-5.5-5.5.20/mysql-test/t/ctype_utf8.test mysql-5.5-5.5.22/mysql-test/t/ctype_utf8.test
--- mysql-5.5-5.5.20/mysql-test/t/ctype_utf8.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/t/ctype_utf8.test	2012-03-02 19:44:46.000000000 +0000
@@ -1455,6 +1455,14 @@
 SELECT HEX(INSERT(_utf8 0xD18F, 2, 1, 0x20));
 SELECT HEX(INSERT(_utf8 0xD18FD18E, 2, 1, 0x20));
 
+--echo #
+--echo # Bug#11752408 - 43593: DUMP/BACKUP/RESTORE/UPGRADE TOOLS FAILS BECAUSE OF UTF8_GENERAL_CI
+--echo #
+CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_general_mysql500_ci);
+INSERT INTO t1 VALUES ('a'),('r'),('s'),(_latin1 0xDF),(_latin1 0xF7),('t'),('z');
+SELECT * FROM t1 ORDER BY a;
+SELECT a, COUNT(*) FROM t1 GROUP BY a;
+DROP TABLE t1;
 
 --echo End of 5.1 tests
 
diff -Nru mysql-5.5-5.5.20/mysql-test/t/events_restart.test mysql-5.5-5.5.22/mysql-test/t/events_restart.test
--- mysql-5.5-5.5.20/mysql-test/t/events_restart.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/t/events_restart.test	2012-03-02 19:44:46.000000000 +0000
@@ -106,3 +106,4 @@
   select count(*) = 0 from information_schema.processlist
   where db='events_test' and command = 'Connect' and user=current_user();
 --source include/wait_condition.inc
+
diff -Nru mysql-5.5-5.5.20/mysql-test/t/func_str.test mysql-5.5-5.5.22/mysql-test/t/func_str.test
--- mysql-5.5-5.5.20/mysql-test/t/func_str.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/t/func_str.test	2012-03-02 19:44:46.000000000 +0000
@@ -1459,6 +1459,45 @@
 SELECT ((127.1) not in ((rpad(1.0,2048,1)),(''),(-1.1)));
 SELECT ((0xf3) * (rpad(1.0,2048,1)) << (0xcc));
 
+--echo #
+--echo # Bug#13359121 LARGE NUMBERS, /STRINGS/DTOA.C:662:
+--echo #              BALLOC: ASSERTION `K <= 15' FAILED.
+--echo # Bug#12985021 SIMPLE QUERY WITH DECIMAL NUMBERS TAKE AN 
+--echo #              EXTRAORDINARY LONG TIME TO EXECUTE
+
+SELECT @tmp_max:= @@global.max_allowed_packet;
+SET @@global.max_allowed_packet=1024*1024*1024;
+# switching connection to allow the new max_allowed_packet take effect
+--connect (newconn, localhost, root,,)
+
+SELECT @@global.max_allowed_packet;
+
+do
+format(rpad('111111111.1',
+             1111111,
+             '999999999999999999999999999999999999999999'),0,'be_BY')
+;
+
+DO
+round(
+  concat( (
+    coalesce( (
+      linefromwkb('2147483648',
+                  -b'1111111111111111111111111111111111111111111')),
+      ( convert('[.DC2.]',decimal(30,30)) ),
+      bit_count('')
+    ) ),
+    ( lpad( ( elt('01','}:K5')),
+              sha1('P'),
+              ( ( select '-9223372036854775808.1' > all (select '')))
+          )
+    )
+  )
+);
+
+--connection default
+SET @@global.max_allowed_packet:= @tmp_max;
+--disconnect newconn
 
 --echo #
 --echo # End of 5.5 tests
diff -Nru mysql-5.5-5.5.20/mysql-test/t/func_time.test mysql-5.5-5.5.22/mysql-test/t/func_time.test
--- mysql-5.5-5.5.20/mysql-test/t/func_time.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/t/func_time.test	2012-03-02 19:44:46.000000000 +0000
@@ -915,6 +915,67 @@
 
 DO WEEK((DATE_ADD((CAST(0 AS DATE)), INTERVAL 1 YEAR_MONTH)), 5);
 
+--echo #
+--echo # BUG#13458237 INCONSISTENT HANDLING OF INVALIDE DATES WITH ZERO DAY
+--echo # SIMILAR TO '2009-10-00' 
+--echo #
+
+query_vertical SELECT
+  DATE('20091000'),
+  STR_TO_DATE('200910','%Y%m'),
+  LAST_DAY('2009-10-00'),
+  LAST_DAY(DATE('2009-10-00')),
+  LAST_DAY(DATE'2009-10-00'),
+  LAST_DAY(STR_TO_DATE('200910','%Y%m')),
+  WEEK('2009-10-00'),
+  WEEK(DATE('2009-10-00')),
+  WEEK(DATE'2009-10-00'),
+  WEEK(STR_TO_DATE('200910','%Y%m')),
+  WEEKOFYEAR('2009-10-00'),
+  WEEKOFYEAR(DATE('2009-10-00')),
+  WEEKOFYEAR(DATE'2009-10-00'),
+  WEEKOFYEAR(STR_TO_DATE('200910','%Y%m')),
+  DAYOFYEAR('2009-10-00'),
+  DAYOFYEAR(DATE('2009-10-00')),
+  DAYOFYEAR(DATE'2009-10-00'),
+  DAYOFYEAR(STR_TO_DATE('200910','%Y%m')),
+  WEEKDAY('2009-10-00'),
+  WEEKDAY(DATE('2009-10-00')),
+  WEEKDAY(DATE'2009-10-00'),
+  WEEKDAY(STR_TO_DATE('200910','%Y%m')),
+  TO_DAYs('2009-10-00'),
+  TO_DAYs(DATE('2009-10-00')),
+  TO_DAYs(DATE'2009-10-00'),
+  TO_DAYs(STR_TO_DATE('200910','%Y%m'));
+
+query_vertical SELECT
+  DATE('00000100'),
+  STR_TO_DATE('000001','%Y%m'),
+  LAST_DAY('0000-01-00'),
+  LAST_DAY(DATE('0000-01-00')),
+  LAST_DAY(DATE'0000-01-00'),
+  LAST_DAY(STR_TO_DATE('000001','%Y%m')),
+  WEEK('0000-01-00'),
+  WEEK(DATE('0000-01-00')),
+  WEEK(DATE'0000-01-00'),
+  WEEK(STR_TO_DATE('000001','%Y%m')),
+  WEEKOFYEAR('0000-01-00'),
+  WEEKOFYEAR(DATE('0000-01-00')),
+  WEEKOFYEAR(DATE'0000-01-00'),
+  WEEKOFYEAR(STR_TO_DATE('000001','%Y%m')),
+  DAYOFYEAR('0000-01-00'),
+  DAYOFYEAR(DATE('0000-01-00')),
+  DAYOFYEAR(DATE'0000-01-00'),
+  DAYOFYEAR(STR_TO_DATE('000001','%Y%m')),
+  WEEKDAY('0000-01-00'),
+  WEEKDAY(DATE('0000-01-00')),
+  WEEKDAY(DATE'0000-01-00'),
+  WEEKDAY(STR_TO_DATE('000001','%Y%m')),
+  TO_DAYs('0000-01-00'),
+  TO_DAYs(DATE('0000-01-00')),
+  TO_DAYs(DATE'0000-01-00'),
+  TO_DAYs(STR_TO_DATE('000001','%Y%m'));
+
 --echo End of 5.1 tests
 
 --echo #
@@ -940,6 +1001,21 @@
 --error ER_WRONG_VALUE_FOR_VAR
 SET storage_engine=NULL;
 
+
+--echo #
+--echo # BUG#13354387 - CRASH IN IN MY_DECIMAL::OPERATOR FOR VIEW AND FUNCTION UNIX_TIMESTAMP 
+--echo # Part1 (5.5)
+SET time_zone='+03:00';
+CREATE TABLE t1 (a DATETIME NOT NULL);
+INSERT INTO t1 VALUES ('2009-09-20 07:32:39.06');
+INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00');
+CREATE VIEW v1 AS SELECT * FROM t1;
+SELECT CAST(UNIX_TIMESTAMP(a) AS DECIMAL(25,3)) AS c1 FROM v1 ORDER BY 1; 
+DROP VIEW v1;
+DROP TABLE t1;
+SET time_zone=DEFAULT;
+
+
 --echo #
 --echo # Bug #59686 crash in String::copy() with time data type
 --echo #
diff -Nru mysql-5.5-5.5.20/mysql-test/t/init_connect.test mysql-5.5-5.5.22/mysql-test/t/init_connect.test
--- mysql-5.5-5.5.20/mysql-test/t/init_connect.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/t/init_connect.test	2012-03-02 19:44:46.000000000 +0000
@@ -36,6 +36,14 @@
 set GLOBAL init_connect="adsfsdfsdfs";
 connect (con5,localhost,user_1,,);
 connection con5;
+# BUG#11755281/47032: ERROR 2006 / ERROR 2013 INSTEAD OF PROPER ERROR MESSAGE
+# We now throw a proper error message here:
+--replace_regex /connection .* to/connection to/
+--error ER_NEW_ABORTING_CONNECTION
+select @a;
+# We got disconnected after receiving the above error message; any further
+# requests should fail with a notice that no one's listening to us.
+# --error CR_SERVER_GONE_ERROR,CR_SERVER_LOST
 --error 2013,2006
 select @a;
 connection con0;
diff -Nru mysql-5.5-5.5.20/mysql-test/t/join_outer.test mysql-5.5-5.5.22/mysql-test/t/join_outer.test
--- mysql-5.5-5.5.20/mysql-test/t/join_outer.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/t/join_outer.test	2012-03-02 19:44:46.000000000 +0000
@@ -1216,4 +1216,61 @@
 
 DROP TABLE h,m,k;
 
+--echo
+--echo # BUG#12567331 - INFINITE LOOP WHEN RESOLVING AN ALIASED COLUMN
+--echo # USED IN GROUP BY
+--echo 
+CREATE TABLE t1 (
+  col_varchar_1024_latin1_key varchar(1024),
+  col_varchar_10_latin1 varchar(10),
+  col_int int(11),
+  pk int(11)
+);
+CREATE TABLE t2 (
+  col_int_key int(11),
+  col_int int(11),
+  pk int(11)
+);
+
+PREPARE prep_stmt_9846 FROM '
+SELECT alias1.pk AS field1 FROM
+t1 AS alias1
+LEFT JOIN
+( 
+  t2 AS alias2
+  RIGHT  JOIN
+  ( 
+    t2 AS alias3
+    JOIN t1 AS alias4
+    ON 1
+  )
+  ON 1
+)
+ON 1
+GROUP BY field1';
+execute prep_stmt_9846;
+execute prep_stmt_9846;
+drop table t1,t2;
+
+--echo #
+--echo # Bug #11765810	58813: SERVER THREAD HANGS WHEN JOIN + WHERE + GROUP BY
+--echo # IS EXECUTED TWICE FROM P
+--echo #
+CREATE TABLE t1 ( a INT ) ENGINE = MYISAM;
+INSERT INTO t1 VALUES (1);
+PREPARE prep_stmt FROM '
+ SELECT 1 AS f FROM t1
+ LEFT JOIN t1 t2
+  RIGHT JOIN t1 t3
+    JOIN t1 t4
+   ON 1
+  ON 1
+ ON 1
+ GROUP BY f';
+EXECUTE prep_stmt;
+EXECUTE prep_stmt;
+
+DROP TABLE t1;
+
+
 --echo End of 5.1 tests
diff -Nru mysql-5.5-5.5.20/mysql-test/t/multi_update.test mysql-5.5-5.5.22/mysql-test/t/multi_update.test
--- mysql-5.5-5.5.20/mysql-test/t/multi_update.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/t/multi_update.test	2012-03-02 19:44:46.000000000 +0000
@@ -6,6 +6,8 @@
 source include/not_embedded.inc;
 source include/have_log_bin.inc;
 
+CALL mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT.");
+
 --disable_warnings
 drop table if exists t1,t2,t3;
 drop database if exists mysqltest;
@@ -138,6 +140,7 @@
 
 select * from t2;
 
+--disable_warnings ONCE
 UPDATE t2, t1 SET t2.tst = t1.tst, t2.tst1 = t1.tst1 WHERE t2.ParId = t1.Id;
 
 select * from t2;
@@ -295,6 +298,7 @@
 
 create table t1 (a int not null auto_increment primary key, b int not null);
 insert into t1 (b) values (1),(2),(3),(4);
+--disable_warnings ONCE
 update t1, t1 as t2 set t1.b=t2.b+1 where t1.a=t2.a;
 select * from t1;
 drop table t1;
@@ -352,6 +356,7 @@
 insert into t1 values (0,'A01-Comp',1);
 insert into t1 values (0,'B01-Comp',1);
 insert into t2 values (0,1,'A Note',1);
+--disable_warnings ONCE
 update t1 left join t2 on p_id = c2_p_id set c2_note = 'asdf-1' where p_id = 2;
 select * from t1;
 select * from t2;
diff -Nru mysql-5.5-5.5.20/mysql-test/t/myisam.test mysql-5.5-5.5.22/mysql-test/t/myisam.test
--- mysql-5.5-5.5.20/mysql-test/t/myisam.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/t/myisam.test	2012-03-02 19:44:46.000000000 +0000
@@ -1665,6 +1665,20 @@
 DROP TABLE t1;
 SET GLOBAL myisam_use_mmap=default;
 
+--echo #
+--echo # BUG 11756869 - 48848: MYISAMCHK DOING SORT RECOVER IN CERTAIN
+--echo #                       CASES RESETS DATA POINTER TO SMAL
+--echo #
+CREATE TABLE t1(a INT, KEY(a));
+ALTER TABLE t1 DISABLE KEYS;
+let $MYSQLD_DATADIR= `select @@datadir`;
+SET @before:= (SELECT MAX_DATA_LENGTH FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='t1' AND TABLE_SCHEMA='test');
+FLUSH TABLES;
+--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR
+--exec $MYISAMCHK -sn $MYSQLD_DATADIR/test/t1
+SET @after:= (SELECT MAX_DATA_LENGTH FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='t1' AND TABLE_SCHEMA='test');
+SELECT @before=@after;
+DROP TABLE t1;
 --echo End of 5.1 tests
 
 
diff -Nru mysql-5.5-5.5.20/mysql-test/t/mysqldump.test mysql-5.5-5.5.22/mysql-test/t/mysqldump.test
--- mysql-5.5-5.5.20/mysql-test/t/mysqldump.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/t/mysqldump.test	2012-03-02 19:44:46.000000000 +0000
@@ -2202,6 +2202,118 @@
 USE test;
 
 --echo #
+--echo # BUG#11760384 : 52792: mysqldump in XML mode does not dump routines.
+--echo #
+CREATE DATABASE BUG52792;
+USE BUG52792;
+CREATE TABLE t1 (c1 INT, c2 VARCHAR(20));
+CREATE TABLE t2 (c1 INT);
+INSERT INTO t1 VALUES (1, 'aaa'), (2, 'bbb'), (3, 'ccc');
+INSERT INTO t2 VALUES (1),(2),(3);
+
+--echo # Stored Procedures.
+
+DELIMITER //;
+CREATE PROCEDURE simpleproc1 (OUT param1 INT)
+BEGIN
+  SELECT COUNT(*) INTO param1 FROM t1;
+END//
+DELIMITER ;//
+
+DELIMITER //;
+CREATE PROCEDURE simpleproc2 (OUT param1 INT)
+BEGIN
+  SELECT COUNT(*) INTO param1 FROM t2;
+END//
+DELIMITER ;//
+
+--echo # Events.
+
+CREATE EVENT e1 ON SCHEDULE EVERY 1 SECOND DO DROP DATABASE BUG52792;
+CREATE EVENT e2 ON SCHEDULE EVERY 1 SECOND DO DROP DATABASE BUG52792;
+
+--echo # Functions.
+
+CREATE FUNCTION `hello1` (s CHAR(20))
+  RETURNS CHAR(50) DETERMINISTIC
+RETURN CONCAT('Hello, ' ,s ,'!');
+
+CREATE FUNCTION `hello2` (s CHAR(20))
+    RETURNS CHAR(50) DETERMINISTIC
+RETURN CONCAT(']]>, ' , s ,'!');
+
+--echo # Triggers.
+
+DELIMITER |;
+CREATE TRIGGER trig1 BEFORE INSERT ON t2
+  FOR EACH ROW BEGIN
+    INSERT INTO t2 VALUES(1);
+END;
+|
+DELIMITER ;|
+
+DELIMITER |;
+CREATE TRIGGER trig2 AFTER INSERT ON t2
+  FOR EACH ROW BEGIN
+    INSERT INTO t2 VALUES(1, ']]>');
+    INSERT INTO t2 VALUES(2, '');
+    INSERT INTO t2 VALUES(3, ' & \ " _');
+END;
+|
+DELIMITER ;|
+
+--echo # Views
+
+CREATE VIEW v1 AS SELECT * FROM t1;
+CREATE VIEW v2 AS SELECT * FROM t2;
+--echo
+--echo # Dumping BUG52792 database in xml format.
+--echo
+--echo # Running 'replace_regex on timestamp'
+--replace_regex /[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}/--TIME--/
+--exec $MYSQL_DUMP --user=root --compact -R -E --triggers -X BUG52792
+--echo
+--echo # Dumping BUG52792 database in xml format with comments.
+--echo
+--echo # Running 'replace_regex on timestamp'
+--replace_regex /[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}/--TIME--/
+--exec $MYSQL_DUMP --comments --user=root -R -E --triggers -X BUG52792
+
+--echo
+--echo # Test to check 'Insufficient privileges' error.
+--echo
+
+GRANT ALL PRIVILEGES ON BUG52792.* TO user1;
+
+connect (conn_1, localhost, user1, , BUG52792, $MASTER_MYPORT, $MASTER_MYSOCK);
+connection conn_1;
+
+--echo # Running 'replace_regex on timestamp'
+--replace_regex /[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}/--TIME--/
+--error 2
+--exec $MYSQL_DUMP --user=user1 -R -E --triggers -X BUG52792
+
+connection default;
+disconnect conn_1;
+
+DROP USER user1;
+DROP DATABASE BUG52792;
+--echo # UTF-8
+CREATE DATABASE BUG52792;
+USE BUG52792;
+SET NAMES utf8;
+CREATE FUNCTION `straße` ( c1 CHAR(20))
+  RETURNS CHAR(50) DETERMINISTIC
+RETURN CONCAT(']]>, ', s, '!');
+
+--exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --skip-comments --default-character-set=utf8 --compatible=mysql323 -R -X BUG52792
+
+DROP DATABASE BUG52792;
+
+USE test;
+
+--echo #
 --echo # End of 5.1 tests
 --echo #
 
@@ -2215,5 +2327,43 @@
 --exec $MYSQL_DUMP --compatible=no_t,no_f --skip-comments test
 DROP TABLE t1;
 
+--echo #
+--echo # Bug#12809202 61854: MYSQLDUMP --SINGLE-TRANSACTION --FLUSH-LOG BREAKS
+--echo #                     CONSISTENCY
+--echo #
+
+--disable_warnings
+DROP DATABASE IF EXISTS b12809202_db;
+--enable_warnings
+
+CREATE DATABASE b12809202_db;
+CREATE TABLE b12809202_db.t1 (c1 INT);
+CREATE TABLE b12809202_db.t2 (c1 INT);
+
+INSERT INTO b12809202_db.t1 VALUES (1), (2), (3);
+INSERT INTO b12809202_db.t2 VALUES (1), (2), (3);
+
+--echo # Starting mysqldump with --single-transaction & --flush-log options..
+--echo # Note : In the following dump the transaction
+--echo #        should start only after the logs are
+--echo #        flushed, as 'flush logs' causes implicit
+--echo #        commit starting 5.5.
+--echo
+--echo #### Dump starts here ####
+--replace_regex /-- Server version.*// /-- MySQL dump .*// /-- Dump completed on .*/-- Dump completed/
+--exec $MYSQL_DUMP --verbose --single-transaction --flush-log b12809202_db 2>&1
+--echo
+--echo #### Dump ends here ####
+
+# Cleanup
+DROP TABLE b12809202_db.t1;
+DROP TABLE b12809202_db.t2;
+DROP DATABASE b12809202_db;
+
+--echo #
+--echo # Delete all existing binary logs.
+--echo #
+RESET MASTER;
+
 # Wait till we reached the initial number of concurrent sessions
 --source include/wait_until_count_sessions.inc
diff -Nru mysql-5.5-5.5.20/mysql-test/t/mysql_plugin.test mysql-5.5-5.5.22/mysql-test/t/mysql_plugin.test
--- mysql-5.5-5.5.20/mysql-test/t/mysql_plugin.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/t/mysql_plugin.test	2012-03-02 19:44:46.000000000 +0000
@@ -155,6 +155,74 @@
 --replace_regex /\.dll/.so/
 SELECT * FROM mysql.plugin WHERE dl like 'libdaemon%' ORDER BY name;
 
+# MTR will remove this file later, but this might be too late.
+--error 0,1
+--remove_file $expect_file
+--write_file $expect_file
+wait
+EOF
+--shutdown_server 10
+--source include/wait_until_disconnected.inc
+
+#
+# Disable the plugin - to remove winky, wonky entries
+#
+--exec $MYSQL_PLUGIN_CMD DISABLE daemon_example
+
+#
+# Enable the plugin again
+#
+--exec $MYSQL_PLUGIN_CMD ENABLE daemon_example
+
+#
+# Restart the server
+#
+--append_file $expect_file
+restart
+EOF
+--enable_reconnect
+--source include/wait_until_connected_again.inc
+
+--echo #
+--echo # Ensure the plugin is loaded.
+--echo #
+--replace_regex /\.dll/.so/
+SELECT * FROM mysql.plugin WHERE dl like '%libdaemon%' ORDER BY name;
+
+# MTR will remove this file later, but this might be too late.
+--error 0,1
+--remove_file $expect_file
+--write_file $expect_file
+wait
+EOF
+--shutdown_server 10
+--source include/wait_until_disconnected.inc
+
+# To test the case where the same plugin is reloaded with a different soname,
+# we must copy the example daemon to a new location renaming it.
+
+let $DAEMON_RELOAD = lib$DAEMONEXAMPLE;
+--copy_file $PLUGIN_DIR/$DAEMONEXAMPLE $PLUGIN_DIR/$DAEMON_RELOAD
+--copy_file include/libdaemon_example.ini $PLUGIN_DIR/libdaemon_example.ini
+
+# Now reload it and see that it is a different name.
+--exec $MYSQL_PLUGIN_CMD ENABLE libdaemon_example 
+
+#
+# Restart the server
+#
+--append_file $expect_file
+restart
+EOF
+--enable_reconnect
+--source include/wait_until_connected_again.inc
+
+--echo #
+--echo # Ensure the plugin is replaced.
+--echo #
+--replace_regex /\.dll/.so/
+SELECT * FROM mysql.plugin WHERE dl like '%libdaemon%' ORDER BY name;
+
 --echo #
 --echo # Disable the plugin...
 --echo #
@@ -170,7 +238,12 @@
 #
 # Disable the plugin
 #
---exec $MYSQL_PLUGIN_CMD DISABLE daemon_example
+--exec $MYSQL_PLUGIN_CMD DISABLE libdaemon_example
+
+# Remove files for last test case.
+
+--remove_file $PLUGIN_DIR/$DAEMON_RELOAD
+--remove_file $DAEMONEXAMPLE_DIR/libdaemon_example.ini
 
 #
 # Restart the server
@@ -184,7 +257,7 @@
 --echo #
 --echo # Ensure the plugin isn't loaded.
 --echo #
-SELECT * FROM mysql.plugin WHERE dl like 'libdaemon%' ORDER BY name;
+SELECT * FROM mysql.plugin WHERE dl like '%libdaemon%' ORDER BY name;
 
 #
 # Stop the server for error conditions
diff -Nru mysql-5.5-5.5.20/mysql-test/t/partition_binlog_stmt.test mysql-5.5-5.5.22/mysql-test/t/partition_binlog_stmt.test
--- mysql-5.5-5.5.20/mysql-test/t/partition_binlog_stmt.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/t/partition_binlog_stmt.test	2012-03-02 19:44:46.000000000 +0000
@@ -8,7 +8,7 @@
 --echo #
 --echo # Bug#51851: Server with SBR locks mutex twice on LOAD DATA into
 --echo #            partitioned MyISAM table
---write_file init_file.txt
+--write_file $MYSQLTEST_VARDIR/tmp/init_file.txt
 abcd
 EOF
 
@@ -19,8 +19,9 @@
  INDEX namelocs (name(255))) ENGINE = MyISAM
 PARTITION BY HASH(id) PARTITIONS 2;
 
-LOAD DATA LOCAL INFILE 'init_file.txt'
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+eval LOAD DATA LOCAL INFILE '$MYSQLTEST_VARDIR/tmp/init_file.txt'
 INTO TABLE t1 (name);
 
---remove_file init_file.txt
+--remove_file $MYSQLTEST_VARDIR/tmp/init_file.txt
 DROP TABLE t1;
diff -Nru mysql-5.5-5.5.20/mysql-test/t/partition_error.test mysql-5.5-5.5.22/mysql-test/t/partition_error.test
--- mysql-5.5-5.5.20/mysql-test/t/partition_error.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/t/partition_error.test	2012-03-02 19:44:46.000000000 +0000
@@ -11,6 +11,34 @@
 let $MYSQLD_DATADIR= `SELECT @@datadir`;
 
 --echo #
+--echo # Bug#13608188 - 64038: CRASH IN HANDLER::HA_THD ON ALTER TABLE AFTER
+--echo #                       REPAIR NON-EXISTING PARTITION
+--echo #
+CREATE TABLE t1 ( a INT, b INT );
+INSERT INTO t1 VALUES (5,3),(5,6);
+ALTER TABLE t1 PARTITION BY KEY(b) PARTITIONS 3 ;
+ALTER TABLE t1 REPAIR PARTITION p1, p3;
+ALTER TABLE t1 ORDER BY b;
+DROP TABLE t1;
+
+--echo #
+--echo # Bug#13593865 - 64037: CRASH IN HA_PARTITION::CREATE_HANDLERS ON
+--echo #                       ALTER TABLE AFTER DROP PARTITION
+--echo #
+
+CREATE TABLE t1 (a INT)
+PARTITION BY RANGE (a)
+(PARTITION p0 VALUES LESS THAN (0),
+ PARTITION p1 VALUES LESS THAN MAXVALUE ) ;
+
+ALTER TABLE t1 DROP PARTITION p1;
+ALTER TABLE t1 ANALYZE PARTITION p0, p1;
+
+ALTER TABLE t1 COMMENT 'altered';
+
+DROP TABLE t1;
+
+--echo #
 --echo # Bug#57924: crash when creating partitioned table with
 --echo #            multiple columns in the partition key
 --echo #
diff -Nru mysql-5.5-5.5.20/mysql-test/t/partition.test mysql-5.5-5.5.22/mysql-test/t/partition.test
--- mysql-5.5-5.5.20/mysql-test/t/partition.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/t/partition.test	2012-03-02 19:44:46.000000000 +0000
@@ -2346,6 +2346,51 @@
 DROP TABLE t1;
 SET GLOBAL myisam_use_mmap=default;
 
+--echo #
+--echo # Bug#13580775 ASSERTION FAILED: RECORD_LENGTH == M_RECORD_LENGTH,
+--echo # FILE FILESORT_UTILS.CC
+--echo #
+
+CREATE TABLE t1 (
+  a INT PRIMARY KEY,
+  b INT,
+  c CHAR(1),
+  d INT,
+  KEY (c,d)
+) PARTITION BY KEY () PARTITIONS 1;
+
+INSERT INTO t1 VALUES (1,1,'a',1), (2,2,'a',1);
+
+SELECT 1 FROM t1 WHERE 1 IN
+(SELECT  group_concat(b)
+ FROM t1
+ WHERE c > geomfromtext('point(1 1)')
+ GROUP BY b
+);
+
+DROP TABLE t1;
+
+--echo #
+--echo # Bug#13011410 CRASH IN FILESORT CODE WITH GROUP BY/ROLLUP
+--echo #
+
+CREATE TABLE t1 (
+  a INT,
+  b MEDIUMINT,
+  c VARCHAR(300) CHARACTER SET hp8 COLLATE hp8_bin,
+  PRIMARY KEY (a,c(299))) 
+ENGINE=myisam
+PARTITION BY LINEAR KEY () PARTITIONS 2;
+
+INSERT INTO t1 VALUES (1,2,'test'), (2,3,'hi'), (4,5,'bye');
+SELECT 1 FROM t1 WHERE b < SOME
+( SELECT 1 FROM t1 WHERE a >= 1
+  GROUP BY b WITH ROLLUP
+  HAVING b > geomfromtext("")
+);
+
+DROP TABLE t1;
+
 --echo End of 5.1 tests
 
 --echo #
diff -Nru mysql-5.5-5.5.20/mysql-test/t/ps.test mysql-5.5-5.5.22/mysql-test/t/ps.test
--- mysql-5.5-5.5.20/mysql-test/t/ps.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/t/ps.test	2012-03-02 19:44:46.000000000 +0000
@@ -1,5 +1,6 @@
 -- source include/not_embedded.inc
 -- source include/have_log_bin.inc
+call mtr.add_suppression('Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT.'); 
 #
 # SQL Syntax for Prepared Statements test
 #
@@ -238,8 +239,10 @@
 execute stmt1;
 execute stmt1;
 prepare stmt1 from "create table t1 select 1 as i";
+--disable_warnings ONCE
 execute stmt1;
 drop table t1;
+--disable_warnings ONCE
 execute stmt1;
 prepare stmt1 from "insert into t1 select i from t1";
 execute stmt1;
@@ -432,6 +435,7 @@
 create table t1 (a int); 
 insert into t1 values (1),(2),(3);
 create table t2 select * from t1;
+--disable_warnings
 prepare stmt FROM 'create table t2 select * from t1';
 drop table t2;
 execute stmt;
@@ -441,6 +445,7 @@
 execute stmt;
 drop table t2;
 execute stmt;
+--enable_warnings
 drop table t1,t2;
 deallocate prepare stmt;
 
@@ -1176,6 +1181,7 @@
 prepare stmt1 from "create table mysqltest.t1 (c char(10))";
 prepare stmt2 from "create table mysqltest.t2 select 'test'";
 execute stmt1;
+--disable_warnings ONCE
 execute stmt2;
 show create table mysqltest.t1;
 show create table mysqltest.t2;
@@ -1183,6 +1189,7 @@
 drop table mysqltest.t2;
 alter database mysqltest character set latin1;
 execute stmt1;
+--disable_warnings ONCE
 execute stmt2;
 show create table mysqltest.t1;
 show create table mysqltest.t2;
diff -Nru mysql-5.5-5.5.20/mysql-test/t/range.test mysql-5.5-5.5.22/mysql-test/t/range.test
--- mysql-5.5-5.5.20/mysql-test/t/range.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/t/range.test	2012-03-02 19:44:46.000000000 +0000
@@ -1392,4 +1392,80 @@
 
 DROP TABLE t1;
 
+--echo #
+--echo # BUG#13519696 - 62940: SELECT RESULTS VARY WITH VERSION AND
+--echo # WITH/WITHOUT INDEX RANGE SCAN
+--echo #
+
+create table t1 (id int unsigned not null auto_increment primary key);
+insert into t1 values (null);  
+insert into t1 select null from t1;  
+insert into t1 select null from t1;  
+insert into t1 select null from t1;  
+insert into t1 select null from t1;  
+insert into t1 select null from t1;  
+insert into t1 select null from t1;  
+insert into t1 select null from t1;  
+insert into t1 select null from t1; 
+create table t2 (
+ id int unsigned not null auto_increment,
+ val decimal(5,3) not null,
+ primary key (id,val),
+ unique key (val,id),
+ unique key (id));  
+--disable_warnings
+insert into t2 select null,id*0.0009 from t1;
+--enable_warnings
+
+select count(val) from t2 ignore index (val) where val > 0.1155;
+select count(val) from t2 force index (val)  where val > 0.1155;
+
+drop table t2, t1;
+
+--echo #
+--echo # BUG#13453382 - REGRESSION SINCE 5.1.39, RANGE OPTIMIZER WRONG
+--echo # RESULTS WITH DECIMAL CONVERSION
+--echo #
+
+create table t1 (a int,b int,c int,primary key (a,c));
+insert into t1 values (1,1,2),(1,1,3),(1,1,4);
+# show that the integer 3 is bigger than the decimal 2.9,
+# which should also apply to comparing "c" with 2.9
+# when c is 3.
+select convert(3, signed integer) > 2.9;
+select * from t1 force  index (primary) where a=1 and c>= 2.9;
+select * from t1 ignore index (primary) where a=1 and c>= 2.9;
+select * from t1 force  index (primary) where a=1 and c> 2.9;
+select * from t1 ignore index (primary) where a=1 and c> 2.9;
+drop table t1;
+
+--echo #
+--echo # BUG#13463488 - 63437: CHAR & BETWEEN WITH INDEX RETURNS WRONG
+--echo # RESULT AFTER MYSQL 5.1.
+--echo #
+
+CREATE TABLE t1(
+ F1 CHAR(5) NOT NULL,
+ F2 CHAR(5) NOT NULL,
+ F3 CHAR(5) NOT NULL,
+ PRIMARY KEY(F1),
+ INDEX IDX_F2(F2)
+);
+
+INSERT INTO t1 VALUES
+('A','A','A'),('AA','AA','AA'),('AAA','AAA','AAA'),
+('AAAA','AAAA','AAAA'),('AAAAA','AAAAA','AAAAA');
+
+SELECT * FROM t1 WHERE F1 = 'A    ';
+SELECT * FROM t1 IGNORE INDEX(PRIMARY) WHERE F1 = 'A    ';
+SELECT * FROM t1 WHERE F1 >= 'A    ';
+SELECT * FROM t1 WHERE F1 > 'A    ';
+SELECT * FROM t1 WHERE F1 BETWEEN 'A    ' AND 'AAAAA';
+SELECT * FROM t1 WHERE F2 BETWEEN 'A    ' AND 'AAAAA';
+SELECT * FROM t1 WHERE F3 BETWEEN 'A    ' AND 'AAAAA';
+SELECT * FROM t1 IGNORE INDEX(PRIMARY) WHERE F1 BETWEEN 'A    ' AND
+'AAAAA';
+
+DROP TABLE t1;
+
 --echo End of 5.1 tests
diff -Nru mysql-5.5-5.5.20/mysql-test/t/sp-bugs.test mysql-5.5-5.5.22/mysql-test/t/sp-bugs.test
--- mysql-5.5-5.5.20/mysql-test/t/sp-bugs.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/t/sp-bugs.test	2012-03-02 19:44:46.000000000 +0000
@@ -138,4 +138,28 @@
 DROP TABLE db1.t1;
 DROP DATABASE db1;
 DROP DATABASE db2;
+
+--echo #
+--echo # Bug#13105873:valgrind warning:possible crash in foreign 
+--echo # key handling on subsequent create table if not exists 
+--echo #
+
+--disable_warnings
+DROP DATABASE IF EXISTS testdb;
+--enable_warnings
+CREATE DATABASE testdb;
+USE testdb;
+CREATE TABLE t1 (id1 INT PRIMARY KEY);
+DELIMITER $;
+CREATE PROCEDURE `p1`()
+BEGIN
+    CREATE TABLE IF NOT EXISTS t2(id INT PRIMARY KEY,
+    CONSTRAINT FK FOREIGN KEY (id) REFERENCES t1( id1 ));
+END$
+DELIMITER ;$
+CALL p1();
+--echo # below stmt should not return valgrind warnings
+CALL p1(); 
+DROP DATABASE testdb;
+
 --echo End of 5.1 tests
diff -Nru mysql-5.5-5.5.20/mysql-test/t/sp.test mysql-5.5-5.5.22/mysql-test/t/sp.test
--- mysql-5.5-5.5.20/mysql-test/t/sp.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/t/sp.test	2012-03-02 19:44:46.000000000 +0000
@@ -3336,28 +3336,20 @@
 --disable_warnings
 drop procedure if exists bug6857|
 --enable_warnings
-create procedure bug6857(counter int)
+create procedure bug6857()
 begin
   declare t0, t1 int;
   declare plus bool default 0;
-
-  set t0 = current_time();
-  while counter > 0 do
-    set counter = counter - 1;
-  end while;
-  set t1 = current_time();
+  set t0 = unix_timestamp();
+  select sleep(1.1);
+  set t1 = unix_timestamp();
   if t1 > t0 then
     set plus = 1;
   end if;
   select plus;
 end|
 
-# QQ: This is currently disabled. Not only does it slow down a normal test
-#     run, it makes running with valgrind (or similar tools) extremely
-#     painful.
-# Make sure this takes at least one second on all machines in all builds.
-# 30000 makes it about 3 seconds on an old 1.1GHz linux.
-#call bug6857(300000)|
+call bug6857()|
 
 drop procedure bug6857|
 
@@ -9036,3 +9028,32 @@
 DROP TABLE t1;
 
 --echo # End of 5.5 test
+
+
+--echo #
+--echo # Bug#12663165 SP DEAD CODE REMOVAL DOESN'T UNDERSTAND CONTINUE HANDLERS
+--echo #
+
+--disable_warnings
+DROP FUNCTION IF EXISTS f1;
+--enable_warnings
+
+delimiter $;
+CREATE FUNCTION f1() RETURNS INT
+BEGIN
+  DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN END;
+  BEGIN
+    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION RETURN f1();
+    BEGIN
+     DECLARE CONTINUE HANDLER FOR SQLEXCEPTION RETURN f1();
+     RETURN f1();
+    END;
+  END;
+RETURN 1;
+END $ 
+delimiter ;$
+
+# This used to cause an assertion.
+SELECT f1();
+
+DROP FUNCTION f1;
diff -Nru mysql-5.5-5.5.20/mysql-test/t/udf_skip_grants-master.opt mysql-5.5-5.5.22/mysql-test/t/udf_skip_grants-master.opt
--- mysql-5.5-5.5.20/mysql-test/t/udf_skip_grants-master.opt	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/t/udf_skip_grants-master.opt	2012-03-02 19:44:46.000000000 +0000
@@ -1 +1,2 @@
 --skip-grant-tables
+$UDF_EXAMPLE_LIB_OPT
diff -Nru mysql-5.5-5.5.20/mysql-test/t/xa.test mysql-5.5-5.5.22/mysql-test/t/xa.test
--- mysql-5.5-5.5.20/mysql-test/t/xa.test	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/t/xa.test	2012-03-02 19:44:46.000000000 +0000
@@ -338,8 +338,8 @@
 DROP TABLE IF EXISTS t1, t2;
 --enable_warnings
 
-CREATE TABLE t1 (a INT);
-CREATE TABLE t2 (a INT);
+CREATE TABLE t1 (a INT) ENGINE=InnoDB;
+CREATE TABLE t2 (a INT) ENGINE=InnoDB;
 
 START TRANSACTION;
 INSERT INTO t1 VALUES (1);
@@ -359,7 +359,6 @@
 --echo # Waiting until INSERT ... is blocked
 --source include/wait_condition.inc
 DELETE FROM t1;
-COMMIT;
 
 --echo # Connection con2
 --connection con2
@@ -368,6 +367,14 @@
 --reap
 --error ER_XA_RBDEADLOCK
 XA COMMIT 'xid1';
+
+--echo # Connection default
+connection default;
+
+COMMIT;
+
+--echo # Connection con2
+connection con2;
 # This caused the assert to be triggered
 XA START 'xid1';
 
diff -Nru mysql-5.5-5.5.20/mysql-test/valgrind.supp mysql-5.5-5.5.22/mysql-test/valgrind.supp
--- mysql-5.5-5.5.20/mysql-test/valgrind.supp	2011-12-16 19:52:06.000000000 +0000
+++ mysql-5.5-5.5.22/mysql-test/valgrind.supp	2012-03-02 19:44:46.000000000 +0000
@@ -893,7 +893,7 @@
    fun:my_b_flush_io_cache
    fun:_my_b_write
    fun:_Z*10write_keysP13st_sort_paramPPhjP11st_io_cacheS4_
-   fun:_Z*13find_all_keysP13st_sort_paramP10SQL_SELECTPPhP11st_io_cacheS6_S6_
+   fun:_Z*13find_all_keysP13st_sort_paramP10SQL_SELECTPPhP11st_io_cacheS6_
    fun:_Z8filesortP3THDP5TABLEP13st_sort_fieldjP10SQL_SELECTybPy
 }
 
diff -Nru mysql-5.5-5.5.20/mysys/charset-def.c mysql-5.5-5.5.22/mysys/charset-def.c
--- mysql-5.5-5.5.20/mysys/charset-def.c	2011-12-16 19:52:07.000000000 +0000
+++ mysql-5.5-5.5.22/mysys/charset-def.c	2012-03-02 19:44:47.000000000 +0000
@@ -1,5 +1,4 @@
-/* Copyright (c) 2000, 2003-2007 MySQL AB, 2009, 2010 Sun Microsystems, Inc.
-   Use is subject to license terms.
+/* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -204,6 +203,7 @@
 #ifdef HAVE_CHARSET_ucs2
   add_compiled_collation(&my_charset_ucs2_general_ci);
   add_compiled_collation(&my_charset_ucs2_bin);
+  add_compiled_collation(&my_charset_ucs2_general_mysql500_ci);
 #ifdef HAVE_UCA_COLLATIONS
   add_compiled_collation(&my_charset_ucs2_unicode_ci);
   add_compiled_collation(&my_charset_ucs2_icelandic_uca_ci);
@@ -236,6 +236,7 @@
 #ifdef HAVE_CHARSET_utf8
   add_compiled_collation(&my_charset_utf8_general_ci);
   add_compiled_collation(&my_charset_utf8_bin);
+  add_compiled_collation(&my_charset_utf8_general_mysql500_ci);
 #ifdef HAVE_UTF8_GENERAL_CS
   add_compiled_collation(&my_charset_utf8_general_cs);
 #endif
diff -Nru mysql-5.5-5.5.20/mysys/my_init.c mysql-5.5-5.5.22/mysys/my_init.c
--- mysql-5.5-5.5.20/mysys/my_init.c	2011-12-16 19:52:07.000000000 +0000
+++ mysql-5.5-5.5.22/mysys/my_init.c	2012-03-02 19:44:47.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
+/* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -Nru mysql-5.5-5.5.20/mysys/my_symlink.c mysql-5.5-5.5.22/mysys/my_symlink.c
--- mysql-5.5-5.5.20/mysys/my_symlink.c	2011-12-16 19:52:07.000000000 +0000
+++ mysql-5.5-5.5.22/mysys/my_symlink.c	2012-03-02 19:44:47.000000000 +0000
@@ -1,4 +1,4 @@
-/* Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
+/* Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff -Nru mysql-5.5-5.5.20/packaging/WiX/custom_ui.wxs mysql-5.5-5.5.22/packaging/WiX/custom_ui.wxs
--- mysql-5.5-5.5.20/packaging/WiX/custom_ui.wxs	2011-12-16 19:52:07.000000000 +0000
+++ mysql-5.5-5.5.22/packaging/WiX/custom_ui.wxs	2012-03-02 19:44:45.000000000 +0000
@@ -2,7 +2,7 @@
          xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">