mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Bug#17478 mysqlslap not issuing any queries
- Add more printouts it depending on verbose level - New common function 'run_query' to be used when executing a query
This commit is contained in:
@ -254,10 +254,6 @@ int main(int argc, char **argv)
|
||||
|
||||
MY_INIT(argv[0]);
|
||||
|
||||
/* Seed the random number generator if we will be using it. */
|
||||
if (auto_generate_sql)
|
||||
srandom((uint)time(NULL));
|
||||
|
||||
load_defaults("my",load_default_groups,&argc,&argv);
|
||||
defaults_argv=argv;
|
||||
if (get_options(&argc,&argv))
|
||||
@ -267,6 +263,10 @@ int main(int argc, char **argv)
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/* Seed the random number generator if we will be using it. */
|
||||
if (auto_generate_sql)
|
||||
srandom((uint)time(NULL));
|
||||
|
||||
/* globals? Yes, so we only have to run strlen once */
|
||||
delimiter_length= strlen(delimiter);
|
||||
|
||||
@ -300,7 +300,8 @@ int main(int argc, char **argv)
|
||||
NULL, opt_mysql_port,
|
||||
opt_mysql_unix_port, client_flag)))
|
||||
{
|
||||
fprintf(stderr,"%s: %s\n",my_progname,mysql_error(&mysql));
|
||||
fprintf(stderr,"%s: Error when connecting to server: %s\n",
|
||||
my_progname,mysql_error(&mysql));
|
||||
free_defaults(defaults_argv);
|
||||
my_end(0);
|
||||
exit(1);
|
||||
@ -752,8 +753,13 @@ get_options(int *argc,char ***argv)
|
||||
if (!user)
|
||||
user= (char *)"root";
|
||||
|
||||
if (create_string || auto_generate_sql )
|
||||
if (create_string || auto_generate_sql)
|
||||
{
|
||||
if (verbose >= 1)
|
||||
fprintf(stderr,
|
||||
"%s: Turning off preserve-schema!\n");
|
||||
opt_preserve= FALSE;
|
||||
}
|
||||
|
||||
if (auto_generate_sql && (create_string || user_supplied_query))
|
||||
{
|
||||
@ -800,6 +806,14 @@ get_options(int *argc,char ***argv)
|
||||
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));
|
||||
if (verbose >= 1)
|
||||
{
|
||||
fprintf(stderr, "auto-generated insert is:\n");
|
||||
fprintf(stderr, "%s\n", query_statements->string);
|
||||
fprintf(stderr, "auto-generated is:\n");
|
||||
fprintf(stderr, "%s\n", query_statements->next->string);
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -868,37 +882,48 @@ get_options(int *argc,char ***argv)
|
||||
}
|
||||
|
||||
|
||||
static int run_query(MYSQL *mysql, const char *query, int len)
|
||||
{
|
||||
if (opt_only_print)
|
||||
{
|
||||
printf("%.*s;\n", len, query);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (verbose >= 2)
|
||||
printf("%.*s;\n", len, query);
|
||||
return mysql_real_query(mysql, query, len);
|
||||
}
|
||||
|
||||
|
||||
|
||||
static int
|
||||
create_schema(MYSQL *mysql, const char *db, statement *stmt,
|
||||
statement *engine_stmt)
|
||||
{
|
||||
char query[HUGE_STRING_LENGTH];
|
||||
statement *ptr;
|
||||
|
||||
int len;
|
||||
DBUG_ENTER("create_schema");
|
||||
|
||||
snprintf(query, HUGE_STRING_LENGTH, "CREATE SCHEMA `%s`", db);
|
||||
len= snprintf(query, HUGE_STRING_LENGTH, "CREATE SCHEMA `%s`", db);
|
||||
DBUG_PRINT("info", ("query %s", query));
|
||||
if (opt_only_print)
|
||||
|
||||
if (run_query(mysql, query, len))
|
||||
{
|
||||
printf("%s;\n", query);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (mysql_query(mysql, query))
|
||||
{
|
||||
fprintf(stderr,"%s: Cannot create schema %s : %s\n", my_progname, db,
|
||||
mysql_error(mysql));
|
||||
exit(1);
|
||||
}
|
||||
fprintf(stderr,"%s: Cannot create schema %s : %s\n", my_progname, db,
|
||||
mysql_error(mysql));
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (opt_only_print)
|
||||
if (opt_only_print)
|
||||
{
|
||||
printf("use %s;\n", db);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (verbose >= 2)
|
||||
printf("%s;\n", query);
|
||||
if (mysql_select_db(mysql, db))
|
||||
{
|
||||
fprintf(stderr,"%s: Cannot select schema '%s': %s\n",my_progname, db,
|
||||
@ -909,65 +934,46 @@ create_schema(MYSQL *mysql, const char *db, statement *stmt,
|
||||
|
||||
if (engine_stmt)
|
||||
{
|
||||
snprintf(query, HUGE_STRING_LENGTH, "set storage_engine=`%s`",
|
||||
engine_stmt->string);
|
||||
if (opt_only_print)
|
||||
len= snprintf(query, HUGE_STRING_LENGTH, "set storage_engine=`%s`",
|
||||
engine_stmt->string);
|
||||
if (run_query(mysql, query, len))
|
||||
{
|
||||
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);
|
||||
}
|
||||
fprintf(stderr,"%s: Cannot set default engine: %s\n", my_progname,
|
||||
mysql_error(mysql));
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
for (ptr= stmt; ptr && ptr->length; ptr= ptr->next)
|
||||
{
|
||||
if (opt_only_print)
|
||||
if (run_query(mysql, ptr->string, ptr->length))
|
||||
{
|
||||
printf("%.*s;\n", (uint)ptr->length, ptr->string);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (mysql_real_query(mysql, ptr->string, ptr->length))
|
||||
{
|
||||
fprintf(stderr,"%s: Cannot run query %.*s ERROR : %s\n",
|
||||
my_progname, (uint)ptr->length, ptr->string, mysql_error(mysql));
|
||||
exit(1);
|
||||
}
|
||||
fprintf(stderr,"%s: Cannot run query %.*s ERROR : %s\n",
|
||||
my_progname, (uint)ptr->length, ptr->string, mysql_error(mysql));
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
drop_schema(MYSQL *mysql, const char *db)
|
||||
{
|
||||
char query[HUGE_STRING_LENGTH];
|
||||
|
||||
int len;
|
||||
DBUG_ENTER("drop_schema");
|
||||
snprintf(query, HUGE_STRING_LENGTH, "DROP SCHEMA IF EXISTS `%s`", db);
|
||||
if (opt_only_print)
|
||||
len= snprintf(query, HUGE_STRING_LENGTH, "DROP SCHEMA IF EXISTS `%s`", db);
|
||||
|
||||
if (run_query(mysql, query, len))
|
||||
{
|
||||
printf("%s;\n", query);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (mysql_query(mysql, query))
|
||||
{
|
||||
fprintf(stderr,"%s: Cannot drop database '%s' ERROR : %s\n",
|
||||
my_progname, db, mysql_error(mysql));
|
||||
exit(1);
|
||||
}
|
||||
fprintf(stderr,"%s: Cannot drop database '%s' ERROR : %s\n",
|
||||
my_progname, db, mysql_error(mysql));
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
@ -1143,31 +1149,25 @@ run_task(thread_context *con)
|
||||
}
|
||||
}
|
||||
DBUG_PRINT("info", ("connected."));
|
||||
|
||||
if (verbose >= 3)
|
||||
fprintf(stderr, "connected!\n");
|
||||
queries= 0;
|
||||
|
||||
limit_not_met:
|
||||
for (ptr= con->stmt; ptr && ptr->length; ptr= ptr->next)
|
||||
{
|
||||
if (opt_only_print)
|
||||
if (run_query(mysql, ptr->string, ptr->length))
|
||||
{
|
||||
printf("%.*s;\n", (uint)ptr->length, ptr->string);
|
||||
fprintf(stderr,"%s: Cannot run query %.*s ERROR : %s\n",
|
||||
my_progname, (uint)ptr->length, ptr->string, mysql_error(mysql));
|
||||
goto end;
|
||||
}
|
||||
else
|
||||
if (mysql_field_count(mysql))
|
||||
{
|
||||
if (mysql_real_query(mysql, ptr->string, ptr->length))
|
||||
{
|
||||
fprintf(stderr,"%s: Cannot run query %.*s ERROR : %s\n",
|
||||
my_progname, (uint)ptr->length, ptr->string, mysql_error(mysql));
|
||||
goto end;
|
||||
}
|
||||
if (mysql_field_count(mysql))
|
||||
{
|
||||
result= mysql_store_result(mysql);
|
||||
while ((row = mysql_fetch_row(result)))
|
||||
counter++;
|
||||
mysql_free_result(result);
|
||||
}
|
||||
result= mysql_store_result(mysql);
|
||||
while ((row = mysql_fetch_row(result)))
|
||||
counter++;
|
||||
mysql_free_result(result);
|
||||
}
|
||||
queries++;
|
||||
|
||||
|
Reference in New Issue
Block a user