Loading client/mysqltest.c +43 −37 Original line number Diff line number Diff line Loading @@ -141,16 +141,10 @@ VAR var_reg[10]; struct connection cons[MAX_CONS]; struct connection* cur_con, *next_con, *cons_end; /* this should really be called command */ struct st_query { char *query, *query_buf,*first_argument; int first_word_len; my_bool abort_on_error, require_file; uint expected_errno[MAX_EXPECTED_ERRORS]; char record_file[FN_REFLEN]; /* Add new commands before Q_UNKNOWN */ enum { Q_CONNECTION=1, Q_QUERY, /* Add new commands before Q_UNKNOWN !*/ enum enum_commands { Q_CONNECTION=1, Q_QUERY, Q_CONNECT, Q_SLEEP, Q_INC, Q_DEC, Q_SOURCE, Q_DISCONNECT, Loading @@ -165,7 +159,17 @@ struct st_query Q_UNKNOWN, /* Unknown command. */ Q_COMMENT, /* Comments, ignored. */ Q_COMMENT_WITH_COMMAND } type; }; /* this should really be called command */ struct st_query { char *query, *query_buf,*first_argument; int first_word_len; my_bool abort_on_error, require_file; uint expected_errno[MAX_EXPECTED_ERRORS]; char record_file[FN_REFLEN]; enum enum_commands type; }; const char *command_names[] = { Loading Loading @@ -475,10 +479,12 @@ int var_set(char* var_name, char* var_name_end, char* var_val, my_malloc(v->alloced_len, MYF(MY_WME)))) die("Out of memory"); } memcpy(v->str_val, var_val, val_len-1); v->str_val_len = val_len - 1; val_len--; memcpy(v->str_val, var_val, val_len); v->str_val_len = val_len; v->str_val[val_len] = 0; v->int_val = atoi(v->str_val); v->int_dirty=0; return 0; } Loading Loading @@ -515,7 +521,7 @@ int eval_expr(VAR* v, const char* p, const char** p_end) { if ((vp = var_get(p,p_end,0))) { memcpy(v, vp, sizeof(VAR)); memcpy(v, vp, sizeof(*v)); return 0; } } Loading @@ -523,6 +529,8 @@ int eval_expr(VAR* v, const char* p, const char** p_end) { v->str_val = (char*)p; v->str_val_len = (p_end && *p_end) ? *p_end - p : strlen(p); v->int_val=atoi(p); v->int_dirty=0; return 0; } Loading Loading @@ -557,7 +565,7 @@ int do_system(struct st_query* q) char* p=q->first_argument; VAR v; eval_expr(&v, p, 0); /* NULL terminated */ if (v.str_val_len > 1) if (v.str_val_len) { char expr_buf[512]; if ((uint)v.str_val_len > sizeof(expr_buf) - 1) Loading @@ -576,10 +584,10 @@ int do_echo(struct st_query* q) char* p=q->first_argument; VAR v; eval_expr(&v, p, 0); /* NULL terminated */ if (v.str_val_len > 1) if (v.str_val_len) { fflush(stdout); write(1, v.str_val, v.str_val_len - 1); write(1, v.str_val, v.str_val_len); } write(1, "\n", 1); return 0; Loading Loading @@ -671,15 +679,15 @@ int do_sleep(struct st_query* q) p++; if (*p == '.') { char c; int c; char *p_end; p++; p_end = p + 6; for(;p <= p_end; ++p) { c = *p - '0'; if (c < 10 && c >= 0) c = (int) (*p - '0'); if (c < 10 && (int) c >= 0) { t.tv_usec = t.tv_usec * 10 + c; dec_mul /= 10; Loading Loading @@ -1228,7 +1236,7 @@ static char read_query_buf[MAX_QUERY]; int read_query(struct st_query** q_ptr) { char *p = read_query_buf, * p1 ; int c, expected_errno; int expected_errno; struct st_query* q; if (parser.current_line < parser.read_lines) Loading Loading @@ -1283,7 +1291,7 @@ int read_query(struct st_query** q_ptr) { p++; p1 = q->record_file; while(!isspace(c = *p) && while (!isspace(*p) && p1 < q->record_file + sizeof(q->record_file) - 1) *p1++ = *p++; *p1 = 0; Loading Loading @@ -1487,7 +1495,6 @@ int run_query(MYSQL* mysql, struct st_query* q, int flags) unsigned long* lengths; char* val; int len; int q_error = 0 ; DYNAMIC_STRING *ds; DYNAMIC_STRING ds_tmp; DYNAMIC_STRING eval_query; Loading Loading @@ -1516,8 +1523,7 @@ int run_query(MYSQL* mysql, struct st_query* q, int flags) else ds= &ds_res; if ((flags & QUERY_SEND) && (q_error = mysql_send_query(mysql, query, query_len))) if ((flags & QUERY_SEND) && mysql_send_query(mysql, query, query_len)) die("At line %u: unable to send query '%s'", start_lineno, query); if(!(flags & QUERY_REAP)) return 0; Loading Loading @@ -1660,7 +1666,7 @@ void get_query_type(struct st_query* q) type=find_type(q->query, &command_typelib, 1+2); q->query[q->first_word_len]=save; if (type > 0) q->type=type; /* Found command */ q->type=(enum enum_commands) type; /* Found command */ } Loading Loading @@ -1784,7 +1790,7 @@ int main(int argc, char** argv) case Q_REPLACE: get_replace(q); break; case Q_SAVE_MASTER_POS: do_save_master_pos(q); break; case Q_SAVE_MASTER_POS: do_save_master_pos(); break; case Q_SYNC_WITH_MASTER: do_sync_with_master(q); break; case Q_COMMENT: /* Ignore row */ case Q_COMMENT_WITH_COMMAND: Loading mysql-test/t/rpl000001.test +1 −1 Original line number Diff line number Diff line Loading @@ -60,7 +60,7 @@ sync_with_master ; sleep 0.5; # The following test can't be done because the result of Pos will differ # on different computes # on different computers # --replace_result 9306 9999 3334 9999 3335 9999 # show slave status; Loading mysql-test/t/rpl000015.test +5 −5 Original line number Diff line number Diff line Loading @@ -17,15 +17,15 @@ slave start; sync_with_master; show slave status; connection master; drop table if exists foo; create table foo (n int); insert into foo values (10),(45),(90); drop table if exists t1; create table t1 (n int); insert into t1 values (10),(45),(90); save_master_pos; connection slave; sync_with_master; select * from foo; select * from t1; connection master; drop table foo; drop table t1; save_master_pos; connection slave; sync_with_master; Loading Loading
client/mysqltest.c +43 −37 Original line number Diff line number Diff line Loading @@ -141,16 +141,10 @@ VAR var_reg[10]; struct connection cons[MAX_CONS]; struct connection* cur_con, *next_con, *cons_end; /* this should really be called command */ struct st_query { char *query, *query_buf,*first_argument; int first_word_len; my_bool abort_on_error, require_file; uint expected_errno[MAX_EXPECTED_ERRORS]; char record_file[FN_REFLEN]; /* Add new commands before Q_UNKNOWN */ enum { Q_CONNECTION=1, Q_QUERY, /* Add new commands before Q_UNKNOWN !*/ enum enum_commands { Q_CONNECTION=1, Q_QUERY, Q_CONNECT, Q_SLEEP, Q_INC, Q_DEC, Q_SOURCE, Q_DISCONNECT, Loading @@ -165,7 +159,17 @@ struct st_query Q_UNKNOWN, /* Unknown command. */ Q_COMMENT, /* Comments, ignored. */ Q_COMMENT_WITH_COMMAND } type; }; /* this should really be called command */ struct st_query { char *query, *query_buf,*first_argument; int first_word_len; my_bool abort_on_error, require_file; uint expected_errno[MAX_EXPECTED_ERRORS]; char record_file[FN_REFLEN]; enum enum_commands type; }; const char *command_names[] = { Loading Loading @@ -475,10 +479,12 @@ int var_set(char* var_name, char* var_name_end, char* var_val, my_malloc(v->alloced_len, MYF(MY_WME)))) die("Out of memory"); } memcpy(v->str_val, var_val, val_len-1); v->str_val_len = val_len - 1; val_len--; memcpy(v->str_val, var_val, val_len); v->str_val_len = val_len; v->str_val[val_len] = 0; v->int_val = atoi(v->str_val); v->int_dirty=0; return 0; } Loading Loading @@ -515,7 +521,7 @@ int eval_expr(VAR* v, const char* p, const char** p_end) { if ((vp = var_get(p,p_end,0))) { memcpy(v, vp, sizeof(VAR)); memcpy(v, vp, sizeof(*v)); return 0; } } Loading @@ -523,6 +529,8 @@ int eval_expr(VAR* v, const char* p, const char** p_end) { v->str_val = (char*)p; v->str_val_len = (p_end && *p_end) ? *p_end - p : strlen(p); v->int_val=atoi(p); v->int_dirty=0; return 0; } Loading Loading @@ -557,7 +565,7 @@ int do_system(struct st_query* q) char* p=q->first_argument; VAR v; eval_expr(&v, p, 0); /* NULL terminated */ if (v.str_val_len > 1) if (v.str_val_len) { char expr_buf[512]; if ((uint)v.str_val_len > sizeof(expr_buf) - 1) Loading @@ -576,10 +584,10 @@ int do_echo(struct st_query* q) char* p=q->first_argument; VAR v; eval_expr(&v, p, 0); /* NULL terminated */ if (v.str_val_len > 1) if (v.str_val_len) { fflush(stdout); write(1, v.str_val, v.str_val_len - 1); write(1, v.str_val, v.str_val_len); } write(1, "\n", 1); return 0; Loading Loading @@ -671,15 +679,15 @@ int do_sleep(struct st_query* q) p++; if (*p == '.') { char c; int c; char *p_end; p++; p_end = p + 6; for(;p <= p_end; ++p) { c = *p - '0'; if (c < 10 && c >= 0) c = (int) (*p - '0'); if (c < 10 && (int) c >= 0) { t.tv_usec = t.tv_usec * 10 + c; dec_mul /= 10; Loading Loading @@ -1228,7 +1236,7 @@ static char read_query_buf[MAX_QUERY]; int read_query(struct st_query** q_ptr) { char *p = read_query_buf, * p1 ; int c, expected_errno; int expected_errno; struct st_query* q; if (parser.current_line < parser.read_lines) Loading Loading @@ -1283,7 +1291,7 @@ int read_query(struct st_query** q_ptr) { p++; p1 = q->record_file; while(!isspace(c = *p) && while (!isspace(*p) && p1 < q->record_file + sizeof(q->record_file) - 1) *p1++ = *p++; *p1 = 0; Loading Loading @@ -1487,7 +1495,6 @@ int run_query(MYSQL* mysql, struct st_query* q, int flags) unsigned long* lengths; char* val; int len; int q_error = 0 ; DYNAMIC_STRING *ds; DYNAMIC_STRING ds_tmp; DYNAMIC_STRING eval_query; Loading Loading @@ -1516,8 +1523,7 @@ int run_query(MYSQL* mysql, struct st_query* q, int flags) else ds= &ds_res; if ((flags & QUERY_SEND) && (q_error = mysql_send_query(mysql, query, query_len))) if ((flags & QUERY_SEND) && mysql_send_query(mysql, query, query_len)) die("At line %u: unable to send query '%s'", start_lineno, query); if(!(flags & QUERY_REAP)) return 0; Loading Loading @@ -1660,7 +1666,7 @@ void get_query_type(struct st_query* q) type=find_type(q->query, &command_typelib, 1+2); q->query[q->first_word_len]=save; if (type > 0) q->type=type; /* Found command */ q->type=(enum enum_commands) type; /* Found command */ } Loading Loading @@ -1784,7 +1790,7 @@ int main(int argc, char** argv) case Q_REPLACE: get_replace(q); break; case Q_SAVE_MASTER_POS: do_save_master_pos(q); break; case Q_SAVE_MASTER_POS: do_save_master_pos(); break; case Q_SYNC_WITH_MASTER: do_sync_with_master(q); break; case Q_COMMENT: /* Ignore row */ case Q_COMMENT_WITH_COMMAND: Loading
mysql-test/t/rpl000001.test +1 −1 Original line number Diff line number Diff line Loading @@ -60,7 +60,7 @@ sync_with_master ; sleep 0.5; # The following test can't be done because the result of Pos will differ # on different computes # on different computers # --replace_result 9306 9999 3334 9999 3335 9999 # show slave status; Loading
mysql-test/t/rpl000015.test +5 −5 Original line number Diff line number Diff line Loading @@ -17,15 +17,15 @@ slave start; sync_with_master; show slave status; connection master; drop table if exists foo; create table foo (n int); insert into foo values (10),(45),(90); drop table if exists t1; create table t1 (n int); insert into t1 values (10),(45),(90); save_master_pos; connection slave; sync_with_master; select * from foo; select * from t1; connection master; drop table foo; drop table t1; save_master_pos; connection slave; sync_with_master; Loading