diff --git a/client/client_priv.h b/client/client_priv.h index 3539975df6e..fb5c7d157f3 100644 --- a/client/client_priv.h +++ b/client/client_priv.h @@ -53,9 +53,8 @@ enum options_client OPT_MYSQL_ONLY_PRINT, OPT_MYSQL_LOCK_DIRECTORY, OPT_MYSQL_SLAP_SLAVE, - OPT_MYSQL_NUMBER_OF_QUERY, OPT_MYSQL_NUMBER_OF_ROWS, - OPT_MYSQL_REPEAT_DATA, OPT_MYSQL_REPEAT_QUERY, - OPT_MYSQL_PRESERVE_SCHEMA_ENTER, OPT_MYSQL_PRESERVE_SCHEMA_EXIT, + OPT_MYSQL_NUMBER_OF_QUERY, + OPT_MYSQL_PRESERVE_SCHEMA, OPT_IGNORE_TABLE,OPT_INSERT_IGNORE,OPT_SHOW_WARNINGS,OPT_DROP_DATABASE, OPT_TZ_UTC, OPT_AUTO_CLOSE, OPT_CREATE_SLAP_SCHEMA, OPT_MYSQL_REPLACE_INTO, OPT_BASE64_OUTPUT, OPT_SERVER_ID diff --git a/client/mysqlbinlog.cc b/client/mysqlbinlog.cc index 6ecbb6802c7..d86e3a44746 100644 --- a/client/mysqlbinlog.cc +++ b/client/mysqlbinlog.cc @@ -663,7 +663,8 @@ end: static struct my_option my_long_options[] = { - + {"help", '?', "Display this help and exit.", + 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, #ifdef __NETWARE__ {"autoclose", OPT_AUTO_CLOSE, "Auto close the screen on exit for Netware.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, @@ -683,13 +684,13 @@ static struct my_option my_long_options[] = {"character-sets-dir", OPT_CHARSETS_DIR, "Directory where character sets are.", (gptr*) &charsets_dir, (gptr*) &charsets_dir, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, + {"database", 'd', "List entries for just this database (local log only).", + (gptr*) &database, (gptr*) &database, 0, GET_STR_ALLOC, REQUIRED_ARG, + 0, 0, 0, 0, 0, 0}, #ifndef DBUG_OFF {"debug", '#', "Output debug log.", (gptr*) &default_dbug_option, (gptr*) &default_dbug_option, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0}, #endif - {"database", 'd', "List entries for just this database (local log only).", - (gptr*) &database, (gptr*) &database, 0, GET_STR_ALLOC, REQUIRED_ARG, - 0, 0, 0, 0, 0, 0}, {"disable-log-bin", 'D', "Disable binary log. This is useful, if you " "enabled --to-last-log and are sending the output to the same MySQL server. " "This way you could avoid an endless loop. You would also like to use it " @@ -700,13 +701,14 @@ static struct my_option my_long_options[] = {"force-read", 'f', "Force reading unknown binlog events.", (gptr*) &force_opt, (gptr*) &force_opt, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, - {"help", '?', "Display this help and exit.", - 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, {"hexdump", 'H', "Augment output with hexadecimal and ASCII event dump.", (gptr*) &opt_hexdump, (gptr*) &opt_hexdump, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, {"host", 'h', "Get the binlog from server.", (gptr*) &host, (gptr*) &host, 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, + {"local-load", 'l', "Prepare local temporary files for LOAD DATA INFILE in the specified directory.", + (gptr*) &dirname_for_local_load, (gptr*) &dirname_for_local_load, 0, + GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, {"offset", 'o', "Skip the first N entries.", (gptr*) &offset, (gptr*) &offset, 0, GET_ULL, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, {"password", 'p', "Password to connect to remote server.", @@ -722,15 +724,15 @@ static struct my_option my_long_options[] = {"protocol", OPT_MYSQL_PROTOCOL, "The protocol of connection (tcp,socket,pipe,memory).", 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, - {"result-file", 'r', "Direct output to a given file.", 0, 0, 0, GET_STR, - REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, {"read-from-remote-server", 'R', "Read binary logs from a MySQL server", (gptr*) &remote_opt, (gptr*) &remote_opt, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, - {"open_files_limit", OPT_OPEN_FILES_LIMIT, - "Used to reserve file descriptors for usage by this program", - (gptr*) &open_files_limit, (gptr*) &open_files_limit, 0, GET_ULONG, - REQUIRED_ARG, MY_NFILE, 8, OS_FILE_LIMIT, 0, 1, 0}, + {"result-file", 'r', "Direct output to a given file.", 0, 0, 0, GET_STR, + REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, + {"server-id", OPT_SERVER_ID, + "Extract only binlog entries created by the server having the given id.", + (gptr*) &server_id, (gptr*) &server_id, 0, GET_ULONG, + REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, {"short-form", 's', "Just show the queries, no extra info.", (gptr*) &short_form, (gptr*) &short_form, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, @@ -745,6 +747,13 @@ static struct my_option my_long_options[] = "(you should probably use quotes for your shell to set it properly).", (gptr*) &start_datetime_str, (gptr*) &start_datetime_str, 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, + {"start-position", OPT_START_POSITION, + "Start reading the binlog at position N. Applies to the first binlog " + "passed on the command line.", + (gptr*) &start_position, (gptr*) &start_position, 0, GET_ULL, + REQUIRED_ARG, BIN_LOG_HEADER_SIZE, BIN_LOG_HEADER_SIZE, + /* COM_BINLOG_DUMP accepts only 4 bytes for the position */ + (ulonglong)(~(uint32)0), 0, 0, 0}, {"stop-datetime", OPT_STOP_DATETIME, "Stop reading the binlog at first event having a datetime equal or " "posterior to the argument; the argument must be a date and time " @@ -753,24 +762,12 @@ static struct my_option my_long_options[] = "(you should probably use quotes for your shell to set it properly).", (gptr*) &stop_datetime_str, (gptr*) &stop_datetime_str, 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, - {"start-position", OPT_START_POSITION, - "Start reading the binlog at position N. Applies to the first binlog " - "passed on the command line.", - (gptr*) &start_position, (gptr*) &start_position, 0, GET_ULL, - REQUIRED_ARG, BIN_LOG_HEADER_SIZE, BIN_LOG_HEADER_SIZE, - /* COM_BINLOG_DUMP accepts only 4 bytes for the position */ - (ulonglong)(~(uint32)0), 0, 0, 0}, {"stop-position", OPT_STOP_POSITION, "Stop reading the binlog at position N. Applies to the last binlog " "passed on the command line.", (gptr*) &stop_position, (gptr*) &stop_position, 0, GET_ULL, REQUIRED_ARG, (ulonglong)(~(my_off_t)0), BIN_LOG_HEADER_SIZE, (ulonglong)(~(my_off_t)0), 0, 0, 0}, - {"server-id", OPT_SERVER_ID, - "Only extract binlog entries created by a certain server id " - "passed on the command line.", - (gptr*) &server_id, (gptr*) &server_id, 0, GET_ULONG, - REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, {"to-last-log", 't', "Requires -R. Will not stop at the end of the \ requested binlog but rather continue printing until the end of the last \ binlog of the MySQL server. If you send the output to the same MySQL server, \ @@ -780,11 +777,12 @@ that may lead to an endless loop.", {"user", 'u', "Connect to the remote server as username.", (gptr*) &user, (gptr*) &user, 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, - {"local-load", 'l', "Prepare local temporary files for LOAD DATA INFILE in the specified directory.", - (gptr*) &dirname_for_local_load, (gptr*) &dirname_for_local_load, 0, - GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, {"version", 'V', "Print version and exit.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, + {"open_files_limit", OPT_OPEN_FILES_LIMIT, + "Used to reserve file descriptors for usage by this program", + (gptr*) &open_files_limit, (gptr*) &open_files_limit, 0, GET_ULONG, + REQUIRED_ARG, MY_NFILE, 8, OS_FILE_LIMIT, 0, 1, 0}, {0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0} }; diff --git a/client/mysqlslap.c b/client/mysqlslap.c index 4b243361316..d371387de10 100644 --- a/client/mysqlslap.c +++ b/client/mysqlslap.c @@ -26,30 +26,18 @@ then reporting the timing of each stage. MySQL slap runs three stages: - 1) Create table (single client) - 2) Insert data (many clients) - 3) Load test (many clients) - 4) Cleanup (disconnection, drop table if specified, single client) + 1) Create schema,table, and optionally any SP or data you want to beign + the test with. (single client) + 2) Load test (many clients) + 3) Cleanup (disconnection, drop table if specified, single client) Examples: - Supply your own create, insert and query SQL statements, with eight - clients loading data (eight inserts for each) and 50 clients querying (200 - selects for each): + Supply your own create and query SQL statements, with 50 clients + querying (200 selects for each): - mysqlslap --create="CREATE TABLE A (a int)" \ - --data="INSERT INTO A (23)" --concurrency-load=8 --number-rows=8 \ - --query="SELECT * FROM A" --concurrency=50 --iterations=200 \ - --concurrency-load=5 - - Let the program build create, insert and query SQL statements with a table - of two int columns, three varchar columns, with five clients loading data - (12 inserts each), five clients querying (20 times each), and drop schema - before creating: - - mysqlslap --concurrency=5 --concurrency-load=5 --iterations=20 \ - --number-int-cols=2 --number-char-cols=3 --number-rows=12 \ - --auto-generate-sql + mysqlslap --create="CREATE TABLE A (a int);INSERT INTO A (23)" \ + --query="SELECT * FROM A" --concurrency=50 --iterations=200 Let the program build the query SQL statement with a table of two int columns, three varchar columns, five clients querying (20 times each), @@ -58,30 +46,27 @@ mysqlslap --concurrency=5 --iterations=20 \ --number-int-cols=2 --number-char-cols=3 \ - --number-of-rows=12 --auto-generate-sql \ - --skip-data-load --skip-create-schema + --auto-generate-sql Tell the program to load the create, insert and query SQL statements from the specified files, where the create.sql file has multiple table creation - statements delimited by ';', multiple insert statements delimited by ';', - and multiple queries delimited by ';', run all the load statements with - five clients (five times each), and run all the queries in the query file + statements delimited by ';' and multiple insert statements delimited by ';'. + The --query file will have multiple queries delimited by ';', run all the + load statements, and then run all the queries in the query file with five clients (five times each): - mysqlslap --drop-schema --concurrency=5 --concurrency-load=5 \ + mysqlslap --drop-schema --concurrency=5 \ --iterations=5 --query=query.sql --create=create.sql \ - --data=insert.sql --delimiter=";" --number-of-rows=5 - - Same as the last test run, with short options - - mysqlslap -D -c 5 -l 5 -i 5 -q query.sql \ - --create create.sql -d insert.sql -F ";" -n 5 + --delimiter=";" TODO: Add language for better tests String length for files and those put on the command line are not setup to handle binary data. Report results of each thread into the lock file we use. + More stats + Break up tests and run them on multiple hosts at once. + Allow output to be fed into a database directly. */ @@ -109,8 +94,8 @@ TODO: static char **defaults_argv; static char *host= NULL, *opt_password= NULL, *user= NULL, - *user_supplied_query= NULL, *user_supplied_data= NULL, - *create_string= NULL, *default_engine= NULL, + *user_supplied_query= NULL, + *default_engine= NULL, *opt_mysql_unix_port= NULL; const char *delimiter= "\n"; @@ -120,33 +105,28 @@ const char *create_schema_string= "mysqlslap"; const char *lock_directory; char lock_file_str[FN_REFLEN]; -static my_bool opt_preserve_enter= FALSE, opt_preserve_exit= FALSE; +static my_bool opt_preserve; static my_bool opt_only_print= FALSE; static my_bool opt_slave; static my_bool opt_compress= FALSE, tty_password= FALSE, - create_string_alloced= FALSE, - insert_string_alloced= FALSE, query_string_alloced= FALSE, - generated_insert_flag= FALSE, opt_silent= FALSE, + opt_silent= FALSE, auto_generate_sql= FALSE; static int verbose, num_int_cols, num_char_cols, delimiter_length; static int iterations; static char *default_charset= (char*) MYSQL_DEFAULT_CHARSET_NAME; -static uint repeat_data, repeat_query; -static ulonglong actual_insert_rows= 0; static ulonglong actual_queries= 0; -static uint children_spawned; -static ulonglong num_of_rows; static ulonglong num_of_query; const char *concurrency_str= NULL; +static char *create_string; uint *concurrency; -const char *concurrency_load_str= NULL; -uint *concurrency_load; const char *default_dbug_option="d:t:o,/tmp/mysqlslap.trace"; +const char *opt_csv_str; +File csv_file; static uint opt_protocol= 0; @@ -163,26 +143,49 @@ struct statement { statement *next; }; +typedef struct stats stats; + +struct stats { + long int timing; + uint users; + unsigned long long rows; +}; + +typedef struct conclusions conclusions; + +struct conclusions { + char *engine; + long int avg_timing; + long int max_timing; + long int min_timing; + uint users; + unsigned long long avg_rows; + /* The following are not used yet */ + unsigned long long max_rows; + unsigned long long min_rows; +}; + static statement *create_statements= NULL, - *insert_statements= NULL, *engine_statements= NULL, *query_statements= NULL; /* Prototypes */ +void print_conclusions(conclusions *con); +void print_conclusions_csv(conclusions *con); +void generate_stats(conclusions *con, statement *eng, stats *sptr); uint parse_comma(const char *string, uint **range); uint parse_delimiter(const char *script, statement **stmt, char delm); static int drop_schema(MYSQL *mysql, const char *db); uint get_random_string(char *buf); -static int build_table_string(void); -static int build_insert_string(void); -static int build_query_string(void); +static statement *build_table_string(void); +static statement *build_insert_string(void); +static statement *build_query_string(void); static int create_schema(MYSQL *mysql, const char *db, statement *stmt, statement *engine_stmt); -static double run_scheduler(statement *stmts, - int(*task)(statement *stmt, ulonglong limit, uint repeat), - uint concur, ulonglong limit, uint repeat); -int run_task(statement *stmt, ulonglong limit, uint repeat); -int load_data(statement *load_stmt, ulonglong limit); +static int run_scheduler(stats *sptr, statement *stmts, uint concur, + ulonglong limit); +int run_task(statement *stmt, ulonglong limit); +void statement_cleanup(statement *stmt); static const char ALPHANUMERICS[]= "0123456789ABCDEFGHIJKLMNOPQRSTWXYZabcdefghijklmnopqrstuvwxyz"; @@ -190,27 +193,15 @@ static const char ALPHANUMERICS[]= #define ALPHANUMERICS_SIZE (sizeof(ALPHANUMERICS)-1) - -/* Return the time in ms between two timevals */ -static double timedif (struct timeval end, struct timeval begin) +static long int timedif(struct timeval a, struct timeval b) { - double seconds; - DBUG_ENTER("timedif"); - - seconds= (double)(end.tv_usec - begin.tv_usec)/1000000; - DBUG_PRINT("info", ("end.tv_usec %d - begin.tv_usec %d = " - "%d microseconds ( fseconds %f)", - end.tv_usec, begin.tv_usec, - (end.tv_usec - begin.tv_usec), - seconds)); - seconds += (double)(end.tv_sec - begin.tv_sec); - DBUG_PRINT("info", ("end.tv_sec %d - begin.tv_sec %d = " - "%d seconds (fseconds %f)", - end.tv_sec, begin.tv_sec, - (end.tv_sec - begin.tv_sec), seconds)); - - DBUG_PRINT("info", ("returning time %f seconds", seconds)); - DBUG_RETURN(seconds); + register int us, s; + + us = a.tv_usec - b.tv_usec; + us /= 1000; + s = a.tv_sec - b.tv_sec; + s *= 1000; + return s + us; } @@ -218,10 +209,9 @@ int main(int argc, char **argv) { MYSQL mysql; int client_flag= 0; - double load_difference; - double query_difference; - statement *eptr; int x; + unsigned long long client_limit; + statement *eptr; DBUG_ENTER("main"); MY_INIT(argv[0]); @@ -278,80 +268,57 @@ int main(int argc, char **argv) } } - // Main interations loop - for (eptr= engine_statements; eptr; eptr= eptr->next) + /* Main iterations loop */ + eptr= engine_statements; + do { - if (!opt_silent) - printf("Running for engine %s\n", eptr->string); + /* For the final stage we run whatever queries we were asked to run */ + uint *current; + conclusions conclusion; - for (x= 0; x < iterations; x++) + for (current= concurrency; current && *current; current++) { - /* - We might not want to load any data, such as when we are calling - a stored_procedure that doesn't use data, or we know we already have - data in the table. - */ - if (!opt_preserve_enter) - drop_schema(&mysql, create_schema_string); + stats *head_sptr; + stats *sptr; - /* - Three stag process: - create - insert - run jobs - */ + head_sptr= (stats *)my_malloc(sizeof(stats) * iterations, MYF(MY_ZEROFILL)); - /* First we create */ - if (create_statements) - create_schema(&mysql, create_schema_string, create_statements, eptr); + bzero(&conclusion, sizeof(conclusions)); - /* For the second act we load data */ - if (insert_statements) + if (num_of_query) + client_limit= num_of_query / *current; + else + client_limit= actual_queries; + + for (x= 0, sptr= head_sptr; x < iterations; x++, sptr++) { - uint *current; - for (current= concurrency_load; current && *current; current++) - { - load_difference= run_scheduler(insert_statements, run_task, - *current, num_of_rows, repeat_data); + /* + We might not want to load any data, such as when we are calling + a stored_procedure that doesn't use data, or we know we already have + data in the table. + */ + if (!opt_preserve) + drop_schema(&mysql, create_schema_string); + /* First we create */ + if (create_statements) + create_schema(&mysql, create_schema_string, create_statements, eptr); - if (!opt_silent) - { - printf("Seconds to load data: %.5f\n", load_difference); - printf("Number of clients loading data: %d\n", children_spawned); - printf("Number of inserts per client: %llu\n", - num_of_rows ? (unsigned long long)(num_of_rows / *current) : - (unsigned long long)repeat_data * actual_insert_rows); - } - } + run_scheduler(sptr, query_statements, *current, client_limit); } - /* For the final stage we run whatever queries we were asked to run */ - if (query_statements) - { - uint *current; - for (current= concurrency; current && *current; current++) - { - query_difference= run_scheduler(query_statements, run_task, - *current, num_of_query, repeat_query); - - if (!opt_silent) - { - printf("Seconds to run all queries: %.5f\n", query_difference); - printf("Number of clients running queries: %d\n", children_spawned); - printf("Number of queries per client: %llu\n", - num_of_query ? (unsigned long long)(num_of_query / *current) : - (unsigned long long)repeat_query * actual_queries); - } - } - } - - if (!opt_preserve_exit) - drop_schema(&mysql, create_schema_string); + generate_stats(&conclusion, eptr, head_sptr); if (!opt_silent) - printf("\n"); + print_conclusions(&conclusion); + if (opt_csv_str) + print_conclusions_csv(&conclusion); + + my_free((byte *)head_sptr, MYF(0)); } - } + + if (!opt_preserve) + drop_schema(&mysql, create_schema_string); + } while (eptr ? (eptr= eptr->next) : 0); if (!opt_only_print) mysql_close(&mysql); /* Close & free connection */ @@ -363,67 +330,12 @@ int main(int argc, char **argv) /* now free all the strings we created */ if (opt_password) my_free(opt_password, MYF(0)); - if (create_string_alloced) - my_free(create_string, MYF(0)); - if (insert_string_alloced) - my_free(user_supplied_data, MYF(0)); - if (query_string_alloced) - my_free(user_supplied_query, MYF(0)); my_free((byte *)concurrency, MYF(0)); - my_free((byte *)concurrency_load, MYF(0)); - if (create_statements) - { - statement *ptr, *nptr; - for (ptr= create_statements; ptr;) - { - nptr= ptr->next; - if (ptr->string) - my_free(ptr->string, MYF(0)); - my_free((byte *)ptr, MYF(0)); - ptr= nptr; - } - } - - if (engine_statements) - { - statement *ptr, *nptr; - for (ptr= engine_statements; ptr;) - { - nptr= ptr->next; - if (ptr->string) - my_free(ptr->string, MYF(0)); - my_free((byte *)ptr, MYF(0)); - ptr= nptr; - } - } - - if (insert_statements) - { - statement *ptr, *nptr; - for (ptr= insert_statements; ptr;) - { - nptr= ptr->next; - if (ptr->string) - my_free(ptr->string, MYF(0)); - my_free((byte *)ptr, MYF(0)); - ptr= nptr; - } - } - - if (query_statements) - { - statement *ptr, *nptr; - for (ptr= query_statements; ptr;) - { - nptr= ptr->next; - if (ptr->string) - my_free(ptr->string, MYF(0)); - my_free((byte *)ptr, MYF(0)); - ptr= nptr; - } - } + statement_cleanup(create_statements); + statement_cleanup(engine_statements); + statement_cleanup(query_statements); #ifdef HAVE_SMEM if (shared_memory_base_name) @@ -445,9 +357,6 @@ static struct my_option my_long_options[] = {"compress", 'C', "Use compression in server/client protocol.", (gptr*) &opt_compress, (gptr*) &opt_compress, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, - {"concurrency-load", 'l', "Number of clients to use when loading data.", - (gptr*) &concurrency_load_str, (gptr*) &concurrency_load_str, 0, - GET_STR, REQUIRED_ARG, 1, 0, 0, 0, 0, 0}, {"concurrency", 'c', "Number of clients to simulate for query to run.", (gptr*) &concurrency_str, (gptr*) &concurrency_str, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, @@ -457,10 +366,9 @@ static struct my_option my_long_options[] = {"create-schema", OPT_CREATE_SLAP_SCHEMA, "Schema to run tests in.", (gptr*) &create_schema_string, (gptr*) &create_schema_string, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, - {"data", 'd', - "File or string with INSERT to use for populating data.", - (gptr*) &user_supplied_data, (gptr*) &user_supplied_data, 0, - GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, + {"csv", OPT_CREATE_SLAP_SCHEMA, "Schema to run tests in.", + (gptr*) &opt_csv_str, (gptr*) &opt_csv_str, 0, GET_STR, + OPT_ARG, 0, 0, 0, 0, 0, 0}, {"debug", '#', "Output debug log. Often this is 'd:t:o,filename'.", (gptr*) &default_dbug_option, (gptr*) &default_dbug_option, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0}, @@ -477,25 +385,21 @@ static struct my_option my_long_options[] = REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, {"iterations", 'i', "Number of times too run the tests.", (gptr*) &iterations, (gptr*) &iterations, 0, GET_UINT, REQUIRED_ARG, 1, 0, 0, 0, 0, 0}, - {"lock-directory", OPT_MYSQL_LOCK_DIRECTORY, "Connect to host.", + {"lock-directory", OPT_MYSQL_LOCK_DIRECTORY, "Directory to use to keep locks.", (gptr*) &lock_directory, (gptr*) &lock_directory, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, {"number-char-cols", 'x', "Number of INT columns to create table with if specifying --sql-generate-sql.", (gptr*) &num_char_cols, (gptr*) &num_char_cols, 0, GET_UINT, REQUIRED_ARG, - 0, 0, 0, 0, 0, 0}, + 1, 0, 0, 0, 0, 0}, {"number-int-cols", 'y', "Number of VARCHAR columns to create table with if specifying \ --sql-generate-sql.", (gptr*) &num_int_cols, (gptr*) &num_int_cols, 0, - GET_UINT, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, + GET_UINT, REQUIRED_ARG, 1, 0, 0, 0, 0, 0}, {"number-of-query", OPT_MYSQL_NUMBER_OF_QUERY, "Limit each client to this number of queries (this is not exact).", (gptr*) &num_of_query, (gptr*) &num_of_query, 0, GET_ULL, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, - {"number-of-rows", OPT_MYSQL_NUMBER_OF_ROWS, - "Limit each client to this number of rows (this is not exact).", - (gptr*) &num_of_rows, (gptr*) &num_of_rows, 0, - GET_ULL, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, {"only-print", OPT_MYSQL_ONLY_PRINT, "This causes mysqlslap to not connect to the databases, but instead print \ out what it would have done instead.", @@ -511,13 +415,9 @@ static struct my_option my_long_options[] = {"pipe", 'W', "Use named pipes to connect to server.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, #endif - {"preserve-schema-enter", OPT_MYSQL_PRESERVE_SCHEMA_ENTER, + {"preserve-schema", OPT_MYSQL_PRESERVE_SCHEMA, "Preserve the schema from the mysqlslap run.", - (gptr*) &opt_preserve_enter, (gptr*) &opt_preserve_enter, 0, GET_BOOL, - NO_ARG, 0, 0, 0, 0, 0, 0}, - {"preserve-schema-exit", OPT_MYSQL_PRESERVE_SCHEMA_EXIT, - "Preserve the schema from the mysqlslap run.", - (gptr*) &opt_preserve_exit, (gptr*) &opt_preserve_exit, 0, GET_BOOL, + (gptr*) &opt_preserve, (gptr*) &opt_preserve, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, {"protocol", OPT_MYSQL_PROTOCOL, "The protocol of connection (tcp,socket,pipe,memory).", @@ -525,14 +425,6 @@ static struct my_option my_long_options[] = {"query", 'q', "Query to run or file containing query to run.", (gptr*) &user_supplied_query, (gptr*) &user_supplied_query, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, - {"repeat-data", OPT_MYSQL_REPEAT_DATA, "Number of times to repeat what was specified by \ - the --data option", - (gptr*) &repeat_data, (gptr*) &repeat_data, 0, GET_UINT, - REQUIRED_ARG, 1, 0, 0, 0, 0, 0}, - {"repeat-query", OPT_MYSQL_REPEAT_QUERY, "Number of times to repeat what was specified by the \ - --query option.", (gptr*) &repeat_query, - (gptr*) &repeat_query, 0, GET_UINT, REQUIRED_ARG, - 1, 0, 0, 0, 0, 0}, {"silent", 's', "Run program in silent mode - no output.", (gptr*) &opt_silent, (gptr*) &opt_silent, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, @@ -665,11 +557,12 @@ get_random_string(char *buf) This function builds a create table query if the user opts to not supply a file or string containing a create table statement */ -static int +static statement * build_table_string(void) { char buf[512]; int col_count; + statement *ptr; DYNAMIC_STRING table_string; DBUG_ENTER("build_table_string"); @@ -696,12 +589,13 @@ build_table_string(void) dynstr_append(&table_string, ","); } dynstr_append(&table_string, ")"); - create_string= (char *)my_malloc(table_string.length+1, MYF(MY_WME)); - create_string_alloced= 1; - strmov(create_string, table_string.str); - DBUG_PRINT("info", ("create_string %s", create_string)); + ptr= (statement *)my_malloc(sizeof(statement), MYF(MY_ZEROFILL)); + ptr->string = (char *)my_malloc(table_string.length+1, MYF(MY_WME)); + ptr->length= table_string.length+1; + strmov(ptr->string, table_string.str); + DBUG_PRINT("info", ("create_string %s", ptr->string)); dynstr_free(&table_string); - DBUG_RETURN(0); + DBUG_RETURN(ptr); } @@ -711,11 +605,12 @@ build_table_string(void) This function builds insert statements when the user opts to not supply an insert file or string containing insert data */ -static int +static statement * build_insert_string(void) { char buf[RAND_STRING_SIZE]; int col_count; + statement *ptr; DYNAMIC_STRING insert_string; DBUG_ENTER("build_insert_string"); @@ -742,18 +637,13 @@ build_insert_string(void) } dynstr_append_mem(&insert_string, ")", 1); - /* - since this function can be called if the user wants varying insert - statement in the for loop where inserts run, free in advance - */ - if (insert_string_alloced) - my_free(user_supplied_data,MYF(0)); - user_supplied_data= (char *)my_malloc(insert_string.length+1, MYF(MY_WME)); - insert_string_alloced= 1; - strmov(user_supplied_data, insert_string.str); - DBUG_PRINT("info", ("generated_insert_data %s", user_supplied_data)); + ptr= (statement *)my_malloc(sizeof(statement), MYF(MY_ZEROFILL)); + ptr->string= (char *)my_malloc(insert_string.length+1, MYF(MY_WME)); + ptr->length= insert_string.length+1; + strmov(ptr->string, insert_string.str); + DBUG_PRINT("info", ("generated_insert_data %s", ptr->string)); dynstr_free(&insert_string); - DBUG_RETURN(insert_string.length+1); + DBUG_RETURN(ptr); } @@ -763,11 +653,12 @@ build_insert_string(void) This function builds a query if the user opts to not supply a query statement or file containing a query statement */ -static int +static statement * build_query_string(void) { char buf[512]; int col_count; + statement *ptr; static DYNAMIC_STRING query_string; DBUG_ENTER("build_query_string"); @@ -793,10 +684,11 @@ build_query_string(void) } dynstr_append_mem(&query_string, " FROM t1", 8); - user_supplied_query= (char *)my_malloc(query_string.length+1, MYF(MY_WME)); - query_string_alloced= 1; - strmov(user_supplied_query, query_string.str); - DBUG_PRINT("info", ("user_supplied_query %s", user_supplied_query)); + ptr= (statement *)my_malloc(sizeof(statement), MYF(MY_ZEROFILL)); + ptr->string= (char *)my_malloc(query_string.length+1, MYF(MY_WME)); + ptr->length= query_string.length+1; + strmov(ptr->string, query_string.str); + DBUG_PRINT("info", ("user_supplied_query %s", ptr->string)); dynstr_free(&query_string); DBUG_RETURN(0); } @@ -805,153 +697,122 @@ static int get_options(int *argc,char ***argv) { int ho_error; + char *tmp_string; MY_STAT sbuf; /* Stat information for the data file */ DBUG_ENTER("get_options"); if ((ho_error= handle_options(argc, argv, my_long_options, get_one_option))) exit(ho_error); - /* - Default policy - if they don't supply either char or int cols, and - also no data, then default to 1 of each. - */ - if (num_int_cols == 0 && num_char_cols == 0 && auto_generate_sql && - !user_supplied_data) - { - num_int_cols= 1; - num_char_cols= 1; - } - if (!user) user= (char *)"root"; - if (auto_generate_sql && (create_string || - user_supplied_data || user_supplied_query)) + if (auto_generate_sql && (create_string || user_supplied_query)) { fprintf(stderr, - "%s: Can't use --auto-generate-sql when create, insert, and query strings are specified!\n", + "%s: Can't use --auto-generate-sql when create and query strings are specified!\n", my_progname); exit(1); } - if (concurrency_str) - parse_comma(concurrency_str, &concurrency); - else - { - concurrency= (uint *)my_malloc(sizeof(uint) * 2, MYF(MY_ZEROFILL)); - concurrency[0]= 1; - } + parse_comma(concurrency_str ? concurrency_str : "1", &concurrency); if (lock_directory) snprintf(lock_file_str, FN_REFLEN, "%s/%s", lock_directory, MYSLAPLOCK); else snprintf(lock_file_str, FN_REFLEN, "%s/%s", MYSLAPLOCK_DIR, MYSLAPLOCK); - if (concurrency_load_str) - parse_comma(concurrency_load_str, &concurrency_load); - else + if (opt_csv_str) { - concurrency_load= (uint *)my_malloc(sizeof(uint) * 2, MYF(MY_ZEROFILL)); - concurrency_load[0]= 1; + opt_silent= TRUE; + + if (opt_csv_str[0] == '-') + { + csv_file= fileno(stdout); + } + else + { + if ((csv_file= my_open(opt_csv_str, O_CREAT|O_WRONLY|O_APPEND, MYF(0))) + == -1) + { + fprintf(stderr,"%s: Could not open csv file: %sn\n", + my_progname, opt_csv_str); + exit(1); + } + } } if (opt_only_print) opt_silent= TRUE; - if (!create_string && auto_generate_sql) + if (auto_generate_sql) { - build_table_string(); + create_statements= build_table_string(); + query_statements= build_insert_string(); + DBUG_PRINT("info", ("auto-generated insert is %s", query_statements->string)); + query_statements->next= build_query_string(); + DBUG_PRINT("info", ("auto-generated is %s", query_statements->next->string)); } - else if (create_string && my_stat(create_string, &sbuf, MYF(0))) + else { - File data_file; - if (!MY_S_ISREG(sbuf.st_mode)) + if (create_string && my_stat(create_string, &sbuf, MYF(0))) { - fprintf(stderr,"%s: Create file was not a regular file\n", - my_progname); - exit(1); + File data_file; + if (!MY_S_ISREG(sbuf.st_mode)) + { + fprintf(stderr,"%s: Create file was not a regular file\n", + my_progname); + exit(1); + } + if ((data_file= my_open(create_string, O_RDWR, MYF(0))) == -1) + { + fprintf(stderr,"%s: Could not open create file\n", my_progname); + exit(1); + } + tmp_string= (char *)my_malloc(sbuf.st_size+1, MYF(MY_WME)); + my_read(data_file, tmp_string, sbuf.st_size, MYF(0)); + tmp_string[sbuf.st_size]= '\0'; + my_close(data_file,MYF(0)); + parse_delimiter(tmp_string, &create_statements, delimiter[0]); + my_free(tmp_string, MYF(0)); } - if ((data_file= my_open(create_string, O_RDWR, MYF(0))) == -1) + else if (create_string) { - fprintf(stderr,"%s: Could not open create file\n", my_progname); - exit(1); + parse_delimiter(create_string, &create_statements, delimiter[0]); } - create_string= (char *)my_malloc(sbuf.st_size+1, MYF(MY_WME)); - create_string_alloced= 1; - my_read(data_file, create_string, sbuf.st_size, MYF(0)); - create_string[sbuf.st_size]= '\0'; - my_close(data_file,MYF(0)); - } - if (!default_engine) - default_engine= (char *)"MYISAM"; - - parse_delimiter(default_engine, &engine_statements, ','); - - if (create_string) - parse_delimiter(create_string, &create_statements, delimiter[0]); - - if (!user_supplied_data && auto_generate_sql) - { - int length; - generated_insert_flag= 1; - length= build_insert_string(); - DBUG_PRINT("info", ("user_supplied_data is %s", user_supplied_data)); - } - else if (user_supplied_data && my_stat(user_supplied_data, &sbuf, MYF(0))) - { - File data_file; - if (!MY_S_ISREG(sbuf.st_mode)) + if (user_supplied_query && my_stat(user_supplied_query, &sbuf, MYF(0))) { - fprintf(stderr,"%s: User data supplied file was not a regular file\n", - my_progname); - exit(1); - } - if ((data_file= my_open(user_supplied_data, O_RDWR, MYF(0))) == -1) - { - fprintf(stderr,"%s: Could not open data supplied file\n", my_progname); - exit(1); - } - user_supplied_data= (char *)my_malloc(sbuf.st_size+1, MYF(MY_WME)); - insert_string_alloced= 1; - my_read(data_file, user_supplied_data, sbuf.st_size, MYF(0)); - user_supplied_data[sbuf.st_size]= '\0'; - my_close(data_file,MYF(0)); - } - - if (user_supplied_data) - actual_insert_rows= parse_delimiter(user_supplied_data, - &insert_statements, + File data_file; + if (!MY_S_ISREG(sbuf.st_mode)) + { + fprintf(stderr,"%s: User query supplied file was not a regular file\n", + my_progname); + exit(1); + } + if ((data_file= my_open(user_supplied_query, O_RDWR, MYF(0))) == -1) + { + fprintf(stderr,"%s: Could not open query supplied file\n", my_progname); + exit(1); + } + tmp_string= (char *)my_malloc(sbuf.st_size+1, MYF(MY_WME)); + my_read(data_file, tmp_string, sbuf.st_size, MYF(0)); + tmp_string[sbuf.st_size]= '\0'; + my_close(data_file,MYF(0)); + if (user_supplied_query) + actual_queries= parse_delimiter(tmp_string, &query_statements, delimiter[0]); - - if (!user_supplied_query && auto_generate_sql) - { - build_query_string(); - } - else if (user_supplied_query && my_stat(user_supplied_query, &sbuf, MYF(0))) - { - File data_file; - if (!MY_S_ISREG(sbuf.st_mode)) + my_free(tmp_string, MYF(0)); + } + else if (user_supplied_query) { - fprintf(stderr,"%s: User query supplied file was not a regular file\n", - my_progname); - exit(1); + actual_queries= parse_delimiter(user_supplied_query, &query_statements, + delimiter[0]); } - if ((data_file= my_open(user_supplied_query, O_RDWR, MYF(0))) == -1) - { - fprintf(stderr,"%s: Could not open query supplied file\n", my_progname); - exit(1); - } - user_supplied_query= (char *)my_malloc(sbuf.st_size+1, MYF(MY_WME)); - query_string_alloced= 1; - my_read(data_file, user_supplied_query, sbuf.st_size, MYF(0)); - user_supplied_query[sbuf.st_size]= '\0'; - my_close(data_file,MYF(0)); } - if (user_supplied_query) - actual_queries= parse_delimiter(user_supplied_query, &query_statements, - delimiter[0]); + if (default_engine) + parse_delimiter(default_engine, &engine_statements, ','); if (tty_password) opt_password= get_tty_password(NullS); @@ -998,19 +859,22 @@ create_schema(MYSQL *mysql, const char *db, statement *stmt, } } - snprintf(query, HUGE_STRING_LENGTH, "set storage_engine=`%s`", - engine_stmt->string); - if (opt_only_print) + if (engine_stmt) { - printf("%s;\n", query); - } - else - { - if (mysql_query(mysql, query)) + snprintf(query, HUGE_STRING_LENGTH, "set storage_engine=`%s`", + engine_stmt->string); + if (opt_only_print) { - fprintf(stderr,"%s: Cannot set default engine: %s\n", my_progname, - mysql_error(mysql)); - exit(1); + printf("%s;\n", query); + } + else + { + if (mysql_query(mysql, query)) + { + fprintf(stderr,"%s: Cannot set default engine: %s\n", my_progname, + mysql_error(mysql)); + exit(1); + } } } @@ -1060,22 +924,14 @@ drop_schema(MYSQL *mysql, const char *db) } -static double -run_scheduler(statement *stmts, - int(*task)(statement *stmt, ulonglong limit, uint repeat), - uint concur, ulonglong limit, uint repeat) +static int +run_scheduler(stats *sptr, statement *stmts, uint concur, ulonglong limit) { uint x; - ulonglong client_limit= 0; File lock_file; struct timeval start_time, end_time; DBUG_ENTER("run_scheduler"); - if (limit) - client_limit= limit / concur; - - /* reset to 0 */ - children_spawned= 0; lock_file= my_open(lock_file_str, O_CREAT|O_WRONLY|O_TRUNC, MYF(0)); @@ -1086,6 +942,7 @@ run_scheduler(statement *stmts, my_progname); exit(0); } + for (x= 0; x < concur; x++) { int pid; @@ -1101,7 +958,7 @@ run_scheduler(statement *stmts, fprintf(stderr, "%s: fork returned 0, calling task pid %d gid %d\n", my_progname, pid, getgid()); - task(stmts, client_limit, repeat); + run_task(stmts, limit); exit(0); break; case -1: @@ -1121,7 +978,6 @@ run_scheduler(statement *stmts, my_progname, pid, getgid()); break; } - children_spawned++; } /* Lets release use some clients! */ if (!opt_slave) @@ -1140,17 +996,22 @@ WAIT: } gettimeofday(&end_time, NULL); - DBUG_RETURN(timedif(end_time, start_time)); + sptr->timing= timedif(end_time, start_time); + sptr->users= concur; + sptr->rows= limit; + + DBUG_RETURN(0); } int -run_task(statement *qstmt, ulonglong limit, uint repeat) +run_task(statement *qstmt, ulonglong limit) { - ulonglong counter= 0, x, queries; + ulonglong counter= 0, queries; File lock_file; MYSQL mysql; MYSQL_RES *result; MYSQL_ROW row; + statement *ptr; DBUG_ENTER("run_task"); DBUG_PRINT("info", ("task script \"%s\"", qstmt->string)); @@ -1175,9 +1036,6 @@ run_task(statement *qstmt, ulonglong limit, uint repeat) queries= 0; limit_not_met: - for (x= 0; x < repeat; x++) - { - statement *ptr; for (ptr= qstmt; ptr && ptr->length; ptr= ptr->next) { if (opt_only_print) @@ -1205,7 +1063,6 @@ limit_not_met: if (limit && queries == limit) DBUG_RETURN(0); } - } if (limit && queries < limit) goto limit_not_met; @@ -1215,70 +1072,11 @@ limit_not_met: if (!opt_only_print) mysql_close(&mysql); + DBUG_RETURN(0); } -#ifdef TO_BE_DELETED - -int -load_data(statement *load_stmt, ulonglong limit) -{ - uint x; - uint inserted; - MYSQL mysql; - - DBUG_ENTER("load_data"); - DBUG_PRINT("info", ("task load_data, pid %d", getpid())); - mysql_init(&mysql); - - if (!opt_only_print) - { - if (!(mysql_real_connect(&mysql, host, user, opt_password, - "mysqlslap", opt_mysql_port, opt_mysql_unix_port, - 0))) - { - fprintf(stderr,"%s: Unable to connect to mysqlslap ERROR: %s\n", - my_progname, mysql_error(&mysql)); - exit(1); - } - } - - for (x= 0, inserted= 0; x < repeat_data; x++) - { - statement *ptr; - for (ptr= load_stmt; ptr && ptr->length; ptr= ptr->next) - { - if (opt_only_print) - { - printf("%.*s;\n", (uint)ptr->length, ptr->string); - } - else - { - if (mysql_real_query(&mysql, ptr->string, ptr->length)) - { - DBUG_PRINT("info", ("iteration %d with INSERT statement %s", ptr->string)); - fprintf(stderr,"%s: Cannot insert into table using sql:%.*s: ERROR: %s\n", - my_progname, (uint)ptr->length, ptr->string, - mysql_error(&mysql)); - exit(1); - } - } - inserted++; - - if (limit && inserted == limit) - return 0; - } - } - - if (!opt_only_print) - mysql_close(&mysql); - DBUG_RETURN(0); -} - -#endif - - uint parse_delimiter(const char *script, statement **stmt, char delm) { @@ -1287,7 +1085,7 @@ parse_delimiter(const char *script, statement **stmt, char delm) statement **sptr= stmt; statement *tmp; uint length= strlen(script); - uint count= 0; // We know that there is always one + uint count= 0; /* We know that there is always one */ DBUG_PRINT("info", ("Parsing %s\n", script)); @@ -1322,7 +1120,7 @@ parse_delimiter(const char *script, statement **stmt, char delm) uint parse_comma(const char *string, uint **range) { - uint count= 1,x; // We know that there is always one + uint count= 1,x; /* We know that there is always one */ char *retstr; char *ptr= (char *)string; uint *nptr; @@ -1330,7 +1128,7 @@ parse_comma(const char *string, uint **range) for (;*ptr; ptr++) if (*ptr == ',') count++; - // One extra spot for the NULL + /* One extra spot for the NULL */ nptr= *range= (uint *)my_malloc(sizeof(uint) * (count + 1), MYF(MY_ZEROFILL)); ptr= (char *)string; @@ -1344,3 +1142,85 @@ parse_comma(const char *string, uint **range) return count; } + +void +print_conclusions(conclusions *con) +{ + printf("Benchmark\n"); + if (con->engine) + printf("\tRunning for engine %s\n", con->engine); + printf("\tAverage number of seconds to run all queries: %ld.%03ld seconds\n", + con->avg_timing / 1000, con->avg_timing % 1000); + printf("\tMinimum number of seconds to run all queries: %ld.%03ld seconds\n", + con->min_timing / 1000, con->min_timing % 1000); + printf("\tMaximum number of seconds to run all queries: %ld.%03ld seconds\n", + con->max_timing / 1000, con->max_timing % 1000); + printf("\tNumber of clients running queries: %d\n", con->users); + printf("\tAverage number of queries per client: %llu\n", con->avg_rows); + printf("\n"); +} + +void +print_conclusions_csv(conclusions *con) +{ + char buffer[HUGE_STRING_LENGTH]; + snprintf(buffer, HUGE_STRING_LENGTH, + "%s,query,%ld.%03ld,%ld.%03ld,%ld.%03ld,%d,%llu\n", + con->engine ? con->engine : "", /* Storage engine we ran against */ + con->avg_timing / 1000, con->avg_timing % 1000, /* Time to load */ + con->min_timing / 1000, con->min_timing % 1000, /* Min time */ + con->max_timing / 1000, con->max_timing % 1000, /* Max time */ + con->users, /* Children used */ + con->avg_rows /* Queries run */ + ); + my_write(csv_file, buffer, strlen(buffer), MYF(0)); +} + +void +generate_stats(conclusions *con, statement *eng, stats *sptr) +{ + stats *ptr; + int x; + + con->min_timing= sptr->timing; + con->max_timing= sptr->timing; + con->min_rows= sptr->rows; + con->max_rows= sptr->rows; + + /* At the moment we assume uniform */ + con->users= sptr->users; + con->avg_rows= sptr->rows; + + /* With no next, we know it is the last element that was malloced */ + for (ptr= sptr, x= 0; x < iterations; ptr++, x++) + { + con->avg_timing+= ptr->timing; + + if (ptr->timing > con->max_timing) + con->max_timing= ptr->timing; + if (ptr->timing < con->min_timing) + con->min_timing= ptr->timing; + } + con->avg_timing= con->avg_timing/iterations; + + if (eng && eng->string) + con->engine= eng->string; + else + con->engine= NULL; +} + +void +statement_cleanup(statement *stmt) +{ + statement *ptr, *nptr; + if (!stmt) + return; + + for (ptr= stmt; ptr; ptr= nptr) + { + nptr= ptr->next; + if (ptr->string) + my_free(ptr->string, MYF(0)); + my_free((byte *)ptr, MYF(0)); + } +} diff --git a/include/config-win.h b/include/config-win.h index 6c0937391fb..a08e25ed628 100644 --- a/include/config-win.h +++ b/include/config-win.h @@ -22,6 +22,11 @@ functions */ #define _WIN32_WINNT 0x0500 #endif +#if defined(_MSC_VER) && _MSC_VER >= 1400 +/* Avoid endless warnings about sprintf() etc. being unsafe. */ +#define _CRT_SECURE_NO_DEPRECATE 1 +#endif + #include #include #include /* Because of rint() */ @@ -341,6 +346,11 @@ inline double ulonglong2double(ulonglong value) #define HAVE_SETFILEPOINTER #define HAVE_VIO_READ_BUFF +#if defined(_WIN64) && defined(_M_X64) +/* Avoid type conflicts with built-in functions. */ +#define HAVE_STRNLEN +#endif + #ifndef __NT__ #undef FILE_SHARE_DELETE #define FILE_SHARE_DELETE 0 /* Not implemented on Win 98/ME */ diff --git a/include/hash.h b/include/hash.h index 9a6d91036e1..8f5ff21ae5e 100644 --- a/include/hash.h +++ b/include/hash.h @@ -33,7 +33,7 @@ typedef void (*hash_free_key)(void *); typedef struct st_hash { uint key_offset,key_length; /* Length of key if const length */ - uint records,blength,current_record; + uint records, blength; uint flags; DYNAMIC_ARRAY array; /* Place for hash_keys */ hash_get_key get_key; @@ -41,6 +41,9 @@ typedef struct st_hash { CHARSET_INFO *charset; } HASH; +/* A search iterator state */ +typedef uint HASH_SEARCH_STATE; + #define hash_init(A,B,C,D,E,F,G,H) _hash_init(A,B,C,D,E,F,G, H CALLER_INFO) my_bool _hash_init(HASH *hash, CHARSET_INFO *charset, uint default_array_elements, uint key_offset, @@ -49,12 +52,15 @@ my_bool _hash_init(HASH *hash, CHARSET_INFO *charset, void hash_free(HASH *tree); void my_hash_reset(HASH *hash); byte *hash_element(HASH *hash,uint idx); -gptr hash_search(HASH *info,const byte *key,uint length); -gptr hash_next(HASH *info,const byte *key,uint length); +gptr hash_search(const HASH *info, const byte *key, uint length); +gptr hash_first(const HASH *info, const byte *key, uint length, + HASH_SEARCH_STATE *state); +gptr hash_next(const HASH *info, const byte *key, uint length, + HASH_SEARCH_STATE *state); my_bool my_hash_insert(HASH *info,const byte *data); my_bool hash_delete(HASH *hash,byte *record); my_bool hash_update(HASH *hash,byte *record,byte *old_key,uint old_key_length); -void hash_replace(HASH *hash, uint idx, byte *new_row); +void hash_replace(HASH *hash, HASH_SEARCH_STATE *state, byte *new_row); my_bool hash_check(HASH *hash); /* Only in debug library */ #define hash_clear(H) bzero((char*) (H),sizeof(*(H))) diff --git a/include/my_bitmap.h b/include/my_bitmap.h index 33cd61de8a0..8afeb1b8107 100644 --- a/include/my_bitmap.h +++ b/include/my_bitmap.h @@ -17,7 +17,9 @@ #ifndef _my_bitmap_h_ #define _my_bitmap_h_ +#ifdef THREAD #include +#endif #define MY_BIT_NONE (~(uint) 0) diff --git a/include/my_global.h b/include/my_global.h index 8d7ad9e0ad5..82b0585757c 100644 --- a/include/my_global.h +++ b/include/my_global.h @@ -961,6 +961,7 @@ typedef off_t os_off_t; #define SOCKET_EAGAIN WSAEINPROGRESS #define SOCKET_ETIMEDOUT WSAETIMEDOUT #define SOCKET_EWOULDBLOCK WSAEWOULDBLOCK +#define SOCKET_EADDRINUSE WSAEADDRINUSE #define SOCKET_ENFILE ENFILE #define SOCKET_EMFILE EMFILE #elif defined(OS2) @@ -969,6 +970,7 @@ typedef off_t os_off_t; #define SOCKET_EAGAIN SOCEINPROGRESS #define SOCKET_ETIMEDOUT SOCKET_EINTR #define SOCKET_EWOULDBLOCK SOCEWOULDBLOCK +#define SOCKET_EADDRINUSE SOCEADDRINUSE #define SOCKET_ENFILE SOCENFILE #define SOCKET_EMFILE SOCEMFILE #define closesocket(A) soclose(A) @@ -979,6 +981,7 @@ typedef off_t os_off_t; #define SOCKET_EAGAIN EAGAIN #define SOCKET_ETIMEDOUT SOCKET_EINTR #define SOCKET_EWOULDBLOCK EWOULDBLOCK +#define SOCKET_EADDRINUSE EADDRINUSE #define SOCKET_ENFILE ENFILE #define SOCKET_EMFILE EMFILE #endif diff --git a/mysql-test/Makefile.am b/mysql-test/Makefile.am index c1db94e9d71..9ae5622a164 100644 --- a/mysql-test/Makefile.am +++ b/mysql-test/Makefile.am @@ -49,7 +49,8 @@ dist-hook: -$(INSTALL_DATA) $(srcdir)/t/*.imtest $(distdir)/t $(INSTALL_DATA) $(srcdir)/t/*.sql $(distdir)/t -$(INSTALL_DATA) $(srcdir)/t/*.disabled $(distdir)/t - $(INSTALL_DATA) $(srcdir)/t/*.opt $(srcdir)/t/*.sh $(srcdir)/t/*.slave-mi $(distdir)/t + $(INSTALL_DATA) $(srcdir)/t/*.opt $(srcdir)/t/*.slave-mi $(distdir)/t + $(INSTALL_SCRIPT) $(srcdir)/t/*.sh $(distdir)/t $(INSTALL_DATA) $(srcdir)/extra/binlog_tests/*.test $(distdir)/extra/binlog_tests $(INSTALL_DATA) $(srcdir)/extra/rpl_tests/*.test $(distdir)/extra/rpl_tests -$(INSTALL_DATA) $(srcdir)/extra/binlog_tests/*.opt $(distdir)/extra/binlog_tests diff --git a/mysql-test/extra/rpl_tests/rpl_loaddata_m.test b/mysql-test/extra/rpl_tests/rpl_loaddata_m.test deleted file mode 100644 index ef90283f80e..00000000000 --- a/mysql-test/extra/rpl_tests/rpl_loaddata_m.test +++ /dev/null @@ -1,28 +0,0 @@ -# See if the master logs LOAD DATA INFILE correctly when binlog_*_db rules -# exist. -# This is for BUG#1100 (LOAD DATA INFILE was half-logged). - - --- source include/master-slave.inc - ---disable_warnings -drop database if exists mysqltest; ---enable_warnings - -connection slave; -stop slave; # don't need slave for this test - -# Test logging on master - -connection master; -# 'test' is the current database -create database mysqltest; -use mysqltest; -create table t1(a int, b int, unique(b)); -load data infile '../../std_data/rpl_loaddata.dat' into table t1; -# Starting from 5.0.3 LOAD DATA is replicated much in the same way as ordinary -# query so "show binlog ..." should show two events (before 5.0.3 no events -# were returned). ---replace_column 2 # 5 # -show binlog events from 102; -drop database mysqltest; diff --git a/mysql-test/extra/rpl_tests/rpl_row_blob.test b/mysql-test/extra/rpl_tests/rpl_row_blob.test new file mode 100644 index 00000000000..5f1e4bea6f3 --- /dev/null +++ b/mysql-test/extra/rpl_tests/rpl_row_blob.test @@ -0,0 +1,179 @@ +################################################# +# Author: JBM +# Date: 2006-01-06 +# Purpose: Test test that BLOBs are replicated +# correctly. +################################################ + +# Includes +-- source include/have_binlog_format_row.inc +-- source include/master-slave.inc + +# Pre test clean up section +connection master; +--disable_warnings +DROP TABLE IF EXISTS test.t1; +DROP TABLE IF EXISTS test.t2; +--enable_warnings + +# Start test section +--echo ***** Table Create Section **** +--echo +--disable_warnings +--replace_result $engine_type engine_type +CREATE TABLE test.t1 (c1 int not null auto_increment, +data LONGBLOB, PRIMARY KEY(c1))ENGINE=$engine_type; +--enable_warnings +--echo + +--echo **** Data Insert Section test.t1 ***** +--echo +INSERT INTO test.t1 VALUES (NULL, NULL); +INSERT INTO test.t1 VALUES (NULL, repeat('a',1*1024)); +INSERT INTO test.t1 VALUES (NULL, repeat('b',16*1024)); +CHECK TABLE test.t1; +--echo + +--echo **** Data Insert Validation Master Section test.t1 **** +--echo +SELECT LENGTH(data) FROM test.t1 WHERE c1 = 1; +SELECT LENGTH(data) FROM test.t1 WHERE c1 = 2; +SELECT LENGTH(data) FROM test.t1 WHERE c1 = 3; +save_master_pos; +connection slave; +sync_with_master; +--echo +--echo **** Data Insert Validation Slave Section test.t1 **** +--echo +SELECT LENGTH(data) FROM test.t1 WHERE c1 = 1; +SELECT LENGTH(data) FROM test.t1 WHERE c1 = 2; +SELECT LENGTH(data) FROM test.t1 WHERE c1 = 3; +connection master; +--echo + +--echo **** Data Update Section test.t1 **** +--echo +UPDATE test.t1 set data=repeat('a',18*1024) where c1 = 1; +UPDATE t1 set data=repeat('c',17*1024) where c1 = 2; +--echo + +--echo **** Data Update Validation Master Section test.t1 **** +--echo +SELECT LENGTH(data) FROM test.t1 WHERE c1 = 1; +SELECT LENGTH(data) FROM test.t1 WHERE c1 = 2; +save_master_pos; +connection slave; +sync_with_master; +--echo +--echo **** Data Update Validation Slave Section test.t1 **** +--echo +SELECT LENGTH(data) FROM test.t1 WHERE c1 = 1; +SELECT LENGTH(data) FROM test.t1 WHERE c1 = 2; +connection master; +--echo +--echo **** End Test Section test.t1 **** +--echo + +--echo **** Create Table test.t2 **** +--echo +--disable_warnings +--replace_result $engine_type engine_type +CREATE TABLE test.t2 ( + c1 INT NOT NULL PRIMARY KEY, + c2 TEXT, + c3 INT, + c4 LONGBLOB, + KEY(c3))ENGINE=$engine_type; +--enable_warnings +--echo + +--echo *** Setup Values For test.t2 *** +# x0 size 256 (current inline size) +set @x0 = '01234567012345670123456701234567'; +set @x0 = concat(@x0,@x0,@x0,@x0,@x0,@x0,@x0,@x0); + +# b1 length 2000+256 (blob part aligned) +set @b1 = 'b1'; +set @b1 = concat(@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1); +set @b1 = concat(@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1); +set @b1 = concat(@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1); +set @b1 = concat(@b1,@x0); +# d1 length 3000 +set @d1 = 'dd1'; +set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1); +set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1); +set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1); + +# b2 length 20000 +set @b2 = 'b2'; +set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2); +set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2); +set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2); +set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2); + +# d2 length 30000 +set @d2 = 'dd2'; +set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2); +set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2); +set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2); +set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2); +--echo + +--echo **** Data Insert Section test.t2 ***** +--echo +INSERT INTO test.t2 VALUES(1,@b1,111,@d1); +INSERT INTO test.t2 VALUES(2,@b2,222,@d2); +--echo + +--echo **** Data Insert Validation Master Section test.t2 **** +--echo +SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3) +FROM test.t2 WHERE c1=1; +SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3) +FROM test.t2 WHERE c1=2; +save_master_pos; +connection slave; +sync_with_master; +--echo +--echo **** Data Insert Validation Slave Section test.t2 **** +--echo +SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3) +FROM test.t2 WHERE c1=1; +SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3) +FROM test.t2 WHERE c1=2; +connection master; +--echo + +--echo **** Data Update Section test.t2 **** +--echo +UPDATE test.t2 SET c2=@b2, c4=@d2 WHERE c1=1; +UPDATE test.t2 SET c2=@b1, c4=@d1 WHERE c1=2; +--echo + +--echo **** Data Update Validation Master Section test.t2 **** +--echo +SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3) +FROM test.t2 WHERE c1=1; +SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3) +FROM test.t2 WHERE c1=2; +save_master_pos; +connection slave; +sync_with_master; +--echo +--echo **** Data Update Validation Slave Section test.t2 **** +--echo +SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3) +FROM test.t2 WHERE c1=1; +SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3) +FROM test.t2 WHERE c1=2; +connection master; +--echo + +# Post test clean up section +--exec $MYSQL_DUMP --compact --order-by-primary --skip-extended-insert --no-create-info test > ./var/tmp/rpl_row_blob_master.sql +--exec $MYSQL_DUMP_SLAVE --compact --order-by-primary --skip-extended-insert --no-create-info test > ./var/tmp/rpl_row_blob_slave.sql + +--exec diff ./var/tmp/rpl_row_blob_master.sql ./var/tmp/rpl_row_blob_slave.sql + +DROP TABLE IF EXISTS test.t1; +DROP TABLE IF EXISTS test.t2; diff --git a/mysql-test/lib/mtr_process.pl b/mysql-test/lib/mtr_process.pl index b3a243444c1..4d88c9b3322 100644 --- a/mysql-test/lib/mtr_process.pl +++ b/mysql-test/lib/mtr_process.pl @@ -890,7 +890,14 @@ sub mtr_exit ($) { # cluck("Called mtr_exit()"); mtr_timer_stop_all($::glob_timers); local $SIG{HUP} = 'IGNORE'; - kill('HUP', -$$); + # ToDo: Signalling -$$ will only work if we are the process group + # leader (in fact on QNX it will signal our session group leader, + # which might be Do-compile or Pushbuild, causing tests to be + # aborted). So we only do it if we are the group leader. We might + # set ourselves as the group leader at startup (with + # POSIX::setpgrp(0,0)), but then care must be needed to always do + # proper child process cleanup. + kill('HUP', -$$) if $$ == getpgrp(); sleep 2; exit($code); } diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index 95968e1511e..396ae92d34c 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -805,6 +805,12 @@ sub command_line_setup () { } } + # On QNX, /tmp/dir/master.sock and /tmp/dir//master.sock seem to be + # considered different, so avoid the extra slash (/) in the socket + # paths. + my $sockdir = $opt_tmpdir; + $sockdir =~ s|/+$||; + # Put this into a hash, will be a C struct $master->[0]= @@ -813,7 +819,7 @@ sub command_line_setup () { path_myerr => "$opt_vardir/log/master.err", path_mylog => "$opt_vardir/log/master.log", path_mypid => "$opt_vardir/run/master.pid", - path_mysock => "$opt_tmpdir/master.sock", + path_mysock => "$sockdir/master.sock", path_myport => $opt_master_myport, start_timeout => 400, # enough time create innodb tables @@ -826,7 +832,7 @@ sub command_line_setup () { path_myerr => "$opt_vardir/log/master1.err", path_mylog => "$opt_vardir/log/master1.log", path_mypid => "$opt_vardir/run/master1.pid", - path_mysock => "$opt_tmpdir/master1.sock", + path_mysock => "$sockdir/master1.sock", path_myport => $opt_master_myport + 1, start_timeout => 400, # enough time create innodb tables }; @@ -837,7 +843,7 @@ sub command_line_setup () { path_myerr => "$opt_vardir/log/slave.err", path_mylog => "$opt_vardir/log/slave.log", path_mypid => "$opt_vardir/run/slave.pid", - path_mysock => "$opt_tmpdir/slave.sock", + path_mysock => "$sockdir/slave.sock", path_myport => $opt_slave_myport, start_timeout => 400, }; @@ -848,7 +854,7 @@ sub command_line_setup () { path_myerr => "$opt_vardir/log/slave1.err", path_mylog => "$opt_vardir/log/slave1.log", path_mypid => "$opt_vardir/run/slave1.pid", - path_mysock => "$opt_tmpdir/slave1.sock", + path_mysock => "$sockdir/slave1.sock", path_myport => $opt_slave_myport + 1, start_timeout => 300, }; @@ -859,7 +865,7 @@ sub command_line_setup () { path_myerr => "$opt_vardir/log/slave2.err", path_mylog => "$opt_vardir/log/slave2.log", path_mypid => "$opt_vardir/run/slave2.pid", - path_mysock => "$opt_tmpdir/slave2.sock", + path_mysock => "$sockdir/slave2.sock", path_myport => $opt_slave_myport + 2, start_timeout => 300, }; @@ -869,7 +875,7 @@ sub command_line_setup () { path_err => "$opt_vardir/log/im.err", path_log => "$opt_vardir/log/im.log", path_pid => "$opt_vardir/run/im.pid", - path_sock => "$opt_tmpdir/im.sock", + path_sock => "$sockdir/im.sock", port => $im_port, start_timeout => $master->[0]->{'start_timeout'}, admin_login => 'im_admin', @@ -884,7 +890,7 @@ sub command_line_setup () { server_id => 1, port => $im_mysqld1_port, path_datadir => "$opt_vardir/im_mysqld_1.data", - path_sock => "$opt_tmpdir/mysqld_1.sock", + path_sock => "$sockdir/mysqld_1.sock", path_pid => "$opt_vardir/run/mysqld_1.pid", }; @@ -893,7 +899,7 @@ sub command_line_setup () { server_id => 2, port => $im_mysqld2_port, path_datadir => "$opt_vardir/im_mysqld_2.data", - path_sock => "$opt_tmpdir/mysqld_2.sock", + path_sock => "$sockdir/mysqld_2.sock", path_pid => "$opt_vardir/run/mysqld_2.pid", nonguarded => 1, }; @@ -2503,7 +2509,8 @@ sub run_mysqltest ($) { { $cmdline_mysqlslap= "$exe_mysqlslap -uroot " . "--port=$master->[0]->{'path_myport'} " . - "--socket=$master->[0]->{'path_mysock'} --password="; + "--socket=$master->[0]->{'path_mysock'} --password= " . + "--lock-directory=$opt_tmpdir"; if ( $opt_debug ) { $cmdline_mysqlslap .= diff --git a/mysql-test/r/bdb.result b/mysql-test/r/bdb.result index 9be2723ef96..c40fd696704 100644 --- a/mysql-test/r/bdb.result +++ b/mysql-test/r/bdb.result @@ -1957,4 +1957,9 @@ d varchar(255) character set utf8, e varchar(255) character set utf8, key (a,b,c,d,e)) engine=bdb; ERROR 42000: Specified key was too long; max key length is 3072 bytes +set autocommit=0; +create table t1 (a int) engine=bdb; +commit; +alter table t1 add primary key(a); +drop table t1; End of 5.0 tests diff --git a/mysql-test/r/binlog_stm_blackhole.result b/mysql-test/r/binlog_stm_blackhole.result index 7b6e61984ec..994a40832c7 100644 --- a/mysql-test/r/binlog_stm_blackhole.result +++ b/mysql-test/r/binlog_stm_blackhole.result @@ -121,6 +121,7 @@ master-bin.000001 # Query 1 # use `test`; replace into t1 values(100) master-bin.000001 # Query 1 # use `test`; COMMIT master-bin.000001 # Query 1 # use `test`; create table t2 (a varchar(200)) engine=blackhole master-bin.000001 # Begin_load_query 1 # ;file_id=1;block_len=581 +master-bin.000001 # Query 1 # use `test`; COMMIT master-bin.000001 # Execute_load_query 1 # use `test`; load data infile '../../std_data/words.dat' into table t2 ;file_id=1 master-bin.000001 # Query 1 # use `test`; COMMIT master-bin.000001 # Query 1 # use `test`; alter table t1 add b int diff --git a/mysql-test/r/create.result b/mysql-test/r/create.result index 7b15785a042..123750f2180 100644 --- a/mysql-test/r/create.result +++ b/mysql-test/r/create.result @@ -279,7 +279,6 @@ a b create table if not exists t1 select 3 as 'a',4 as 'b'; Warnings: Note 1050 Table 't1' already exists -Warning 1364 Field 'a' doesn't have a default value create table if not exists t1 select 3 as 'a',3 as 'b'; ERROR 23000: Duplicate entry '3' for key 1 select * from t1; @@ -635,8 +634,6 @@ create table t1 ( a varchar(112) charset utf8 collate utf8_bin not null, primary key (a) ) select 'test' as a ; -Warnings: -Warning 1364 Field 'a' doesn't have a default value show create table t1; Table Create Table t1 CREATE TABLE `t1` ( @@ -652,9 +649,6 @@ create table t1 ( a varchar(12) charset utf8 collate utf8_bin not null, b int not null, primary key (a) ) select a, 1 as b from t2 ; -Warnings: -Warning 1364 Field 'a' doesn't have a default value -Warning 1364 Field 'b' doesn't have a default value show create table t1; Table Create Table t1 CREATE TABLE `t1` ( @@ -664,12 +658,37 @@ t1 CREATE TABLE `t1` ( ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; create table t1 ( +a varchar(12) charset utf8 collate utf8_bin not null, +b int not null, primary key (a) +) select a, 1 as c from t2 ; +Warnings: +Warning 1364 Field 'b' doesn't have a default value +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `b` int(11) NOT NULL, + `a` varchar(12) character set utf8 collate utf8_bin NOT NULL, + `c` bigint(1) NOT NULL default '0', + PRIMARY KEY (`a`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +drop table t1; +create table t1 ( +a varchar(12) charset utf8 collate utf8_bin not null, +b int null, primary key (a) +) select a, 1 as c from t2 ; +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `b` int(11) default NULL, + `a` varchar(12) character set utf8 collate utf8_bin NOT NULL, + `c` bigint(1) NOT NULL default '0', + PRIMARY KEY (`a`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +drop table t1; +create table t1 ( a varchar(12) charset utf8 collate utf8_bin not null, b int not null, primary key (a) ) select 'a' as a , 1 as b from t2 ; -Warnings: -Warning 1364 Field 'a' doesn't have a default value -Warning 1364 Field 'b' doesn't have a default value show create table t1; Table Create Table t1 CREATE TABLE `t1` ( @@ -682,8 +701,6 @@ create table t1 ( a varchar(12) charset utf8 collate utf8_bin, b int not null, primary key (a) ) select 'a' as a , 1 as b from t2 ; -Warnings: -Warning 1364 Field 'b' doesn't have a default value show create table t1; Table Create Table t1 CREATE TABLE `t1` ( @@ -702,8 +719,6 @@ a1 varchar(12) charset utf8 collate utf8_bin not null, a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int, primary key (a1) ) select a1,a2,a3,a4,a5,a6,a7,a8,a9 from t1 ; -Warnings: -Warning 1364 Field 'a1' doesn't have a default value drop table t2; create table t2 ( a1 varchar(12) charset utf8 collate utf8_bin, @@ -719,8 +734,6 @@ a1 varchar(12) charset utf8 collate utf8_bin not null, a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int, primary key (a1) ) select a1,a2,a3,a4,a5,a6,a7,a8,a9 from t1 ; -Warnings: -Warning 1364 Field 'a1' doesn't have a default value drop table t2; create table t2 ( a int default 3, b int default 3) select a1,a2 from t1; diff --git a/mysql-test/r/handler.result b/mysql-test/r/handler.result index 133683fb273..104025e83eb 100644 --- a/mysql-test/r/handler.result +++ b/mysql-test/r/handler.result @@ -1,4 +1,4 @@ -drop table if exists t1; +drop table if exists t1,t3,t4,t5; create table t1 (a int, b char(10), key a(a), key b(a,b)); insert into t1 values (17,"ddd"),(18,"eee"),(19,"fff"),(19,"yyy"), diff --git a/mysql-test/r/information_schema.result b/mysql-test/r/information_schema.result index 8c0a1dfe753..d15705a25f8 100644 --- a/mysql-test/r/information_schema.result +++ b/mysql-test/r/information_schema.result @@ -1077,6 +1077,22 @@ character_maximum_length character_octet_length 32 32 64 64 drop table t1; +CREATE TABLE t1 (f1 BIGINT, f2 VARCHAR(20), f3 BIGINT); +INSERT INTO t1 SET f1 = 1, f2 = 'Schoenenbourg', f3 = 1; +CREATE FUNCTION func2() RETURNS BIGINT RETURN 1; +CREATE FUNCTION func1() RETURNS BIGINT +BEGIN +RETURN ( SELECT COUNT(*) FROM INFORMATION_SCHEMA.VIEWS); +END// +CREATE VIEW v1 AS SELECT 1 FROM t1 +WHERE f3 = (SELECT func2 ()); +SELECT func1(); +func1() +1 +DROP TABLE t1; +DROP VIEW v1; +DROP FUNCTION func1; +DROP FUNCTION func2; select * from information_schema.engines WHERE ENGINE="MyISAM"; ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS MyISAM ENABLED Default engine as of MySQL 3.23 with great performance NO NO NO diff --git a/mysql-test/r/kill.result b/mysql-test/r/kill.result index 754568093ff..2413834be4f 100644 --- a/mysql-test/r/kill.result +++ b/mysql-test/r/kill.result @@ -5,8 +5,6 @@ select ((@id := kill_id) - kill_id) from t1; ((@id := kill_id) - kill_id) 0 kill @id; -select 1; -Got one of the listed errors select ((@id := kill_id) - kill_id) from t1; ((@id := kill_id) - kill_id) 0 diff --git a/mysql-test/r/mysqlshow.result b/mysql-test/r/mysqlshow.result index 355c20fdad3..942cde83f21 100644 --- a/mysql-test/r/mysqlshow.result +++ b/mysql-test/r/mysqlshow.result @@ -1,4 +1,4 @@ -DROP TABLE IF EXISTS t1,t2; +DROP TABLE IF EXISTS t1,t2,test1,test2; CREATE TABLE t1 (a int); INSERT INTO t1 VALUES (1),(2),(3); CREATE TABLE t2 (a int, b int); diff --git a/mysql-test/r/mysqlslap.result b/mysql-test/r/mysqlslap.result index e1741402b35..b9f3cec4681 100644 --- a/mysql-test/r/mysqlslap.result +++ b/mysql-test/r/mysqlslap.result @@ -1,2665 +1,1213 @@ DROP SCHEMA IF EXISTS `mysqlslap`; CREATE SCHEMA `mysqlslap`; use mysqlslap; -set storage_engine=`MYISAM`; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +select * from t1; +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; CREATE TABLE t1 (id int, name varchar(64)); INSERT INTO t1 VALUES (1, 'This is a test'); DROP SCHEMA IF EXISTS `mysqlslap`; CREATE SCHEMA `mysqlslap`; use mysqlslap; -set storage_engine=`MYISAM`; CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); select * from t1; DROP SCHEMA IF EXISTS `mysqlslap`; CREATE SCHEMA `mysqlslap`; use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; CREATE TABLE t1 (id int, name varchar(64)); INSERT INTO t1 VALUES (1, 'This is a test'); DROP SCHEMA IF EXISTS `mysqlslap`; CREATE SCHEMA `mysqlslap`; use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -select * from t1; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; CREATE TABLE t1 (id int, name varchar(64)); INSERT INTO t1 VALUES (1, 'This is a test'); DROP SCHEMA IF EXISTS `mysqlslap`; CREATE SCHEMA `mysqlslap`; use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); select * from t1; DROP SCHEMA IF EXISTS `mysqlslap`; CREATE SCHEMA `mysqlslap`; use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; CREATE TABLE t1 (id int, name varchar(64)); INSERT INTO t1 VALUES (1, 'This is a test'); DROP SCHEMA IF EXISTS `mysqlslap`; CREATE SCHEMA `mysqlslap`; use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -select * from t1; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; CREATE TABLE t1 (id int, name varchar(64)); INSERT INTO t1 VALUES (1, 'This is a test'); DROP SCHEMA IF EXISTS `mysqlslap`; CREATE SCHEMA `mysqlslap`; use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -select * from t1; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; CREATE TABLE t1 (id int, name varchar(64)); INSERT INTO t1 VALUES (1, 'This is a test'); DROP SCHEMA IF EXISTS `mysqlslap`; CREATE SCHEMA `mysqlslap`; use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); select * from t1; DROP SCHEMA IF EXISTS `mysqlslap`; CREATE SCHEMA `mysqlslap`; use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; CREATE TABLE t1 (id int, name varchar(64)); INSERT INTO t1 VALUES (1, 'This is a test'); DROP SCHEMA IF EXISTS `mysqlslap`; CREATE SCHEMA `mysqlslap`; use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -select * from t1; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; CREATE TABLE t1 (id int, name varchar(64)); INSERT INTO t1 VALUES (1, 'This is a test'); DROP SCHEMA IF EXISTS `mysqlslap`; CREATE SCHEMA `mysqlslap`; use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -select * from t1; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; CREATE TABLE t1 (id int, name varchar(64)); INSERT INTO t1 VALUES (1, 'This is a test'); DROP SCHEMA IF EXISTS `mysqlslap`; CREATE SCHEMA `mysqlslap`; use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -select * from t1; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; CREATE TABLE t1 (id int, name varchar(64)); INSERT INTO t1 VALUES (1, 'This is a test'); DROP SCHEMA IF EXISTS `mysqlslap`; CREATE SCHEMA `mysqlslap`; use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); select * from t1; DROP SCHEMA IF EXISTS `mysqlslap`; CREATE SCHEMA `mysqlslap`; use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; CREATE TABLE t1 (id int, name varchar(64)); INSERT INTO t1 VALUES (1, 'This is a test'); DROP SCHEMA IF EXISTS `mysqlslap`; CREATE SCHEMA `mysqlslap`; use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -select * from t1; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; CREATE TABLE t1 (id int, name varchar(64)); INSERT INTO t1 VALUES (1, 'This is a test'); DROP SCHEMA IF EXISTS `mysqlslap`; CREATE SCHEMA `mysqlslap`; use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -select * from t1; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; CREATE TABLE t1 (id int, name varchar(64)); INSERT INTO t1 VALUES (1, 'This is a test'); DROP SCHEMA IF EXISTS `mysqlslap`; CREATE SCHEMA `mysqlslap`; use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -select * from t1; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; CREATE TABLE t1 (id int, name varchar(64)); INSERT INTO t1 VALUES (1, 'This is a test'); DROP SCHEMA IF EXISTS `mysqlslap`; CREATE SCHEMA `mysqlslap`; use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -select * from t1; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; CREATE TABLE t1 (id int, name varchar(64)); INSERT INTO t1 VALUES (1, 'This is a test'); DROP SCHEMA IF EXISTS `mysqlslap`; CREATE SCHEMA `mysqlslap`; use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); select * from t1; DROP SCHEMA IF EXISTS `mysqlslap`; CREATE SCHEMA `mysqlslap`; use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; CREATE TABLE t1 (id int, name varchar(64)); INSERT INTO t1 VALUES (1, 'This is a test'); DROP SCHEMA IF EXISTS `mysqlslap`; CREATE SCHEMA `mysqlslap`; use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -select * from t1; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; CREATE TABLE t1 (id int, name varchar(64)); INSERT INTO t1 VALUES (1, 'This is a test'); DROP SCHEMA IF EXISTS `mysqlslap`; CREATE SCHEMA `mysqlslap`; use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -select * from t1; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; CREATE TABLE t1 (id int, name varchar(64)); INSERT INTO t1 VALUES (1, 'This is a test'); DROP SCHEMA IF EXISTS `mysqlslap`; CREATE SCHEMA `mysqlslap`; use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -select * from t1; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; CREATE TABLE t1 (id int, name varchar(64)); INSERT INTO t1 VALUES (1, 'This is a test'); DROP SCHEMA IF EXISTS `mysqlslap`; CREATE SCHEMA `mysqlslap`; use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -select * from t1; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; CREATE TABLE t1 (id int, name varchar(64)); INSERT INTO t1 VALUES (1, 'This is a test'); DROP SCHEMA IF EXISTS `mysqlslap`; CREATE SCHEMA `mysqlslap`; use mysqlslap; -set storage_engine=`MYISAM`; CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; +INSERT INTO t1 VALUES (1, 'This is a test'); DROP SCHEMA IF EXISTS `mysqlslap`; CREATE SCHEMA `mysqlslap`; use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); select * from t1; DROP SCHEMA IF EXISTS `mysqlslap`; CREATE SCHEMA `mysqlslap`; use mysqlslap; -set storage_engine=`MYISAM`; CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +select * from t1; +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +select * from t1; +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +select * from t1; +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +select * from t1; +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +select * from t1; +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +select * from t1; +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +select * from t1; +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +select * from t1; +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +select * from t1; +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +select * from t1; +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +select * from t1; +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +select * from t1; +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +select * from t1; +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +CREATE TABLE t1 (id int, name varchar(64)); +INSERT INTO t1 VALUES (1, 'This is a test'); DROP SCHEMA IF EXISTS `mysqlslap`; DROP SCHEMA IF EXISTS `mysqlslap`; CREATE SCHEMA `mysqlslap`; use mysqlslap; -set storage_engine=`MYISAM`; +set storage_engine=`heap`; CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; +create table t2(foo1 varchar(32), foo2 varchar(32)); +INSERT INTO t1 VALUES (1, 'This is a test'); +insert into t2 values ('test', 'test2'); +select * from t1; +select * from t2; +select * from t1; DROP SCHEMA IF EXISTS `mysqlslap`; CREATE SCHEMA `mysqlslap`; use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`MYISAM`; -CREATE TABLE t1 (id int, name varchar(64)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`archive`; +set storage_engine=`heap`; CREATE TABLE t1 (id int, name varchar(64)); create table t2(foo1 varchar(32), foo2 varchar(32)); INSERT INTO t1 VALUES (1, 'This is a test'); insert into t2 values ('test', 'test2'); DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`archive`; -CREATE TABLE t1 (id int, name varchar(64)); -create table t2(foo1 varchar(32), foo2 varchar(32)); -select * from t1; -select * from t2; DROP SCHEMA IF EXISTS `mysqlslap`; CREATE SCHEMA `mysqlslap`; use mysqlslap; -set storage_engine=`archive`; +set storage_engine=`myisam`; CREATE TABLE t1 (id int, name varchar(64)); create table t2(foo1 varchar(32), foo2 varchar(32)); +INSERT INTO t1 VALUES (1, 'This is a test'); +insert into t2 values ('test', 'test2'); +select * from t1; +select * from t2; +select * from t1; +DROP SCHEMA IF EXISTS `mysqlslap`; +CREATE SCHEMA `mysqlslap`; +use mysqlslap; +set storage_engine=`heap`; +CREATE TABLE t1 (id int, name varchar(64)); +create table t2(foo1 varchar(32), foo2 varchar(32)); +INSERT INTO t1 VALUES (1, 'This is a test'); +insert into t2 values ('test', 'test2'); DROP SCHEMA IF EXISTS `mysqlslap`; DROP SCHEMA IF EXISTS `mysqlslap`; CREATE SCHEMA `mysqlslap`; @@ -2670,31 +1218,3 @@ create table t2(foo1 varchar(32), foo2 varchar(32)); INSERT INTO t1 VALUES (1, 'This is a test'); insert into t2 values ('test', 'test2'); DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`archive`; -CREATE TABLE t1 (id int, name varchar(64)); -create table t2(foo1 varchar(32), foo2 varchar(32)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`myisam`; -CREATE TABLE t1 (id int, name varchar(64)); -create table t2(foo1 varchar(32), foo2 varchar(32)); -select * from t1; -select * from t2; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`archive`; -CREATE TABLE t1 (id int, name varchar(64)); -create table t2(foo1 varchar(32), foo2 varchar(32)); -DROP SCHEMA IF EXISTS `mysqlslap`; -DROP SCHEMA IF EXISTS `mysqlslap`; -CREATE SCHEMA `mysqlslap`; -use mysqlslap; -set storage_engine=`myisam`; -CREATE TABLE t1 (id int, name varchar(64)); -create table t2(foo1 varchar(32), foo2 varchar(32)); -DROP SCHEMA IF EXISTS `mysqlslap`; diff --git a/mysql-test/r/rpl_row_ddl.result b/mysql-test/r/rpl_ddl.result similarity index 100% rename from mysql-test/r/rpl_row_ddl.result rename to mysql-test/r/rpl_ddl.result diff --git a/mysql-test/r/rpl_drop_db.result b/mysql-test/r/rpl_drop_db.result index ce9d39e87f6..3a35dc266b6 100644 --- a/mysql-test/r/rpl_drop_db.result +++ b/mysql-test/r/rpl_drop_db.result @@ -31,5 +31,5 @@ use test; select * from t1; n 1234 -drop table t1; +DROP DATABASE mysqltest1; stop slave; diff --git a/mysql-test/r/rpl_err_ignoredtable.result b/mysql-test/r/rpl_err_ignoredtable.result new file mode 100644 index 00000000000..84072be7d44 --- /dev/null +++ b/mysql-test/r/rpl_err_ignoredtable.result @@ -0,0 +1,42 @@ +stop slave; +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; +reset master; +reset slave; +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; +start slave; +create table t1 (a int primary key); +create table t4 (a int primary key); +insert into t1 values (1),(1); +ERROR 23000: Duplicate entry '1' for key 1 +insert into t4 values (1),(2); +show tables like 't1'; +Tables_in_test (t1) +show tables like 't4'; +Tables_in_test (t4) +t4 +SELECT * FROM test.t4; +a +1 +2 +drop table t1; +select get_lock('crash_lock%20C', 10); +get_lock('crash_lock%20C', 10) +1 +create table t2 (a int primary key); +insert into t2 values(1); +create table t3 (id int); +insert into t3 values(connection_id()); + update t2 set a = a + 1 + get_lock('crash_lock%20C', 10); +select (@id := id) - id from t3; +(@id := id) - id +0 +kill @id; +drop table t2,t3; +insert into t4 values (3),(4); +SELECT * FROM test.t4; +a +1 +2 +3 +4 +DROP TABLE test.t4; diff --git a/mysql-test/r/rpl_loaddata_m.result b/mysql-test/r/rpl_loaddata_m.result new file mode 100644 index 00000000000..1d263a41e1b --- /dev/null +++ b/mysql-test/r/rpl_loaddata_m.result @@ -0,0 +1,38 @@ +stop slave; +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; +reset master; +reset slave; +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; +start slave; +drop database if exists mysqltest; +USE test; +CREATE TABLE t1(a INT, b INT, UNIQUE(b)); +LOAD DATA INFILE '../../std_data/rpl_loaddata.dat' INTO TABLE test.t1; +SELECT COUNT(*) FROM test.t1; +COUNT(*) +2 +CREATE DATABASE mysqltest; +USE mysqltest; +CREATE TABLE t1(a INT, b INT, UNIQUE(b)); +LOAD DATA INFILE '../../std_data/rpl_loaddata.dat' INTO TABLE mysqltest.t1; +SELECT COUNT(*) FROM mysqltest.t1; +COUNT(*) +2 +SHOW DATABASES; +Database +information_schema +mysql +mysqltest +test +USE test; +SHOW TABLES; +Tables_in_test +USE mysqltest; +SHOW TABLES; +Tables_in_mysqltest +t1 +SELECT COUNT(*) FROM mysqltest.t1; +COUNT(*) +2 +DROP DATABASE mysqltest; +DROP TABLE test.t1; diff --git a/mysql-test/r/rpl_multi_engine.result b/mysql-test/r/rpl_multi_engine.result index 27482eae6d9..0492231be37 100644 --- a/mysql-test/r/rpl_multi_engine.result +++ b/mysql-test/r/rpl_multi_engine.result @@ -363,3 +363,4 @@ id hex(b1) vc bc d f total y t select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; id hex(b1) vc bc d f total y t DROP TABLE t1; +DROP DATABASE mysqltest1; diff --git a/mysql-test/r/rpl_row_rewrt_db.result b/mysql-test/r/rpl_rewrt_db.result similarity index 100% rename from mysql-test/r/rpl_row_rewrt_db.result rename to mysql-test/r/rpl_rewrt_db.result diff --git a/mysql-test/r/rpl_row_basic_11bugs.result b/mysql-test/r/rpl_row_basic_11bugs.result new file mode 100644 index 00000000000..9249405ac26 --- /dev/null +++ b/mysql-test/r/rpl_row_basic_11bugs.result @@ -0,0 +1,45 @@ +stop slave; +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; +reset master; +reset slave; +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; +start slave; +CREATE DATABASE test_ignore; +**** On Master **** +SHOW DATABASES; +Database +information_schema +mysql +test +test_ignore +USE test; +CREATE TABLE t1 (a INT, b INT); +SHOW TABLES; +Tables_in_test +t1 +INSERT INTO t1 VALUES (1,1), (2,2); +USE test_ignore; +CREATE TABLE t2 (a INT, b INT); +SHOW TABLES; +Tables_in_test_ignore +t2 +INSERT INTO t2 VALUES (3,3), (4,4); +SHOW BINLOG EVENTS; +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 4 Format_desc 1 102 Server ver: 5.1.5-alpha-debug-log, Binlog ver: 4 +master-bin.000001 102 Query 1 195 use `test`; CREATE TABLE t1 (a INT, b INT) +master-bin.000001 195 Table_map 1 235 test.t1 +master-bin.000001 235 Write_rows 1 282 +**** On Slave **** +SHOW DATABASES; +Database +information_schema +mysql +test +USE test; +SHOW TABLES; +Tables_in_test +t1 +USE test_ignore; +ERROR 42000: Unknown database 'test_ignore' +DROP DATABASE test_ignore; diff --git a/mysql-test/r/rpl_row_blob_innodb.result b/mysql-test/r/rpl_row_blob_innodb.result new file mode 100644 index 00000000000..92671f10ab9 --- /dev/null +++ b/mysql-test/r/rpl_row_blob_innodb.result @@ -0,0 +1,159 @@ +stop slave; +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; +reset master; +reset slave; +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; +start slave; +DROP TABLE IF EXISTS test.t1; +DROP TABLE IF EXISTS test.t2; +***** Table Create Section **** + +CREATE TABLE test.t1 (c1 int not null auto_increment, +data LONGBLOB, PRIMARY KEY(c1))ENGINE=$engine_type; + +**** Data Insert Section test.t1 ***** + +INSERT INTO test.t1 VALUES (NULL, NULL); +INSERT INTO test.t1 VALUES (NULL, repeat('a',1*1024)); +INSERT INTO test.t1 VALUES (NULL, repeat('b',16*1024)); +CHECK TABLE test.t1; +Table Op Msg_type Msg_text +test.t1 check status OK + +**** Data Insert Validation Master Section test.t1 **** + +SELECT LENGTH(data) FROM test.t1 WHERE c1 = 1; +LENGTH(data) +NULL +SELECT LENGTH(data) FROM test.t1 WHERE c1 = 2; +LENGTH(data) +1024 +SELECT LENGTH(data) FROM test.t1 WHERE c1 = 3; +LENGTH(data) +16384 + +**** Data Insert Validation Slave Section test.t1 **** + +SELECT LENGTH(data) FROM test.t1 WHERE c1 = 1; +LENGTH(data) +NULL +SELECT LENGTH(data) FROM test.t1 WHERE c1 = 2; +LENGTH(data) +1024 +SELECT LENGTH(data) FROM test.t1 WHERE c1 = 3; +LENGTH(data) +16384 + +**** Data Update Section test.t1 **** + +UPDATE test.t1 set data=repeat('a',18*1024) where c1 = 1; +UPDATE t1 set data=repeat('c',17*1024) where c1 = 2; + +**** Data Update Validation Master Section test.t1 **** + +SELECT LENGTH(data) FROM test.t1 WHERE c1 = 1; +LENGTH(data) +18432 +SELECT LENGTH(data) FROM test.t1 WHERE c1 = 2; +LENGTH(data) +17408 + +**** Data Update Validation Slave Section test.t1 **** + +SELECT LENGTH(data) FROM test.t1 WHERE c1 = 1; +LENGTH(data) +18432 +SELECT LENGTH(data) FROM test.t1 WHERE c1 = 2; +LENGTH(data) +17408 + +**** End Test Section test.t1 **** + +**** Create Table test.t2 **** + +CREATE TABLE test.t2 ( +c1 INT NOT NULL PRIMARY KEY, +c2 TEXT, +c3 INT, +c4 LONGBLOB, +KEY(c3))ENGINE=$engine_type; + +*** Setup Values For test.t2 *** +set @x0 = '01234567012345670123456701234567'; +set @x0 = concat(@x0,@x0,@x0,@x0,@x0,@x0,@x0,@x0); +set @b1 = 'b1'; +set @b1 = concat(@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1); +set @b1 = concat(@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1); +set @b1 = concat(@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1); +set @b1 = concat(@b1,@x0); +set @d1 = 'dd1'; +set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1); +set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1); +set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1); +set @b2 = 'b2'; +set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2); +set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2); +set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2); +set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2); +set @d2 = 'dd2'; +set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2); +set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2); +set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2); +set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2); + +**** Data Insert Section test.t2 ***** + +INSERT INTO test.t2 VALUES(1,@b1,111,@d1); +INSERT INTO test.t2 VALUES(2,@b2,222,@d2); + +**** Data Insert Validation Master Section test.t2 **** + +SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3) +FROM test.t2 WHERE c1=1; +c1 LENGTH(c2) SUBSTR(c2,1+2*900,2) LENGTH(c4) SUBSTR(c4,1+3*900,3) +1 2256 b1 3000 dd1 +SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3) +FROM test.t2 WHERE c1=2; +c1 LENGTH(c2) SUBSTR(c2,1+2*900,2) LENGTH(c4) SUBSTR(c4,1+3*900,3) +2 20000 b2 30000 dd2 + +**** Data Insert Validation Slave Section test.t2 **** + +SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3) +FROM test.t2 WHERE c1=1; +c1 LENGTH(c2) SUBSTR(c2,1+2*900,2) LENGTH(c4) SUBSTR(c4,1+3*900,3) +1 2256 b1 3000 dd1 +SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3) +FROM test.t2 WHERE c1=2; +c1 LENGTH(c2) SUBSTR(c2,1+2*900,2) LENGTH(c4) SUBSTR(c4,1+3*900,3) +2 20000 b2 30000 dd2 + +**** Data Update Section test.t2 **** + +UPDATE test.t2 SET c2=@b2, c4=@d2 WHERE c1=1; +UPDATE test.t2 SET c2=@b1, c4=@d1 WHERE c1=2; + +**** Data Update Validation Master Section test.t2 **** + +SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3) +FROM test.t2 WHERE c1=1; +c1 LENGTH(c2) SUBSTR(c2,1+2*900,2) LENGTH(c4) SUBSTR(c4,1+3*900,3) +1 20000 b2 30000 dd2 +SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3) +FROM test.t2 WHERE c1=2; +c1 LENGTH(c2) SUBSTR(c2,1+2*900,2) LENGTH(c4) SUBSTR(c4,1+3*900,3) +2 2256 b1 3000 dd1 + +**** Data Update Validation Slave Section test.t2 **** + +SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3) +FROM test.t2 WHERE c1=1; +c1 LENGTH(c2) SUBSTR(c2,1+2*900,2) LENGTH(c4) SUBSTR(c4,1+3*900,3) +1 20000 b2 30000 dd2 +SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3) +FROM test.t2 WHERE c1=2; +c1 LENGTH(c2) SUBSTR(c2,1+2*900,2) LENGTH(c4) SUBSTR(c4,1+3*900,3) +2 2256 b1 3000 dd1 + +DROP TABLE IF EXISTS test.t1; +DROP TABLE IF EXISTS test.t2; diff --git a/mysql-test/r/rpl_row_blob_myisam.result b/mysql-test/r/rpl_row_blob_myisam.result new file mode 100644 index 00000000000..92671f10ab9 --- /dev/null +++ b/mysql-test/r/rpl_row_blob_myisam.result @@ -0,0 +1,159 @@ +stop slave; +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; +reset master; +reset slave; +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; +start slave; +DROP TABLE IF EXISTS test.t1; +DROP TABLE IF EXISTS test.t2; +***** Table Create Section **** + +CREATE TABLE test.t1 (c1 int not null auto_increment, +data LONGBLOB, PRIMARY KEY(c1))ENGINE=$engine_type; + +**** Data Insert Section test.t1 ***** + +INSERT INTO test.t1 VALUES (NULL, NULL); +INSERT INTO test.t1 VALUES (NULL, repeat('a',1*1024)); +INSERT INTO test.t1 VALUES (NULL, repeat('b',16*1024)); +CHECK TABLE test.t1; +Table Op Msg_type Msg_text +test.t1 check status OK + +**** Data Insert Validation Master Section test.t1 **** + +SELECT LENGTH(data) FROM test.t1 WHERE c1 = 1; +LENGTH(data) +NULL +SELECT LENGTH(data) FROM test.t1 WHERE c1 = 2; +LENGTH(data) +1024 +SELECT LENGTH(data) FROM test.t1 WHERE c1 = 3; +LENGTH(data) +16384 + +**** Data Insert Validation Slave Section test.t1 **** + +SELECT LENGTH(data) FROM test.t1 WHERE c1 = 1; +LENGTH(data) +NULL +SELECT LENGTH(data) FROM test.t1 WHERE c1 = 2; +LENGTH(data) +1024 +SELECT LENGTH(data) FROM test.t1 WHERE c1 = 3; +LENGTH(data) +16384 + +**** Data Update Section test.t1 **** + +UPDATE test.t1 set data=repeat('a',18*1024) where c1 = 1; +UPDATE t1 set data=repeat('c',17*1024) where c1 = 2; + +**** Data Update Validation Master Section test.t1 **** + +SELECT LENGTH(data) FROM test.t1 WHERE c1 = 1; +LENGTH(data) +18432 +SELECT LENGTH(data) FROM test.t1 WHERE c1 = 2; +LENGTH(data) +17408 + +**** Data Update Validation Slave Section test.t1 **** + +SELECT LENGTH(data) FROM test.t1 WHERE c1 = 1; +LENGTH(data) +18432 +SELECT LENGTH(data) FROM test.t1 WHERE c1 = 2; +LENGTH(data) +17408 + +**** End Test Section test.t1 **** + +**** Create Table test.t2 **** + +CREATE TABLE test.t2 ( +c1 INT NOT NULL PRIMARY KEY, +c2 TEXT, +c3 INT, +c4 LONGBLOB, +KEY(c3))ENGINE=$engine_type; + +*** Setup Values For test.t2 *** +set @x0 = '01234567012345670123456701234567'; +set @x0 = concat(@x0,@x0,@x0,@x0,@x0,@x0,@x0,@x0); +set @b1 = 'b1'; +set @b1 = concat(@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1); +set @b1 = concat(@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1); +set @b1 = concat(@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1); +set @b1 = concat(@b1,@x0); +set @d1 = 'dd1'; +set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1); +set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1); +set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1); +set @b2 = 'b2'; +set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2); +set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2); +set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2); +set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2); +set @d2 = 'dd2'; +set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2); +set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2); +set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2); +set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2); + +**** Data Insert Section test.t2 ***** + +INSERT INTO test.t2 VALUES(1,@b1,111,@d1); +INSERT INTO test.t2 VALUES(2,@b2,222,@d2); + +**** Data Insert Validation Master Section test.t2 **** + +SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3) +FROM test.t2 WHERE c1=1; +c1 LENGTH(c2) SUBSTR(c2,1+2*900,2) LENGTH(c4) SUBSTR(c4,1+3*900,3) +1 2256 b1 3000 dd1 +SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3) +FROM test.t2 WHERE c1=2; +c1 LENGTH(c2) SUBSTR(c2,1+2*900,2) LENGTH(c4) SUBSTR(c4,1+3*900,3) +2 20000 b2 30000 dd2 + +**** Data Insert Validation Slave Section test.t2 **** + +SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3) +FROM test.t2 WHERE c1=1; +c1 LENGTH(c2) SUBSTR(c2,1+2*900,2) LENGTH(c4) SUBSTR(c4,1+3*900,3) +1 2256 b1 3000 dd1 +SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3) +FROM test.t2 WHERE c1=2; +c1 LENGTH(c2) SUBSTR(c2,1+2*900,2) LENGTH(c4) SUBSTR(c4,1+3*900,3) +2 20000 b2 30000 dd2 + +**** Data Update Section test.t2 **** + +UPDATE test.t2 SET c2=@b2, c4=@d2 WHERE c1=1; +UPDATE test.t2 SET c2=@b1, c4=@d1 WHERE c1=2; + +**** Data Update Validation Master Section test.t2 **** + +SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3) +FROM test.t2 WHERE c1=1; +c1 LENGTH(c2) SUBSTR(c2,1+2*900,2) LENGTH(c4) SUBSTR(c4,1+3*900,3) +1 20000 b2 30000 dd2 +SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3) +FROM test.t2 WHERE c1=2; +c1 LENGTH(c2) SUBSTR(c2,1+2*900,2) LENGTH(c4) SUBSTR(c4,1+3*900,3) +2 2256 b1 3000 dd1 + +**** Data Update Validation Slave Section test.t2 **** + +SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3) +FROM test.t2 WHERE c1=1; +c1 LENGTH(c2) SUBSTR(c2,1+2*900,2) LENGTH(c4) SUBSTR(c4,1+3*900,3) +1 20000 b2 30000 dd2 +SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3) +FROM test.t2 WHERE c1=2; +c1 LENGTH(c2) SUBSTR(c2,1+2*900,2) LENGTH(c4) SUBSTR(c4,1+3*900,3) +2 2256 b1 3000 dd1 + +DROP TABLE IF EXISTS test.t1; +DROP TABLE IF EXISTS test.t2; diff --git a/mysql-test/r/rpl_row_sp000.result b/mysql-test/r/rpl_row_sp000.result index a7f72193842..c02fdecf7fd 100644 --- a/mysql-test/r/rpl_row_sp000.result +++ b/mysql-test/r/rpl_row_sp000.result @@ -58,6 +58,9 @@ insert into t1 values (15); grant CREATE ROUTINE, EXECUTE on mysqltest1.* to "zedjzlcsjhd"@127.0.0.1; grant SELECT on mysqltest1.t1 to "zedjzlcsjhd"@127.0.0.1; grant SELECT, INSERT on mysqltest1.t2 to "zedjzlcsjhd"@127.0.0.1; +SELECT 1; +1 +1 create procedure foo4() deterministic begin diff --git a/mysql-test/r/rpl_stm_ddl.result b/mysql-test/r/rpl_stm_ddl.result deleted file mode 100644 index 91163f1fe29..00000000000 --- a/mysql-test/r/rpl_stm_ddl.result +++ /dev/null @@ -1,1693 +0,0 @@ -stop slave; -drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -reset master; -reset slave; -drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -start slave; -SET AUTOCOMMIT = 1; -DROP DATABASE IF EXISTS mysqltest1; -DROP DATABASE IF EXISTS mysqltest2; -DROP DATABASE IF EXISTS mysqltest3; -CREATE DATABASE mysqltest1; -CREATE DATABASE mysqltest2; -CREATE TABLE mysqltest1.t1 (f1 BIGINT) ENGINE="InnoDB"; -INSERT INTO mysqltest1.t1 SET f1= 0; -CREATE TABLE mysqltest1.t2 (f1 BIGINT) ENGINE="InnoDB"; -CREATE TABLE mysqltest1.t3 (f1 BIGINT) ENGINE="InnoDB"; -CREATE TABLE mysqltest1.t4 (f1 BIGINT) ENGINE="InnoDB"; -CREATE TABLE mysqltest1.t5 (f1 BIGINT) ENGINE="InnoDB"; -CREATE TABLE mysqltest1.t6 (f1 BIGINT) ENGINE="InnoDB"; -CREATE INDEX my_idx6 ON mysqltest1.t6(f1); -CREATE TABLE mysqltest1.t7 (f1 BIGINT) ENGINE="InnoDB"; -INSERT INTO mysqltest1.t7 SET f1= 0; -CREATE TABLE mysqltest1.t8 (f1 BIGINT) ENGINE="InnoDB"; -CREATE TABLE mysqltest1.t9 (f1 BIGINT) ENGINE="InnoDB"; -CREATE TABLE mysqltest1.t10 (f1 BIGINT) ENGINE="InnoDB"; -CREATE TABLE mysqltest1.t11 (f1 BIGINT) ENGINE="InnoDB"; -CREATE TABLE mysqltest1.t12 (f1 BIGINT) ENGINE="InnoDB"; -CREATE TABLE mysqltest1.t13 (f1 BIGINT) ENGINE="InnoDB"; -CREATE TABLE mysqltest1.t14 (f1 BIGINT) ENGINE="InnoDB"; -CREATE TABLE mysqltest1.t15 (f1 BIGINT) ENGINE="InnoDB"; -CREATE TABLE mysqltest1.t16 (f1 BIGINT) ENGINE="InnoDB"; -CREATE TABLE mysqltest1.t17 (f1 BIGINT) ENGINE="InnoDB"; -CREATE TABLE mysqltest1.t18 (f1 BIGINT) ENGINE="InnoDB"; -CREATE TABLE mysqltest1.t19 (f1 BIGINT) ENGINE="InnoDB"; -CREATE TEMPORARY TABLE mysqltest1.t23 (f1 BIGINT); -SET AUTOCOMMIT = 0; -use mysqltest1; - --------- switch to slave -------- -SET AUTOCOMMIT = 0; -use mysqltest1; - --------- switch to master ------- - -######## COMMIT ######## - --------- switch to master ------- -INSERT INTO t1 SET f1= 0 + 1; -SELECT MAX(f1) FROM t1; -MAX(f1) -1 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -0 - --------- switch to master ------- -COMMIT; -SELECT MAX(f1) FROM t1; -MAX(f1) -1 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -1 - --------- switch to master ------- -ROLLBACK; -SELECT MAX(f1) FROM t1; -MAX(f1) -1 - -TEST-INFO: MASTER: The INSERT is committed (Succeeded) - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -1 - -TEST-INFO: SLAVE: The INSERT is committed (Succeeded) - --------- switch to master ------- -flush logs; - --------- switch to slave -------- -flush logs; - --------- switch to master ------- - -######## ROLLBACK ######## - --------- switch to master ------- -INSERT INTO t1 SET f1= 1 + 1; -SELECT MAX(f1) FROM t1; -MAX(f1) -2 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -1 - --------- switch to master ------- -ROLLBACK; -SELECT MAX(f1) FROM t1; -MAX(f1) -1 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -1 - --------- switch to master ------- -ROLLBACK; -SELECT MAX(f1) FROM t1; -MAX(f1) -1 - -TEST-INFO: MASTER: The INSERT is not committed (Succeeded) - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -1 - -TEST-INFO: SLAVE: The INSERT is not committed (Succeeded) - --------- switch to master ------- -flush logs; - --------- switch to slave -------- -flush logs; - --------- switch to master ------- - -######## SET AUTOCOMMIT=1 ######## - --------- switch to master ------- -INSERT INTO t1 SET f1= 1 + 1; -SELECT MAX(f1) FROM t1; -MAX(f1) -2 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -1 - --------- switch to master ------- -SET AUTOCOMMIT=1; -SELECT MAX(f1) FROM t1; -MAX(f1) -2 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -2 - --------- switch to master ------- -ROLLBACK; -SELECT MAX(f1) FROM t1; -MAX(f1) -2 - -TEST-INFO: MASTER: The INSERT is committed (Succeeded) - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -2 - -TEST-INFO: SLAVE: The INSERT is committed (Succeeded) - --------- switch to master ------- -flush logs; - --------- switch to slave -------- -flush logs; - --------- switch to master ------- -SET AUTOCOMMIT=0; - -######## START TRANSACTION ######## - --------- switch to master ------- -INSERT INTO t1 SET f1= 2 + 1; -SELECT MAX(f1) FROM t1; -MAX(f1) -3 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -2 - --------- switch to master ------- -START TRANSACTION; -SELECT MAX(f1) FROM t1; -MAX(f1) -3 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -3 - --------- switch to master ------- -ROLLBACK; -SELECT MAX(f1) FROM t1; -MAX(f1) -3 - -TEST-INFO: MASTER: The INSERT is committed (Succeeded) - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -3 - -TEST-INFO: SLAVE: The INSERT is committed (Succeeded) - --------- switch to master ------- -flush logs; - --------- switch to slave -------- -flush logs; - --------- switch to master ------- - -######## BEGIN ######## - --------- switch to master ------- -INSERT INTO t1 SET f1= 3 + 1; -SELECT MAX(f1) FROM t1; -MAX(f1) -4 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -3 - --------- switch to master ------- -BEGIN; -SELECT MAX(f1) FROM t1; -MAX(f1) -4 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -4 - --------- switch to master ------- -ROLLBACK; -SELECT MAX(f1) FROM t1; -MAX(f1) -4 - -TEST-INFO: MASTER: The INSERT is committed (Succeeded) - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -4 - -TEST-INFO: SLAVE: The INSERT is committed (Succeeded) - --------- switch to master ------- -flush logs; - --------- switch to slave -------- -flush logs; - --------- switch to master ------- - -######## DROP TABLE mysqltest1.t2 ######## - --------- switch to master ------- -INSERT INTO t1 SET f1= 4 + 1; -SELECT MAX(f1) FROM t1; -MAX(f1) -5 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -4 - --------- switch to master ------- -DROP TABLE mysqltest1.t2; -SELECT MAX(f1) FROM t1; -MAX(f1) -5 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -5 - --------- switch to master ------- -ROLLBACK; -SELECT MAX(f1) FROM t1; -MAX(f1) -5 - -TEST-INFO: MASTER: The INSERT is committed (Succeeded) - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -5 - -TEST-INFO: SLAVE: The INSERT is committed (Succeeded) - --------- switch to master ------- -flush logs; - --------- switch to slave -------- -flush logs; - --------- switch to master ------- -SHOW TABLES LIKE 't2'; -Tables_in_mysqltest1 (t2) - --------- switch to slave -------- -SHOW TABLES LIKE 't2'; -Tables_in_mysqltest1 (t2) - --------- switch to master ------- - -######## DROP TEMPORARY TABLE mysqltest1.t23 ######## - --------- switch to master ------- -INSERT INTO t1 SET f1= 5 + 1; -SELECT MAX(f1) FROM t1; -MAX(f1) -6 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -5 - --------- switch to master ------- -DROP TEMPORARY TABLE mysqltest1.t23; -SELECT MAX(f1) FROM t1; -MAX(f1) -6 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -5 - --------- switch to master ------- -ROLLBACK; -Warnings: -Warning 1196 Some non-transactional changed tables couldn't be rolled back -SELECT MAX(f1) FROM t1; -MAX(f1) -5 - -TEST-INFO: MASTER: The INSERT is not committed (Succeeded) - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -6 - -TEST-INFO: SLAVE: The INSERT is committed (Succeeded) - --------- switch to master ------- -flush logs; - --------- switch to slave -------- -flush logs; - --------- switch to master ------- -SHOW TABLES LIKE 't23'; -Tables_in_mysqltest1 (t23) - --------- switch to slave -------- -SHOW TABLES LIKE 't23'; -Tables_in_mysqltest1 (t23) - --------- switch to master ------- - -######## RENAME TABLE mysqltest1.t3 to mysqltest1.t20 ######## - --------- switch to master ------- -INSERT INTO t1 SET f1= 5 + 1; -SELECT MAX(f1) FROM t1; -MAX(f1) -6 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -6 - --------- switch to master ------- -RENAME TABLE mysqltest1.t3 to mysqltest1.t20; -SELECT MAX(f1) FROM t1; -MAX(f1) -6 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -6 - --------- switch to master ------- -ROLLBACK; -SELECT MAX(f1) FROM t1; -MAX(f1) -6 - -TEST-INFO: MASTER: The INSERT is committed (Succeeded) - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -6 - -TEST-INFO: SLAVE: The INSERT is committed (Succeeded) - --------- switch to master ------- -flush logs; - --------- switch to slave -------- -flush logs; - --------- switch to master ------- -SHOW TABLES LIKE 't20'; -Tables_in_mysqltest1 (t20) -t20 - --------- switch to slave -------- -SHOW TABLES LIKE 't20'; -Tables_in_mysqltest1 (t20) -t20 - --------- switch to master ------- - -######## ALTER TABLE mysqltest1.t4 ADD column f2 BIGINT ######## - --------- switch to master ------- -INSERT INTO t1 SET f1= 6 + 1; -SELECT MAX(f1) FROM t1; -MAX(f1) -7 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -6 - --------- switch to master ------- -ALTER TABLE mysqltest1.t4 ADD column f2 BIGINT; -SELECT MAX(f1) FROM t1; -MAX(f1) -7 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -7 - --------- switch to master ------- -ROLLBACK; -SELECT MAX(f1) FROM t1; -MAX(f1) -7 - -TEST-INFO: MASTER: The INSERT is committed (Succeeded) - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -7 - -TEST-INFO: SLAVE: The INSERT is committed (Succeeded) - --------- switch to master ------- -flush logs; - --------- switch to slave -------- -flush logs; - --------- switch to master ------- -describe mysqltest1.t4; -Field Type Null Key Default Extra -f1 bigint(20) YES NULL -f2 bigint(20) YES NULL - --------- switch to slave -------- -describe mysqltest1.t4; -Field Type Null Key Default Extra -f1 bigint(20) YES NULL -f2 bigint(20) YES NULL - --------- switch to master ------- - -######## CREATE TABLE mysqltest1.t21 (f1 BIGINT) ENGINE= "InnoDB" ######## - --------- switch to master ------- -INSERT INTO t1 SET f1= 7 + 1; -SELECT MAX(f1) FROM t1; -MAX(f1) -8 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -7 - --------- switch to master ------- -CREATE TABLE mysqltest1.t21 (f1 BIGINT) ENGINE= "InnoDB"; -SELECT MAX(f1) FROM t1; -MAX(f1) -8 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -8 - --------- switch to master ------- -ROLLBACK; -SELECT MAX(f1) FROM t1; -MAX(f1) -8 - -TEST-INFO: MASTER: The INSERT is committed (Succeeded) - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -8 - -TEST-INFO: SLAVE: The INSERT is committed (Succeeded) - --------- switch to master ------- -flush logs; - --------- switch to slave -------- -flush logs; - --------- switch to master ------- - -######## CREATE TEMPORARY TABLE mysqltest1.t22 (f1 BIGINT) ######## - --------- switch to master ------- -INSERT INTO t1 SET f1= 8 + 1; -SELECT MAX(f1) FROM t1; -MAX(f1) -9 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -8 - --------- switch to master ------- -CREATE TEMPORARY TABLE mysqltest1.t22 (f1 BIGINT); -SELECT MAX(f1) FROM t1; -MAX(f1) -9 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -8 - --------- switch to master ------- -ROLLBACK; -Warnings: -Warning 1196 Some non-transactional changed tables couldn't be rolled back -SELECT MAX(f1) FROM t1; -MAX(f1) -8 - -TEST-INFO: MASTER: The INSERT is not committed (Succeeded) - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -9 - -TEST-INFO: SLAVE: The INSERT is committed (Succeeded) - --------- switch to master ------- -flush logs; - --------- switch to slave -------- -flush logs; - --------- switch to master ------- - -######## TRUNCATE TABLE mysqltest1.t7 ######## - --------- switch to master ------- -INSERT INTO t1 SET f1= 8 + 1; -SELECT MAX(f1) FROM t1; -MAX(f1) -9 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -9 - --------- switch to master ------- -TRUNCATE TABLE mysqltest1.t7; -SELECT MAX(f1) FROM t1; -MAX(f1) -9 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -9 - --------- switch to master ------- -ROLLBACK; -SELECT MAX(f1) FROM t1; -MAX(f1) -9 - -TEST-INFO: MASTER: The INSERT is committed (Succeeded) - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -9 - -TEST-INFO: SLAVE: The INSERT is committed (Succeeded) - --------- switch to master ------- -flush logs; - --------- switch to slave -------- -flush logs; - --------- switch to master ------- -SELECT * FROM mysqltest1.t7; -f1 - --------- switch to slave -------- -SELECT * FROM mysqltest1.t7; -f1 - --------- switch to master ------- - -######## LOCK TABLES mysqltest1.t1 WRITE, mysqltest1.t8 READ ######## - --------- switch to master ------- -INSERT INTO t1 SET f1= 9 + 1; -SELECT MAX(f1) FROM t1; -MAX(f1) -10 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -9 - --------- switch to master ------- -LOCK TABLES mysqltest1.t1 WRITE, mysqltest1.t8 READ; -SELECT MAX(f1) FROM t1; -MAX(f1) -10 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -10 - --------- switch to master ------- -ROLLBACK; -SELECT MAX(f1) FROM t1; -MAX(f1) -10 - -TEST-INFO: MASTER: The INSERT is committed (Succeeded) - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -10 - -TEST-INFO: SLAVE: The INSERT is committed (Succeeded) - --------- switch to master ------- -flush logs; - --------- switch to slave -------- -flush logs; - --------- switch to master ------- -UNLOCK TABLES; - -######## UNLOCK TABLES ######## - --------- switch to master ------- -INSERT INTO t1 SET f1= 10 + 1; -SELECT MAX(f1) FROM t1; -MAX(f1) -11 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -10 - --------- switch to master ------- -UNLOCK TABLES; -SELECT MAX(f1) FROM t1; -MAX(f1) -11 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -10 - --------- switch to master ------- -ROLLBACK; -SELECT MAX(f1) FROM t1; -MAX(f1) -10 - -TEST-INFO: MASTER: The INSERT is not committed (Succeeded) - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -10 - -TEST-INFO: SLAVE: The INSERT is not committed (Succeeded) - --------- switch to master ------- -flush logs; - --------- switch to slave -------- -flush logs; - --------- switch to master ------- -LOCK TABLES mysqltest1.t1 READ; - -######## UNLOCK TABLES ######## - --------- switch to master ------- -INSERT INTO t1 SET f1= 10 + 1; -ERROR HY000: Table 't1' was locked with a READ lock and can't be updated -SELECT MAX(f1) FROM t1; -MAX(f1) -10 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -10 - --------- switch to master ------- -UNLOCK TABLES; -SELECT MAX(f1) FROM t1; -MAX(f1) -10 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -10 - --------- switch to master ------- -ROLLBACK; -SELECT MAX(f1) FROM t1; -MAX(f1) -10 - -TEST-INFO: MASTER: The INSERT is not committed (Succeeded) - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -10 - -TEST-INFO: SLAVE: The INSERT is not committed (Succeeded) - --------- switch to master ------- -flush logs; - --------- switch to slave -------- -flush logs; - --------- switch to master ------- -LOCK TABLES mysqltest1.t1 WRITE, mysqltest1.t8 READ; - -######## UNLOCK TABLES ######## - --------- switch to master ------- -INSERT INTO t1 SET f1= 10 + 1; -SELECT MAX(f1) FROM t1; -MAX(f1) -11 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -10 - --------- switch to master ------- -UNLOCK TABLES; -SELECT MAX(f1) FROM t1; -MAX(f1) -11 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -11 - --------- switch to master ------- -ROLLBACK; -SELECT MAX(f1) FROM t1; -MAX(f1) -11 - -TEST-INFO: MASTER: The INSERT is committed (Succeeded) - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -11 - -TEST-INFO: SLAVE: The INSERT is committed (Succeeded) - --------- switch to master ------- -flush logs; - --------- switch to slave -------- -flush logs; - --------- switch to master ------- - -######## DROP INDEX my_idx6 ON mysqltest1.t6 ######## - --------- switch to master ------- -INSERT INTO t1 SET f1= 11 + 1; -SELECT MAX(f1) FROM t1; -MAX(f1) -12 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -11 - --------- switch to master ------- -DROP INDEX my_idx6 ON mysqltest1.t6; -SELECT MAX(f1) FROM t1; -MAX(f1) -12 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -12 - --------- switch to master ------- -ROLLBACK; -SELECT MAX(f1) FROM t1; -MAX(f1) -12 - -TEST-INFO: MASTER: The INSERT is committed (Succeeded) - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -12 - -TEST-INFO: SLAVE: The INSERT is committed (Succeeded) - --------- switch to master ------- -flush logs; - --------- switch to slave -------- -flush logs; - --------- switch to master ------- -SHOW INDEX FROM mysqltest1.t6; -Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment - --------- switch to slave -------- -SHOW INDEX FROM mysqltest1.t6; -Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment - --------- switch to master ------- - -######## CREATE INDEX my_idx5 ON mysqltest1.t5(f1) ######## - --------- switch to master ------- -INSERT INTO t1 SET f1= 12 + 1; -SELECT MAX(f1) FROM t1; -MAX(f1) -13 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -12 - --------- switch to master ------- -CREATE INDEX my_idx5 ON mysqltest1.t5(f1); -SELECT MAX(f1) FROM t1; -MAX(f1) -13 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -13 - --------- switch to master ------- -ROLLBACK; -SELECT MAX(f1) FROM t1; -MAX(f1) -13 - -TEST-INFO: MASTER: The INSERT is committed (Succeeded) - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -13 - -TEST-INFO: SLAVE: The INSERT is committed (Succeeded) - --------- switch to master ------- -flush logs; - --------- switch to slave -------- -flush logs; - --------- switch to master ------- -SHOW INDEX FROM mysqltest1.t5; -Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment -t5 1 my_idx5 1 f1 A 0 NULL NULL YES BTREE - --------- switch to slave -------- -SHOW INDEX FROM mysqltest1.t5; -Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment -t5 1 my_idx5 1 f1 A NULL NULL NULL YES BTREE - --------- switch to master ------- - -######## DROP DATABASE mysqltest2 ######## - --------- switch to master ------- -INSERT INTO t1 SET f1= 13 + 1; -SELECT MAX(f1) FROM t1; -MAX(f1) -14 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -13 - --------- switch to master ------- -DROP DATABASE mysqltest2; -SELECT MAX(f1) FROM t1; -MAX(f1) -14 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -14 - --------- switch to master ------- -ROLLBACK; -SELECT MAX(f1) FROM t1; -MAX(f1) -14 - -TEST-INFO: MASTER: The INSERT is committed (Succeeded) - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -14 - -TEST-INFO: SLAVE: The INSERT is committed (Succeeded) - --------- switch to master ------- -flush logs; - --------- switch to slave -------- -flush logs; - --------- switch to master ------- -SHOW DATABASES LIKE "mysqltest2"; -Database (mysqltest2) - --------- switch to slave -------- -SHOW DATABASES LIKE "mysqltest2"; -Database (mysqltest2) - --------- switch to master ------- - -######## CREATE DATABASE mysqltest3 ######## - --------- switch to master ------- -INSERT INTO t1 SET f1= 14 + 1; -SELECT MAX(f1) FROM t1; -MAX(f1) -15 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -14 - --------- switch to master ------- -CREATE DATABASE mysqltest3; -SELECT MAX(f1) FROM t1; -MAX(f1) -15 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -15 - --------- switch to master ------- -ROLLBACK; -SELECT MAX(f1) FROM t1; -MAX(f1) -15 - -TEST-INFO: MASTER: The INSERT is committed (Succeeded) - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -15 - -TEST-INFO: SLAVE: The INSERT is committed (Succeeded) - --------- switch to master ------- -flush logs; - --------- switch to slave -------- -flush logs; - --------- switch to master ------- -SHOW DATABASES LIKE "mysqltest3"; -Database (mysqltest3) -mysqltest3 - --------- switch to slave -------- -SHOW DATABASES LIKE "mysqltest3"; -Database (mysqltest3) -mysqltest3 - --------- switch to master ------- - -######## CREATE PROCEDURE p1() READS SQL DATA SELECT "this is p1" ######## - --------- switch to master ------- -INSERT INTO t1 SET f1= 15 + 1; -SELECT MAX(f1) FROM t1; -MAX(f1) -16 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -15 - --------- switch to master ------- -CREATE PROCEDURE p1() READS SQL DATA SELECT "this is p1"; -SELECT MAX(f1) FROM t1; -MAX(f1) -16 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -16 - --------- switch to master ------- -ROLLBACK; -SELECT MAX(f1) FROM t1; -MAX(f1) -16 - -TEST-INFO: MASTER: The INSERT is committed (Succeeded) - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -16 - -TEST-INFO: SLAVE: The INSERT is committed (Succeeded) - --------- switch to master ------- -flush logs; - --------- switch to slave -------- -flush logs; - --------- switch to master ------- -SHOW PROCEDURE STATUS LIKE 'p1'; -Db mysqltest1 -Name p1 -Type PROCEDURE -Definer root@localhost -Modified # -Created # -Security_type DEFINER -Comment - -------- switch to slave ------- -SHOW PROCEDURE STATUS LIKE 'p1'; -Db mysqltest1 -Name p1 -Type PROCEDURE -Definer @ -Modified # -Created # -Security_type DEFINER -Comment - -######## ALTER PROCEDURE p1 COMMENT "I have been altered" ######## - --------- switch to master ------- -INSERT INTO t1 SET f1= 16 + 1; -SELECT MAX(f1) FROM t1; -MAX(f1) -17 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -16 - --------- switch to master ------- -ALTER PROCEDURE p1 COMMENT "I have been altered"; -SELECT MAX(f1) FROM t1; -MAX(f1) -17 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -17 - --------- switch to master ------- -ROLLBACK; -SELECT MAX(f1) FROM t1; -MAX(f1) -17 - -TEST-INFO: MASTER: The INSERT is committed (Succeeded) - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -17 - -TEST-INFO: SLAVE: The INSERT is committed (Succeeded) - --------- switch to master ------- -flush logs; - --------- switch to slave -------- -flush logs; - --------- switch to master ------- -SHOW PROCEDURE STATUS LIKE 'p1'; -Db mysqltest1 -Name p1 -Type PROCEDURE -Definer root@localhost -Modified # -Created # -Security_type DEFINER -Comment I have been altered - -------- switch to slave ------- -SHOW PROCEDURE STATUS LIKE 'p1'; -Db mysqltest1 -Name p1 -Type PROCEDURE -Definer @ -Modified # -Created # -Security_type DEFINER -Comment I have been altered - -######## DROP PROCEDURE p1 ######## - --------- switch to master ------- -INSERT INTO t1 SET f1= 17 + 1; -SELECT MAX(f1) FROM t1; -MAX(f1) -18 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -17 - --------- switch to master ------- -DROP PROCEDURE p1; -SELECT MAX(f1) FROM t1; -MAX(f1) -18 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -18 - --------- switch to master ------- -ROLLBACK; -SELECT MAX(f1) FROM t1; -MAX(f1) -18 - -TEST-INFO: MASTER: The INSERT is committed (Succeeded) - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -18 - -TEST-INFO: SLAVE: The INSERT is committed (Succeeded) - --------- switch to master ------- -flush logs; - --------- switch to slave -------- -flush logs; - --------- switch to master ------- -SHOW PROCEDURE STATUS LIKE 'p1'; - -------- switch to slave ------- -SHOW PROCEDURE STATUS LIKE 'p1'; - -######## CREATE OR REPLACE VIEW v1 as select * from t1 ######## - --------- switch to master ------- -INSERT INTO t1 SET f1= 18 + 1; -SELECT MAX(f1) FROM t1; -MAX(f1) -19 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -18 - --------- switch to master ------- -CREATE OR REPLACE VIEW v1 as select * from t1; -SELECT MAX(f1) FROM t1; -MAX(f1) -19 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -19 - --------- switch to master ------- -ROLLBACK; -SELECT MAX(f1) FROM t1; -MAX(f1) -19 - -TEST-INFO: MASTER: The INSERT is committed (Succeeded) - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -19 - -TEST-INFO: SLAVE: The INSERT is committed (Succeeded) - --------- switch to master ------- -flush logs; - --------- switch to slave -------- -flush logs; - --------- switch to master ------- -SHOW CREATE VIEW v1; -View Create View -v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `f1` from `t1` - --------- switch to slave ------- -SHOW CREATE VIEW v1; -View Create View -v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `f1` from `t1` - -######## ALTER VIEW v1 AS select f1 from t1 ######## - --------- switch to master ------- -INSERT INTO t1 SET f1= 19 + 1; -SELECT MAX(f1) FROM t1; -MAX(f1) -20 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -19 - --------- switch to master ------- -ALTER VIEW v1 AS select f1 from t1; -SELECT MAX(f1) FROM t1; -MAX(f1) -20 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -20 - --------- switch to master ------- -ROLLBACK; -SELECT MAX(f1) FROM t1; -MAX(f1) -20 - -TEST-INFO: MASTER: The INSERT is committed (Succeeded) - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -20 - -TEST-INFO: SLAVE: The INSERT is committed (Succeeded) - --------- switch to master ------- -flush logs; - --------- switch to slave -------- -flush logs; - --------- switch to master ------- -SHOW CREATE VIEW v1; -View Create View -v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `f1` from `t1` - --------- switch to slave ------- -SHOW CREATE VIEW v1; -View Create View -v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `f1` from `t1` - -######## DROP VIEW IF EXISTS v1 ######## - --------- switch to master ------- -INSERT INTO t1 SET f1= 20 + 1; -SELECT MAX(f1) FROM t1; -MAX(f1) -21 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -20 - --------- switch to master ------- -DROP VIEW IF EXISTS v1; -SELECT MAX(f1) FROM t1; -MAX(f1) -21 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -21 - --------- switch to master ------- -ROLLBACK; -SELECT MAX(f1) FROM t1; -MAX(f1) -21 - -TEST-INFO: MASTER: The INSERT is committed (Succeeded) - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -21 - -TEST-INFO: SLAVE: The INSERT is committed (Succeeded) - --------- switch to master ------- -flush logs; - --------- switch to slave -------- -flush logs; - --------- switch to master ------- -SHOW CREATE VIEW v1; -ERROR 42S02: Table 'mysqltest1.v1' doesn't exist - --------- switch to slave ------- -SHOW CREATE VIEW v1; -ERROR 42S02: Table 'mysqltest1.v1' doesn't exist - -######## CREATE TRIGGER trg1 BEFORE INSERT ON t1 FOR EACH ROW SET @a:=1 ######## - --------- switch to master ------- -INSERT INTO t1 SET f1= 21 + 1; -SELECT MAX(f1) FROM t1; -MAX(f1) -22 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -21 - --------- switch to master ------- -CREATE TRIGGER trg1 BEFORE INSERT ON t1 FOR EACH ROW SET @a:=1; -SELECT MAX(f1) FROM t1; -MAX(f1) -22 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -22 - --------- switch to master ------- -ROLLBACK; -SELECT MAX(f1) FROM t1; -MAX(f1) -22 - -TEST-INFO: MASTER: The INSERT is committed (Succeeded) - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -22 - -TEST-INFO: SLAVE: The INSERT is committed (Succeeded) - --------- switch to master ------- -flush logs; - --------- switch to slave -------- -flush logs; - --------- switch to master ------- -SHOW TRIGGERS; -Trigger Event Table Statement Timing Created sql_mode Definer -trg1 INSERT t1 SET @a:=1 BEFORE NULL root@localhost - --------- switch to slave ------- -SHOW TRIGGERS; -Trigger Event Table Statement Timing Created sql_mode Definer -trg1 INSERT t1 SET @a:=1 BEFORE NULL root@localhost - -######## DROP TRIGGER trg1 ######## - --------- switch to master ------- -INSERT INTO t1 SET f1= 22 + 1; -SELECT MAX(f1) FROM t1; -MAX(f1) -23 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -22 - --------- switch to master ------- -DROP TRIGGER trg1; -SELECT MAX(f1) FROM t1; -MAX(f1) -23 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -23 - --------- switch to master ------- -ROLLBACK; -SELECT MAX(f1) FROM t1; -MAX(f1) -23 - -TEST-INFO: MASTER: The INSERT is committed (Succeeded) - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -23 - -TEST-INFO: SLAVE: The INSERT is committed (Succeeded) - --------- switch to master ------- -flush logs; - --------- switch to slave -------- -flush logs; - --------- switch to master ------- -SHOW TRIGGERS; -Trigger Event Table Statement Timing Created sql_mode Definer - --------- switch to slave ------- -SHOW TRIGGERS; -Trigger Event Table Statement Timing Created sql_mode Definer - -######## CREATE USER user1@localhost ######## - --------- switch to master ------- -INSERT INTO t1 SET f1= 23 + 1; -SELECT MAX(f1) FROM t1; -MAX(f1) -24 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -23 - --------- switch to master ------- -CREATE USER user1@localhost; -SELECT MAX(f1) FROM t1; -MAX(f1) -24 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -24 - --------- switch to master ------- -ROLLBACK; -SELECT MAX(f1) FROM t1; -MAX(f1) -24 - -TEST-INFO: MASTER: The INSERT is committed (Succeeded) - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -24 - -TEST-INFO: SLAVE: The INSERT is committed (Succeeded) - --------- switch to master ------- -flush logs; - --------- switch to slave -------- -flush logs; - --------- switch to master ------- -SELECT user FROM mysql.user WHERE user = 'user1'; -user -user1 - --------- switch to slave ------- -SELECT user FROM mysql.user WHERE user = 'user1'; -user -user1 - -######## RENAME USER user1@localhost TO rename1@localhost ######## - --------- switch to master ------- -INSERT INTO t1 SET f1= 24 + 1; -SELECT MAX(f1) FROM t1; -MAX(f1) -25 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -24 - --------- switch to master ------- -RENAME USER user1@localhost TO rename1@localhost; -SELECT MAX(f1) FROM t1; -MAX(f1) -25 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -25 - --------- switch to master ------- -ROLLBACK; -SELECT MAX(f1) FROM t1; -MAX(f1) -25 - -TEST-INFO: MASTER: The INSERT is committed (Succeeded) - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -25 - -TEST-INFO: SLAVE: The INSERT is committed (Succeeded) - --------- switch to master ------- -flush logs; - --------- switch to slave -------- -flush logs; - --------- switch to master ------- -SELECT user FROM mysql.user WHERE user = 'rename1'; -user -rename1 - --------- switch to slave ------- -SELECT user FROM mysql.user WHERE user = 'rename1'; -user -rename1 - -######## DROP USER rename1@localhost ######## - --------- switch to master ------- -INSERT INTO t1 SET f1= 25 + 1; -SELECT MAX(f1) FROM t1; -MAX(f1) -26 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -25 - --------- switch to master ------- -DROP USER rename1@localhost; -SELECT MAX(f1) FROM t1; -MAX(f1) -26 - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -26 - --------- switch to master ------- -ROLLBACK; -SELECT MAX(f1) FROM t1; -MAX(f1) -26 - -TEST-INFO: MASTER: The INSERT is committed (Succeeded) - --------- switch to slave -------- -SELECT MAX(f1) FROM t1; -MAX(f1) -26 - -TEST-INFO: SLAVE: The INSERT is committed (Succeeded) - --------- switch to master ------- -flush logs; - --------- switch to slave -------- -flush logs; - --------- switch to master ------- -SELECT user FROM mysql.user WHERE user = 'rename1'; -user - --------- switch to slave ------- -SELECT user FROM mysql.user WHERE user = 'rename1'; -user -DROP DATABASE IF EXISTS mysqltest1; -DROP DATABASE IF EXISTS mysqltest2; -DROP DATABASE IF EXISTS mysqltest3; diff --git a/mysql-test/r/rpl_stm_err_ignoredtable.result b/mysql-test/r/rpl_stm_err_ignoredtable.result deleted file mode 100644 index 42abb2c3c44..00000000000 --- a/mysql-test/r/rpl_stm_err_ignoredtable.result +++ /dev/null @@ -1,39 +0,0 @@ -stop slave; -drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -reset master; -reset slave; -drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -start slave; -create table t1 (a int primary key); -insert into t1 values (1),(1); -ERROR 23000: Duplicate entry '1' for key 1 -show slave status; -Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master -# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 292 # # master-bin.000001 Yes Yes test.t3,test.t1,test.t2 0 0 292 # None 0 No # -show tables like 't1'; -Tables_in_test (t1) -drop table t1; -select get_lock('crash_lock%20C', 10); -get_lock('crash_lock%20C', 10) -1 -create table t2 (a int primary key); -insert into t2 values(1); -create table t3 (id int); -insert into t3 values(connection_id()); - update t2 set a = a + 1 + get_lock('crash_lock%20C', 10); -select (@id := id) - id from t3; -(@id := id) - id -0 -kill @id; -drop table t2,t3; -show binlog events from 102; -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Query 1 # use `test`; create table t1 (a int primary key) -master-bin.000001 # Query 1 # use `test`; insert into t1 values (1),(1) -master-bin.000001 # Query 1 # use `test`; drop table t1 -master-bin.000001 # Query 1 # use `test`; create table t2 (a int primary key) -master-bin.000001 # Query 1 # use `test`; insert into t2 values(1) -master-bin.000001 # Query 1 # use `test`; create table t3 (id int) -master-bin.000001 # Query 1 # use `test`; insert into t3 values(connection_id()) -master-bin.000001 # Query 1 # use `test`; update t2 set a = a + 1 + get_lock('crash_lock%20C', 10) -master-bin.000001 # Query 1 # use `test`; drop table t2,t3 diff --git a/mysql-test/r/rpl_stm_loaddata_m.result b/mysql-test/r/rpl_stm_loaddata_m.result deleted file mode 100644 index 9c7dba0e711..00000000000 --- a/mysql-test/r/rpl_stm_loaddata_m.result +++ /dev/null @@ -1,20 +0,0 @@ -stop slave; -drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -reset master; -reset slave; -drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -start slave; -drop database if exists mysqltest; -stop slave; -create database mysqltest; -use mysqltest; -create table t1(a int, b int, unique(b)); -load data infile '../../std_data/rpl_loaddata.dat' into table t1; -show binlog events from 102; -Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 # Query 1 # drop database if exists mysqltest -master-bin.000001 # Query 1 # create database mysqltest -master-bin.000001 # Query 1 # use `mysqltest`; create table t1(a int, b int, unique(b)) -master-bin.000001 # Begin_load_query 1 # ;file_id=1;block_len=12 -master-bin.000001 # Execute_load_query 1 # use `mysqltest`; load data infile '../../std_data/rpl_loaddata.dat' into table t1 ;file_id=1 -drop database mysqltest; diff --git a/mysql-test/r/rpl_stm_rewrt_db.result b/mysql-test/r/rpl_stm_rewrt_db.result deleted file mode 100644 index 6c72e982e3e..00000000000 --- a/mysql-test/r/rpl_stm_rewrt_db.result +++ /dev/null @@ -1,93 +0,0 @@ -stop slave; -drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -reset master; -reset slave; -drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -start slave; -drop database if exists mysqltest1; -create database mysqltest1; -use mysqltest1; -create table t1 (a int); -insert into t1 values(9); -select * from mysqltest1.t1; -a -9 -show databases like 'mysqltest1'; -Database (mysqltest1) -mysqltest1 -select * from test.t1; -a -9 -drop table t1; -drop database mysqltest1; -drop database if exists rewrite; -create database rewrite; -use test; -create table t1 (a date, b date, c date not null, d date); -load data infile '../../std_data/loaddata1.dat' into table t1 fields terminated by ','; -Warnings: -Warning 1265 Data truncated for column 'a' at row 1 -Warning 1265 Data truncated for column 'c' at row 1 -Warning 1265 Data truncated for column 'd' at row 1 -Warning 1265 Data truncated for column 'a' at row 2 -Warning 1265 Data truncated for column 'b' at row 2 -Warning 1265 Data truncated for column 'd' at row 2 -load data infile '../../std_data/loaddata1.dat' into table t1 fields terminated by ',' IGNORE 2 LINES; -select * from rewrite.t1; -a b c d -0000-00-00 NULL 0000-00-00 0000-00-00 -0000-00-00 0000-00-00 0000-00-00 0000-00-00 -2003-03-03 2003-03-03 2003-03-03 NULL -2003-03-03 2003-03-03 2003-03-03 NULL -truncate table t1; -load data infile '../../std_data/loaddata1.dat' into table t1 fields terminated by ',' LINES STARTING BY ',' (b,c,d); -Warnings: -Warning 1265 Data truncated for column 'c' at row 1 -Warning 1265 Data truncated for column 'd' at row 1 -Warning 1265 Data truncated for column 'b' at row 2 -Warning 1265 Data truncated for column 'd' at row 2 -select * from rewrite.t1; -a b c d -NULL NULL 0000-00-00 0000-00-00 -NULL 0000-00-00 0000-00-00 0000-00-00 -NULL 2003-03-03 2003-03-03 NULL -drop table t1; -create table t1 (a text, b text); -load data infile '../../std_data/loaddata2.dat' into table t1 fields terminated by ',' enclosed by ''''; -Warnings: -Warning 1261 Row 3 doesn't contain data for all columns -select concat('|',a,'|'), concat('|',b,'|') from rewrite.t1; -concat('|',a,'|') concat('|',b,'|') -|Field A| |Field B| -|Field 1| |Field 2' -Field 3,'Field 4| -|Field 5' ,'Field 6| NULL -|Field 6| | 'Field 7'| -drop table t1; -create table t1 (a int, b char(10)); -load data infile '../../std_data/loaddata3.dat' into table t1 fields terminated by '' enclosed by '' ignore 1 lines; -Warnings: -Warning 1264 Out of range value for column 'a' at row 3 -Warning 1262 Row 3 was truncated; it contained more data than there were input columns -Warning 1264 Out of range value for column 'a' at row 5 -Warning 1262 Row 5 was truncated; it contained more data than there were input columns -select * from rewrite.t1; -a b -1 row 1 -2 row 2 -0 1234567890 -3 row 3 -0 1234567890 -truncate table t1; -load data infile '../../std_data/loaddata4.dat' into table t1 fields terminated by '' enclosed by '' lines terminated by '' ignore 1 lines; -Warnings: -Warning 1264 Out of range value for column 'a' at row 4 -Warning 1261 Row 4 doesn't contain data for all columns -select * from rewrite.t1; -a b -1 row 1 -2 row 2 -3 row 3 -0 -drop database rewrite; -drop table t1; diff --git a/mysql-test/r/rpl_stm_sp.result b/mysql-test/r/rpl_stm_sp.result index 4fe0f61b550..1acb57f67d5 100644 --- a/mysql-test/r/rpl_stm_sp.result +++ b/mysql-test/r/rpl_stm_sp.result @@ -57,6 +57,9 @@ insert into t1 values (15); grant CREATE ROUTINE, EXECUTE on mysqltest1.* to "zedjzlcsjhd"@127.0.0.1; grant SELECT on mysqltest1.t1 to "zedjzlcsjhd"@127.0.0.1; grant SELECT, INSERT on mysqltest1.t2 to "zedjzlcsjhd"@127.0.0.1; +SELECT 1; +1 +1 create procedure foo4() deterministic begin diff --git a/mysql-test/r/rpl_stm_timezone.result b/mysql-test/r/rpl_stm_timezone.result deleted file mode 100644 index 64d05aa787e..00000000000 --- a/mysql-test/r/rpl_stm_timezone.result +++ /dev/null @@ -1,127 +0,0 @@ -stop slave; -drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -reset master; -reset slave; -drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -start slave; -set timestamp=100000000; -create table t1 (t timestamp); -create table t2 (t char(32)); -select @@time_zone; -@@time_zone -Japan -select @@time_zone; -@@time_zone -Europe/Moscow -insert into t1 values ('20050101000000'), ('20050611093902'); -set time_zone='UTC'; -insert into t1 values ('20040101000000'), ('20040611093902'); -select * from t1; -t -2004-12-31 21:00:00 -2005-06-11 05:39:02 -2004-01-01 00:00:00 -2004-06-11 09:39:02 -set time_zone='UTC'; -select * from t1; -t -2004-12-31 21:00:00 -2005-06-11 05:39:02 -2004-01-01 00:00:00 -2004-06-11 09:39:02 -delete from t1; -set time_zone='Europe/Moscow'; -insert into t1 values ('20040101000000'), ('20040611093902'); -select * from t1; -t -2004-01-01 00:00:00 -2004-06-11 09:39:02 -set time_zone='Europe/Moscow'; -select * from t1; -t -2004-01-01 00:00:00 -2004-06-11 09:39:02 -/*!40019 SET @@session.max_insert_delayed_threads=0*/; -/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; -ROLLBACK; -use test; -SET TIMESTAMP=100000000; -SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1; -SET @@session.sql_mode=0; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8; -create table t1 (t timestamp); -SET TIMESTAMP=100000000; -create table t2 (t char(32)); -SET TIMESTAMP=100000000; -SET @@session.time_zone='Europe/Moscow'; -insert into t1 values ('20050101000000'), ('20050611093902'); -SET TIMESTAMP=100000000; -SET @@session.time_zone='UTC'; -insert into t1 values ('20040101000000'), ('20040611093902'); -SET TIMESTAMP=100000000; -delete from t1; -SET TIMESTAMP=100000000; -SET @@session.time_zone='Europe/Moscow'; -insert into t1 values ('20040101000000'), ('20040611093902'); -# End of log file -ROLLBACK /* added by mysqlbinlog */; -/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; -delete from t1; -set time_zone='UTC'; -load data infile '../../std_data/rpl_timezone.dat' into table t1; -select * from t1; -t -2004-01-01 00:00:00 -2004-06-11 09:39:02 -set time_zone='UTC'; -select * from t1; -t -2004-01-01 00:00:00 -2004-06-11 09:39:02 -set time_zone='Europe/Moscow'; -set time_zone='Europe/Moscow'; -delete from t1; -insert into t1 values ('20040101000000'), ('20040611093902'); -set time_zone='MET'; -insert into t2 (select t from t1); -select * from t1; -t -2003-12-31 22:00:00 -2004-06-11 07:39:02 -select * from t2; -t -2003-12-31 22:00:00 -2004-06-11 07:39:02 -delete from t2; -set timestamp=1000072000; -insert into t2 values (current_timestamp), (current_date), (current_time); -select * from t2; -t -2001-09-09 23:46:40 -2001-09-09 -23:46:40 -delete from t2; -insert into t2 values (from_unixtime(1000000000)), -(unix_timestamp('2001-09-09 03:46:40')); -select * from t2; -t -2001-09-09 03:46:40 -1000000000 -select * from t2; -t -2001-09-09 03:46:40 -1000000000 -set global time_zone='MET'; -delete from t2; -set time_zone='UTC'; -insert into t2 values(convert_tz('2004-01-01 00:00:00','MET',@@time_zone)); -insert into t2 values(convert_tz('2005-01-01 00:00:00','MET','Japan')); -select * from t2; -t -2003-12-31 23:00:00 -2005-01-01 08:00:00 -select * from t2; -t -2003-12-31 23:00:00 -2005-01-01 08:00:00 -drop table t1, t2; diff --git a/mysql-test/r/rpl_stm_user_variables.result b/mysql-test/r/rpl_stm_user_variables.result deleted file mode 100644 index 3e2efcbe9da..00000000000 --- a/mysql-test/r/rpl_stm_user_variables.result +++ /dev/null @@ -1,82 +0,0 @@ -stop slave; -drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -reset master; -reset slave; -drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -start slave; -reset master; -create table t1(n char(30)); -set @i1:=12345678901234, @i2:=-12345678901234, @i3:=0, @i4:=-1; -set @s1:='This is a test', @r1:=12.5, @r2:=-12.5; -set @n1:=null; -set @s2:='', @s3:='abc\'def', @s4:= 'abc\\def', @s5:= 'abc''def'; -insert into t1 values (@i1), (@i2), (@i3), (@i4); -insert into t1 values (@r1), (@r2); -insert into t1 values (@s1), (@s2), (@s3), (@s4), (@s5); -insert into t1 values (@n1); -insert into t1 values (@n2); -insert into t1 values (@a:=0), (@a:=@a+1), (@a:=@a+1); -insert into t1 values (@a+(@b:=@a+1)); -set @q:='abc'; -insert t1 values (@q), (@q:=concat(@q, 'n1')), (@q:=concat(@q, 'n2')); -set @a:=5; -insert into t1 values (@a),(@a); -select * from t1 where n = ''; -n -insert into t1 values (@a),(@a),(@a*5); -select * from t1; -n -12345678901234 --12345678901234 -0 --1 -12.5 --12.5 -This is a test - -abc'def -abc\def -abc'def -NULL -NULL -0 -1 -2 -5 -abc -abcn1 -abcn1n2 -5 -5 -NULL -NULL -NULL -select * from t1; -n -12345678901234 --12345678901234 -0 --1 -12.5 --12.5 -This is a test - -abc'def -abc\def -abc'def -NULL -NULL -0 -1 -2 -5 -abc -abcn1 -abcn1n2 -5 -5 -NULL -NULL -NULL -drop table t1; -stop slave; diff --git a/mysql-test/r/rpl_stm_view.result b/mysql-test/r/rpl_stm_view.result deleted file mode 100644 index cf4c161b296..00000000000 --- a/mysql-test/r/rpl_stm_view.result +++ /dev/null @@ -1,56 +0,0 @@ -stop slave; -drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -reset master; -reset slave; -drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; -start slave; -drop table if exists t1,v1; -drop view if exists t1,v1; -reset master; -create table t1 (a int); -insert into t1 values (1); -create view v1 as select a from t1; -insert into v1 values (2); -select * from v1 order by a; -a -1 -2 -select * from v1 order by a; -a -1 -2 -update v1 set a=3 where a=1; -select * from v1 order by a; -a -2 -3 -select * from v1 order by a; -a -2 -3 -delete from v1 where a=2; -select * from v1 order by a; -a -3 -select * from v1 order by a; -a -3 -alter view v1 as select a as b from t1; -select * from v1 order by 1; -b -3 -drop view v1; -select * from v1 order by a; -ERROR 42S02: Table 'test.v1' doesn't exist -drop table t1; -show binlog events limit 1,100; -Log_name Pos Event_type Server_id End_log_pos Info -slave-bin.000001 # Query 1 # use `test`; create table t1 (a int) -slave-bin.000001 # Query 1 # use `test`; insert into t1 values (1) -slave-bin.000001 # Query 1 # use `test`; CREATE ALGORITHM=UNDEFINED DEFINER=root@localhost SQL SECURITY DEFINER VIEW v1 AS select a from t1 -slave-bin.000001 # Query 1 # use `test`; insert into v1 values (2) -slave-bin.000001 # Query 1 # use `test`; update v1 set a=3 where a=1 -slave-bin.000001 # Query 1 # use `test`; delete from v1 where a=2 -slave-bin.000001 # Query 1 # use `test`; ALTER ALGORITHM=UNDEFINED DEFINER=root@localhost SQL SECURITY DEFINER VIEW v1 AS select a as b from t1 -slave-bin.000001 # Query 1 # use `test`; drop view v1 -slave-bin.000001 # Query 1 # use `test`; drop table t1 diff --git a/mysql-test/r/rpl_row_timezone.result b/mysql-test/r/rpl_timezone.result similarity index 76% rename from mysql-test/r/rpl_row_timezone.result rename to mysql-test/r/rpl_timezone.result index 26c10648ffb..9c45997cbf6 100644 --- a/mysql-test/r/rpl_row_timezone.result +++ b/mysql-test/r/rpl_timezone.result @@ -9,7 +9,7 @@ create table t1 (t timestamp, n int not null auto_increment, PRIMARY KEY(n)); create table t2 (t char(32), n int not null auto_increment, PRIMARY KEY(n)); select @@time_zone; @@time_zone -Europe/Moscow +Japan select @@time_zone; @@time_zone Europe/Moscow @@ -23,10 +23,10 @@ t n 2004-06-11 09:39:02 4 select * from t1; t n -2005-01-01 00:00:00 1 -2005-06-11 09:39:02 2 -2004-01-01 00:00:00 3 -2004-06-11 09:39:02 4 +2005-01-01 06:00:00 1 +2005-06-11 14:39:02 2 +2004-01-01 06:00:00 3 +2004-06-11 14:39:02 4 delete from t1; set time_zone='Europe/Moscow'; insert into t1 values ('20040101000000',NULL), ('20040611093902',NULL); @@ -39,22 +39,6 @@ select * from t1; t n 2004-01-01 00:00:00 5 2004-06-11 09:39:02 6 -/*!40019 SET @@session.max_insert_delayed_threads=0*/; -/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; -ROLLBACK; -use test; -SET TIMESTAMP=100000000; -SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1; -SET @@session.sql_mode=0; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8; -create table t1 (t timestamp, n int not null auto_increment, PRIMARY KEY(n)); -SET TIMESTAMP=100000000; -create table t2 (t char(32), n int not null auto_increment, PRIMARY KEY(n)); -SET TIMESTAMP=100000000; -delete from t1; -# End of log file -ROLLBACK /* added by mysqlbinlog */; -/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; delete from t1; set time_zone='UTC'; load data infile '../../std_data/rpl_timezone2.dat' into table t1; diff --git a/mysql-test/r/rpl_row_user_variables.result b/mysql-test/r/rpl_user_variables.result similarity index 100% rename from mysql-test/r/rpl_row_user_variables.result rename to mysql-test/r/rpl_user_variables.result diff --git a/mysql-test/r/rpl_row_view.result b/mysql-test/r/rpl_view.result similarity index 98% rename from mysql-test/r/rpl_row_view.result rename to mysql-test/r/rpl_view.result index ce807a361ba..f038f4d00cb 100644 --- a/mysql-test/r/rpl_row_view.result +++ b/mysql-test/r/rpl_view.result @@ -6,6 +6,7 @@ drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; start slave; drop table if exists t1,v1; drop view if exists t1,v1; +reset master; create table t1 (a int); insert into t1 values (1); create view v1 as select a from t1; diff --git a/mysql-test/r/trigger.result b/mysql-test/r/trigger.result index e0048515fed..38dff6f8ca5 100644 --- a/mysql-test/r/trigger.result +++ b/mysql-test/r/trigger.result @@ -767,8 +767,7 @@ deallocate prepare stmt1; drop procedure p1; drop table t1, t2, t3; create table t1 (a int); -drop procedure if exists p2; -CREATE PROCEDURE `p2`() +CREATE PROCEDURE `p1`() begin insert into t1 values (1); end// @@ -777,8 +776,8 @@ begin declare done int default 0; set done= not done; end// -CALL p2(); -drop procedure p2; +CALL p1(); +drop procedure p1; drop table t1; create trigger t1_bi before insert on test.t1 for each row set @a:=0; ERROR 3D000: No database selected diff --git a/mysql-test/r/view.result b/mysql-test/r/view.result index 4f6cfe4a310..029daa14256 100644 --- a/mysql-test/r/view.result +++ b/mysql-test/r/view.result @@ -2423,6 +2423,9 @@ drop view v1; drop table t1; create table t1(f1 int, f2 int); insert into t1 values (null, 10), (null,2); +select f1, sum(f2) from t1 group by f1; +f1 sum(f2) +NULL 12 create view v1 as select * from t1; select f1, sum(f2) from v1 group by f1; f1 sum(f2) diff --git a/mysql-test/t/bdb.test b/mysql-test/t/bdb.test index 1bb8fa4d55d..60e0129e58a 100644 --- a/mysql-test/t/bdb.test +++ b/mysql-test/t/bdb.test @@ -1036,4 +1036,13 @@ create table t1 (a varchar(255) character set utf8, e varchar(255) character set utf8, key (a,b,c,d,e)) engine=bdb; +# +# Bug #14212: Server crash after COMMIT + ALTER TABLE +# +set autocommit=0; +create table t1 (a int) engine=bdb; +commit; +alter table t1 add primary key(a); +drop table t1; + --echo End of 5.0 tests diff --git a/mysql-test/t/create.test b/mysql-test/t/create.test index b61dd6add84..2318b739c35 100644 --- a/mysql-test/t/create.test +++ b/mysql-test/t/create.test @@ -565,6 +565,22 @@ create table t1 ( show create table t1; drop table t1; +--warning 1364 +create table t1 ( + a varchar(12) charset utf8 collate utf8_bin not null, + b int not null, primary key (a) +) select a, 1 as c from t2 ; +show create table t1; +drop table t1; + +--warning 1364 +create table t1 ( + a varchar(12) charset utf8 collate utf8_bin not null, + b int null, primary key (a) +) select a, 1 as c from t2 ; +show create table t1; +drop table t1; + --warning 1364 create table t1 ( a varchar(12) charset utf8 collate utf8_bin not null, diff --git a/mysql-test/t/disabled.def b/mysql-test/t/disabled.def index ef5bdefa1ed..dafdd52e8b9 100644 --- a/mysql-test/t/disabled.def +++ b/mysql-test/t/disabled.def @@ -11,17 +11,16 @@ ############################################################################## sp-goto : GOTO is currently is disabled - will be fixed in the future -kill : Unstable test case, bug#9712 rpl_bit_npk : Bug #13418 ndb_cache2 : Bug #15004 ndb_cache_multi2: Bug #15004 func_group : Bug #15448 func_math : Bug #15448 group_min_max : Bug #15448 -#mysqlslap : Bug #15483 innodb_concurrent : Results are not deterministic, Elliot will fix (BUG#3300) subselect : Bug#15706 type_time : Bug#15805 #rpl000002 : Bug#15920 Temporary tables are not binlogged in SBR ps_7ndb : Bug#15923 Core dump in RBR mode when executing test suite -sp_trans : Bug#15924 Code dump in RBR mode when executing test suite +rpl_ddl : Bug#15963 SBR does not show "Definer" correctly +mysqlslap : Bug#16167 diff --git a/mysql-test/t/handler.test b/mysql-test/t/handler.test index f3e14c3cd2b..3fb09df5f2f 100644 --- a/mysql-test/t/handler.test +++ b/mysql-test/t/handler.test @@ -3,7 +3,7 @@ # --disable_warnings -drop table if exists t1; +drop table if exists t1,t3,t4,t5; --enable_warnings create table t1 (a int, b char(10), key a(a), key b(a,b)); diff --git a/mysql-test/t/information_schema.test b/mysql-test/t/information_schema.test index d61088a3a28..2f91f27ac79 100644 --- a/mysql-test/t/information_schema.test +++ b/mysql-test/t/information_schema.test @@ -769,6 +769,27 @@ from information_schema.columns where table_name='t1'; drop table t1; # +# Bug#15533 crash, information_schema, function, view +# +CREATE TABLE t1 (f1 BIGINT, f2 VARCHAR(20), f3 BIGINT); +INSERT INTO t1 SET f1 = 1, f2 = 'Schoenenbourg', f3 = 1; + +CREATE FUNCTION func2() RETURNS BIGINT RETURN 1; + +delimiter //; +CREATE FUNCTION func1() RETURNS BIGINT +BEGIN + RETURN ( SELECT COUNT(*) FROM INFORMATION_SCHEMA.VIEWS); +END// +delimiter ;// + +CREATE VIEW v1 AS SELECT 1 FROM t1 + WHERE f3 = (SELECT func2 ()); +SELECT func1(); +DROP TABLE t1; +DROP VIEW v1; +DROP FUNCTION func1; +DROP FUNCTION func2; # Show engines # diff --git a/mysql-test/t/kill.test b/mysql-test/t/kill.test index 7f3a9932d31..c50c35825fc 100644 --- a/mysql-test/t/kill.test +++ b/mysql-test/t/kill.test @@ -25,11 +25,18 @@ select ((@id := kill_id) - kill_id) from t1; kill @id; connection con1; ---sleep 1 +--sleep 2 -# this statement should fail ---error 2006,2013 +--disable_query_log +--disable_result_log +# One of the following statements should fail +--error 0,2006,2013 select 1; +--error 0,2006,2013 +select 1; +--enable_query_log +--enable_result_log + --enable_reconnect # this should work, and we should have a new connection_id() select ((@id := kill_id) - kill_id) from t1; diff --git a/mysql-test/t/mysqlshow.test b/mysql-test/t/mysqlshow.test index 1e2e97a4e07..78c4ae2b531 100644 --- a/mysql-test/t/mysqlshow.test +++ b/mysql-test/t/mysqlshow.test @@ -2,7 +2,7 @@ -- source include/not_embedded.inc --disable_warnings -DROP TABLE IF EXISTS t1,t2; +DROP TABLE IF EXISTS t1,t2,test1,test2; --enable_warnings # diff --git a/mysql-test/t/mysqlslap.test b/mysql-test/t/mysqlslap.test index 13464f02855..8234659b2e6 100644 --- a/mysql-test/t/mysqlslap.test +++ b/mysql-test/t/mysqlslap.test @@ -2,12 +2,12 @@ --source include/not_embedded.inc --source include/not_windows.inc ---exec $MYSQL_SLAP --silent --concurrency=5 --concurrency-load=5 --iterations=20 --number-int-cols=2 --number-char-cols=3 --auto-generate-sql +--exec $MYSQL_SLAP --silent --concurrency=5 --iterations=20 --number-int-cols=2 --number-char-cols=3 --auto-generate-sql ---exec $MYSQL_SLAP --only-print --concurrency=1 --concurrency-load=1 --iterations=20 --query="select * from t1" --data="INSERT INTO t1 VALUES (1, 'This is a test')" --create="CREATE TABLE t1 (id int, name varchar(64))" +--exec $MYSQL_SLAP --only-print --iterations=20 --query="select * from t1" --create="CREATE TABLE t1 (id int, name varchar(64)); INSERT INTO t1 VALUES (1, 'This is a test')" --delimiter=";" ---exec $MYSQL_SLAP --silent --concurrency=5 --concurrency-load=5 --iterations=20 --query="select * from t1" --data="INSERT INTO t1 VALUES (1, 'This is a test')" --create="CREATE TABLE t1 (id int, name varchar(64))" +--exec $MYSQL_SLAP --silent --concurrency=5 --iterations=20 --query="select * from t1" --create="CREATE TABLE t1 (id int, name varchar(64)); INSERT INTO t1 VALUES (1, 'This is a test')" --delimiter=";" ---exec $MYSQL_SLAP --only-print --concurrency=1 --concurrency-load=1 --iterations=1 --delimiter=";" --query="select * from t1;select * from t2" --data="INSERT INTO t1 VALUES (1, 'This is a test'); insert into t2 values ('test', 'test2')" --create="CREATE TABLE t1 (id int, name varchar(64)); create table t2(foo1 varchar(32), foo2 varchar(32))" --engine="archive,myisam" +--exec $MYSQL_SLAP --only-print --delimiter=";" --query="select * from t1;select * from t2" --create="CREATE TABLE t1 (id int, name varchar(64)); create table t2(foo1 varchar(32), foo2 varchar(32)); INSERT INTO t1 VALUES (1, 'This is a test'); insert into t2 values ('test', 'test2')" --engine="heap,myisam" ---exec $MYSQL_SLAP --silent --concurrency=5 --concurrency-load=5 --iterations=20 --delimiter=";" --query="select * from t1;select * from t2" --data="INSERT INTO t1 VALUES (1, 'This is a test'); insert into t2 values ('test', 'test2')" --create="CREATE TABLE t1 (id int, name varchar(64)); create table t2(foo1 varchar(32), foo2 varchar(32))" +--exec $MYSQL_SLAP --silent --concurrency=5 --iterations=20 --delimiter=";" --query="select * from t1;select * from t2" --create="CREATE TABLE t1 (id int, name varchar(64)); create table t2(foo1 varchar(32), foo2 varchar(32)); INSERT INTO t1 VALUES (1, 'This is a test'); insert into t2 values ('test', 'test2')" diff --git a/mysql-test/t/rpl_row_ddl.test b/mysql-test/t/rpl_ddl.test similarity index 97% rename from mysql-test/t/rpl_row_ddl.test rename to mysql-test/t/rpl_ddl.test index 2433d6a83a7..d08406334d1 100644 --- a/mysql-test/t/rpl_row_ddl.test +++ b/mysql-test/t/rpl_ddl.test @@ -29,7 +29,6 @@ # --source include/have_innodb.inc ---source include/have_binlog_format_row.inc --source include/master-slave.inc let $engine_type= "InnoDB"; -- source extra/rpl_tests/rpl_ddl.test diff --git a/mysql-test/t/rpl_drop_db.test b/mysql-test/t/rpl_drop_db.test index 98afc6e3d02..548009b758e 100644 --- a/mysql-test/t/rpl_drop_db.test +++ b/mysql-test/t/rpl_drop_db.test @@ -46,12 +46,13 @@ show tables; use test; select * from t1; +system rm var/master-data/mysqltest1/f1.txt; connection master; -drop table t1; +DROP DATABASE mysqltest1; sync_slave_with_master; #cleanup connection slave; stop slave; -system rm -rf var/master-data/mysqltest1; +#system rm -rf var/master-data/mysqltest1; diff --git a/mysql-test/t/rpl_stm_err_ignoredtable-slave.opt b/mysql-test/t/rpl_err_ignoredtable-slave.opt similarity index 100% rename from mysql-test/t/rpl_stm_err_ignoredtable-slave.opt rename to mysql-test/t/rpl_err_ignoredtable-slave.opt diff --git a/mysql-test/extra/rpl_tests/rpl_err_ignoredtable.test b/mysql-test/t/rpl_err_ignoredtable.test similarity index 77% rename from mysql-test/extra/rpl_tests/rpl_err_ignoredtable.test rename to mysql-test/t/rpl_err_ignoredtable.test index e439dbdc388..81aa76225be 100644 --- a/mysql-test/extra/rpl_tests/rpl_err_ignoredtable.test +++ b/mysql-test/t/rpl_err_ignoredtable.test @@ -7,20 +7,19 @@ connection master; create table t1 (a int primary key); +create table t4 (a int primary key); # generate an error that goes to the binlog --error 1062 insert into t1 values (1),(1); +insert into t4 values (1),(2); save_master_pos; connection slave; # as the t1 table is ignored on the slave, the slave should be able to sync sync_with_master; -# The port number is different when doing the release build with -# Do-compile, hence we have to replace the port number here accordingly ---replace_result $MASTER_MYPORT MASTER_PORT ---replace_column 1 # 8 # 9 # 23 # 33 # -show slave status; # check that the table has been ignored, because otherwise the test is nonsense show tables like 't1'; +show tables like 't4'; +SELECT * FROM test.t4; connection master; drop table t1; save_master_pos; @@ -46,17 +45,20 @@ real_sleep 2; select (@id := id) - id from t3; kill @id; drop table t2,t3; +insert into t4 values (3),(4); connection master; --error 0,1053,2013 reap; connection master1; ---replace_column 2 # 5 # -show binlog events from 102; save_master_pos; connection slave; -# SQL slave thread should not have stopped (because table of the killed -# query is in the ignore list). sync_with_master; +SELECT * FROM test.t4; +connection master1; +DROP TABLE test.t4; +save_master_pos; +connection slave; +sync_with_master; # End of 4.1 tests # Adding comment for force manual merge 5.0 -> wl1012. delete me if needed diff --git a/mysql-test/t/rpl_stm_loaddata_m-master.opt b/mysql-test/t/rpl_loaddata_m-master.opt similarity index 100% rename from mysql-test/t/rpl_stm_loaddata_m-master.opt rename to mysql-test/t/rpl_loaddata_m-master.opt diff --git a/mysql-test/t/rpl_loaddata_m.test b/mysql-test/t/rpl_loaddata_m.test new file mode 100644 index 00000000000..01ef89d4efc --- /dev/null +++ b/mysql-test/t/rpl_loaddata_m.test @@ -0,0 +1,49 @@ +# See if the master logs LOAD DATA INFILE correctly when binlog_*_db rules +# exist. +# This is for BUG#1100 (LOAD DATA INFILE was half-logged). +###################################################### +# Change Author: JBM +# Change Date: 2005-12-22 +# Change: Test rewritten to remove show binlog events +# and to test the option better + Cleanup +###################################################### +-- source include/master-slave.inc + +--disable_warnings +drop database if exists mysqltest; +--enable_warnings + +connection master; +# 'test' database should be ignored by the slave +USE test; +CREATE TABLE t1(a INT, b INT, UNIQUE(b)); +LOAD DATA INFILE '../../std_data/rpl_loaddata.dat' INTO TABLE test.t1; +SELECT COUNT(*) FROM test.t1; + +# 'mysqltest' database should NOT be ignored by the slave +CREATE DATABASE mysqltest; +USE mysqltest; +CREATE TABLE t1(a INT, b INT, UNIQUE(b)); +LOAD DATA INFILE '../../std_data/rpl_loaddata.dat' INTO TABLE mysqltest.t1; +SELECT COUNT(*) FROM mysqltest.t1; + +# Now lets check the slave to see what we have :-) +save_master_pos; +connection slave; +sync_with_master; + +SHOW DATABASES; + +USE test; +SHOW TABLES; + +USE mysqltest; +SHOW TABLES; +SELECT COUNT(*) FROM mysqltest.t1; + +#show binlog events; +connection master; +DROP DATABASE mysqltest; +DROP TABLE test.t1; + +# End of test diff --git a/mysql-test/t/rpl_multi_engine.test b/mysql-test/t/rpl_multi_engine.test index b0879757468..356237d1584 100644 --- a/mysql-test/t/rpl_multi_engine.test +++ b/mysql-test/t/rpl_multi_engine.test @@ -94,6 +94,8 @@ show create table t1; # cleanup connection master; DROP TABLE t1; +# Need to drop mysqltest1 as well so other test will pass. +DROP DATABASE mysqltest1; sync_slave_with_master; # End of 5.1 test case diff --git a/mysql-test/t/rpl_row_rewrt_db-slave.opt b/mysql-test/t/rpl_rewrt_db-slave.opt similarity index 100% rename from mysql-test/t/rpl_row_rewrt_db-slave.opt rename to mysql-test/t/rpl_rewrt_db-slave.opt diff --git a/mysql-test/t/rpl_stm_rewrt_db.test b/mysql-test/t/rpl_rewrt_db.test similarity index 100% rename from mysql-test/t/rpl_stm_rewrt_db.test rename to mysql-test/t/rpl_rewrt_db.test diff --git a/mysql-test/t/rpl_row_basic_11bugs-master.opt b/mysql-test/t/rpl_row_basic_11bugs-master.opt new file mode 100644 index 00000000000..d5ae999b180 --- /dev/null +++ b/mysql-test/t/rpl_row_basic_11bugs-master.opt @@ -0,0 +1 @@ +--binlog_ignore_db=test_ignore; diff --git a/mysql-test/t/rpl_row_basic_11bugs.test b/mysql-test/t/rpl_row_basic_11bugs.test new file mode 100644 index 00000000000..76ff5a581c9 --- /dev/null +++ b/mysql-test/t/rpl_row_basic_11bugs.test @@ -0,0 +1,31 @@ +--source include/have_row_based.inc +--source include/have_binlog_format_row.inc +--source include/master-slave.inc + +# Bug#15942 (RBR ignores --binlog_ignore_db and tries to map to table +# on slave for writes) + +CREATE DATABASE test_ignore; # --binlog_ignore_db=mysqltest_ignore + +--echo **** On Master **** +SHOW DATABASES; +USE test; +CREATE TABLE t1 (a INT, b INT); +SHOW TABLES; +INSERT INTO t1 VALUES (1,1), (2,2); +USE test_ignore; +CREATE TABLE t2 (a INT, b INT); +SHOW TABLES; +INSERT INTO t2 VALUES (3,3), (4,4); +SHOW BINLOG EVENTS; +sync_slave_with_master; +--echo **** On Slave **** +SHOW DATABASES; +USE test; +SHOW TABLES; +--error 1049 +USE test_ignore; + +connection master; +DROP DATABASE test_ignore; +sync_slave_with_master; diff --git a/mysql-test/t/rpl_row_blob_innodb.test b/mysql-test/t/rpl_row_blob_innodb.test new file mode 100644 index 00000000000..b6832010e22 --- /dev/null +++ b/mysql-test/t/rpl_row_blob_innodb.test @@ -0,0 +1,7 @@ +################################# +# Wrapper for rpl_row_blob.test# +################################# +-- source include/have_innodb.inc +let $engine_type=INNODB; +-- source extra/rpl_tests/rpl_row_blob.test + diff --git a/mysql-test/t/rpl_row_blob_myisam.test b/mysql-test/t/rpl_row_blob_myisam.test new file mode 100644 index 00000000000..2914aa7b348 --- /dev/null +++ b/mysql-test/t/rpl_row_blob_myisam.test @@ -0,0 +1,6 @@ +################################# +# Wrapper for rpl_row_blob.test# +################################# +let $engine_type=myisam; +-- source extra/rpl_tests/rpl_row_blob.test + diff --git a/mysql-test/t/rpl_row_log.test b/mysql-test/t/rpl_row_log.test index 290a08ff75a..29abf5bb93e 100644 --- a/mysql-test/t/rpl_row_log.test +++ b/mysql-test/t/rpl_row_log.test @@ -1,4 +1,4 @@ -# Requires statement logging +# Requires row base logging -- source include/have_binlog_format_row.inc -- source extra/rpl_tests/rpl_log.test diff --git a/mysql-test/t/rpl_row_rewrt_db.test b/mysql-test/t/rpl_row_rewrt_db.test deleted file mode 100644 index 8781b361d87..00000000000 --- a/mysql-test/t/rpl_row_rewrt_db.test +++ /dev/null @@ -1,83 +0,0 @@ -# TBF - difference in row level logging --- source include/have_binlog_format_row.inc --- source include/master-slave.inc - ---disable_warnings -drop database if exists mysqltest1; ---enable_warnings -create database mysqltest1; - -use mysqltest1; -create table t1 (a int); -insert into t1 values(9); -select * from mysqltest1.t1; -sync_slave_with_master; -show databases like 'mysqltest1'; # should be empty -select * from test.t1; -# cleanup -connection master; -drop table t1; -drop database mysqltest1; -sync_slave_with_master; - -# -# BUG#6353: -# Option --replicate-rewrite-db should work together with LOAD DATA INFILE -# - -connection slave; ---disable_warnings -drop database if exists rewrite; ---enable_warnings -create database rewrite; - -connection master; -use test; -create table t1 (a date, b date, c date not null, d date); -load data infile '../../std_data/loaddata1.dat' into table t1 fields terminated by ','; -load data infile '../../std_data/loaddata1.dat' into table t1 fields terminated by ',' IGNORE 2 LINES; -sync_slave_with_master; - -connection slave; -select * from rewrite.t1; - -connection master; -truncate table t1; -load data infile '../../std_data/loaddata1.dat' into table t1 fields terminated by ',' LINES STARTING BY ',' (b,c,d); -sync_slave_with_master; - -connection slave; -select * from rewrite.t1; - -connection master; -drop table t1; -create table t1 (a text, b text); -load data infile '../../std_data/loaddata2.dat' into table t1 fields terminated by ',' enclosed by ''''; -sync_slave_with_master; - -connection slave; -select concat('|',a,'|'), concat('|',b,'|') from rewrite.t1; - -connection master; -drop table t1; -create table t1 (a int, b char(10)); -load data infile '../../std_data/loaddata3.dat' into table t1 fields terminated by '' enclosed by '' ignore 1 lines; -sync_slave_with_master; - -connection slave; -select * from rewrite.t1; - -connection master; -truncate table t1; -load data infile '../../std_data/loaddata4.dat' into table t1 fields terminated by '' enclosed by '' lines terminated by '' ignore 1 lines; -sync_slave_with_master; - -connection slave; -# The empty line last comes from the end line field in the file -select * from rewrite.t1; - -drop database rewrite; - -connection master; -drop table t1; - diff --git a/mysql-test/t/rpl_row_sp000.test b/mysql-test/t/rpl_row_sp000.test index e591cb054fc..4d638cfcc1c 100644 --- a/mysql-test/t/rpl_row_sp000.test +++ b/mysql-test/t/rpl_row_sp000.test @@ -82,6 +82,14 @@ grant CREATE ROUTINE, EXECUTE on mysqltest1.* to "zedjzlcsjhd"@127.0.0.1; grant SELECT on mysqltest1.t1 to "zedjzlcsjhd"@127.0.0.1; grant SELECT, INSERT on mysqltest1.t2 to "zedjzlcsjhd"@127.0.0.1; +# ToDo: BUG#14931: There is a race between the last grant binlogging, and +# the binlogging in the new connection made below, causing sporadic test +# failures due to switched statement order in binlog. To fix this we do +# SELECT 1 in the first connection before starting the second, ensuring +# that binlogging is done in the expected order. +# Please remove this SELECT 1 when BUG#14931 is fixed. +SELECT 1; + connect (con1,127.0.0.1,zedjzlcsjhd,,mysqltest1,$MASTER_MYPORT,); connection con1; diff --git a/mysql-test/t/rpl_row_timezone-slave.opt b/mysql-test/t/rpl_row_timezone-slave.opt deleted file mode 100644 index c383fd9f17d..00000000000 --- a/mysql-test/t/rpl_row_timezone-slave.opt +++ /dev/null @@ -1,2 +0,0 @@ ---default-time-zone=Europe/Moscow - diff --git a/mysql-test/t/rpl_row_user_variables.test b/mysql-test/t/rpl_row_user_variables.test deleted file mode 100644 index 2ebb668b1a8..00000000000 --- a/mysql-test/t/rpl_row_user_variables.test +++ /dev/null @@ -1,4 +0,0 @@ -# row-based and statement binlog difference in result files --- source include/have_binlog_format_row.inc --- source extra/rpl_tests/rpl_user_variables.test - diff --git a/mysql-test/t/rpl_row_view.test b/mysql-test/t/rpl_row_view.test deleted file mode 100644 index 6d460d58df6..00000000000 --- a/mysql-test/t/rpl_row_view.test +++ /dev/null @@ -1,47 +0,0 @@ -# NYI - row-based cannot use CREATE ... SELECT ---source include/have_binlog_format_row.inc - -source include/master-slave.inc; ---disable_warnings -drop table if exists t1,v1; -drop view if exists t1,v1; -sync_slave_with_master; ---enable_warnings - -# -# Check that createion drop of view is replicated, also check replication of -# updating of view -# -connection master; -create table t1 (a int); -insert into t1 values (1); -create view v1 as select a from t1; -insert into v1 values (2); -select * from v1 order by a; -sync_slave_with_master; -# view already have to be on slave -select * from v1 order by a; -connection master; -update v1 set a=3 where a=1; -select * from v1 order by a; -sync_slave_with_master; -select * from v1 order by a; -connection master; -delete from v1 where a=2; -select * from v1 order by a; -sync_slave_with_master; -select * from v1 order by a; -connection master; -# 'alter view' internally maped to creation, but still check that it works -alter view v1 as select a as b from t1; -sync_slave_with_master; -select * from v1 order by 1; -connection master; -drop view v1; -sync_slave_with_master; -#error, because view have to be removed from slave --- error 1146 -select * from v1 order by a; -connection master; -drop table t1; -sync_slave_with_master; diff --git a/mysql-test/t/rpl_sp_effects.test b/mysql-test/t/rpl_sp_effects.test index 1c23f956082..c081f8e00c6 100644 --- a/mysql-test/t/rpl_sp_effects.test +++ b/mysql-test/t/rpl_sp_effects.test @@ -1,7 +1,4 @@ # Test of replication of stored procedures (WL#2146 for MySQL 5.0) -# Make this statement only until bug 13115 is corrected [jbm] -# TODO: Remove statement include once bug 13115 is patched. --- source include/have_binlog_format_statement.inc -- source include/master-slave.inc # **************************************************************** diff --git a/mysql-test/t/rpl_stm_ddl.test b/mysql-test/t/rpl_stm_ddl.test deleted file mode 100644 index 54548114f86..00000000000 --- a/mysql-test/t/rpl_stm_ddl.test +++ /dev/null @@ -1,35 +0,0 @@ -######################## rpl_ddl.test ######################## -# # -# DDL statements (sometimes with implicit COMMIT) executed # -# by the master and it's propagation into the slave # -# # -############################################################## - -# -# NOTE, PLEASE BE CAREFUL, WHEN MODIFYING THE TESTS !! -# -# 1. !All! objects to be dropped, renamed, altered ... must be created -# in AUTOCOMMIT= 1 mode before AUTOCOMMIT is set to 0 and the test -# sequences start. -# -# 2. Never use a test object, which was direct or indirect affected by a -# preceeding test sequence again. -# Except table d1.t1 where ONLY DML is allowed. -# -# If one preceeding test sequence hits a (sometimes not good visible, -# because the sql error code of the statement might be 0) bug -# and these rules are ignored, a following test sequence might earn ugly -# effects like failing 'sync_slave_with_master', crashes of the slave or -# abort of the test case etc.. -# -# 3. The assignment of the DDL command to be tested to $my_stmt can -# be a bit difficult. "'" must be avoided, because the test -# routine "include/rpl_stmt_seq.inc" performs a -# eval SELECT CONCAT('######## ','$my_stmt',' ########') as ""; -# - ---source include/have_innodb.inc ---source include/have_binlog_format_statement.inc ---source include/master-slave.inc -let $engine_type= "InnoDB"; --- source extra/rpl_tests/rpl_ddl.test diff --git a/mysql-test/t/rpl_stm_err_ignoredtable.test b/mysql-test/t/rpl_stm_err_ignoredtable.test deleted file mode 100644 index a426be27b59..00000000000 --- a/mysql-test/t/rpl_stm_err_ignoredtable.test +++ /dev/null @@ -1,8 +0,0 @@ -# Test for -# Bug #797: If a query is ignored on slave (replicate-ignore-table) the slave -# still checks that it has the same error as on the master. - -# Requires statement logging --- source include/have_binlog_format_statement.inc --- source extra/rpl_tests/rpl_err_ignoredtable.test - diff --git a/mysql-test/t/rpl_stm_loaddata_m.test b/mysql-test/t/rpl_stm_loaddata_m.test deleted file mode 100644 index ac52a8dfb9e..00000000000 --- a/mysql-test/t/rpl_stm_loaddata_m.test +++ /dev/null @@ -1,10 +0,0 @@ -# See if the master logs LOAD DATA INFILE correctly when binlog_*_db rules -# exist. -# This is for BUG#1100 (LOAD DATA INFILE was half-logged). - -# Requires statement logging --- source include/have_binlog_format_statement.inc --- source extra/rpl_tests/rpl_loaddata_m.test - -# End of 4.1 tests -# Adding comment for force manual merge 5.0 -> wl1012: Delete me diff --git a/mysql-test/t/rpl_stm_rewrt_db-slave.opt b/mysql-test/t/rpl_stm_rewrt_db-slave.opt deleted file mode 100644 index a462ad19ba0..00000000000 --- a/mysql-test/t/rpl_stm_rewrt_db-slave.opt +++ /dev/null @@ -1 +0,0 @@ -"--replicate-rewrite-db=test->rewrite" "--replicate-rewrite-db=mysqltest1->test" diff --git a/mysql-test/t/rpl_stm_sp.test b/mysql-test/t/rpl_stm_sp.test index 95c4543c952..62ea87e5352 100644 --- a/mysql-test/t/rpl_stm_sp.test +++ b/mysql-test/t/rpl_stm_sp.test @@ -90,6 +90,14 @@ grant CREATE ROUTINE, EXECUTE on mysqltest1.* to "zedjzlcsjhd"@127.0.0.1; grant SELECT on mysqltest1.t1 to "zedjzlcsjhd"@127.0.0.1; grant SELECT, INSERT on mysqltest1.t2 to "zedjzlcsjhd"@127.0.0.1; +# ToDo: BUG#14931: There is a race between the last grant binlogging, and +# the binlogging in the new connection made below, causing sporadic test +# failures due to switched statement order in binlog. To fix this we do +# SELECT 1 in the first connection before starting the second, ensuring +# that binlogging is done in the expected order. +# Please remove this SELECT 1 when BUG#14931 is fixed. +SELECT 1; + connect (con1,127.0.0.1,zedjzlcsjhd,,mysqltest1,$MASTER_MYPORT,); connection con1; diff --git a/mysql-test/t/rpl_stm_timezone-master.opt b/mysql-test/t/rpl_stm_timezone-master.opt deleted file mode 100644 index 8e43bfbbb7e..00000000000 --- a/mysql-test/t/rpl_stm_timezone-master.opt +++ /dev/null @@ -1 +0,0 @@ ---default-time-zone=Europe/Moscow diff --git a/mysql-test/t/rpl_stm_timezone.test b/mysql-test/t/rpl_stm_timezone.test deleted file mode 100644 index 0cd6dbf5d89..00000000000 --- a/mysql-test/t/rpl_stm_timezone.test +++ /dev/null @@ -1,129 +0,0 @@ -# TBF - difference in row level logging --- source include/have_binlog_format_statement.inc - -# Test of replication of time zones. - -# There is currently some bug possibly in prepared statements (this -# test fails with --ps-protocol): sys_var_thd_time_zone::value_ptr() -# is called only at prepare time, not at execution time. So, -# thd->time_zone_used is not equal to 1 (it is back to 0, because of -# reset_thd_for_next_command called at execution time), so the -# timezone used in CONVERT_TZ is not binlogged. To debug (by Guilhem -# and possibly Konstantin). - ---disable_ps_protocol - -source include/master-slave.inc; - -# Some preparations -let $VERSION=`select version()`; -set timestamp=100000000; # for fixed output of mysqlbinlog -create table t1 (t timestamp); -create table t2 (t char(32)); - -connection slave; -select @@time_zone; - -# -# Let us check how well replication works when we are saving datetime -# value in TIMESTAMP field. -# -connection master; -select @@time_zone; -insert into t1 values ('20050101000000'), ('20050611093902'); -set time_zone='UTC'; -insert into t1 values ('20040101000000'), ('20040611093902'); -select * from t1; -sync_slave_with_master; -set time_zone='UTC'; -select * from t1; - -# Let us check also that setting of time_zone back to default also works -# well -connection master; -delete from t1; -set time_zone='Europe/Moscow'; -insert into t1 values ('20040101000000'), ('20040611093902'); -select * from t1; -sync_slave_with_master; -set time_zone='Europe/Moscow'; -select * from t1; -connection master; ---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR ---exec $MYSQL_BINLOG --short-form $MYSQL_TEST_DIR/var/log/master-bin.000001 - -# Let us check with LOAD DATA INFILE -# (we do it after mysqlbinlog because the temp files names are not constant) -connection master; -delete from t1; -set time_zone='UTC'; -load data infile '../../std_data/rpl_timezone.dat' into table t1; -select * from t1; -sync_slave_with_master; -set time_zone='UTC'; -select * from t1; -set time_zone='Europe/Moscow'; - -# Put back values of before the LOAD -connection master; -set time_zone='Europe/Moscow'; -delete from t1; -insert into t1 values ('20040101000000'), ('20040611093902'); - -# -# Now let us check how well we replicate statments reading TIMESTAMP fields -# (We should see the same data on master and on slave but it should differ -# from originally inserted) -# -set time_zone='MET'; -insert into t2 (select t from t1); -select * from t1; -sync_slave_with_master; -select * from t2; - -# -# Now let us check how well we replicate various CURRENT_* functions -# -connection master; -delete from t2; -set timestamp=1000072000; -insert into t2 values (current_timestamp), (current_date), (current_time); -sync_slave_with_master; -select * from t2; - -# -# At last let us check replication of FROM_UNIXTIME/UNIX_TIMESTAMP functions. -# -connection master; -delete from t2; -insert into t2 values (from_unixtime(1000000000)), - (unix_timestamp('2001-09-09 03:46:40')); -select * from t2; -sync_slave_with_master; -# We should get same result on slave as on master -select * from t2; - -# -# Let us check that we are allowing to set global time_zone with -# replication -# -connection master; -set global time_zone='MET'; - -# -# Let us see if CONVERT_TZ(@@time_zone) replicates -# -delete from t2; -set time_zone='UTC'; -insert into t2 values(convert_tz('2004-01-01 00:00:00','MET',@@time_zone)); -insert into t2 values(convert_tz('2005-01-01 00:00:00','MET','Japan')); -select * from t2; -sync_slave_with_master; -select * from t2; - -# Clean up -connection master; -drop table t1, t2; -sync_slave_with_master; - -# End of 4.1 tests diff --git a/mysql-test/t/rpl_stm_user_variables.test b/mysql-test/t/rpl_stm_user_variables.test deleted file mode 100644 index af4e46cdace..00000000000 --- a/mysql-test/t/rpl_stm_user_variables.test +++ /dev/null @@ -1,5 +0,0 @@ -# row-based and statement binlog difference in result files --- source include/have_binlog_format_statement.inc --- source extra/rpl_tests/rpl_user_variables.test - -# End of 4.1 tests diff --git a/mysql-test/t/rpl_row_timezone-master.opt b/mysql-test/t/rpl_timezone-master.opt similarity index 100% rename from mysql-test/t/rpl_row_timezone-master.opt rename to mysql-test/t/rpl_timezone-master.opt diff --git a/mysql-test/t/rpl_stm_timezone-slave.opt b/mysql-test/t/rpl_timezone-slave.opt similarity index 100% rename from mysql-test/t/rpl_stm_timezone-slave.opt rename to mysql-test/t/rpl_timezone-slave.opt diff --git a/mysql-test/t/rpl_row_timezone.test b/mysql-test/t/rpl_timezone.test similarity index 93% rename from mysql-test/t/rpl_row_timezone.test rename to mysql-test/t/rpl_timezone.test index 047a458f09f..e78f1e1899e 100644 --- a/mysql-test/t/rpl_row_timezone.test +++ b/mysql-test/t/rpl_timezone.test @@ -1,6 +1,3 @@ -# TBF - difference in row level logging --- source include/have_binlog_format_row.inc - # Test of replication of time zones. # There is currently some bug possibly in prepared statements (this @@ -51,8 +48,11 @@ sync_slave_with_master; set time_zone='Europe/Moscow'; select * from t1; connection master; ---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR ---exec $MYSQL_BINLOG --short-form $MYSQL_TEST_DIR/var/log/master-bin.000001 +# Change Author: JBM +# Change Date: 2005-12-22 +# Change: Comment out the exec of the binlog so test works for both SBR and RBR +#--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR +#--exec $MYSQL_BINLOG --short-form $MYSQL_TEST_DIR/var/log/master-bin.000001 # Let us check with LOAD DATA INFILE # (we do it after mysqlbinlog because the temp files names are not constant) @@ -74,7 +74,7 @@ insert into t1 values ('20040101000000',NULL), ('20040611093902',NULL); # # Now let us check how well we replicate statments reading TIMESTAMP fields -# (We should see the same data on master and on slave but it should differ +# (We should see the same data on master and on slave but it should differ # from originally inserted) # set time_zone='MET'; @@ -127,3 +127,4 @@ select * from t2; connection master; drop table t1, t2; sync_slave_with_master; + diff --git a/mysql-test/extra/rpl_tests/rpl_user_variables.test b/mysql-test/t/rpl_user_variables.test similarity index 96% rename from mysql-test/extra/rpl_tests/rpl_user_variables.test rename to mysql-test/t/rpl_user_variables.test index 256c244d4eb..b46a0fad02e 100644 --- a/mysql-test/extra/rpl_tests/rpl_user_variables.test +++ b/mysql-test/t/rpl_user_variables.test @@ -1,4 +1,3 @@ -# row-based and statement binlog difference in result files # # Test of replicating user variables # diff --git a/mysql-test/t/rpl_stm_view.test b/mysql-test/t/rpl_view.test similarity index 82% rename from mysql-test/t/rpl_stm_view.test rename to mysql-test/t/rpl_view.test index 39f39705f77..0e8c7514488 100644 --- a/mysql-test/t/rpl_stm_view.test +++ b/mysql-test/t/rpl_view.test @@ -1,5 +1,4 @@ # NYI - row-based cannot use CREATE ... SELECT ---source include/have_binlog_format_statement.inc source include/master-slave.inc; --disable_warnings @@ -10,7 +9,7 @@ reset master; --enable_warnings # -# Check that createion drop of view is replicated, also check replication of +# Check that creation drop of view is replicated, also check replication of # updating of view # connection master; @@ -46,5 +45,8 @@ select * from v1 order by a; connection master; drop table t1; sync_slave_with_master; ---replace_column 2 # 5 # -show binlog events limit 1,100; +# Change Author: JBM +# Change Date: 2005-12-22 +# Change: Commented out binlog events to work with SBR and RBR +#--replace_column 2 # 5 # +# show binlog events limit 1,100; diff --git a/mysql-test/t/trigger.test b/mysql-test/t/trigger.test index b4074897689..f2d9bb6c856 100644 --- a/mysql-test/t/trigger.test +++ b/mysql-test/t/trigger.test @@ -930,11 +930,8 @@ drop table t1, t2, t3; # operator. # create table t1 (a int); ---disable_warnings -drop procedure if exists p2; ---enable_warnings DELIMITER //; -CREATE PROCEDURE `p2`() +CREATE PROCEDURE `p1`() begin insert into t1 values (1); end// @@ -944,8 +941,8 @@ begin set done= not done; end// DELIMITER ;// -CALL p2(); -drop procedure p2; +CALL p1(); +drop procedure p1; drop table t1; # diff --git a/mysql-test/t/view.test b/mysql-test/t/view.test index 4ab2f49280d..bfa12a1ee33 100644 --- a/mysql-test/t/view.test +++ b/mysql-test/t/view.test @@ -2279,6 +2279,7 @@ drop table t1; # create table t1(f1 int, f2 int); insert into t1 values (null, 10), (null,2); +select f1, sum(f2) from t1 group by f1; create view v1 as select * from t1; select f1, sum(f2) from v1 group by f1; drop view v1; diff --git a/mysys/hash.c b/mysys/hash.c index d9084ed4fd3..165745986dc 100644 --- a/mysys/hash.c +++ b/mysys/hash.c @@ -36,9 +36,10 @@ typedef struct st_hash_info { static uint hash_mask(uint hashnr,uint buffmax,uint maxlength); static void movelink(HASH_LINK *array,uint pos,uint next_link,uint newlink); -static int hashcmp(HASH *hash,HASH_LINK *pos,const byte *key,uint length); +static int hashcmp(const HASH *hash, HASH_LINK *pos, const byte *key, + uint length); -static uint calc_hash(HASH *hash,const byte *key,uint length) +static uint calc_hash(const HASH *hash, const byte *key, uint length) { ulong nr1=1, nr2=4; hash->charset->coll->hash_sort(hash->charset,(uchar*) key,length,&nr1,&nr2); @@ -63,7 +64,6 @@ _hash_init(HASH *hash,CHARSET_INFO *charset, hash->key_offset=key_offset; hash->key_length=key_length; hash->blength=1; - hash->current_record= NO_RECORD; /* For the future */ hash->get_key=get_key; hash->free=free_element; hash->flags=flags; @@ -135,7 +135,6 @@ void my_hash_reset(HASH *hash) reset_dynamic(&hash->array); /* Set row pointers so that the hash can be reused at once */ hash->blength= 1; - hash->current_record= NO_RECORD; DBUG_VOID_RETURN; } @@ -147,7 +146,8 @@ void my_hash_reset(HASH *hash) */ static inline char* -hash_key(HASH *hash,const byte *record,uint *length,my_bool first) +hash_key(const HASH *hash, const byte *record, uint *length, + my_bool first) { if (hash->get_key) return (*hash->get_key)(record,length,first); @@ -163,8 +163,8 @@ static uint hash_mask(uint hashnr,uint buffmax,uint maxlength) return (hashnr & ((buffmax >> 1) -1)); } -static uint hash_rec_mask(HASH *hash,HASH_LINK *pos,uint buffmax, - uint maxlength) +static uint hash_rec_mask(const HASH *hash, HASH_LINK *pos, + uint buffmax, uint maxlength) { uint length; byte *key= (byte*) hash_key(hash,pos->data,&length,0); @@ -186,14 +186,25 @@ unsigned int rec_hashnr(HASH *hash,const byte *record) } - /* Search after a record based on a key */ - /* Sets info->current_ptr to found record */ +gptr hash_search(const HASH *hash, const byte *key, uint length) +{ + HASH_SEARCH_STATE state; + return hash_first(hash, key, length, &state); +} -gptr hash_search(HASH *hash,const byte *key,uint length) +/* + Search after a record based on a key + + NOTE + Assigns the number of the found record to HASH_SEARCH_STATE state +*/ + +gptr hash_first(const HASH *hash, const byte *key, uint length, + HASH_SEARCH_STATE *current_record) { HASH_LINK *pos; uint flag,idx; - DBUG_ENTER("hash_search"); + DBUG_ENTER("hash_first"); flag=1; if (hash->records) @@ -206,7 +217,7 @@ gptr hash_search(HASH *hash,const byte *key,uint length) if (!hashcmp(hash,pos,key,length)) { DBUG_PRINT("exit",("found key at %d",idx)); - hash->current_record= idx; + *current_record= idx; DBUG_RETURN (pos->data); } if (flag) @@ -218,31 +229,32 @@ gptr hash_search(HASH *hash,const byte *key,uint length) } while ((idx=pos->next) != NO_RECORD); } - hash->current_record= NO_RECORD; + *current_record= NO_RECORD; DBUG_RETURN(0); } /* Get next record with identical key */ /* Can only be called if previous calls was hash_search */ -gptr hash_next(HASH *hash,const byte *key,uint length) +gptr hash_next(const HASH *hash, const byte *key, uint length, + HASH_SEARCH_STATE *current_record) { HASH_LINK *pos; uint idx; - if (hash->current_record != NO_RECORD) + if (*current_record != NO_RECORD) { HASH_LINK *data=dynamic_element(&hash->array,0,HASH_LINK*); - for (idx=data[hash->current_record].next; idx != NO_RECORD ; idx=pos->next) + for (idx=data[*current_record].next; idx != NO_RECORD ; idx=pos->next) { pos=data+idx; if (!hashcmp(hash,pos,key,length)) { - hash->current_record= idx; + *current_record= idx; return pos->data; } } - hash->current_record=NO_RECORD; + *current_record= NO_RECORD; } return 0; } @@ -281,7 +293,8 @@ static void movelink(HASH_LINK *array,uint find,uint next_link,uint newlink) != 0 key of record != key */ -static int hashcmp(HASH *hash,HASH_LINK *pos,const byte *key,uint length) +static int hashcmp(const HASH *hash, HASH_LINK *pos, const byte *key, + uint length) { uint rec_keylength; byte *rec_key= (byte*) hash_key(hash,pos->data,&rec_keylength,1); @@ -307,7 +320,6 @@ my_bool my_hash_insert(HASH *info,const byte *record) if (!(empty=(HASH_LINK*) alloc_dynamic(&info->array))) return(TRUE); /* No more memory */ - info->current_record= NO_RECORD; data=dynamic_element(&info->array,0,HASH_LINK*); halfbuff= info->blength >> 1; @@ -450,7 +462,6 @@ my_bool hash_delete(HASH *hash,byte *record) } if ( --(hash->records) < hash->blength >> 1) hash->blength>>=1; - hash->current_record= NO_RECORD; lastpos=data+hash->records; /* Remove link to record */ @@ -543,7 +554,6 @@ my_bool hash_update(HASH *hash,byte *record,byte *old_key,uint old_key_length) if ((idx=pos->next) == NO_RECORD) DBUG_RETURN(1); /* Not found in links */ } - hash->current_record= NO_RECORD; org_link= *pos; empty=idx; @@ -593,10 +603,10 @@ byte *hash_element(HASH *hash,uint idx) isn't changed */ -void hash_replace(HASH *hash, uint idx, byte *new_row) +void hash_replace(HASH *hash, HASH_SEARCH_STATE *current_record, byte *new_row) { - if (idx != NO_RECORD) /* Safety */ - dynamic_element(&hash->array,idx,HASH_LINK*)->data=new_row; + if (*current_record != NO_RECORD) /* Safety */ + dynamic_element(&hash->array, *current_record, HASH_LINK*)->data= new_row; } diff --git a/mysys/testhash.c b/mysys/testhash.c index 72badffdbcd..d15016113cd 100644 --- a/mysys/testhash.c +++ b/mysys/testhash.c @@ -74,7 +74,7 @@ static int do_test() bzero((char*) key1,sizeof(key1[0])*1000); printf("- Creating hash\n"); - if (hash_init(&hash,recant/2,0,6,0,free_record,0)) + if (hash_init(&hash, default_charset_info, recant/2, 0, 6, 0, free_record, 0)) goto err; printf("- Writing records:\n"); @@ -172,15 +172,16 @@ static int do_test() break; if (key1[j] > 1) { + HASH_SEARCH_STATE state; printf("- Testing identical read\n"); sprintf(key,"%6d",j); pos=1; - if (!(recpos=hash_search(&hash,key,0))) + if (!(recpos= hash_first(&hash, key, 0, &state))) { printf("can't find key1: \"%s\"\n",key); goto err; } - while (hash_next(&hash,key,0) && pos < (ulong) (key1[j]+10)) + while (hash_next(&hash, key, 0, &state) && pos < (ulong) (key1[j]+10)) pos++; if (pos != (ulong) key1[j]) { @@ -189,7 +190,7 @@ static int do_test() } } printf("- Creating output heap-file 2\n"); - if (hash_init(&hash2,hash.records,0,0,hash2_key,free_record,0)) + if (hash_init(&hash2, default_charset_info, hash.records, 0, 0, hash2_key, free_record,0)) goto err; printf("- Copying and removing records\n"); diff --git a/scripts/make_binary_distribution.sh b/scripts/make_binary_distribution.sh index dcd0b948694..f1ed07382b6 100644 --- a/scripts/make_binary_distribution.sh +++ b/scripts/make_binary_distribution.sh @@ -92,7 +92,9 @@ esac mkdir $BASE $BASE/bin $BASE/docs \ $BASE/include $BASE/lib $BASE/support-files $BASE/share $BASE/scripts \ $BASE/mysql-test $BASE/mysql-test/t $BASE/mysql-test/r \ - $BASE/mysql-test/include $BASE/mysql-test/std_data $BASE/mysql-test/lib + $BASE/mysql-test/include $BASE/mysql-test/std_data $BASE/mysql-test/lib \ + $BASE/mysql-test/extra \ + $BASE/mysql-test/extra/binlog_tests $BASE/mysql-test/extra/rpl_tests if [ $BASE_SYSTEM != "netware" ] ; then mkdir $BASE/share/mysql $BASE/tests $BASE/sql-bench $BASE/man \ @@ -242,6 +244,8 @@ $CP mysql-test/t/*.test mysql-test/t/*.imtest \ mysql-test/t/*.slave-mi mysql-test/t/*.sh mysql-test/t/*.sql $BASE/mysql-test/t $CP mysql-test/r/*.result mysql-test/r/*.require \ $BASE/mysql-test/r +$CP mysql-test/extra/binlog_tests/*.test $BASE/mysql-test/extra/binlog_tests +$CP mysql-test/extra/rpl_tests/*.test $BASE/mysql-test/extra/rpl_tests if [ $BASE_SYSTEM != "netware" ] ; then chmod a+x $BASE/bin/* diff --git a/sql-bench/bench-init.pl.sh b/sql-bench/bench-init.pl.sh index d61551ffb3b..31282d06abf 100644 --- a/sql-bench/bench-init.pl.sh +++ b/sql-bench/bench-init.pl.sh @@ -447,7 +447,7 @@ All benchmarks takes the following options: --create-options=# Extra argument to all create statements. If you for example want to create all MySQL tables as BDB tables use: - --create-options=TYPE=BDB + --create-options=ENGINE=BDB --database (Default $opt_database) In which database the test tables are created. diff --git a/sql-bench/server-cfg.sh b/sql-bench/server-cfg.sh index b0c40102a6b..75528b24b77 100644 --- a/sql-bench/server-cfg.sh +++ b/sql-bench/server-cfg.sh @@ -174,29 +174,29 @@ sub new # Some fixes that depends on the environment if (defined($main::opt_create_options) && - $main::opt_create_options =~ /type=heap/i) + $main::opt_create_options =~ /engine=heap/i) { $limits{'working_blobs'} = 0; # HEAP tables can't handle BLOB's } if (defined($main::opt_create_options) && - $main::opt_create_options =~ /type=innodb/i) + $main::opt_create_options =~ /engine=innodb/i) { $self->{'transactions'} = 1; # Transactions enabled } if (defined($main::opt_create_options) && - $main::opt_create_options =~ /type=ndb/i) + $main::opt_create_options =~ /engine=ndb/i) { $self->{'transactions'} = 1; # Transactions enabled $limits{'max_columns'} = 90; # Max number of columns in table $limits{'max_tables'} = 32; # No comments } if (defined($main::opt_create_options) && - $main::opt_create_options =~ /type=bdb/i) + $main::opt_create_options =~ /engine=bdb/i) { $self->{'transactions'} = 1; # Transactions enabled } if (defined($main::opt_create_options) && - $main::opt_create_options =~ /type=gemini/i) + $main::opt_create_options =~ /engine=gemini/i) { $limits{'working_blobs'} = 0; # Blobs not implemented yet $limits{'max_tables'} = 500; diff --git a/sql/ha_federated.cc b/sql/ha_federated.cc index 944333496ae..bc087ac25e7 100644 --- a/sql/ha_federated.cc +++ b/sql/ha_federated.cc @@ -2607,8 +2607,7 @@ int ha_federated::stash_remote_error() { DBUG_ENTER("ha_federated::stash_remote_error()"); remote_error_number= mysql_errno(mysql); - my_snprintf(remote_error_buf, sizeof(remote_error_buf), "%s", - mysql_error(mysql)); + strmake(remote_error_buf, mysql_error(mysql), sizeof(remote_error_buf)-1); DBUG_RETURN(HA_FEDERATED_ERROR_WITH_REMOTE_SYSTEM); } diff --git a/sql/ha_ndbcluster.cc b/sql/ha_ndbcluster.cc index dfbe1993ea8..a72bfa7d170 100644 --- a/sql/ha_ndbcluster.cc +++ b/sql/ha_ndbcluster.cc @@ -370,7 +370,8 @@ Thd_ndb::~Thd_ndb() if (ndb) { #ifndef DBUG_OFF - Ndb::Free_list_usage tmp; tmp.m_name= 0; + Ndb::Free_list_usage tmp; + tmp.m_name= 0; while (ndb->get_free_list_usage(&tmp)) { uint leaked= (uint) tmp.m_created - tmp.m_free; @@ -382,8 +383,8 @@ Thd_ndb::~Thd_ndb() } #endif delete ndb; + ndb= NULL; } - ndb= NULL; changed_tables.empty(); } @@ -3359,6 +3360,10 @@ int ha_ndbcluster::external_lock(THD *thd, int lock_type) if (lock_type != F_UNLCK) { DBUG_PRINT("info", ("lock_type != F_UNLCK")); + if (!thd->transaction.on) + m_transaction_on= FALSE; + else + m_transaction_on= thd->variables.ndb_use_transactions; if (!thd_ndb->lock_count++) { PRINT_OPTION_FLAGS(thd); @@ -3373,7 +3378,8 @@ int ha_ndbcluster::external_lock(THD *thd, int lock_type) ERR_RETURN(ndb->getNdbError()); no_uncommitted_rows_reset(thd); thd_ndb->stmt= trans; - trans_register_ha(thd, FALSE, &ndbcluster_hton); + if (m_transaction_on) + trans_register_ha(thd, FALSE, &ndbcluster_hton); } else { @@ -3388,7 +3394,8 @@ int ha_ndbcluster::external_lock(THD *thd, int lock_type) ERR_RETURN(ndb->getNdbError()); no_uncommitted_rows_reset(thd); thd_ndb->all= trans; - trans_register_ha(thd, TRUE, &ndbcluster_hton); + if (m_transaction_on) + trans_register_ha(thd, TRUE, &ndbcluster_hton); /* If this is the start of a LOCK TABLE, a table look @@ -3422,10 +3429,6 @@ int ha_ndbcluster::external_lock(THD *thd, int lock_type) m_ha_not_exact_count= !thd->variables.ndb_use_exact_count; m_autoincrement_prefetch= (ha_rows) thd->variables.ndb_autoincrement_prefetch_sz; - if (!thd->transaction.on) - m_transaction_on= FALSE; - else - m_transaction_on= thd->variables.ndb_use_transactions; m_active_trans= thd_ndb->all ? thd_ndb->all : thd_ndb->stmt; DBUG_ASSERT(m_active_trans); @@ -5172,7 +5175,8 @@ int ndbcluster_end(ha_panic_function type) if (g_ndb) { #ifndef DBUG_OFF - Ndb::Free_list_usage tmp; tmp.m_name= 0; + Ndb::Free_list_usage tmp; + tmp.m_name= 0; while (g_ndb->get_free_list_usage(&tmp)) { uint leaked= (uint) tmp.m_created - tmp.m_free; @@ -5184,10 +5188,9 @@ int ndbcluster_end(ha_panic_function type) } #endif delete g_ndb; + g_ndb= NULL; } - g_ndb= NULL; - if (g_ndb_cluster_connection) - delete g_ndb_cluster_connection; + delete g_ndb_cluster_connection; g_ndb_cluster_connection= NULL; hash_free(&ndbcluster_open_tables); @@ -8075,7 +8078,8 @@ ndbcluster_show_status(THD* thd, stat_print_fn *stat_print, if (get_thd_ndb(thd) && get_thd_ndb(thd)->ndb) { Ndb* ndb= (get_thd_ndb(thd))->ndb; - Ndb::Free_list_usage tmp; tmp.m_name= 0; + Ndb::Free_list_usage tmp; + tmp.m_name= 0; while (ndb->get_free_list_usage(&tmp)) { uint buflen= diff --git a/sql/handler.cc b/sql/handler.cc index 17ee2f3b819..8befec80529 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -1178,6 +1178,7 @@ int ha_release_temporary_latches(THD *thd) #ifdef WITH_INNOBASE_STORAGE_ENGINE innobase_release_temporary_latches(thd); #endif + return 0; } int ha_rollback_to_savepoint(THD *thd, SAVEPOINT *sv) @@ -2074,7 +2075,8 @@ int ha_enable_transaction(THD *thd, bool on) is an optimization hint that storage engine is free to ignore. So, let's commit an open transaction (if any) now. */ - error= end_trans(thd, COMMIT); + if (!(error= ha_commit_stmt(thd))) + error= end_trans(thd, COMMIT); } DBUG_RETURN(error); } @@ -2788,7 +2790,7 @@ bool ha_show_status(THD *thd, handlerton *db_type, enum ha_stat_type stat) - Row-based replication is on - It is not a temporary table - The binlog is enabled - - The table shall be binlogged (binlog_*_db rules) [Seems disabled /Matz] + - The table shall be binlogged (binlog_*_db rules) */ #ifdef HAVE_ROW_BASED_REPLICATION @@ -2797,7 +2799,8 @@ static bool check_table_binlog_row_based(THD *thd, TABLE *table) return binlog_row_based && thd && (thd->options & OPTION_BIN_LOG) && - (table->s->tmp_table == NO_TMP_TABLE); + (table->s->tmp_table == NO_TMP_TABLE) && + binlog_filter->db_ok(table->s->db.str); } template int binlog_log_row(TABLE* table, diff --git a/sql/item.cc b/sql/item.cc index bf5718bb54d..fa5c2b5cc3b 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -4925,6 +4925,12 @@ int Item_ref::save_in_field(Field *to, bool no_conversions) } +void Item_ref::save_org_in_field(Field *field) +{ + (*ref)->save_org_in_field(field); +} + + void Item_ref::make_field(Send_field *field) { (*ref)->make_field(field); diff --git a/sql/item.h b/sql/item.h index c240733bd04..5de69013605 100644 --- a/sql/item.h +++ b/sql/item.h @@ -1782,11 +1782,7 @@ public: void make_field(Send_field *field); bool fix_fields(THD *, Item **); int save_in_field(Field *field, bool no_conversions); - void save_org_in_field(Field *field) - { - (*ref)->save_org_in_field(field); - null_value= (*ref)->null_value; - } + void save_org_in_field(Field *field); enum Item_result result_type () const { return (*ref)->result_type(); } enum_field_types field_type() const { return (*ref)->field_type(); } Field *get_tmp_table_field() diff --git a/sql/item_xmlfunc.cc b/sql/item_xmlfunc.cc index 79a5c8e6445..bb5775780fa 100644 --- a/sql/item_xmlfunc.cc +++ b/sql/item_xmlfunc.cc @@ -715,7 +715,7 @@ String *Item_nodeset_func_predicate::val_nodeset(String *str) ((XPathFilter*)str)->append_element(flt->num, pos++); } return str; -}; +} String *Item_nodeset_func_elementbyindex::val_nodeset(String *nodeset) diff --git a/sql/lock.cc b/sql/lock.cc index f544708d075..8e24c56799d 100644 --- a/sql/lock.cc +++ b/sql/lock.cc @@ -731,15 +731,16 @@ int lock_table_name(THD *thd, TABLE_LIST *table_list) char key[MAX_DBKEY_LENGTH]; char *db= table_list->db; uint key_length; + HASH_SEARCH_STATE state; DBUG_ENTER("lock_table_name"); DBUG_PRINT("enter",("db: %s name: %s", db, table_list->table_name)); key_length= create_table_def_key(thd, key, table_list, 0); /* Only insert the table if we haven't insert it already */ - for (table=(TABLE*) hash_search(&open_cache,(byte*) key,key_length) ; + for (table=(TABLE*) hash_first(&open_cache, (byte*)key, key_length, &state); table ; - table = (TABLE*) hash_next(&open_cache,(byte*) key,key_length)) + table = (TABLE*) hash_next(&open_cache,(byte*) key,key_length, &state)) { if (table->in_use == thd) { diff --git a/sql/log.cc b/sql/log.cc index 44d3869e9d5..dd08ca7b9b5 100644 --- a/sql/log.cc +++ b/sql/log.cc @@ -241,13 +241,15 @@ static int binlog_savepoint_set(THD *thd, void *sv) DBUG_ENTER("binlog_savepoint_set"); binlog_trx_data *const trx_data= (binlog_trx_data*) thd->ha_data[binlog_hton.slot]; - IO_CACHE *trans_log= &trx_data->trans_log; - DBUG_ASSERT(mysql_bin_log.is_open() && my_b_tell(trans_log)); + DBUG_ASSERT(mysql_bin_log.is_open() && my_b_tell(&trx_data->trans_log)); - *(my_off_t *)sv= my_b_tell(trans_log); + *(my_off_t *)sv= my_b_tell(&trx_data->trans_log); /* Write it to the binary log */ - Query_log_event qinfo(thd, thd->query, thd->query_length, TRUE, FALSE); - DBUG_RETURN(mysql_bin_log.write(&qinfo)); + + int const error= + thd->binlog_query(THD::STMT_QUERY_TYPE, + thd->query, thd->query_length, TRUE, FALSE); + DBUG_RETURN(error); } static int binlog_savepoint_rollback(THD *thd, void *sv) @@ -265,8 +267,10 @@ static int binlog_savepoint_rollback(THD *thd, void *sv) */ if (unlikely(thd->options & OPTION_STATUS_NO_TRANS_UPDATE)) { - Query_log_event qinfo(thd, thd->query, thd->query_length, TRUE, FALSE); - DBUG_RETURN(mysql_bin_log.write(&qinfo)); + int const error= + thd->binlog_query(THD::STMT_QUERY_TYPE, + thd->query, thd->query_length, TRUE, FALSE); + DBUG_RETURN(error); } reinit_io_cache(trans_log, WRITE_CACHE, *(my_off_t *)sv, 0, 0); DBUG_RETURN(0); diff --git a/sql/log_event.cc b/sql/log_event.cc index 6e256a0c295..eb61cd1f407 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -118,13 +118,24 @@ static char *pretty_print_str(char *packet, char *str, int len) /* - slave_load_file_stem() + Creates a temporary name for load data infile: + + SYNOPSIS + slave_load_file_stem() + buf Store new filename here + file_id File_id (part of file name) + event_server_id Event_id (part of file name) + ext Extension for file name + + RETURN + Pointer to start of extension */ #if defined(HAVE_REPLICATION) && !defined(MYSQL_CLIENT) -static inline char* slave_load_file_stem(char*buf, uint file_id, - int event_server_id) +static char *slave_load_file_stem(char *buf, uint file_id, + int event_server_id, const char *ext) { + char *res; fn_format(buf,"SQL_LOAD-",slave_load_tmpdir, "", MY_UNPACK_FILENAME); to_unix_path(buf); @@ -133,7 +144,9 @@ static inline char* slave_load_file_stem(char*buf, uint file_id, *buf++ = '-'; buf = int10_to_str(event_server_id, buf, 10); *buf++ = '-'; - return int10_to_str(file_id, buf, 10); + res= int10_to_str(file_id, buf, 10); + strmov(res, ext); // Add extension last + return res; // Pointer to extension } #endif @@ -928,7 +941,6 @@ void Log_event::print_header(FILE* file, PRINT_EVENT_INFO* print_event_info) /* Pretty-print event common header if header is exactly 19 bytes */ if (print_event_info->common_header_len == LOG_EVENT_MINIMAL_HEADER_LEN) { - DBUG_ASSERT(hexdump_from == (unsigned long) hexdump_from); fprintf(file, "# Position Timestamp Type Master ID " "Size Master Pos Flags \n"); fprintf(file, "# %8.8lx %02x %02x %02x %02x %02x " @@ -954,7 +966,6 @@ void Log_event::print_header(FILE* file, PRINT_EVENT_INFO* print_event_info) if (i % 16 == 15) { - DBUG_ASSERT(hexdump_from == (unsigned long) hexdump_from); fprintf(file, "# %8.8lx %-48.48s |%16s|\n", (unsigned long) (hexdump_from + (i & 0xfffffff0)), hex_string, char_string); @@ -968,12 +979,10 @@ void Log_event::print_header(FILE* file, PRINT_EVENT_INFO* print_event_info) *c= '\0'; /* Non-full last line */ - if (hex_string[0]) { - DBUG_ASSERT(hexdump_from == (unsigned long) hexdump_from); + if (hex_string[0]) fprintf(file, "# %8.8lx %-48.48s |%s|\n# ", (unsigned long) (hexdump_from + (i & 0xfffffff0)), hex_string, char_string); - } } } @@ -4238,16 +4247,15 @@ void Create_file_log_event::pack_info(Protocol *protocol) #if defined(HAVE_REPLICATION) && !defined(MYSQL_CLIENT) int Create_file_log_event::exec_event(struct st_relay_log_info* rli) { - char proc_info[17+FN_REFLEN+10], *fname_buf= proc_info+17; - char *p; + char proc_info[17+FN_REFLEN+10], *fname_buf; + char *ext; int fd = -1; IO_CACHE file; int error = 1; bzero((char*)&file, sizeof(file)); - p = slave_load_file_stem(fname_buf, file_id, server_id); - strmov(p, ".info"); // strmov takes less code than memcpy - strnmov(proc_info, STRING_WITH_LEN("Making temp file ")); // no end 0 + fname_buf= strmov(proc_info, "Making temp file "); + ext= slave_load_file_stem(fname_buf, file_id, server_id, ".info"); thd->proc_info= proc_info; my_delete(fname_buf, MYF(0)); // old copy may exist already if ((fd= my_create(fname_buf, CREATE_MODE, @@ -4262,12 +4270,11 @@ int Create_file_log_event::exec_event(struct st_relay_log_info* rli) } // a trick to avoid allocating another buffer - strmov(p, ".data"); - fname = fname_buf; - fname_len = (uint)(p-fname) + 5; + fname= fname_buf; + fname_len= (uint) (strmov(ext, ".data") - fname); if (write_base(&file)) { - strmov(p, ".info"); // to have it right in the error message + strmov(ext, ".info"); // to have it right in the error message slave_print_msg(ERROR_LEVEL, rli, my_errno, "Error in Create_file event: could not write to file '%s'", fname_buf); @@ -4413,13 +4420,12 @@ int Append_block_log_event::get_create_or_append() const int Append_block_log_event::exec_event(struct st_relay_log_info* rli) { char proc_info[17+FN_REFLEN+10], *fname= proc_info+17; - char *p= slave_load_file_stem(fname, file_id, server_id); int fd; int error = 1; DBUG_ENTER("Append_block_log_event::exec_event"); - memcpy(p, ".data", 6); - strnmov(proc_info, STRING_WITH_LEN("Making temp file ")); // no end 0 + fname= strmov(proc_info, "Making temp file "); + slave_load_file_stem(fname, file_id, server_id, ".data"); thd->proc_info= proc_info; if (get_create_or_append()) { @@ -4545,10 +4551,9 @@ void Delete_file_log_event::pack_info(Protocol *protocol) int Delete_file_log_event::exec_event(struct st_relay_log_info* rli) { char fname[FN_REFLEN+10]; - char *p= slave_load_file_stem(fname, file_id, server_id); - memcpy(p, ".data", 6); + char *ext= slave_load_file_stem(fname, file_id, server_id, ".data"); (void) my_delete(fname, MYF(MY_WME)); - memcpy(p, ".info", 6); + strmov(ext, ".info"); (void) my_delete(fname, MYF(MY_WME)); return Log_event::exec_event(rli); } @@ -4641,13 +4646,13 @@ void Execute_load_log_event::pack_info(Protocol *protocol) int Execute_load_log_event::exec_event(struct st_relay_log_info* rli) { char fname[FN_REFLEN+10]; - char *p= slave_load_file_stem(fname, file_id, server_id); + char *ext; int fd; - int error = 1; + int error= 1; IO_CACHE file; - Load_log_event* lev = 0; + Load_log_event *lev= 0; - memcpy(p, ".info", 6); + ext= slave_load_file_stem(fname, file_id, server_id, ".info"); if ((fd = my_open(fname, O_RDONLY | O_BINARY | O_NOFOLLOW, MYF(MY_WME))) < 0 || init_io_cache(&file, fd, IO_SIZE, READ_CACHE, (my_off_t)0, 0, @@ -4708,7 +4713,7 @@ int Execute_load_log_event::exec_event(struct st_relay_log_info* rli) fd= -1; } (void) my_delete(fname, MYF(MY_WME)); - memcpy(p, ".data", 6); + memcpy(ext, ".data", 6); (void) my_delete(fname, MYF(MY_WME)); error = 0; @@ -4906,11 +4911,10 @@ Execute_load_query_log_event::exec_event(struct st_relay_log_info* rli) memcpy(p, query, fn_pos_start); p+= fn_pos_start; fname= (p= strmake(p, STRING_WITH_LEN(" INFILE \'"))); - p= slave_load_file_stem(p, file_id, server_id); - fname_end= (p= strmake(p, STRING_WITH_LEN(".data"))); + p= slave_load_file_stem(p, file_id, server_id, ".data"); + fname_end= p= strend(p); // Safer than p=p+5 *(p++)='\''; - switch (dup_handling) - { + switch (dup_handling) { case LOAD_DUP_IGNORE: p= strmake(p, STRING_WITH_LEN(" IGNORE")); break; diff --git a/sql/mysqld.cc b/sql/mysqld.cc index f40f27d5a32..0e06351e892 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -1490,7 +1490,7 @@ static void network_init(void) { if (((ret= bind(ip_sock, my_reinterpret_cast(struct sockaddr *) (&IPaddr), sizeof(IPaddr))) >= 0) || - (socket_errno != EADDRINUSE) || + (socket_errno != SOCKET_EADDRINUSE) || (waited >= mysqld_port_timeout)) break; sql_print_information("Retrying bind on TCP/IP port %u", mysqld_port); @@ -1702,7 +1702,7 @@ void end_thread(THD *thd, bool put_in_cache) wake_thread--; thd=thread_cache.get(); thd->real_id=pthread_self(); - thd->thread_stack= (char *) &thd; + thd->thread_stack= (char*) &thd; // For store_globals (void) thd->store_globals(); thd->thr_create_time= time(NULL); threads.append(thd); diff --git a/sql/opt_range.cc b/sql/opt_range.cc index f090fac2ecf..7dd694f3411 100644 --- a/sql/opt_range.cc +++ b/sql/opt_range.cc @@ -6955,6 +6955,7 @@ bool QUICK_ROR_UNION_SELECT::check_if_keys_used(List *fields) /* Create quick select from ref/ref_or_null scan. + SYNOPSIS get_quick_select_for_ref() thd Thread handle @@ -6974,15 +6975,18 @@ bool QUICK_ROR_UNION_SELECT::check_if_keys_used(List *fields) QUICK_RANGE_SELECT *get_quick_select_for_ref(THD *thd, TABLE *table, TABLE_REF *ref, ha_rows records) { - MEM_ROOT *old_root= thd->mem_root; - /* The following call may change thd->mem_root */ - QUICK_RANGE_SELECT *quick= new QUICK_RANGE_SELECT(thd, table, ref->key, 0); - /* save mem_root set by QUICK_RANGE_SELECT constructor */ - MEM_ROOT *alloc= thd->mem_root; + MEM_ROOT *old_root, *alloc; + QUICK_RANGE_SELECT *quick; KEY *key_info = &table->key_info[ref->key]; KEY_PART *key_part; QUICK_RANGE *range; uint part; + + old_root= thd->mem_root; + /* The following call may change thd->mem_root */ + quick= new QUICK_RANGE_SELECT(thd, table, ref->key, 0); + /* save mem_root set by QUICK_RANGE_SELECT constructor */ + alloc= thd->mem_root; /* return back default mem_root (thd->mem_root) changed by QUICK_RANGE_SELECT constructor diff --git a/sql/parse_file.cc b/sql/parse_file.cc index 0b2bfe83b6f..3cddc879825 100644 --- a/sql/parse_file.cc +++ b/sql/parse_file.cc @@ -956,6 +956,6 @@ File_parser_dummy_hook::process_unknown_string(char *&unknown_key, char *end) { DBUG_ENTER("file_parser_dummy_hook::process_unknown_string"); - DBUG_PRINT("info", ("unknown key:%60s", unknown_key)); + DBUG_PRINT("info", ("Unknown key: '%60s'", unknown_key)); DBUG_RETURN(FALSE); } diff --git a/sql/rpl_tblmap.h b/sql/rpl_tblmap.h index cfc2d7c2c6c..23864bd329e 100644 --- a/sql/rpl_tblmap.h +++ b/sql/rpl_tblmap.h @@ -54,10 +54,6 @@ private: public: - enum { - NO_TABLE = ULONG_MAX - }; - enum enum_error { ERR_NO_ERROR = 0, ERR_LIMIT_EXCEEDED, diff --git a/sql/set_var.cc b/sql/set_var.cc index 377b4fd6f3f..dd4d36bc421 100644 --- a/sql/set_var.cc +++ b/sql/set_var.cc @@ -734,9 +734,9 @@ SHOW_VAR init_vars[]= { {sys_have_partition_db.name,(char*) &have_partition_db, SHOW_HAVE}, {sys_have_query_cache.name, (char*) &have_query_cache, SHOW_HAVE}, {sys_have_raid.name, (char*) &have_raid, SHOW_HAVE}, + {sys_have_row_based_replication.name, (char*) &have_row_based_replication, SHOW_HAVE}, {sys_have_rtree_keys.name, (char*) &have_rtree_keys, SHOW_HAVE}, {sys_have_symlink.name, (char*) &have_symlink, SHOW_HAVE}, - {sys_have_row_based_replication.name, (char*) &have_row_based_replication, SHOW_HAVE}, {"init_connect", (char*) &sys_init_connect, SHOW_SYS}, {"init_file", (char*) &opt_init_file, SHOW_CHAR_PTR}, {"init_slave", (char*) &sys_init_slave, SHOW_SYS}, diff --git a/sql/sp.cc b/sql/sp.cc index c85c1f2afef..f70e150419a 100644 --- a/sql/sp.cc +++ b/sql/sp.cc @@ -398,14 +398,14 @@ db_load_routine(THD *thd, int type, sp_name *name, sp_head **sphp, const char *body, st_sp_chistics &chistics, const char *definer, longlong created, longlong modified) { - LEX *oldlex= thd->lex, newlex; - sp_rcontext *save_spcont= thd->spcont; + LEX *old_lex= thd->lex, newlex; String defstr; char olddb[128]; bool dbchanged; ulong old_sql_mode= thd->variables.sql_mode; - ha_rows select_limit= thd->variables.select_limit; - int ret= SP_INTERNAL_ERROR; + ha_rows old_select_limit= thd->variables.select_limit; + sp_rcontext *old_spcont= thd->spcont; + int ret; thd->variables.sql_mode= sql_mode; thd->variables.select_limit= HA_POS_ERROR; @@ -421,7 +421,10 @@ db_load_routine(THD *thd, int type, sp_name *name, sp_head **sphp, returns, strlen(returns), body, strlen(body), &chistics)) + { + ret= SP_INTERNAL_ERROR; goto end; + } dbchanged= FALSE; if ((ret= sp_use_new_db(thd, name->m_db.str, olddb, sizeof(olddb), @@ -450,10 +453,10 @@ db_load_routine(THD *thd, int type, sp_name *name, sp_head **sphp, (*sphp)->optimize(); } end: - thd->spcont= save_spcont; + thd->spcont= old_spcont; thd->variables.sql_mode= old_sql_mode; - thd->variables.select_limit= select_limit; - thd->lex= oldlex; + thd->variables.select_limit= old_select_limit; + thd->lex= old_lex; return ret; } @@ -927,7 +930,6 @@ sp_find_routine(THD *thd, int type, sp_name *name, sp_cache **cp, ulong depth= (type == TYPE_ENUM_PROCEDURE ? thd->variables.max_sp_recursion_depth : 0); - DBUG_ENTER("sp_find_routine"); DBUG_PRINT("enter", ("name: %.*s.%.*s, type: %d, cache only %d", name->m_db.length, name->m_db.str, @@ -937,6 +939,11 @@ sp_find_routine(THD *thd, int type, sp_name *name, sp_cache **cp, if ((sp= sp_cache_lookup(cp, name))) { ulong level; + sp_head *new_sp; + const char *returns= ""; + char definer[HOSTNAME_LENGTH+USERNAME_LENGTH+2]; + String retstr(64); + DBUG_PRINT("info", ("found: 0x%lx", (ulong)sp)); if (sp->m_first_free_instance) { @@ -947,7 +954,7 @@ sp_find_routine(THD *thd, int type, sp_name *name, sp_cache **cp, DBUG_ASSERT(!(sp->m_first_free_instance->m_flags & sp_head::IS_INVOKED)); if (sp->m_first_free_instance->m_recursion_level > depth) { - sp->recursion_level_error(); + sp->recursion_level_error(thd); DBUG_RETURN(0); } DBUG_RETURN(sp->m_first_free_instance); @@ -955,37 +962,32 @@ sp_find_routine(THD *thd, int type, sp_name *name, sp_cache **cp, level= sp->m_last_cached_sp->m_recursion_level + 1; if (level > depth) { - sp->recursion_level_error(); + sp->recursion_level_error(thd); DBUG_RETURN(0); } + + strxmov(definer, sp->m_definer_user.str, "@", + sp->m_definer_host.str, NullS); + if (type == TYPE_ENUM_FUNCTION) { - sp_head *new_sp; - const char *returns= ""; - char definer[HOSTNAME_LENGTH+USERNAME_LENGTH+2]; - String retstr(64); - strxmov(definer, sp->m_definer_user.str, "@", - sp->m_definer_host.str, NullS); - if (type == TYPE_ENUM_FUNCTION) - { - sp_returns_type(thd, retstr, sp); - returns= retstr.ptr(); - } - if (db_load_routine(thd, type, name, &new_sp, - sp->m_sql_mode, sp->m_params.str, returns, - sp->m_body.str, *sp->m_chistics, definer, - sp->m_created, sp->m_modified) == SP_OK) - { - sp->m_last_cached_sp->m_next_cached_sp= new_sp; - new_sp->m_recursion_level= level; - new_sp->m_first_instance= sp; - sp->m_last_cached_sp= sp->m_first_free_instance= new_sp; - DBUG_PRINT("info", ("added level: 0x%lx, level: %lu, flags %x", + sp_returns_type(thd, retstr, sp); + returns= retstr.ptr(); + } + if (db_load_routine(thd, type, name, &new_sp, + sp->m_sql_mode, sp->m_params.str, returns, + sp->m_body.str, *sp->m_chistics, definer, + sp->m_created, sp->m_modified) == SP_OK) + { + sp->m_last_cached_sp->m_next_cached_sp= new_sp; + new_sp->m_recursion_level= level; + new_sp->m_first_instance= sp; + sp->m_last_cached_sp= sp->m_first_free_instance= new_sp; + DBUG_PRINT("info", ("added level: 0x%lx, level: %lu, flags %x", (ulong)new_sp, new_sp->m_recursion_level, new_sp->m_flags)); - DBUG_RETURN(new_sp); - } - DBUG_RETURN(0); + DBUG_RETURN(new_sp); } + DBUG_RETURN(0); } if (!cache_only) { diff --git a/sql/sp_head.cc b/sql/sp_head.cc index 63d1388473e..1d171d929f3 100644 --- a/sql/sp_head.cc +++ b/sql/sp_head.cc @@ -24,6 +24,13 @@ #include "sp_rcontext.h" #include "sp_cache.h" +/* + Sufficient max length of printed destinations and frame offsets (all uints). +*/ +#define SP_INSTR_UINT_MAXLEN 8 +#define SP_STMT_PRINT_MAXLEN 40 + + Item_result sp_map_result_type(enum enum_field_types type) { @@ -876,17 +883,17 @@ subst_spvars(THD *thd, sp_instr *instr, LEX_STRING *query_str) SYNOPSIS sp_head::recursion_level_error() + thd Thread handle NOTE For functions and triggers we return error about prohibited recursion. For stored procedures we return about reaching recursion limit. */ -void sp_head::recursion_level_error() +void sp_head::recursion_level_error(THD *thd) { if (m_type == TYPE_ENUM_PROCEDURE) { - THD *thd= current_thd; my_error(ER_SP_RECURSION_LIMIT, MYF(0), thd->variables.max_sp_recursion_depth, m_name.str); @@ -937,14 +944,15 @@ sp_head::execute(THD *thd) DBUG_ASSERT(!(m_flags & IS_INVOKED)); m_flags|= IS_INVOKED; m_first_instance->m_first_free_instance= m_next_cached_sp; - DBUG_PRINT("info", ("first free for 0x%lx ++: 0x%lx->0x%lx, level: %lu, flags %x", - (ulong)m_first_instance, this, m_next_cached_sp, - (m_next_cached_sp ? - m_next_cached_sp->m_recursion_level : - 0), - (m_next_cached_sp ? - m_next_cached_sp->m_flags : - 0))); + if (m_next_cached_sp) + { + DBUG_PRINT("info", + ("first free for 0x%lx ++: 0x%lx->0x%lx level: %lu flags %x", + (ulong)m_first_instance, (ulong) this, + (ulong) m_next_cached_sp, + m_next_cached_sp->m_recursion_level, + m_next_cached_sp->m_flags)); + } /* Check that if there are not any instances after this one then pointer to the last instance points on this instance or if there are @@ -1112,13 +1120,15 @@ sp_head::execute(THD *thd) state= EXECUTED; done: - DBUG_PRINT("info", ("err_status=%d killed=%d query_error=%d", + DBUG_PRINT("info", ("err_status: %d killed: %d query_error: %d", err_status, thd->killed, thd->query_error)); if (thd->killed) err_status= TRUE; - /* If the DB has changed, the pointer has changed too, but the - original thd->db will then have been freed */ + /* + If the DB has changed, the pointer has changed too, but the + original thd->db will then have been freed + */ if (dbchanged) { /* @@ -1129,10 +1139,11 @@ sp_head::execute(THD *thd) err_status|= mysql_change_db(thd, olddb, 1); } m_flags&= ~IS_INVOKED; - DBUG_PRINT("info", ("first free for 0x%lx --: 0x%lx->0x%lx, level: %lu, flags %x", - (ulong)m_first_instance, - m_first_instance->m_first_free_instance, this, - m_recursion_level, m_flags)); + DBUG_PRINT("info", + ("first free for 0x%lx --: 0x%lx->0x%lx, level: %lu, flags %x", + (ulong) m_first_instance, + (ulong) m_first_instance->m_first_free_instance, + (ulong) this, m_recursion_level, m_flags)); /* Check that we have one of following: @@ -1142,7 +1153,7 @@ sp_head::execute(THD *thd) 2) There are some free instances which mean that first free instance should go just after this one and recursion level of that free instance - should be on 1 more then recursion leven of this instance. + should be on 1 more then recursion level of this instance. */ DBUG_ASSERT((m_first_instance->m_first_free_instance == 0 && this == m_first_instance->m_last_cached_sp && @@ -1756,16 +1767,16 @@ sp_head::set_info(longlong created, longlong modified, void -sp_head::set_definer(char *definer, uint definerlen) + +sp_head::set_definer(const char *definer, uint definerlen) { - char *p= strrchr(definer, '@'); + const char *p= strrchr(definer, '@'); if (!p) { - m_definer_user.str= strmake_root(mem_root, "", 0); + m_definer_user.str= (char*) ""; m_definer_user.length= 0; - - m_definer_host.str= strmake_root(mem_root, "", 0); + m_definer_host.str= (char*) ""; m_definer_host.length= 0; } else @@ -1860,9 +1871,9 @@ sp_head::show_create_procedure(THD *thd) byte *sql_mode_str; ulong sql_mode_len; bool full_access; - DBUG_ENTER("sp_head::show_create_procedure"); DBUG_PRINT("info", ("procedure %s", m_name.str)); + LINT_INIT(sql_mode_str); LINT_INIT(sql_mode_len); @@ -2215,12 +2226,7 @@ sp_instr_stmt::execute(THD *thd, uint *nextp) DBUG_RETURN(res); } -/* - Sufficient max length of printed destinations and frame offsets (all uints). -*/ -#define SP_INSTR_UINT_MAXLEN 8 -#define SP_STMT_PRINT_MAXLEN 40 void sp_instr_stmt::print(String *str) { @@ -2242,16 +2248,16 @@ sp_instr_stmt::print(String *str) /* Copy the query string and replace '\n' with ' ' in the process */ for (i= 0 ; i < len ; i++) { - if (m_query.str[i] == '\n') - str->qs_append(' '); - else - str->qs_append(m_query.str[i]); + char c= m_query.str[i]; + if (c == '\n') + c= ' '; + str->qs_append(c); } if (m_query.length > SP_STMT_PRINT_MAXLEN) str->qs_append(STRING_WITH_LEN("...")); /* Indicate truncated string */ str->qs_append('"'); } -#undef SP_STMT_PRINT_MAXLEN + int sp_instr_stmt::exec_core(THD *thd, uint *nextp) @@ -2617,6 +2623,7 @@ sp_instr_hpush_jump::execute(THD *thd, uint *nextp) DBUG_RETURN(0); } + void sp_instr_hpush_jump::print(String *str) { @@ -2627,8 +2634,7 @@ sp_instr_hpush_jump::print(String *str) str->qs_append(m_dest); str->qs_append(' '); str->qs_append(m_frame); - switch (m_type) - { + switch (m_type) { case SP_HANDLER_NONE: str->qs_append(STRING_WITH_LEN(" NONE")); // This would be a bug break; @@ -2642,11 +2648,13 @@ sp_instr_hpush_jump::print(String *str) str->qs_append(STRING_WITH_LEN(" UNDO")); break; default: - str->qs_append(STRING_WITH_LEN(" UNKNOWN:")); // This would be a bug as well + // This would be a bug as well + str->qs_append(STRING_WITH_LEN(" UNKNOWN:")); str->qs_append(m_type); } } + uint sp_instr_hpush_jump::opt_mark(sp_head *sp) { diff --git a/sql/sp_head.h b/sql/sp_head.h index d99b600f6b2..ff3cb8eac3e 100644 --- a/sql/sp_head.h +++ b/sql/sp_head.h @@ -285,7 +285,7 @@ public: void set_info(longlong created, longlong modified, st_sp_chistics *chistics, ulong sql_mode); - void set_definer(char *definer, uint definerlen); + void set_definer(const char *definer, uint definerlen); void reset_thd_mem_root(THD *thd); @@ -294,7 +294,7 @@ public: void optimize(); void opt_mark(uint ip); - void recursion_level_error(); + void recursion_level_error(THD *thd); inline sp_instr * get_instr(uint i) diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index f24b30729b1..b15320567c2 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -2243,14 +2243,14 @@ static GRANT_NAME *name_hash_search(HASH *name_hash, char helping [NAME_LEN*2+USERNAME_LENGTH+3]; uint len; GRANT_NAME *grant_name,*found=0; + HASH_SEARCH_STATE state; len = (uint) (strmov(strmov(strmov(helping,user)+1,db)+1,tname)-helping)+ 1; - for (grant_name=(GRANT_NAME*) hash_search(name_hash, - (byte*) helping, - len) ; + for (grant_name= (GRANT_NAME*) hash_first(name_hash, (byte*) helping, + len, &state); grant_name ; grant_name= (GRANT_NAME*) hash_next(name_hash,(byte*) helping, - len)) + len, &state)) { if (exact) { @@ -3564,7 +3564,7 @@ bool check_grant(THD *thd, ulong want_access, TABLE_LIST *tables, of other queries). For simple queries first_not_own_table is 0. */ for (i= 0, table= tables; - table && table != first_not_own_table && i < number; + table != first_not_own_table && i < number; table= table->next_global, i++) { /* Remove SHOW_VIEW_ACL, because it will be checked during making view */ diff --git a/sql/sql_base.cc b/sql/sql_base.cc index c1fad0a9bbf..74a5848fa0a 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -1702,6 +1702,7 @@ TABLE *open_table(THD *thd, TABLE_LIST *table_list, MEM_ROOT *mem_root, char key[MAX_DBKEY_LENGTH]; uint key_length; char *alias= table_list->alias; + HASH_SEARCH_STATE state; DBUG_ENTER("open_table"); /* find a unused table in the open table cache */ @@ -1862,9 +1863,11 @@ TABLE *open_table(THD *thd, TABLE_LIST *table_list, MEM_ROOT *mem_root, if (thd->handler_tables) mysql_ha_flush(thd, (TABLE_LIST*) NULL, MYSQL_HA_REOPEN_ON_USAGE, TRUE); - for (table=(TABLE*) hash_search(&open_cache,(byte*) key,key_length) ; + for (table= (TABLE*) hash_first(&open_cache, (byte*) key, key_length, + &state); table && table->in_use ; - table = (TABLE*) hash_next(&open_cache,(byte*) key,key_length)) + table= (TABLE*) hash_next(&open_cache, (byte*) key, key_length, + &state)) { if (table->s->version != refresh_version) { @@ -2240,10 +2243,12 @@ bool table_is_used(TABLE *table, bool wait_for_name_lock) uint key_length= table->s->table_cache_key.length; DBUG_PRINT("loop", ("table_name: %s", table->alias)); - for (TABLE *search=(TABLE*) hash_search(&open_cache, - (byte*) key,key_length) ; + HASH_SEARCH_STATE state; + for (TABLE *search= (TABLE*) hash_first(&open_cache, (byte*) key, + key_length, &state); search ; - search = (TABLE*) hash_next(&open_cache,(byte*) key,key_length)) + search= (TABLE*) hash_next(&open_cache, (byte*) key, + key_length, &state)) { DBUG_PRINT("info", ("share: 0x%lx locked_by_flush: %d " "locked_by_name: %d db_stat: %u version: %u", @@ -5848,11 +5853,14 @@ bool remove_table_from_cache(THD *thd, const char *db, const char *table_name, key_length=(uint) (strmov(strmov(key,db)+1,table_name)-key)+1; for (;;) { + HASH_SEARCH_STATE state; result= signalled= 0; - for (table=(TABLE*) hash_search(&open_cache,(byte*) key,key_length) ; + for (table= (TABLE*) hash_first(&open_cache, (byte*) key, key_length, + &state); table; - table = (TABLE*) hash_next(&open_cache,(byte*) key,key_length)) + table= (TABLE*) hash_next(&open_cache, (byte*) key, key_length, + &state)) { THD *in_use; table->s->version=0L; /* Free when thread is ready */ diff --git a/sql/sql_cache.cc b/sql/sql_cache.cc index 674c22b9300..aec370e104a 100644 --- a/sql/sql_cache.cc +++ b/sql/sql_cache.cc @@ -3055,6 +3055,7 @@ my_bool Query_cache::move_by_type(byte **border, } case Query_cache_block::TABLE: { + HASH_SEARCH_STATE record_idx; DBUG_PRINT("qcache", ("block 0x%lx TABLE", (ulong) block)); if (*border == 0) break; @@ -3072,7 +3073,7 @@ my_bool Query_cache::move_by_type(byte **border, byte *key; uint key_length; key=query_cache_table_get_key((byte*) block, &key_length, 0); - hash_search(&tables, (byte*) key, key_length); + hash_first(&tables, (byte*) key, key_length, &record_idx); block->destroy(); new_block->init(len); @@ -3106,7 +3107,7 @@ my_bool Query_cache::move_by_type(byte **border, /* Fix pointer to table name */ new_block->table()->table(new_block->table()->db() + tablename_offset); /* Fix hash to point at moved block */ - hash_replace(&tables, tables.current_record, (byte*) new_block); + hash_replace(&tables, &record_idx, (byte*) new_block); DBUG_PRINT("qcache", ("moved %lu bytes to 0x%lx, new gap at 0x%lx", len, (ulong) new_block, (ulong) *border)); @@ -3114,6 +3115,7 @@ my_bool Query_cache::move_by_type(byte **border, } case Query_cache_block::QUERY: { + HASH_SEARCH_STATE record_idx; DBUG_PRINT("qcache", ("block 0x%lx QUERY", (ulong) block)); if (*border == 0) break; @@ -3131,7 +3133,7 @@ my_bool Query_cache::move_by_type(byte **border, byte *key; uint key_length; key=query_cache_query_get_key((byte*) block, &key_length, 0); - hash_search(&queries, (byte*) key, key_length); + hash_first(&queries, (byte*) key, key_length, &record_idx); // Move table of used tables memmove((char*) new_block->table(0), (char*) block->table(0), ALIGN_SIZE(n_tables*sizeof(Query_cache_block_table))); @@ -3199,7 +3201,7 @@ my_bool Query_cache::move_by_type(byte **border, net->query_cache_query= (gptr) new_block; } /* Fix hash to point at moved block */ - hash_replace(&queries, queries.current_record, (byte*) new_block); + hash_replace(&queries, &record_idx, (byte*) new_block); DBUG_PRINT("qcache", ("moved %lu bytes to 0x%lx, new gap at 0x%lx", len, (ulong) new_block, (ulong) *border)); break; diff --git a/sql/sql_class.cc b/sql/sql_class.cc index 7c6f61d6edc..853e8be6629 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -1976,6 +1976,25 @@ void THD::reset_sub_statement_state(Sub_statement_state *backup, backup->client_capabilities= client_capabilities; backup->savepoints= transaction.savepoints; +#ifdef HAVE_ROW_BASED_REPLICATION + /* + For row-based replication and before executing a function/trigger, + the pending rows event has to be flushed. The function/trigger + might execute statement that require the pending event to be + flushed. A simple example: + + CREATE FUNCTION foo() RETURNS INT + BEGIN + SAVEPOINT x; + RETURN 0; + END + + INSERT INTO t1 VALUES (1), (foo()), (2); + */ + if (binlog_row_based) + binlog_flush_pending_rows_event(false); +#endif /* HAVE_ROW_BASED_REPLICATION */ + if ((!lex->requires_prelocking() || is_update_query(lex->sql_command)) && !binlog_row_based) options&= ~OPTION_BIN_LOG; diff --git a/sql/sql_delete.cc b/sql/sql_delete.cc index ba1cce3abfe..764aa435cae 100644 --- a/sql/sql_delete.cc +++ b/sql/sql_delete.cc @@ -890,7 +890,9 @@ bool mysql_truncate(THD *thd, TABLE_LIST *table_list, bool dont_send_ok) } // Remove the .frm extension - *(path + path_length - reg_ext_length)= '\0'; + // AIX 5.2 64-bit compiler bug (BUG#16155): this crashes, replacement works. + // *(path + path_length - reg_ext_length)= '\0'; + path[path_length - reg_ext_length] = 0; error= ha_create_table(thd, path, table_list->db, table_list->table_name, &create_info, 1); query_cache_invalidate3(thd, table_list, 0); diff --git a/sql/sql_handler.cc b/sql/sql_handler.cc index 6418f844dbe..f1bbf6f0f5e 100644 --- a/sql/sql_handler.cc +++ b/sql/sql_handler.cc @@ -227,6 +227,7 @@ bool mysql_ha_open(THD *thd, TABLE_LIST *tables, bool reopen) /* add to hash */ if (my_hash_insert(&thd->handler_tables_hash, (byte*) hash_tables)) { + my_free((char*) hash_tables, MYF(0)); mysql_ha_close(thd, tables); goto err; } @@ -369,28 +370,6 @@ bool mysql_ha_read(THD *thd, TABLE_LIST *tables, DBUG_PRINT("info-in-hash",("'%s'.'%s' as '%s' tab %p", hash_tables->db, hash_tables->table_name, hash_tables->alias, table)); - /* Table might have been flushed. */ - if (table && (table->s->version != refresh_version)) - { - /* - We must follow the thd->handler_tables chain, as we need the - address of the 'next' pointer referencing this table - for close_thread_table(). - */ - for (table_ptr= &(thd->handler_tables); - *table_ptr && (*table_ptr != table); - table_ptr= &(*table_ptr)->next) - {} - (*table_ptr)->file->ha_index_or_rnd_end(); - VOID(pthread_mutex_lock(&LOCK_open)); - if (close_thread_table(thd, table_ptr)) - { - /* Tell threads waiting for refresh that something has happened */ - VOID(pthread_cond_broadcast(&COND_refresh)); - } - VOID(pthread_mutex_unlock(&LOCK_open)); - table= hash_tables->table= NULL; - } if (!table) { /* @@ -436,6 +415,13 @@ bool mysql_ha_read(THD *thd, TABLE_LIST *tables, } tables->table=table; + HANDLER_TABLES_HACK(thd); + lock= mysql_lock_tables(thd, &tables->table, 1, 0, ¬_used); + HANDLER_TABLES_HACK(thd); + + if (!lock) + goto err0; // mysql_lock_tables() printed error message already + if (cond && ((!cond->fixed && cond->fix_fields(thd, &cond)) || cond->check_cols(1))) goto err0; @@ -455,13 +441,6 @@ bool mysql_ha_read(THD *thd, TABLE_LIST *tables, protocol->send_fields(&list, Protocol::SEND_NUM_ROWS | Protocol::SEND_EOF); - HANDLER_TABLES_HACK(thd); - lock= mysql_lock_tables(thd, &tables->table, 1, 0, ¬_used); - HANDLER_TABLES_HACK(thd); - - if (!lock) - goto err0; // mysql_lock_tables() printed error message already - /* In ::external_lock InnoDB resets the fields which tell it that the handle is used in the HANDLER interface. Tell it again that diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc index 598fac102c1..29df467b916 100644 --- a/sql/sql_insert.cc +++ b/sql/sql_insert.cc @@ -2529,7 +2529,11 @@ select_create::prepare(List &values, SELECT_LEX_UNIT *u) } /* First field to copy */ - field=table->field+table->s->fields - values.elements; + field= table->field+table->s->fields - values.elements; + + /* Mark all fields that are given values */ + for (Field **f= field ; *f ; f++) + (*f)->query_id= thd->query_id; /* Don't set timestamp if used */ table->timestamp_field_type= TIMESTAMP_NO_AUTO_SET; diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index ea9f8c6ffd2..1b36ca8dc97 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -4856,7 +4856,6 @@ end_with_restore_list: if (thd->one_shot_set && lex->sql_command != SQLCOM_SET_OPTION) reset_one_shot_variables(thd); - /* The return value for ROW_COUNT() is "implementation dependent" if the statement is not DELETE, INSERT or UPDATE, but -1 is what JDBC and ODBC @@ -4868,13 +4867,10 @@ end_with_restore_list: if (lex->sql_command != SQLCOM_CALL && lex->sql_command != SQLCOM_EXECUTE && uc_update_queries[lex->sql_command]<2) thd->row_count_func= -1; - goto cleanup; + DBUG_RETURN(res || thd->net.report_error); error: - res= 1; - -cleanup: - DBUG_RETURN(res || thd->net.report_error); + DBUG_RETURN(1); } @@ -5097,7 +5093,7 @@ check_table_access(THD *thd, ulong want_access,TABLE_LIST *tables, the given table list refers to the list for prelocking (contains tables of other queries). For simple queries first_not_own_table is 0. */ - for (; tables && tables != first_not_own_table; tables= tables->next_global) + for (; tables != first_not_own_table; tables= tables->next_global) { if (tables->schema_table && (want_access & ~(SELECT_ACL | EXTRA_ACL | FILE_ACL))) @@ -7260,7 +7256,7 @@ LEX_USER *create_definer(THD *thd, LEX_STRING *user_name, LEX_STRING *host_name) /* Create and initialize. */ - if (! (definer= (LEX_USER*) thd->alloc(sizeof (LEX_USER)))) + if (! (definer= (LEX_USER*) thd->alloc(sizeof(LEX_USER)))) return 0; definer->user= *user_name; diff --git a/sql/sql_plugin.cc b/sql/sql_plugin.cc index 4e156fb7c11..b8628b18dd4 100644 --- a/sql/sql_plugin.cc +++ b/sql/sql_plugin.cc @@ -23,9 +23,9 @@ char *opt_plugin_dir_ptr; char opt_plugin_dir[FN_REFLEN]; LEX_STRING plugin_type_names[]= { - { STRING_WITH_LEN("UDF") }, - { STRING_WITH_LEN("STORAGE ENGINE") }, - { STRING_WITH_LEN("FTPARSER") } + { (char *)STRING_WITH_LEN("UDF") }, + { (char *)STRING_WITH_LEN("STORAGE ENGINE") }, + { (char *)STRING_WITH_LEN("FTPARSER") } }; static const char *plugin_interface_version_sym= "_mysql_plugin_interface_version_"; diff --git a/sql/sql_select.cc b/sql/sql_select.cc index d5a38b13a0e..8c954297f42 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -10772,7 +10772,7 @@ end_update(JOIN *join, JOIN_TAB *join_tab __attribute__((unused)), item->save_org_in_field(group->field); /* Store in the used key if the field was 0 */ if (item->maybe_null) - group->buff[-1]=item->null_value ? 1 : 0; + group->buff[-1]= (char) group->field->is_null(); } if (!table->file->index_read(table->record[1], join->tmp_table_param.group_buff,0, diff --git a/sql/sql_show.cc b/sql/sql_show.cc index 0de02337fff..c1165f2c4b5 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -2153,6 +2153,8 @@ int get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond) int error= 1; enum legacy_db_type not_used; Open_tables_state open_tables_state_backup; + bool save_view_prepare_mode= lex->view_prepare_mode; + lex->view_prepare_mode= TRUE; DBUG_ENTER("get_all_tables"); LINT_INIT(end); @@ -2338,6 +2340,7 @@ err: lex->derived_tables= derived_tables; lex->all_selects_list= old_all_select_lex; lex->query_tables_last= save_query_tables_last; + lex->view_prepare_mode= save_view_prepare_mode; *save_query_tables_last= 0; lex->sql_command= save_sql_command; DBUG_RETURN(error); diff --git a/sql/sql_trigger.cc b/sql/sql_trigger.cc index 2b124fb5bb4..e4b22cffca0 100644 --- a/sql/sql_trigger.cc +++ b/sql/sql_trigger.cc @@ -51,6 +51,13 @@ static File_option triggers_file_parameters[]= { { 0, 0 }, 0, FILE_OPTIONS_STRING } }; +File_option sql_modes_parameters= +{ + {(char*) STRING_WITH_LEN("sql_modes") }, + offsetof(class Table_triggers_list, definition_modes_list), + FILE_OPTIONS_ULLLIST +}; + /* This must be kept up to date whenever a new option is added to the list above, as it specifies the number of required parameters of the trigger in @@ -435,7 +442,7 @@ bool Table_triggers_list::create_trigger(THD *thd, TABLE_LIST *tables, #ifndef NO_EMBEDDED_ACCESS_CHECKS if (!is_acl_user(lex->definer->host.str, - lex->definer->user.str)) + lex->definer->user.str)) { push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_NOTE, @@ -1161,7 +1168,7 @@ bool Table_triggers_list::process_triggers(THD *thd, trg_event_type event, if (is_special_var_used(event, time_type)) { - TABLE_LIST table_list; + TABLE_LIST table_list, **save_query_tables_own_last; bzero((char *) &table_list, sizeof (table_list)); table_list.db= (char *) table->s->db.str; table_list.db_length= table->s->db.length; @@ -1169,8 +1176,13 @@ bool Table_triggers_list::process_triggers(THD *thd, trg_event_type event, table_list.table_name_length= table->s->table_name.length; table_list.alias= (char *) table->alias; table_list.table= table; + save_query_tables_own_last= thd->lex->query_tables_own_last; + thd->lex->query_tables_own_last= 0; - if (check_table_access(thd, SELECT_ACL | UPDATE_ACL, &table_list, 0)) + err_status= check_table_access(thd, SELECT_ACL | UPDATE_ACL, + &table_list, 0); + thd->lex->query_tables_own_last= save_query_tables_own_last; + if (err_status) { sp_restore_security_context(thd, save_ctx); return TRUE; @@ -1212,32 +1224,29 @@ bool Table_triggers_list::process_triggers(THD *thd, trg_event_type event, TRUE Error */ +#define INVALID_SQL_MODES_LENGTH 13 + bool Handle_old_incorrect_sql_modes_hook::process_unknown_string(char *&unknown_key, gptr base, MEM_ROOT *mem_root, char *end) { -#define INVALID_SQL_MODES_LENGTH 13 DBUG_ENTER("handle_old_incorrect_sql_modes"); DBUG_PRINT("info", ("unknown key:%60s", unknown_key)); + if (unknown_key + INVALID_SQL_MODES_LENGTH + 1 < end && unknown_key[INVALID_SQL_MODES_LENGTH] == '=' && !memcmp(unknown_key, STRING_WITH_LEN("sql_modes"))) { + char *ptr= unknown_key + INVALID_SQL_MODES_LENGTH + 1; + DBUG_PRINT("info", ("sql_modes affected by BUG#14090 detected")); push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_NOTE, ER_OLD_FILE_FORMAT, ER(ER_OLD_FILE_FORMAT), (char *)path, "TRIGGER"); - File_option sql_modes_parameters= - { - {(char *) STRING_WITH_LEN("sql_modes") }, - offsetof(class Table_triggers_list, definition_modes_list), - FILE_OPTIONS_ULLLIST - }; - char *ptr= unknown_key + INVALID_SQL_MODES_LENGTH + 1; if (get_file_options_ulllist(ptr, end, unknown_key, base, &sql_modes_parameters, mem_root)) { diff --git a/storage/archive/archive_test.c b/storage/archive/archive_test.c index 5e3a60b606d..e01a75404d8 100644 --- a/storage/archive/archive_test.c +++ b/storage/archive/archive_test.c @@ -43,6 +43,6 @@ int main(int argc, char *argv[]) azclose(&foo); azclose(&foo1); - //unlink("test"); + /* unlink("test"); */ return 0; } diff --git a/storage/archive/azio.c b/storage/archive/azio.c index 14e074f3157..aa969b39b53 100644 --- a/storage/archive/azio.c +++ b/storage/archive/azio.c @@ -166,7 +166,7 @@ int get_byte(s) if (s->stream.avail_in == 0) { s->z_eof = 1; - // if (ferror(s->file)) s->z_err = Z_ERRNO; + /* if (ferror(s->file)) s->z_err = Z_ERRNO; */ return EOF; } s->stream.next_in = s->inbuf; diff --git a/storage/csv/Makefile.am b/storage/csv/Makefile.am index 1d3c47bd650..f1802f4e5b0 100644 --- a/storage/csv/Makefile.am +++ b/storage/csv/Makefile.am @@ -29,6 +29,7 @@ WRAPLIBS= pkglib_LTLIBRARIES = ha_csv.la ha_csv_la_LDFLAGS = -module +noinst_HEADERS = ha_tina.h ha_csv_la_SOURCES = ha_tina.cc LDADD = diff --git a/storage/example/Makefile.am b/storage/example/Makefile.am index d5896946c5b..efc0ede91e9 100644 --- a/storage/example/Makefile.am +++ b/storage/example/Makefile.am @@ -29,6 +29,7 @@ WRAPLIBS= pkglib_LTLIBRARIES = ha_example.la ha_example_la_LDFLAGS = -module +noinst_HEADERS = ha_example.h ha_example_la_SOURCES = ha_example.cc LDADD = diff --git a/storage/innobase/row/row0mysql.c b/storage/innobase/row/row0mysql.c index c733bf5c8f2..86d9ecf9c54 100644 --- a/storage/innobase/row/row0mysql.c +++ b/storage/innobase/row/row0mysql.c @@ -3484,7 +3484,7 @@ row_is_mysql_tmp_table_name( const char* name) /* in: table name in the form 'database/tablename' */ { - //return(strstr(name, "/#sql") != NULL); + /* return(strstr(name, "/#sql") != NULL); */ return(strstr(name, "/@0023sql") != NULL); } diff --git a/storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp b/storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp index 6646313eb80..7ad43a89d63 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp +++ b/storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp @@ -448,7 +448,7 @@ void Dbtup::execTUP_COMMITREQ(Signal* signal) if(!regOperPtr.p->is_first_operation()) { /** - * Out of order commit + * Out of order commit XXX check effect on triggers */ fix_commit_order(regOperPtr); } diff --git a/storage/ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp b/storage/ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp index e105fe1f2bd..368a828425e 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp +++ b/storage/ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp @@ -559,8 +559,9 @@ Dbtup::fireDetachedTriggers(KeyReqStruct *req_struct, /** * Set correct operation type and fix change mask + * Note ALLOC is set in "orig" tuple */ - if(req_struct->m_tuple_ptr->m_header_bits & Tuple_header::ALLOC) + if(save_ptr->m_header_bits & Tuple_header::ALLOC) { if(save == ZDELETE) { @@ -571,6 +572,14 @@ Dbtup::fireDetachedTriggers(KeyReqStruct *req_struct, } regOperPtr->op_struct.op_type = ZINSERT; } + else if (save == ZINSERT) + /** + * Tuple was not created but last op is INSERT. + * This is possible only on DELETE + INSERT + */ + { + regOperPtr->op_struct.op_type = ZUPDATE; + } ndbrequire(regOperPtr->is_first_operation()); triggerList.first(trigPtr); diff --git a/storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp b/storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp index 1fa0c6386be..afe73759ca5 100644 --- a/storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp +++ b/storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp @@ -376,10 +376,10 @@ NdbEventOperationImpl::receive_event() AttributeHeader(*aAttrPtr).getAttributeId()); receive_data(tAttr, aDataPtr, tDataSz); if (is_update) - { receive_data(tAttr1, aDataPtr, tDataSz); - tAttr1= tAttr1->next(); - } + else + tAttr1->setUNDEFINED(); // do not leave unspecified + tAttr1= tAttr1->next(); // next aAttrPtr++; aDataPtr+= (tDataSz + 3) >> 2; diff --git a/storage/ndb/test/ndbapi/test_event_merge.cpp b/storage/ndb/test/ndbapi/test_event_merge.cpp index 1332455cdc5..9c6a16eda2b 100644 --- a/storage/ndb/test/ndbapi/test_event_merge.cpp +++ b/storage/ndb/test/ndbapi/test_event_merge.cpp @@ -47,8 +47,8 @@ * There are 5 ways (ignoring NUL operand) to compose 2 ops: * 5.0 bugs 5.1 bugs * INS o DEL = NUL - * INS o UPD = INS 5.1 - * DEL o INS = UPD type=INS 5.1 + * INS o UPD = INS type=INS + * DEL o INS = UPD type=INS type=INS * UPD o DEL = DEL no event * UPD o UPD = UPD */ @@ -78,6 +78,7 @@ static NdbOperation* g_op = 0; static const char* g_tabname = "tem1"; static const char* g_evtname = "tem1ev1"; static const uint g_charlen = 5; +static const char* g_charval = "abcde"; static const char* g_csname = "latin1_swedish_ci"; static const NdbDictionary::Table* g_tab = 0; @@ -229,9 +230,9 @@ createtable() chkdb((g_op = g_con->getNdbOperation(g_tabname)) != 0); chkdb(g_op->insertTuple() == 0); Uint32 pk1; - char pk2[g_charlen]; + char pk2[g_charlen + 1]; pk1 = g_maxpk; - memset(pk2, 0x20, g_charlen); + sprintf(pk2, "%-*u", g_charlen, pk1); chkdb(g_op->equal("pk1", (char*)&pk1) == 0); chkdb(g_op->equal("pk2", (char*)&pk2[0]) == 0); chkdb(g_con->execute(Commit) == 0); @@ -256,9 +257,9 @@ droptable() struct Data { Uint32 pk1; - char pk2[g_charlen]; + char pk2[g_charlen + 1]; Uint32 seq; - char cc1[g_charlen]; + char cc1[g_charlen + 1]; void* ptr[g_ncol]; int ind[g_ncol]; // -1 = no data, 1 = NULL, 0 = not NULL void init() { @@ -276,6 +277,30 @@ struct Data { } }; +static int +cmpdata(const Data& d1, const Data& d2) +{ + uint i; + for (i = 0; i < g_ncol; i++) { + const Col& c = getcol(i); + if (d1.ind[i] != d2.ind[i]) + return 1; + if (d1.ind[i] == 0 && memcmp(d1.ptr[i], d2.ptr[i], c.size) != 0) + return 1; + } + return 0; +} + +static int +cmpdata(const Data (&d1)[2], const Data (&d2)[2]) +{ + if (cmpdata(d1[0], d2[0]) != 0) + return 1; + if (cmpdata(d1[1], d2[1]) != 0) + return 1; + return 0; +} + static NdbOut& operator<<(NdbOut& out, const Data& d) { @@ -304,7 +329,7 @@ operator<<(NdbOut& out, const Data& d) break; n--; } - out << buf; + out << "'" << buf << "'"; } break; default: @@ -370,7 +395,7 @@ operator<<(NdbOut& out, Op::Type t) static NdbOut& operator<<(NdbOut& out, const Op& op) { - out << "t=" << op.type; + out << op.type; out << " " << op.data[0]; out << " [" << op.data[1] << "]"; return out; @@ -504,13 +529,9 @@ checkop(const Op* op, Uint32& pk1) if (t == Op::INS) { chkrc(d[1].ind[i] == -1); } else if (t == Op::DEL) { -#ifdef ndb_event_cares_about_pk_pre_data chkrc(d[1].ind[i] == -1); -#endif } else { -#ifdef ndb_event_cares_about_pk_pre_data chkrc(d[1].ind[i] == 0); -#endif } } else { if (t == Op::INS) { @@ -547,23 +568,36 @@ copycol(const Col& c, const Data& d1, Data& d3) } static void -copykeys(const Data& d1, Data& d3) +copydata(const Data& d1, Data& d3, bool pk, bool nonpk) { uint i; for (i = 0; i < g_ncol; i++) { const Col& c = g_col[i]; - if (c.pk) + if (c.pk && pk || ! c.pk && nonpk) copycol(c, d1, d3); } } +// not needed for ops static void -copydata(const Data& d1, Data& d3) +compdata(const Data& d1, const Data& d2, Data& d3, bool pk, bool nonpk) { uint i; for (i = 0; i < g_ncol; i++) { const Col& c = g_col[i]; - copycol(c, d1, d3); + if (c.pk && pk || ! c.pk && nonpk) { + const Data* d = 0; + if (d1.ind[i] == -1 && d2.ind[i] == -1) + d3.ind[i] = -1; + else if (d1.ind[i] == -1 && d2.ind[i] != -1) + d = &d2; + else if (d1.ind[i] != -1 && d2.ind[i] == -1) + d = &d1; + else + d = &d2; + if (d != 0) + copycol(c, *d, d3); + } } } @@ -571,33 +605,12 @@ static void copyop(const Op* op1, Op* op3) { op3->type = op1->type; - copydata(op1->data[0], op3->data[0]); - copydata(op1->data[1], op3->data[1]); + copydata(op1->data[0], op3->data[0], true, true); + copydata(op1->data[1], op3->data[1], true, true); Uint32 pk1_tmp; reqrc(checkop(op3, pk1_tmp) == 0); } -// not needed for ops -static void -compdata(const Data& d1, const Data& d2, Data& d3) // d2 overrides d1 -{ - uint i; - for (i = 0; i < g_ncol; i++) { - const Col& c = g_col[i]; - const Data* d = 0; - if (d1.ind[i] == -1 && d2.ind[i] == -1) - d3.ind[i] = -1; - else if (d1.ind[i] == -1 && d2.ind[i] != -1) - d = &d2; - else if (d1.ind[i] != -1 && d2.ind[i] == -1) - d = &d1; - else - d = &d2; - if (d != 0) - copycol(c, *d, d3); - } -} - static int compop(const Op* op1, const Op* op2, Op* op3) // op1 o op2 = op3 { @@ -612,11 +625,14 @@ compop(const Op* op1, const Op* op2, Op* op3) // op1 o op2 = op3 } chkrc((comp = comptype(op1->type, op2->type)) != 0); op3->type = comp->t3; - copykeys(op2->data[0], op3->data[0]); + // sucks + copydata(op2->data[0], op3->data[0], true, false); if (op3->type != Op::DEL) - copydata(op2->data[0], op3->data[0]); + copydata(op2->data[0], op3->data[0], false, true); if (op3->type != Op::INS) - copydata(op1->data[1], op3->data[1]); + copydata(op1->data[1], op3->data[1], false, true); + if (op3->type == Op::UPD) + copydata(op2->data[0], op3->data[1], true, false); Uint32 pk1_tmp; reqrc(checkop(op3, pk1_tmp) == 0); // not eliminating identical post-pre fields @@ -705,9 +721,9 @@ waitgci() // wait for event to be installed and for at least 1 GCI to pass chkdb((g_con = g_ndb->startTransaction()) != 0); { // forced to exec a dummy op Uint32 pk1; - char pk2[g_charlen]; + char pk2[g_charlen + 1]; pk1 = g_maxpk; - memset(pk2, 0x20, g_charlen); + sprintf(pk2, "%-*u", g_charlen, pk1); chkdb((g_op = g_con->getNdbOperation(g_tabname)) != 0); chkdb(g_op->readTuple() == 0); chkdb(g_op->equal("pk1", (char*)&pk1) == 0); @@ -723,6 +739,7 @@ waitgci() // wait for event to be installed and for at least 1 GCI to pass break; } i = 1; + sleep(1); } return 0; } @@ -732,11 +749,14 @@ makeop(Op* op, Uint32 pk1, Op::Type t, const Op* prev_op) { op->type = t; if (t != Op::INS) - copydata(prev_op->data[0], op->data[1]); + copydata(prev_op->data[0], op->data[1], true, true); uint i; for (i = 0; i < g_ncol; i++) { const Col& c = getcol(i); Data (&d)[2] = op->data; + if (c.pk && t == Op::DEL) { + d[1].ind[i] = -1; + } if (i == getcol("pk1").no) { d[0].pk1 = pk1; d[0].ind[i] = 0; @@ -758,7 +778,7 @@ makeop(Op* op, Uint32 pk1, Op::Type t, const Op* prev_op) } uint u; u = urandom(100); - if (c.nullable && u < 20) { + if (c.nullable && u < 10) { d[0].ind[i] = 1; continue; } @@ -776,8 +796,8 @@ makeop(Op* op, Uint32 pk1, Op::Type t, const Op* prev_op) char* p = (char*)d[0].ptr[i]; uint j; for (j = 0; j < g_charlen; j++) { - uint v = urandom(3); - p[j] = j < u ? "abcde"[v] : 0x20; + uint v = urandom(strlen(g_charval)); + p[j] = j < u ? g_charval[v] : 0x20; } } break; @@ -993,9 +1013,9 @@ static int matchevent(Op* ev) { Op::Type t = ev->type; - Data (&d)[2] = ev->data; + Data (&d2)[2] = ev->data; // get PK - Uint32 pk1 = d[0].pk1; + Uint32 pk1 = d2[0].pk1; chkrc(pk1 < g_opts.maxpk); // on error repeat and print details uint loop = 0; @@ -1016,30 +1036,35 @@ matchevent(Op* ev) op = op->next_op; } if (com_op->type != Op::NUL) { - if (com_op->type == t) { - const Data (&d2)[2] = com_op->data; - if (t == Op::INS && d2[0].seq == d[0].seq || - t == Op::DEL && d2[1].seq == d[1].seq || - t == Op::UPD && d2[0].seq == d[0].seq) { - if (cnt == g_ev_cnt[pk1]) { - if (! com_op->match) { - ll2("match pos " << cnt); - ok = com_op->match = true; - } else { - ll2("duplicate match"); - } - } else { - ll2("match bad pos event=" << g_ev_cnt[pk1] << " op=" << cnt); - } + const Data (&d1)[2] = com_op->data; + if (cmpdata(d1, d2) == 0) { + bool tmpok = true; + if (com_op->type != t) { + ll2("***: wrong type " << com_op->type << " != " << t); + tmpok = false; + } + if (com_op->match) { + ll2("***: duplicate match"); + tmpok = false; + } + if (cnt != g_ev_cnt[pk1]) { + ll2("***: wrong pos " << cnt << " != " << g_ev_cnt[pk1]); + tmpok = false; + } + if (tmpok) { + ok = com_op->match = true; + ll2("===: match"); } } cnt++; } com_op = com_op->next_com; } - if (ok) + if (ok) { + ll1("matchevent: match"); return 0; - ll2("no match"); + } + ll1("matchevent: ERROR: no match"); if (g_loglevel >= 2) return -1; loop++; @@ -1100,12 +1125,13 @@ runevents() { ll1("runevents"); NdbEventOperation* evt_op; - uint npoll = 3; + uint mspoll = 1000; + uint npoll = 7; // strangely long delay while (npoll != 0) { npoll--; int ret; ll1("poll"); - ret = g_ndb->pollEvents(1000); + ret = g_ndb->pollEvents(mspoll); if (ret <= 0) continue; while (1) { @@ -1180,7 +1206,7 @@ runtest() chkrc(createtable() == 0); chkrc(createevent() == 0); uint n; - for (n = 0; n < g_opts.loop; n++) { + for (n = 0; g_opts.loop == 0 || n < g_opts.loop; n++) { ll0("loop " << n); setseed(n); resetmem(); @@ -1280,6 +1306,10 @@ main(int argc, char** argv) return NDBT_ProgramExit(NDBT_OK); } } + if (g_evt_op != 0) { + (void)dropeventop(); + g_evt_op = 0; + } delete g_ndb; delete g_ncc; return NDBT_ProgramExit(NDBT_FAILED);