mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
Merge a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-4.0
into a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-4.1
This commit is contained in:
@@ -97,6 +97,10 @@
|
|||||||
#define DEFAULT_DELIMITER ";"
|
#define DEFAULT_DELIMITER ";"
|
||||||
#define MAX_DELIMITER 16
|
#define MAX_DELIMITER 16
|
||||||
|
|
||||||
|
#define RESULT_OK 0
|
||||||
|
#define RESULT_CONTENT_MISMATCH 1
|
||||||
|
#define RESULT_LENGTH_MISMATCH 2
|
||||||
|
|
||||||
enum {OPT_MANAGER_USER=256,OPT_MANAGER_HOST,OPT_MANAGER_PASSWD,
|
enum {OPT_MANAGER_USER=256,OPT_MANAGER_HOST,OPT_MANAGER_PASSWD,
|
||||||
OPT_MANAGER_PORT,OPT_MANAGER_WAIT_TIMEOUT, OPT_SKIP_SAFEMALLOC,
|
OPT_MANAGER_PORT,OPT_MANAGER_WAIT_TIMEOUT, OPT_SKIP_SAFEMALLOC,
|
||||||
OPT_SSL_SSL, OPT_SSL_KEY, OPT_SSL_CERT, OPT_SSL_CA, OPT_SSL_CAPATH,
|
OPT_SSL_SSL, OPT_SSL_KEY, OPT_SSL_CERT, OPT_SSL_CA, OPT_SSL_CAPATH,
|
||||||
@@ -650,7 +654,7 @@ int dyn_string_cmp(DYNAMIC_STRING* ds, const char *fname)
|
|||||||
{
|
{
|
||||||
DBUG_PRINT("info",("Size differs: result size: %u file size: %u",
|
DBUG_PRINT("info",("Size differs: result size: %u file size: %u",
|
||||||
ds->length, stat_info.st_size));
|
ds->length, stat_info.st_size));
|
||||||
DBUG_RETURN(2);
|
DBUG_RETURN(RESULT_LENGTH_MISMATCH);
|
||||||
}
|
}
|
||||||
if (!(tmp = (char*) my_malloc(stat_info.st_size + 1, MYF(MY_WME))))
|
if (!(tmp = (char*) my_malloc(stat_info.st_size + 1, MYF(MY_WME))))
|
||||||
die(NullS);
|
die(NullS);
|
||||||
@@ -667,7 +671,7 @@ int dyn_string_cmp(DYNAMIC_STRING* ds, const char *fname)
|
|||||||
res_ptr = res_ds.str;
|
res_ptr = res_ds.str;
|
||||||
if ((res_len = res_ds.length) != ds->length)
|
if ((res_len = res_ds.length) != ds->length)
|
||||||
{
|
{
|
||||||
res = 2;
|
res= RESULT_LENGTH_MISMATCH;
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -677,7 +681,8 @@ int dyn_string_cmp(DYNAMIC_STRING* ds, const char *fname)
|
|||||||
res_len = stat_info.st_size;
|
res_len = stat_info.st_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
res = (memcmp(res_ptr, ds->str, res_len)) ? 1 : 0;
|
res= (memcmp(res_ptr, ds->str, res_len)) ?
|
||||||
|
RESULT_CONTENT_MISMATCH : RESULT_OK;
|
||||||
|
|
||||||
err:
|
err:
|
||||||
if (res && eval_result)
|
if (res && eval_result)
|
||||||
@@ -694,21 +699,21 @@ err:
|
|||||||
static int check_result(DYNAMIC_STRING* ds, const char *fname,
|
static int check_result(DYNAMIC_STRING* ds, const char *fname,
|
||||||
my_bool require_option)
|
my_bool require_option)
|
||||||
{
|
{
|
||||||
int error = 0;
|
int error= RESULT_OK;
|
||||||
int res=dyn_string_cmp(ds, fname);
|
int res= dyn_string_cmp(ds, fname);
|
||||||
|
|
||||||
if (res && require_option)
|
if (res && require_option)
|
||||||
abort_not_supported_test();
|
abort_not_supported_test();
|
||||||
switch (res) {
|
switch (res) {
|
||||||
case 0:
|
case RESULT_OK:
|
||||||
break; /* ok */
|
break; /* ok */
|
||||||
case 2:
|
case RESULT_LENGTH_MISMATCH:
|
||||||
verbose_msg("Result length mismatch");
|
verbose_msg("Result length mismatch");
|
||||||
error = 1;
|
error= RESULT_LENGTH_MISMATCH;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case RESULT_CONTENT_MISMATCH:
|
||||||
verbose_msg("Result content mismatch");
|
verbose_msg("Result content mismatch");
|
||||||
error = 1;
|
error= RESULT_CONTENT_MISMATCH;
|
||||||
break;
|
break;
|
||||||
default: /* impossible */
|
default: /* impossible */
|
||||||
die("Unknown error code from dyn_string_cmp()");
|
die("Unknown error code from dyn_string_cmp()");
|
||||||
@@ -3738,8 +3743,9 @@ int main(int argc, char **argv)
|
|||||||
{
|
{
|
||||||
int error = 0;
|
int error = 0;
|
||||||
struct st_query *q;
|
struct st_query *q;
|
||||||
my_bool require_file=0, q_send_flag=0;
|
my_bool require_file=0, q_send_flag=0, query_executed= 0;
|
||||||
char save_file[FN_REFLEN];
|
char save_file[FN_REFLEN];
|
||||||
|
MY_STAT res_info;
|
||||||
MY_INIT(argv[0]);
|
MY_INIT(argv[0]);
|
||||||
{
|
{
|
||||||
DBUG_ENTER("main");
|
DBUG_ENTER("main");
|
||||||
@@ -3932,6 +3938,7 @@ int main(int argc, char **argv)
|
|||||||
save_file[0]=0;
|
save_file[0]=0;
|
||||||
}
|
}
|
||||||
error |= run_query(&cur_con->mysql, q, flags);
|
error |= run_query(&cur_con->mysql, q, flags);
|
||||||
|
query_executed= 1;
|
||||||
q->last_argument= q->end;
|
q->last_argument= q->end;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -3952,6 +3959,7 @@ int main(int argc, char **argv)
|
|||||||
is given on this connection.
|
is given on this connection.
|
||||||
*/
|
*/
|
||||||
error |= run_query(&cur_con->mysql, q, QUERY_SEND);
|
error |= run_query(&cur_con->mysql, q, QUERY_SEND);
|
||||||
|
query_executed= 1;
|
||||||
q->last_argument= q->end;
|
q->last_argument= q->end;
|
||||||
break;
|
break;
|
||||||
case Q_RESULT:
|
case Q_RESULT:
|
||||||
@@ -3992,6 +4000,7 @@ int main(int argc, char **argv)
|
|||||||
break;
|
break;
|
||||||
case Q_EXEC:
|
case Q_EXEC:
|
||||||
do_exec(q);
|
do_exec(q);
|
||||||
|
query_executed= 1;
|
||||||
break;
|
break;
|
||||||
case Q_START_TIMER:
|
case Q_START_TIMER:
|
||||||
/* Overwrite possible earlier start of timer */
|
/* Overwrite possible earlier start of timer */
|
||||||
@@ -4048,6 +4057,18 @@ int main(int argc, char **argv)
|
|||||||
parser.current_line += current_line_inc;
|
parser.current_line += current_line_inc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!query_executed && result_file && my_stat(result_file, &res_info, 0))
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
my_stat() successful on result file. Check if we have not run a
|
||||||
|
single query, but we do have a result file that contains data.
|
||||||
|
Note that we don't care, if my_stat() fails. For example for
|
||||||
|
non-existing or non-readable file we assume it's fine to have
|
||||||
|
no query output from the test file, e.g. regarded as no error.
|
||||||
|
*/
|
||||||
|
if (res_info.st_size)
|
||||||
|
error|= (RESULT_CONTENT_MISMATCH | RESULT_LENGTH_MISMATCH);
|
||||||
|
}
|
||||||
if (result_file && ds_res.length && !error)
|
if (result_file && ds_res.length && !error)
|
||||||
{
|
{
|
||||||
if (!record)
|
if (!record)
|
||||||
|
Reference in New Issue
Block a user