summaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
authorunknown <monty@mashka.mysql.fi>2003-05-22 02:57:27 +0300
committerunknown <monty@mashka.mysql.fi>2003-05-22 02:57:27 +0300
commit99740ff53d21e4ae50764d0170a08562222d2150 (patch)
treeed5eeb9e58454d28807426e58e1c1c16e4c08de4 /client
parent4637832fa19b2866929c1e5cb7c9dd0a40db15c9 (diff)
parentf72611b4fa7eb45259b26d75a733f7a29d20dc04 (diff)
downloadmariadb-git-99740ff53d21e4ae50764d0170a08562222d2150.tar.gz
merge
VC++Files/libmysql/libmysql.dsp: Auto merged client/mysqlbinlog.cc: Auto merged include/my_sys.h: Auto merged libmysql/libmysql.def: Auto merged mysql-test/r/create.result: Auto merged mysql-test/r/group_by.result: Auto merged mysql-test/r/key.result: Auto merged mysql-test/r/myisam.result: Auto merged mysql-test/r/null_key.result: Auto merged mysql-test/r/order_by.result: Auto merged mysql-test/r/type_decimal.result: Auto merged mysql-test/r/variables.result: Auto merged mysql-test/t/ctype_latin1_de-master.opt: Auto merged mysql-test/t/variables.test: Auto merged mysys/charset.c: Auto merged sql/field.cc: Auto merged sql/field.h: Auto merged sql/item.h: Auto merged sql/item_func.cc: Auto merged sql/item_strfunc.cc: Auto merged sql/log_event.cc: Auto merged sql/mysql_priv.h: Auto merged sql/set_var.cc: Auto merged sql/set_var.h: Auto merged sql/sql_class.h: Auto merged sql/sql_insert.cc: Auto merged sql/sql_load.cc: Auto merged sql/sql_parse.cc: Auto merged sql/sql_select.cc: Auto merged sql/sql_table.cc: Auto merged sql/sql_update.cc: Auto merged sql/sql_yacc.yy: Auto merged sql/share/czech/errmsg.txt: Auto merged sql/share/danish/errmsg.txt: Auto merged sql/share/dutch/errmsg.txt: Auto merged sql/share/english/errmsg.txt: Auto merged sql/share/estonian/errmsg.txt: Auto merged sql/share/french/errmsg.txt: Auto merged sql/share/german/errmsg.txt: Auto merged sql/share/greek/errmsg.txt: Auto merged sql/share/hungarian/errmsg.txt: Auto merged sql/share/italian/errmsg.txt: Auto merged sql/share/japanese/errmsg.txt: Auto merged sql/share/korean/errmsg.txt: Auto merged sql/share/norwegian-ny/errmsg.txt: Auto merged sql/share/norwegian/errmsg.txt: Auto merged sql/share/portuguese/errmsg.txt: Auto merged sql/share/romanian/errmsg.txt: Auto merged sql/share/russian/errmsg.txt: Auto merged sql/share/slovak/errmsg.txt: Auto merged sql/share/spanish/errmsg.txt: Auto merged sql/share/swedish/errmsg.txt: Auto merged sql/share/ukrainian/errmsg.txt: Auto merged
Diffstat (limited to 'client')
-rw-r--r--client/mysql.cc29
-rw-r--r--client/mysqlbinlog.cc4
-rw-r--r--client/mysqldump.c2
-rw-r--r--client/mysqltest.c60
4 files changed, 51 insertions, 44 deletions
diff --git a/client/mysql.cc b/client/mysql.cc
index 2623660033b..155d8b03231 100644
--- a/client/mysql.cc
+++ b/client/mysql.cc
@@ -1091,7 +1091,7 @@ static bool add_line(String &buffer,char *line,char *in_string,
{ // Add found char to buffer
if (inchar == *in_string)
*in_string=0;
- else if (!*in_string && (inchar == '\'' || inchar == '"'))
+ else if (!*in_string && (inchar == '\'' || inchar == '"' || inchar == '`'))
*in_string=(char) inchar;
if (!(*ml_comment))
*out++ = (char) inchar;
@@ -2709,31 +2709,32 @@ select_limit, max_join_size);
static int
put_info(const char *str,INFO_TYPE info_type,uint error)
{
+ FILE *file= (info_type == INFO_ERROR ? stderr : stdout);
static int inited=0;
if (status.batch)
{
if (info_type == INFO_ERROR)
{
- (void) fflush(stdout);
- fprintf(stderr,"ERROR");
+ (void) fflush(file);
+ fprintf(file,"ERROR");
if (error)
- (void) fprintf(stderr," %d",error);
+ (void) fprintf(file," %d",error);
if (status.query_start_line && line_numbers)
{
- (void) fprintf(stderr," at line %lu",status.query_start_line);
+ (void) fprintf(file," at line %lu",status.query_start_line);
if (status.file_name)
- (void) fprintf(stderr," in file: '%s'", status.file_name);
+ (void) fprintf(file," in file: '%s'", status.file_name);
}
- (void) fprintf(stderr,": %s\n",str);
- (void) fflush(stderr);
+ (void) fprintf(file,": %s\n",str);
+ (void) fflush(file);
if (!ignore_errors)
return 1;
}
else if (info_type == INFO_RESULT && verbose > 1)
- tee_puts(str, stdout);
+ tee_puts(str, file);
if (unbuffered)
- fflush(stdout);
+ fflush(file);
return info_type == INFO_ERROR ? -1 : 0;
}
if (!opt_silent || info_type == INFO_ERROR)
@@ -2751,17 +2752,17 @@ put_info(const char *str,INFO_TYPE info_type,uint error)
putchar('\007'); /* This should make a bell */
vidattr(A_STANDOUT);
if (error)
- (void) tee_fprintf(stderr, "ERROR %d: ", error);
+ (void) tee_fprintf(file, "ERROR %d: ", error);
else
- tee_puts("ERROR: ", stdout);
+ tee_puts("ERROR: ", file);
}
else
vidattr(A_BOLD);
- (void) tee_puts(str, stdout);
+ (void) tee_puts(str, file);
vidattr(A_NORMAL);
}
if (unbuffered)
- fflush(stdout);
+ fflush(file);
return info_type == INFO_ERROR ? -1 : 0;
}
diff --git a/client/mysqlbinlog.cc b/client/mysqlbinlog.cc
index a5f769c0782..ff86882bad3 100644
--- a/client/mysqlbinlog.cc
+++ b/client/mysqlbinlog.cc
@@ -45,6 +45,7 @@ static const char* default_dbug_option = "d:t:o,/tmp/mysqlbinlog.trace";
void sql_print_error(const char *format, ...);
static bool one_database = 0;
+static bool force_opt= 0;
static const char* database;
static bool short_form = 0;
static ulonglong offset = 0;
@@ -201,6 +202,9 @@ static struct my_option my_long_options[] =
{"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},
+ {"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},
{"host", 'h', "Get the binlog from server", (gptr*) &host, (gptr*) &host,
diff --git a/client/mysqldump.c b/client/mysqldump.c
index b5e596ba072..17780458a2a 100644
--- a/client/mysqldump.c
+++ b/client/mysqldump.c
@@ -1613,7 +1613,7 @@ int main(int argc, char **argv)
else
{
row = mysql_fetch_row(master);
- if (row[0] && row[1])
+ if (row && row[0] && row[1])
{
fprintf(md_result_file,
"\n--\n-- Position to start replication from\n--\n\n");
diff --git a/client/mysqltest.c b/client/mysqltest.c
index fb2104f43f4..9889d365335 100644
--- a/client/mysqltest.c
+++ b/client/mysqltest.c
@@ -939,16 +939,16 @@ int do_system(struct st_query* q)
var_init(&v, 0, 0, 0, 0);
eval_expr(&v, p, 0); /* NULL terminated */
if (v.str_val_len)
- {
- char expr_buf[512];
- if ((uint)v.str_val_len > sizeof(expr_buf) - 1)
- v.str_val_len = sizeof(expr_buf) - 1;
- memcpy(expr_buf, v.str_val, v.str_val_len);
- expr_buf[v.str_val_len] = 0;
- DBUG_PRINT("info", ("running system command '%s'", expr_buf));
- if (system(expr_buf) && q->abort_on_error)
- die("system command '%s' failed", expr_buf);
- }
+ {
+ char expr_buf[512];
+ if ((uint)v.str_val_len > sizeof(expr_buf) - 1)
+ v.str_val_len = sizeof(expr_buf) - 1;
+ memcpy(expr_buf, v.str_val, v.str_val_len);
+ expr_buf[v.str_val_len] = 0;
+ DBUG_PRINT("info", ("running system command '%s'", expr_buf));
+ if (system(expr_buf) && q->abort_on_error)
+ die("system command '%s' failed", expr_buf);
+ }
var_free(&v);
return 0;
}
@@ -2284,7 +2284,7 @@ void get_query_type(struct st_query* q)
q->type=(enum enum_commands) type; /* Found command */
}
-static byte* get_var_key(const byte* var, uint* len,
+static byte *get_var_key(const byte* var, uint* len,
my_bool __attribute__((unused)) t)
{
register char* key;
@@ -2293,11 +2293,11 @@ static byte* get_var_key(const byte* var, uint* len,
return (byte*)key;
}
-static VAR* var_init(VAR* v, const char* name, int name_len, const char* val,
+static VAR *var_init(VAR *v, const char *name, int name_len, const char *val,
int val_len)
{
int val_alloc_len;
- VAR* tmp_var;
+ VAR *tmp_var;
if (!name_len && name)
name_len = strlen(name);
if (!val_len && val)
@@ -2327,7 +2327,7 @@ static VAR* var_init(VAR* v, const char* name, int name_len, const char* val,
return tmp_var;
}
-static void var_free(void* v)
+static void var_free(void *v)
{
my_free(((VAR*) v)->str_val, MYF(MY_WME));
if (((VAR*)v)->alloced)
@@ -2335,10 +2335,10 @@ static void var_free(void* v)
}
-static void var_from_env(const char* name, const char* def_val)
+static void var_from_env(const char *name, const char *def_val)
{
- const char* tmp;
- VAR* v;
+ const char *tmp;
+ VAR *v;
if (!(tmp = getenv(name)))
tmp = def_val;
@@ -2347,9 +2347,9 @@ static void var_from_env(const char* name, const char* def_val)
}
-static void init_var_hash()
+static void init_var_hash(MYSQL *mysql)
{
- VAR* v;
+ VAR *v;
DBUG_ENTER("init_var_hash");
if (hash_init(&var_hash, charset_info,
1024, 0, 0, get_var_key, var_free, MYF(0)))
@@ -2358,16 +2358,19 @@ static void init_var_hash()
var_from_env("SLAVE_MYPORT", "9307");
var_from_env("MYSQL_TEST_DIR", "/tmp");
var_from_env("BIG_TEST", opt_big_test ? "1" : "0");
- v=var_init(0,"MAX_TABLES", 0, (sizeof(ulong) == 4) ? "31" : "63",0);
- hash_insert(&var_hash, (byte*)v);
+ v= var_init(0,"MAX_TABLES", 0, (sizeof(ulong) == 4) ? "31" : "62",0);
+ hash_insert(&var_hash, (byte*) v);
+ v= var_init(0,"SERVER_VERSION", 0, mysql_get_server_info(mysql), 0);
+ hash_insert(&var_hash, (byte*) v);
+
DBUG_VOID_RETURN;
}
-int main(int argc, char** argv)
+int main(int argc, char **argv)
{
int error = 0;
- struct st_query* q;
+ struct st_query *q;
my_bool require_file=0, q_send_flag=0;
char save_file[FN_REFLEN];
MY_INIT(argv[0]);
@@ -2402,7 +2405,6 @@ int main(int argc, char** argv)
embedded_server_args,
(char**) embedded_server_groups))
die("Can't initialize MySQL server");
- init_var_hash();
if (cur_file == file_stack)
*++cur_file = stdin;
*lineno=1;
@@ -2421,14 +2423,14 @@ int main(int argc, char** argv)
opt_ssl_capath, opt_ssl_cipher);
#endif
- cur_con->name = my_strdup("default", MYF(MY_WME));
- if (!cur_con->name)
+ if (!(cur_con->name = my_strdup("default", MYF(MY_WME))))
die("Out of memory");
- if (safe_connect(&cur_con->mysql, host,
- user, pass, db, port, unix_sock))
+ if (safe_connect(&cur_con->mysql, host, user, pass, db, port, unix_sock))
die("Failed in mysql_real_connect(): %s", mysql_error(&cur_con->mysql));
+ init_var_hash(&cur_con->mysql);
+
while (!read_query(&q))
{
int current_line_inc = 1, processed = 0;
@@ -2596,7 +2598,7 @@ int main(int argc, char** argv)
*/
-static int read_server_arguments(const char* name)
+static int read_server_arguments(const char *name)
{
char argument[1024],buff[FN_REFLEN], *str=0;
FILE *file;