summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <monty@donna.mysql.fi>2001-03-09 03:38:18 +0200
committerunknown <monty@donna.mysql.fi>2001-03-09 03:38:18 +0200
commit7957ec7e339177d246a34491ccdda9851fc00956 (patch)
tree816c1657d4d15fbff641ddc882052d6536790ed5
parentf34ebbd06a4522f37c7528ec3692a7a6fb6aaa0a (diff)
downloadmariadb-git-7957ec7e339177d246a34491ccdda9851fc00956.tar.gz
Fixed wrong option in mysql_install_db
Added delayed_user for delayed_threads Don't use record cache when doing deletes Docs/manual.texi: Added link to activestate perl mysql-test/t/delayed.test: Added sleep for slow machines scripts/mysql_install_db.sh: Fixed wrong option sql-bench/crash-me.sh: Intialize some variables sql/mysql_priv.h: Added delayed_user for delayed_threads sql/mysqld.cc: Added delayed_user for delayed_threads sql/sql_class.cc: Added delayed_user for delayed_threads sql/sql_delete.cc: Don't use record cache when doing deletes sql/sql_insert.cc: Added delayed_user for delayed_threads tests/fork3_test.pl: Added periodic check/repair of table
-rw-r--r--Docs/manual.texi3
-rw-r--r--mysql-test/t/delayed.test2
-rw-r--r--scripts/mysql_install_db.sh2
-rw-r--r--sql-bench/crash-me.sh1
-rw-r--r--sql/mysql_priv.h2
-rw-r--r--sql/mysqld.cc3
-rw-r--r--sql/sql_class.cc3
-rw-r--r--sql/sql_delete.cc2
-rw-r--r--sql/sql_insert.cc3
-rwxr-xr-xtests/fork3_test.pl46
10 files changed, 56 insertions, 11 deletions
diff --git a/Docs/manual.texi b/Docs/manual.texi
index a032c4f8e6d..4d9eb645c52 100644
--- a/Docs/manual.texi
+++ b/Docs/manual.texi
@@ -6618,6 +6618,7 @@ To install the @strong{MySQL} @code{DBD} module with ActiveState Perl on
Windows, you should do the following:
@itemize @bullet
+@item Get activestate perl from @uref{http://www.activestate.com/Products/ActivePerl/index.html} and install it.
@item Open a DOS shell.
@item If required, set the HTTP_proxy variable. For example, you might try:
@code{set HTTP_proxy=my.proxy.com:3128}
@@ -33693,7 +33694,7 @@ If you find out something is wrong, please only send the relevant rows
send the whole MyODBC or ODBC log file!
If you are unable to find out what's wrong, the last option is to
-make an archive (tar or zip) that contains a MyODBC log file, the ODBC
+make an archive (tar or zip) that contains a MyODBC trace file, the ODBC
log file, and a README file that explains the problem. You can send this
to @uref{ftp://support.mysql.com/pub/mysql/secret}. Only we at MySQL AB
will have access to the files you upload, and we will be very discrete
diff --git a/mysql-test/t/delayed.test b/mysql-test/t/delayed.test
index 4bc1afa7612..6fbd99e3283 100644
--- a/mysql-test/t/delayed.test
+++ b/mysql-test/t/delayed.test
@@ -11,6 +11,7 @@ insert delayed into t1 set a = 4;
insert delayed into t1 set a = 5, tmsp = 19711006010203;
insert delayed into t1 (a, tmsp) values (6, 19711006010203);
insert delayed into t1 (a, tmsp) values (7, NULL);
+--sleep 1
insert into t1 set a = 8,tmsp=19711006010203;
select * from t1 where tmsp=0;
select * from t1 where tmsp=19711006010203;
@@ -27,5 +28,6 @@ insert delayed into t1 values (null,"c");
insert delayed into t1 values (3,"d"),(null,"e");
--error 1136
insert delayed into t1 values (3,"this will give an","error");
+--sleep 2
select * from t1;
drop table t1;
diff --git a/scripts/mysql_install_db.sh b/scripts/mysql_install_db.sh
index 98e31cfe1ef..25a429f764a 100644
--- a/scripts/mysql_install_db.sh
+++ b/scripts/mysql_install_db.sh
@@ -282,7 +282,7 @@ fi
echo "Installing all prepared tables"
if eval "$execdir/mysqld $defaults --bootstrap --skip-grant-tables \
- --basedir=$basedir --datadir=$ldata --skip-innobase --skip-gemeni --skip-bdb $args" << END_OF_DATA
+ --basedir=$basedir --datadir=$ldata --skip-innobase --skip-gemini --skip-bdb $args" << END_OF_DATA
use mysql;
$c_d
$i_d
diff --git a/sql-bench/crash-me.sh b/sql-bench/crash-me.sh
index f5d25a26ffb..014962b1c6d 100644
--- a/sql-bench/crash-me.sh
+++ b/sql-bench/crash-me.sh
@@ -47,6 +47,7 @@ require "$pwd/server-cfg" || die "Can't read Configuration file: $!\n";
$opt_server="mysql"; $opt_host="localhost"; $opt_database="test";
$opt_dir="limits";
+$opt_user=$opt_password="";
$opt_debug=$opt_help=$opt_Information=$opt_restart=$opt_force=$opt_quick=0;
$opt_log_all_queries=$opt_fix_limit_file=$opt_batch_mode=0;
$opt_db_start_cmd=""; # the db server start command
diff --git a/sql/mysql_priv.h b/sql/mysql_priv.h
index b9fd954486b..7348563cee6 100644
--- a/sql/mysql_priv.h
+++ b/sql/mysql_priv.h
@@ -477,7 +477,7 @@ extern uint32 server_id;
extern char mysql_data_home[2],server_version[SERVER_VERSION_LENGTH],
max_sort_char, mysql_real_data_home[];
extern my_string mysql_unix_port,mysql_tmpdir;
-extern const char *first_keyword, *localhost;
+extern const char *first_keyword, *localhost, *delayed_user;
extern ulong refresh_version,flush_version, thread_id,query_id,opened_tables,
created_tmp_tables, created_tmp_disk_tables,
aborted_threads,aborted_connects,
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index 22e44b2b325..a25ac8bdbfb 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -243,6 +243,7 @@ volatile ulong cached_thread_count=0;
my_string master_user = (char*) "test", master_password = 0, master_host=0,
master_info_file = (char*) "master.info";
const char *localhost=LOCAL_HOST;
+const char *delayed_user="DELAYED";
uint master_port = MYSQL_PORT, master_connect_retry = 60;
ulong max_tmp_tables,max_heap_table_size;
@@ -2364,7 +2365,7 @@ pthread_handler_decl(handle_connections_namedpipes,arg)
continue;
}
/* host name is unknown */
- thd->host = my_strdup("localhost",MYF(0)); /* Host is unknown */
+ thd->host = my_strdup(localhost,MYF(0)); /* Host is unknown */
create_new_thread(thd);
}
diff --git a/sql/sql_class.cc b/sql/sql_class.cc
index abe7fad822c..30eeb2e5e2c 100644
--- a/sql/sql_class.cc
+++ b/sql/sql_class.cc
@@ -176,7 +176,8 @@ THD::~THD()
if (host != localhost) // If not pointer to constant
safeFree(host);
- safeFree(user);
+ if (user != delayed_user)
+ safeFree(user);
safeFree(db);
safeFree(ip);
free_root(&mem_root,MYF(0));
diff --git a/sql/sql_delete.cc b/sql/sql_delete.cc
index e1196341bef..fc150b08a69 100644
--- a/sql/sql_delete.cc
+++ b/sql/sql_delete.cc
@@ -192,7 +192,7 @@ int mysql_delete(THD *thd,TABLE_LIST *table_list,COND *conds,ha_rows limit,
(void) table->file->extra(HA_EXTRA_NO_READCHECK);
if (options & OPTION_QUICK)
(void) table->file->extra(HA_EXTRA_QUICK);
- init_read_record(&info,thd,table,select,1,1);
+ init_read_record(&info,thd,table,select,0,1);
ulong deleted=0L;
thd->proc_info="updating";
while (!(error=info.read_record(&info)) && !thd->killed)
diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc
index 8e8f46b2e1f..e92c5255ef8 100644
--- a/sql/sql_insert.cc
+++ b/sql/sql_insert.cc
@@ -489,7 +489,8 @@ public:
table(0),tables_in_use(0),stacked_inserts(0), status(0), dead(0),
group_count(0)
{
- thd.user=0; thd.host=(char*) localhost;
+ thd.user=thd.priv_user=(char*) delayed_user;
+ thd.host=(char*) localhost;
thd.current_tablenr=0;
thd.version=refresh_version;
thd.command=COM_DELAYED_INSERT;
diff --git a/tests/fork3_test.pl b/tests/fork3_test.pl
index 0ede221a7f4..032f1bf15e9 100755
--- a/tests/fork3_test.pl
+++ b/tests/fork3_test.pl
@@ -1,9 +1,9 @@
#!/usr/bin/perl -w
#
-# This is a test with uses 3 processes to insert, delete and select
+# This is a test with uses 4 processes to insert, delete , check and select
#
-$opt_loop_count=100000; # Change this to make test harder/easier
+$opt_loop_count=200000; # Change this to make test harder/easier
##################### Standard benchmark inits ##############################
@@ -21,8 +21,8 @@ GetOptions("host=s","db=s","loop-count=i","skip-create","skip-in","skip-delete",
"verbose","fast-insert","lock-tables","debug","fast","force") || die "Aborted";
$opt_verbose=$opt_debug=$opt_lock_tables=$opt_fast_insert=$opt_fast=$opt_skip_in=$opt_force=undef; # Ignore warnings from these
-print "Testing 3 multiple connections to a server with 1 insert, 1 delete\n";
-print "and 1 select connections.\n";
+print "Testing 4 multiple connections to a server with 1 insert, 1 delete\n";
+print "1 select and one repair/check connection.\n";
$firsttable = "bench_f1";
@@ -51,6 +51,7 @@ $|= 1; # Autoflush
test_insert() if (($pid=fork()) == 0); $work{$pid}="insert";
test_delete() if (($pid=fork()) == 0); $work{$pid}="delete";
test_select() if (($pid=fork()) == 0); $work{$pid}="select1";
+repair_and_check() if (($pid=fork()) == 0); $work{$pid}="repair/check";
$errors=0;
while (($pid=wait()) != -1)
@@ -148,3 +149,40 @@ sub test_select
print "Test_select: ok\n";
exit(0);
}
+
+sub repair_and_check
+{
+ my ($dbh,$row,$found1,$last_found1,$i,$type, $table);
+ $found1=0; $last_found1= -1;
+
+ $dbh = DBI->connect("DBI:mysql:$opt_db:$opt_host",
+ $opt_user, $opt_password,
+ { PrintError => 0}) || die $DBI::errstr;
+
+ for ($i=0; $found1 != $last_found1 ; $i++)
+ {
+ $type=($i & 2) ? "repair" : "check";
+ $table=$firsttable;
+ $last_found1=$found1;
+ $sth=$dbh->prepare("$type table $table") || die "Got error on prepare: $dbh->errstr\n";
+ $sth->execute || die $dbh->errstr;
+
+ while (($row=$sth->fetchrow_arrayref))
+ {
+ if ($row->[3] ne "OK")
+ {
+ print "Got error " . $row->[3] . " when doing $type on $table\n";
+ exit(1);
+ }
+ }
+ $sth=$dbh->prepare("select count(*) from $table") || die "Got error on prepare: $dbh->errstr\n";
+ $sth->execute || die $dbh->errstr;
+ @row = $sth->fetchrow_array();
+ $found1= $row[0];
+ $sth->finish;
+ sleep(3);
+ }
+ $dbh->disconnect; $dbh=0;
+ print "check/repair: Did $i repair/checks\n";
+ exit(0);
+}