Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
b3392db2
Commit
b3392db2
authored
Jan 22, 2001
by
monty@donna.mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixes for OSF1
Made test more reliable on slow machines
parent
2d108230
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
98 additions
and
94 deletions
+98
-94
Docs/manual.texi
Docs/manual.texi
+3
-0
client/mysqladmin.c
client/mysqladmin.c
+21
-17
include/my_pthread.h
include/my_pthread.h
+2
-0
mysql-test/install_test_db.sh
mysql-test/install_test_db.sh
+1
-5
mysql-test/mysql-test-run.sh
mysql-test/mysql-test-run.sh
+5
-5
mysql-test/r/rpl000015.result
mysql-test/r/rpl000015.result
+1
-1
mysql-test/t/rpl000015.test
mysql-test/t/rpl000015.test
+1
-0
mysql-test/t/rpl000016.test
mysql-test/t/rpl000016.test
+1
-0
sql/sql_repl.cc
sql/sql_repl.cc
+1
-0
sql/sql_table.cc
sql/sql_table.cc
+62
-66
No files found.
Docs/manual.texi
View file @
b3392db2
...
...
@@ -40713,6 +40713,9 @@ not yet 100 % confident in this code.
@appendixsubsec Changes in release 3.23.32
@itemize @bullet
@item
Changed code to get around compiler bug in Compaq C++ on OSF1, that broke
@code{BACKUP, RESTORE, CHECK, REPAIR, and ANALYZE TABLE}.
@item
Added option @code{FULL} to @code{SHOW COLUMNS}. Now we only show the
privilege list for the columns if this option is given.
@item
client/mysqladmin.c
View file @
b3392db2
...
...
@@ -28,7 +28,7 @@
#include <my_pthread.h>
/* because of signal() */
#endif
#define ADMIN_VERSION "8.1
3
"
#define ADMIN_VERSION "8.1
4
"
#define MAX_MYSQL_VAR 64
#define MAX_TIME_TO_WAIT 3600
/* Wait for shutdown */
#define MAX_TRUNC_LENGTH 3
...
...
@@ -37,9 +37,9 @@ char truncated_var_names[MAX_MYSQL_VAR][MAX_TRUNC_LENGTH];
char
ex_var_names
[
MAX_MYSQL_VAR
][
FN_REFLEN
];
ulonglong
last_values
[
MAX_MYSQL_VAR
];
static
int
interval
=
0
;
static
my_bool
option_force
=
0
,
interrupted
=
0
,
new_line
=
0
,
option_silent
=
0
,
static
my_bool
option_force
=
0
,
interrupted
=
0
,
new_line
=
0
,
opt_compress
=
0
,
opt_relative
=
0
,
opt_verbose
=
0
,
opt_vertical
=
0
;
static
uint
tcp_port
=
0
,
option_wait
=
0
;
static
uint
tcp_port
=
0
,
option_wait
=
0
,
option_silent
=
0
;
static
ulong
opt_connect_timeout
;
static
my_string
unix_port
=
0
;
...
...
@@ -201,7 +201,7 @@ int main(int argc,char *argv[])
}
break
;
case
's'
:
option_silent
=
1
;
option_silent
++
;
break
;
case
'S'
:
unix_port
=
optarg
;
...
...
@@ -367,21 +367,22 @@ static my_bool sql_connect(MYSQL *mysql,const char *host, const char *user,
fprintf
(
stderr
,
"Got error: %s
\n
"
,
mysql_error
(
mysql
));
if
(
!
option_force
)
return
1
;
sleep
(
5
);
}
else
if
(
!
info
)
else
if
(
!
option_silent
)
{
info
=
1
;
fputs
(
"Waiting for MySQL server to answer"
,
stderr
);
(
void
)
fflush
(
stderr
);
sleep
(
5
);
}
else
{
putc
(
'.'
,
stderr
);
(
void
)
fflush
(
stderr
);
sleep
(
5
);
if
(
!
info
)
{
info
=
1
;
fputs
(
"Waiting for MySQL server to answer"
,
stderr
);
(
void
)
fflush
(
stderr
);
}
else
{
putc
(
'.'
,
stderr
);
(
void
)
fflush
(
stderr
);
}
}
sleep
(
5
);
}
}
...
...
@@ -739,7 +740,10 @@ static my_bool execute_commands(MYSQL *mysql,int argc, char **argv)
case
ADMIN_PING
:
mysql
->
reconnect
=
0
;
/* We want to know of reconnects */
if
(
!
mysql_ping
(
mysql
))
puts
(
"mysqld is alive"
);
{
if
(
option_silent
<
2
)
puts
(
"mysqld is alive"
);
}
else
{
if
(
mysql_errno
(
mysql
)
==
CR_SERVER_GONE_ERROR
)
...
...
include/my_pthread.h
View file @
b3392db2
...
...
@@ -433,6 +433,8 @@ int safe_cond_timedwait(pthread_cond_t *cond, safe_mutex_t *mp,
#undef pthread_mutex_wait
#undef pthread_mutex_timedwait
#undef pthread_mutex_t
#undef pthread_cond_wait
#undef pthread_cond_timedwait
#define pthread_mutex_init(A,B) safe_mutex_init((A),(B))
#define pthread_mutex_lock(A) safe_mutex_lock((A),__FILE__,__LINE__)
#define pthread_mutex_unlock(A) safe_mutex_unlock((A),__FILE__,__LINE__)
...
...
mysql-test/install_test_db.sh
View file @
b3392db2
...
...
@@ -43,8 +43,6 @@ PATH=$PATH:/usr/bsd
hostname
=
`
hostname
`
# Install this too in the user table
hostname
=
"
$hostname
%"
# Fix if not fully qualified hostname
resolved
=
127.0.0.1
#create the directories
[
-d
$vardir
]
||
mkdir
$vardir
...
...
@@ -144,9 +142,7 @@ then
i_u
=
"INSERT INTO user VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
INSERT INTO user VALUES ('
$hostname
','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
REPLACE INTO user VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
REPLACE INTO user VALUES ('
$hostname
','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
REPLACE INTO user VALUES ('127.0.0.1','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
INSERT INTO user VALUES ('localhost','','','N','N','N','N','N','N','N','N','N','N','N','N','N','N');
INSERT INTO user VALUES ('
$hostname
','','','N','N','N','N','N','N','N','N','N','N','N','N','N','N');"
...
...
mysql-test/mysql-test-run.sh
View file @
b3392db2
...
...
@@ -35,6 +35,7 @@ RM=rm
TIME
=
time
TR
=
tr
XARGS
=
`
which xargs |
head
-1
`
SED
=
sed
# Are we using a source or a binary distribution?
...
...
@@ -72,7 +73,7 @@ BASEDIR=`pwd`
cd
$CWD
MYSQL_TEST_DIR
=
$BASEDIR
/mysql-test
STD_DATA
=
$MYSQL_TEST_DIR
/std_data
SED
=
sed
hostname
=
`
hostname
`
# Installed in the mysql privilege table
TESTDIR
=
"
$MYSQL_TEST_DIR
/t/"
TESTSUFFIX
=
test
...
...
@@ -238,10 +239,9 @@ SLAVE_MYSQLD=$MYSQLD #this can be changed later if we are doing gcov
# Function Definitions
#--
wait_for_server_start
()
{
$MYSQL
--no-defaults
-u
$DBUSER
-e
"select 1"
--silent
-w1
--host
=
127.0.0.1
--port
=
$1
\
>
/dev/null
}
{
$MYSQLADMIN
--no-defaults
-u
$DBUSER
--silent
-w2
--host
=
$hostname
--port
=
$1
ping
>
/dev/null
}
prompt_user
()
{
...
...
mysql-test/r/rpl000015.result
View file @
b3392db2
...
...
@@ -7,7 +7,7 @@ Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Rep
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db
127.0.0.1 root 9306 60 4 No
Master_Host Master_User Master_Port Connect_retry Log_File Pos Slave_Running Replicate_do_db Replicate_ignore_db
127.0.0.1 root 9306 60
4
Yes
127.0.0.1 root 9306 60
master-bin.001 73
Yes
n
10
45
...
...
mysql-test/t/rpl000015.test
View file @
b3392db2
...
...
@@ -13,6 +13,7 @@ change master to master_host='127.0.0.1',master_user='root',
master_password
=
''
,
master_port
=
9306
;
show
slave
status
;
slave
start
;
sleep
3
;
show
slave
status
;
connection
master
;
drop
table
if
exists
foo
;
...
...
mysql-test/t/rpl000016.test
View file @
b3392db2
...
...
@@ -27,6 +27,7 @@ create table t2(m int);
insert
into
t2
values
(
34
),(
67
),(
123
);
flush
logs
;
show
master
logs
;
sleep
2
;
# If a slow machine
purge
master
logs
to
'master-bin.003'
;
show
master
logs
;
insert
into
t2
values
(
65
);
...
...
sql/sql_repl.cc
View file @
b3392db2
...
...
@@ -408,6 +408,7 @@ sweepstakes if you report the bug";
// slave
break
;
case
LOG_READ_EOF
:
DBUG_PRINT
(
"wait"
,(
"waiting for data on binary log"
));
pthread_cond_wait
(
&
COND_binlog_update
,
log_lock
);
break
;
...
...
sql/sql_table.cc
View file @
b3392db2
...
...
@@ -799,74 +799,76 @@ static int send_check_errmsg(THD* thd, TABLE_LIST* table,
static
int
prepare_for_restore
(
THD
*
thd
,
TABLE_LIST
*
table
)
{
String
*
packet
=
&
thd
->
packet
;
DBUG_ENTER
(
"prepare_for_restore"
);
if
(
table
->
table
)
// do not overwrite existing tables on restore
{
return
send_check_errmsg
(
thd
,
table
,
"restore"
,
"table exists, will not overwrite on restore"
);
}
if
(
table
->
table
)
// do not overwrite existing tables on restore
{
DBUG_RETURN
(
send_check_errmsg
(
thd
,
table
,
"restore"
,
"table exists, will not overwrite on restore"
)
);
}
else
{
char
*
backup_dir
=
thd
->
lex
.
backup_dir
;
char
src_path
[
FN_REFLEN
],
dst_path
[
FN_REFLEN
];
char
*
table_name
=
table
->
name
;
char
*
db
=
thd
->
db
?
thd
->
db
:
table
->
db
;
if
(
!
fn_format
(
src_path
,
table_name
,
backup_dir
,
reg_ext
,
4
+
64
))
return
-
1
;
// protect buffer overflow
{
char
*
backup_dir
=
thd
->
lex
.
backup_dir
;
char
src_path
[
FN_REFLEN
],
dst_path
[
FN_REFLEN
];
char
*
table_name
=
table
->
name
;
char
*
db
=
thd
->
db
?
thd
->
db
:
table
->
db
;
sprintf
(
dst_path
,
"%s/%s/%s"
,
mysql_real_data_home
,
db
,
table_name
);
if
(
!
fn_format
(
src_path
,
table_name
,
backup_dir
,
reg_ext
,
4
+
64
))
DBUG_RETURN
(
-
1
);
// protect buffer overflow
int
lock_retcode
;
pthread_mutex_lock
(
&
LOCK_open
);
if
((
lock_retcode
=
lock_table_name
(
thd
,
table
))
<
0
)
{
pthread_mutex_unlock
(
&
LOCK_open
);
return
-
1
;
}
sprintf
(
dst_path
,
"%s/%s/%s"
,
mysql_real_data_home
,
db
,
table_name
);
if
(
lock_retcode
&&
wait_for_locked_table_names
(
thd
,
table
))
{
unlock_table_name
(
thd
,
table
);
pthread_mutex_unlock
(
&
LOCK_open
);
return
-
1
;
}
int
lock_retcode
;
pthread_mutex_lock
(
&
LOCK_open
);
if
((
lock_retcode
=
lock_table_name
(
thd
,
table
))
<
0
)
{
pthread_mutex_unlock
(
&
LOCK_open
);
DBUG_RETURN
(
-
1
);
}
if
(
my_copy
(
src_path
,
fn_format
(
dst_path
,
dst_path
,
""
,
reg_ext
,
4
),
MYF
(
MY_WME
)))
{
unlock_table_name
(
thd
,
table
);
return
send_check_errmsg
(
thd
,
table
,
"restore"
,
"Failed copying .frm file"
);
}
bool
save_no_send_ok
=
thd
->
net
.
no_send_ok
;
thd
->
net
.
no_send_ok
=
1
;
// generate table will try to send OK which messes up the output
// for the client
if
(
lock_retcode
&&
wait_for_locked_table_names
(
thd
,
table
))
{
unlock_table_name
(
thd
,
table
);
pthread_mutex_unlock
(
&
LOCK_open
);
DBUG_RETURN
(
-
1
);
}
pthread_mutex_unlock
(
&
LOCK_open
);
if
(
generate_table
(
thd
,
table
,
0
))
{
unlock_table_name
(
thd
,
table
);
thd
->
net
.
no_send_ok
=
save_no_send_ok
;
return
send_check_errmsg
(
thd
,
table
,
"restore"
,
"Failed generating table from .frm file"
);
}
if
(
my_copy
(
src_path
,
fn_format
(
dst_path
,
dst_path
,
""
,
reg_ext
,
4
),
MYF
(
MY_WME
)))
{
unlock_table_name
(
thd
,
table
);
DBUG_RETURN
(
send_check_errmsg
(
thd
,
table
,
"restore"
,
"Failed copying .frm file"
));
}
bool
save_no_send_ok
=
thd
->
net
.
no_send_ok
;
thd
->
net
.
no_send_ok
=
1
;
// generate table will try to send OK which messes up the output
// for the client
if
(
generate_table
(
thd
,
table
,
0
))
{
unlock_table_name
(
thd
,
table
);
thd
->
net
.
no_send_ok
=
save_no_send_ok
;
DBUG_RETURN
(
send_check_errmsg
(
thd
,
table
,
"restore"
,
"Failed generating table from .frm file"
));
}
return
0
;
thd
->
net
.
no_send_ok
=
save_no_send_ok
;
}
DBUG_RETURN
(
0
);
}
static
int
mysql_admin_table
(
THD
*
thd
,
TABLE_LIST
*
tables
,
HA_CHECK_OPT
*
check_opt
,
thr_lock_type
lock_type
,
bool
open_for_modify
,
const
char
*
operator_name
,
thr_lock_type
lock_type
,
bool
open_for_modify
,
bool
restore
,
uint
extra_open_options
,
int
(
handler
::*
operator_func
)
(
THD
*
,
HA_CHECK_OPT
*
))
{
...
...
@@ -894,12 +896,11 @@ static int mysql_admin_table(THD* thd, TABLE_LIST* tables,
bool
fatal_error
=
0
;
strxmov
(
table_name
,
db
?
db
:
""
,
"."
,
table
->
name
,
NullS
);
if
(
operator_func
==
&
handler
::
repair
||
operator_func
==
&
handler
::
check
)
thd
->
open_options
|=
HA_OPEN_FOR_REPAIR
;
thd
->
open_options
|=
extra_open_options
;
table
->
table
=
open_ltable
(
thd
,
table
,
lock_type
);
thd
->
open_options
&=
~
HA_OPEN_FOR_REPAIR
;
thd
->
open_options
&=
~
extra_open_options
;
packet
->
length
(
0
);
if
(
operator_func
==
&
handler
::
restore
)
if
(
restore
)
{
switch
(
prepare_for_restore
(
thd
,
table
))
{
case
1
:
continue
;
// error, message written to net
...
...
@@ -1023,16 +1024,14 @@ int mysql_backup_table(THD* thd, TABLE_LIST* table_list)
{
DBUG_ENTER
(
"mysql_backup_table"
);
DBUG_RETURN
(
mysql_admin_table
(
thd
,
table_list
,
0
,
TL_READ
,
1
,
"backup"
,
"backup"
,
TL_READ
,
1
,
0
,
0
,
&
handler
::
backup
));
}
int
mysql_restore_table
(
THD
*
thd
,
TABLE_LIST
*
table_list
)
{
DBUG_ENTER
(
"mysql_restore_table"
);
DBUG_RETURN
(
mysql_admin_table
(
thd
,
table_list
,
0
,
TL_WRITE
,
1
,
"restore"
,
"restore"
,
TL_WRITE
,
1
,
1
,
0
,
&
handler
::
restore
));
}
...
...
@@ -1040,8 +1039,7 @@ int mysql_repair_table(THD* thd, TABLE_LIST* tables, HA_CHECK_OPT* check_opt)
{
DBUG_ENTER
(
"mysql_repair_table"
);
DBUG_RETURN
(
mysql_admin_table
(
thd
,
tables
,
check_opt
,
TL_WRITE
,
1
,
"repair"
,
"repair"
,
TL_WRITE
,
1
,
0
,
HA_OPEN_FOR_REPAIR
,
&
handler
::
repair
));
}
...
...
@@ -1049,8 +1047,7 @@ int mysql_optimize_table(THD* thd, TABLE_LIST* tables, HA_CHECK_OPT* check_opt)
{
DBUG_ENTER
(
"mysql_optimize_table"
);
DBUG_RETURN
(
mysql_admin_table
(
thd
,
tables
,
check_opt
,
TL_WRITE
,
1
,
"optimize"
,
"optimize"
,
TL_WRITE
,
1
,
0
,
0
,
&
handler
::
optimize
));
}
...
...
@@ -1059,8 +1056,7 @@ int mysql_analyze_table(THD* thd, TABLE_LIST* tables, HA_CHECK_OPT* check_opt)
{
DBUG_ENTER
(
"mysql_analyze_table"
);
DBUG_RETURN
(
mysql_admin_table
(
thd
,
tables
,
check_opt
,
TL_READ_NO_INSERT
,
1
,
"analyze"
,
"analyze"
,
TL_READ_NO_INSERT
,
1
,
0
,
0
,
&
handler
::
analyze
));
}
...
...
@@ -1069,8 +1065,8 @@ int mysql_check_table(THD* thd, TABLE_LIST* tables,HA_CHECK_OPT* check_opt)
{
DBUG_ENTER
(
"mysql_check_table"
);
DBUG_RETURN
(
mysql_admin_table
(
thd
,
tables
,
check_opt
,
TL_READ_NO_INSERT
,
0
,
"check"
,
TL_READ_NO_INSERT
,
0
,
0
,
HA_OPEN_FOR_REPAIR
,
&
handler
::
check
));
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment