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
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
204af030
Commit
204af030
authored
Dec 12, 2010
by
Vasil Dimov
Browse files
Options
Browse Files
Download
Plain Diff
Merge mysql-5.1-bugteam -> mysql-5.1-innodb
parents
ee321e80
6a84582c
Changes
15
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
113 additions
and
38 deletions
+113
-38
client/mysqltest.cc
client/mysqltest.cc
+43
-16
config/ac-macros/maintainer.m4
config/ac-macros/maintainer.m4
+4
-1
include/mysys_err.h
include/mysys_err.h
+2
-1
mysql-test/extra/binlog_tests/binlog_failure_mixing_engines.test
...est/extra/binlog_tests/binlog_failure_mixing_engines.test
+1
-0
mysql-test/mysql-test-run.pl
mysql-test/mysql-test-run.pl
+11
-4
mysql-test/r/mysqltest.result
mysql-test/r/mysqltest.result
+1
-1
mysql-test/suite/binlog/r/binlog_mixed_failure_mixing_engines.result
...suite/binlog/r/binlog_mixed_failure_mixing_engines.result
+1
-0
mysql-test/suite/binlog/r/binlog_row_failure_mixing_engines.result
...t/suite/binlog/r/binlog_row_failure_mixing_engines.result
+1
-0
mysql-test/t/mysqltest.test
mysql-test/t/mysqltest.test
+1
-0
mysys/errors.c
mysys/errors.c
+2
-0
mysys/my_seek.c
mysys/my_seek.c
+10
-3
mysys/my_symlink.c
mysys/my_symlink.c
+1
-2
sql/sql_db.cc
sql/sql_db.cc
+23
-8
storage/myisam/ha_myisam.cc
storage/myisam/ha_myisam.cc
+10
-2
storage/myisam/mi_check.c
storage/myisam/mi_check.c
+2
-0
No files found.
client/mysqltest.cc
View file @
204af030
...
...
@@ -73,6 +73,10 @@
#define QUERY_SEND_FLAG 1
#define QUERY_REAP_FLAG 2
#ifndef HAVE_SETENV
static
int
setenv
(
const
char
*
name
,
const
char
*
value
,
int
overwrite
);
#endif
enum
{
OPT_SKIP_SAFEMALLOC
=
OPT_MAX_CLIENT_OPTION
,
OPT_PS_PROTOCOL
,
OPT_SP_PROTOCOL
,
OPT_CURSOR_PROTOCOL
,
OPT_VIEW_PROTOCOL
,
...
...
@@ -219,7 +223,6 @@ typedef struct
int
alloced_len
;
int
int_dirty
;
/* do not update string if int is updated until first read */
int
alloced
;
char
*
env_s
;
}
VAR
;
/*Perl/shell-like variable registers */
...
...
@@ -1088,8 +1091,8 @@ void handle_command_error(struct st_command *command, uint error)
int
i
;
if
(
command
->
abort_on_error
)
die
(
"command
\"
%.*s
\"
failed with error %d"
,
command
->
first_word_len
,
command
->
query
,
error
);
die
(
"command
\"
%.*s
\"
failed with error %d
. my_errno=%d
"
,
command
->
first_word_len
,
command
->
query
,
error
,
my_errno
);
i
=
match_expected_error
(
command
,
error
,
NULL
);
...
...
@@ -1100,8 +1103,8 @@ void handle_command_error(struct st_command *command, uint error)
DBUG_VOID_RETURN
;
}
if
(
command
->
expected_errors
.
count
>
0
)
die
(
"command
\"
%.*s
\"
failed with wrong error: %d"
,
command
->
first_word_len
,
command
->
query
,
error
);
die
(
"command
\"
%.*s
\"
failed with wrong error: %d
. my_errno=%d
"
,
command
->
first_word_len
,
command
->
query
,
error
,
my_errno
);
}
else
if
(
command
->
expected_errors
.
err
[
0
].
type
==
ERR_ERRNO
&&
command
->
expected_errors
.
err
[
0
].
code
.
errnum
!=
0
)
...
...
@@ -1962,7 +1965,7 @@ VAR *var_init(VAR *v, const char *name, int name_len, const char *val,
val_len
=
strlen
(
val
)
;
val_alloc_len
=
val_len
+
16
;
/* room to grow */
if
(
!
(
tmp_var
=
v
)
&&
!
(
tmp_var
=
(
VAR
*
)
my_malloc
(
sizeof
(
*
tmp_var
)
+
name_len
+
1
,
MYF
(
MY_WME
))))
+
name_len
+
2
,
MYF
(
MY_WME
))))
die
(
"Out of memory"
);
tmp_var
->
name
=
(
name
)
?
(
char
*
)
tmp_var
+
sizeof
(
*
tmp_var
)
:
0
;
...
...
@@ -1971,7 +1974,12 @@ VAR *var_init(VAR *v, const char *name, int name_len, const char *val,
if
(
!
(
tmp_var
->
str_val
=
(
char
*
)
my_malloc
(
val_alloc_len
+
1
,
MYF
(
MY_WME
))))
die
(
"Out of memory"
);
memcpy
(
tmp_var
->
name
,
name
,
name_len
);
if
(
name
)
{
memcpy
(
tmp_var
->
name
,
name
,
name_len
);
tmp_var
->
name
[
name_len
]
=
0
;
}
if
(
val
)
{
memcpy
(
tmp_var
->
str_val
,
val
,
val_len
);
...
...
@@ -1982,7 +1990,6 @@ VAR *var_init(VAR *v, const char *name, int name_len, const char *val,
tmp_var
->
alloced_len
=
val_alloc_len
;
tmp_var
->
int_val
=
(
val
)
?
atoi
(
val
)
:
0
;
tmp_var
->
int_dirty
=
0
;
tmp_var
->
env_s
=
0
;
return
tmp_var
;
}
...
...
@@ -2110,20 +2117,15 @@ void var_set(const char *var_name, const char *var_name_end,
if
(
env_var
)
{
char
buf
[
1024
],
*
old_env_s
=
v
->
env_s
;
if
(
v
->
int_dirty
)
{
sprintf
(
v
->
str_val
,
"%d"
,
v
->
int_val
);
v
->
int_dirty
=
0
;
v
->
str_val_len
=
strlen
(
v
->
str_val
);
}
my_snprintf
(
buf
,
sizeof
(
buf
),
"%.*s=%.*s"
,
v
->
name_len
,
v
->
name
,
v
->
str_val_len
,
v
->
str_val
);
if
(
!
(
v
->
env_s
=
my_strdup
(
buf
,
MYF
(
MY_WME
))))
die
(
"Out of memory"
);
putenv
(
v
->
env_s
);
my_free
(
old_env_s
,
MYF
(
MY_ALLOW_ZERO_PTR
));
/* setenv() expects \0-terminated strings */
DBUG_ASSERT
(
v
->
name
[
v
->
name_len
]
==
0
);
setenv
(
v
->
name
,
v
->
str_val
,
1
);
}
DBUG_VOID_RETURN
;
}
...
...
@@ -7644,6 +7646,16 @@ void init_re(void)
int
match_re
(
my_regex_t
*
re
,
char
*
str
)
{
while
(
my_isspace
(
charset_info
,
*
str
))
str
++
;
if
(
str
[
0
]
==
'/'
&&
str
[
1
]
==
'*'
)
{
char
*
comm_end
=
strstr
(
str
,
"*/"
);
if
(
!
comm_end
)
die
(
"Statement is unterminated comment"
);
str
=
comm_end
+
2
;
}
int
err
=
my_regexec
(
re
,
str
,
(
size_t
)
0
,
NULL
,
0
);
if
(
err
==
0
)
...
...
@@ -9908,3 +9920,18 @@ void dynstr_append_sorted(DYNAMIC_STRING* ds, DYNAMIC_STRING *ds_input)
delete_dynamic
(
&
lines
);
DBUG_VOID_RETURN
;
}
#ifndef HAVE_SETENV
static
int
setenv
(
const
char
*
name
,
const
char
*
value
,
int
overwrite
)
{
size_t
buflen
=
strlen
(
name
)
+
strlen
(
value
)
+
2
;
char
*
envvar
=
(
char
*
)
malloc
(
buflen
);
if
(
!
envvar
)
return
ENOMEM
;
strcpy
(
envvar
,
name
);
strcat
(
envvar
,
"="
);
strcat
(
envvar
,
value
);
putenv
(
envvar
);
return
0
;
}
#endif
config/ac-macros/maintainer.m4
View file @
204af030
...
...
@@ -15,8 +15,11 @@ AC_DEFUN([MY_MAINTAINER_MODE], [
# Set warning options required under maintainer mode.
AC_DEFUN([MY_MAINTAINER_MODE_WARNINGS], [
# Detect ICC posing as GCC.
AC_EGREP_CPP([^__INTEL_COMPILER], [__INTEL_COMPILER],
[INTEL_COMPILER=no], [INTEL_COMPILER=yes])
# Setup GCC warning options.
AS_IF([test "$GCC" = "yes"], [
AS_IF([test "$GCC" = "yes"
-a "$INTEL_COMPILER" = "no"
], [
C_WARNINGS="-Wall -Wextra -Wunused -Wwrite-strings -Wno-strict-aliasing -Werror"
CXX_WARNINGS="${C_WARNINGS} -Wno-unused-parameter"
C_WARNINGS="${C_WARNINGS} -Wdeclaration-after-statement"
...
...
include/mysys_err.h
View file @
204af030
...
...
@@ -64,7 +64,8 @@ extern const char * NEAR globerrs[]; /* my_error_messages is here */
#define EE_FILE_NOT_CLOSED 30
#define EE_CHANGE_OWNERSHIP 31
#define EE_CHANGE_PERMISSIONS 32
#define EE_ERROR_LAST 32
/* Copy last error nr */
#define EE_CANT_SEEK 33
#define EE_ERROR_LAST 33
/* Copy last error nr */
/* Add error numbers before EE_ERROR_LAST and change it accordingly. */
/* exit codes for all MySQL programs */
...
...
mysql-test/extra/binlog_tests/binlog_failure_mixing_engines.test
View file @
204af030
...
...
@@ -60,6 +60,7 @@
# Please, remove this test case after pushing WL#2687.
################################################################################
RESET
MASTER
;
--
echo
###################################################################################
--
echo
# CONFIGURATION
...
...
mysql-test/mysql-test-run.pl
View file @
204af030
...
...
@@ -864,7 +864,7 @@ sub command_line_setup {
my
$opt_list_options
;
# Read the command line options
# Note: Keep list
, and the order,
in sync with usage at end of this file
# Note: Keep list in sync with usage at end of this file
Getopt::Long::
Configure
("
pass_through
");
my
%
options
=
(
# Control what engine/variation to run
...
...
@@ -900,6 +900,7 @@ sub command_line_setup {
'
combination=s
'
=>
\
@opt_combinations
,
'
skip-combinations
'
=>
\&
collect_option
,
'
experimental=s
'
=>
\
@opt_experimentals
,
# skip-im is deprecated and silently ignored
'
skip-im
'
=>
\&
ignore_option
,
# Specify ports
...
...
@@ -992,6 +993,7 @@ sub command_line_setup {
'
max-connections=i
'
=>
\
$opt_max_connections
,
'
help|h
'
=>
\
$opt_usage
,
# list-options is internal, not listed in help
'
list-options
'
=>
\
$opt_list_options
,
);
...
...
@@ -5467,7 +5469,7 @@ Options to control what engine/variation to run
defaults-file=<config template> Use fixed config template for all
tests
defaults
_extra_
file=<config template> Extra config template to add to
defaults
-extra-
file=<config template> Extra config template to add to
all generated configs
combination=<opt> Use at least twice to run tests with specified
options to mysqld
...
...
@@ -5558,7 +5560,7 @@ Options for debugging the product
test(s)
manual-ddd Let user manually start mysqld in ddd, before running
test(s)
strace-client
=[
path] Create strace output for mysqltest client, optionally
strace-client
[=
path] Create strace output for mysqltest client, optionally
specifying name and path to the trace program to use.
Example: $0 --strace-client=ktrace
max-save-core Limit the number of core files saved (to avoid filling
...
...
@@ -5591,7 +5593,7 @@ Options for valgrind
Misc options
user=USER User for connecting to mysqld(default: $opt_user)
comment=STR Write STR to the output
notimer Don't show test case execution time
timer Show test case execution time.
verbose More verbose output(use multiple times for even more)
verbose-restart Write when and why servers are restarted
start Only initialize and start the servers, using the
...
...
@@ -5631,6 +5633,7 @@ Misc options
actions. Disable facility with NUM=0.
gcov Collect coverage information after the test.
The result is a gcov file per source and header file.
gprof Collect profiling information using gprof.
experimental=<file> Refer to list of tests considered experimental;
failures will be marked exp-fail instead of fail.
report-features First run a "test" that reports mysql features
...
...
@@ -5639,6 +5642,10 @@ Misc options
*previous* test started
max-connections=N Max number of open connection to server in mysqltest
Some options that control enabling a feature for normal test runs,
can be turned off by prepending 'no' to the option, e.g. --notimer.
This applies to reorder, timer, check-testcases and warnings.
HERE
exit
(
1
);
...
...
mysql-test/r/mysqltest.result
View file @
204af030
...
...
@@ -591,7 +591,7 @@ if things work as expected
Some data
for cat_file command
of mysqltest
mysqltest: At line 1: command "cat_file" failed with error 1
mysqltest: At line 1: command "cat_file" failed with error 1
. (my_errno)
mysqltest: At line 1: Missing required argument 'filename' to command 'file_exists'
mysqltest: At line 1: Missing required argument 'from_file' to command 'copy_file'
mysqltest: At line 1: Missing required argument 'to_file' to command 'copy_file'
...
...
mysql-test/suite/binlog/r/binlog_mixed_failure_mixing_engines.result
View file @
204af030
RESET MASTER;
###################################################################################
# CONFIGURATION
###################################################################################
...
...
mysql-test/suite/binlog/r/binlog_row_failure_mixing_engines.result
View file @
204af030
RESET MASTER;
###################################################################################
# CONFIGURATION
###################################################################################
...
...
mysql-test/t/mysqltest.test
View file @
204af030
...
...
@@ -1936,6 +1936,7 @@ EOF
cat_file
$MYSQLTEST_VARDIR
/
tmp
/
test_file1
.
tmp
;
remove_file
$MYSQLTEST_VARDIR
/
tmp
/
test_file1
.
tmp
;
--
replace_regex
/
my_errno
=
[
0
-
9
]
*/
(
my_errno
)
/
--
error
1
--
exec
echo
"cat_file non_existing_file;"
|
$MYSQL_TEST
2
>&
1
...
...
mysys/errors.c
View file @
204af030
...
...
@@ -52,6 +52,7 @@ const char * NEAR globerrs[GLOBERRS]=
"File '%s' (fileno: %d) was not closed"
,
"Can't change ownership of the file '%s' (Errcode: %d)"
,
"Can't change permissions of the file '%s' (Errcode: %d)"
,
"Can't seek in file '%s' (Errcode: %d)"
};
void
init_glob_errs
(
void
)
...
...
@@ -94,6 +95,7 @@ void init_glob_errs()
EE
(
EE_FILE_NOT_CLOSED
)
=
"File '%s' (fileno: %d) was not closed"
;
EE
(
EE_CHANGE_OWNERSHIP
)
=
"Can't change ownership of the file '%s' (Errcode: %d)"
;
EE
(
EE_CHANGE_PERMISSIONS
)
=
"Can't change permissions of the file '%s' (Errcode: %d)"
;
EE
(
EE_CANT_SEEK
)
=
"Can't seek in file '%s' (Errcode: %d)"
;
}
#endif
...
...
mysys/my_seek.c
View file @
204af030
...
...
@@ -14,6 +14,7 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
#include "mysys_priv.h"
#include "mysys_err.h"
/*
Seek to a position in a file.
...
...
@@ -42,8 +43,7 @@
actual error.
*/
my_off_t
my_seek
(
File
fd
,
my_off_t
pos
,
int
whence
,
myf
MyFlags
__attribute__
((
unused
)))
my_off_t
my_seek
(
File
fd
,
my_off_t
pos
,
int
whence
,
myf
MyFlags
)
{
reg1
os_off_t
newpos
=
-
1
;
DBUG_ENTER
(
"my_seek"
);
...
...
@@ -69,6 +69,8 @@ my_off_t my_seek(File fd, my_off_t pos, int whence,
if
(
newpos
==
(
os_off_t
)
-
1
)
{
my_errno
=
errno
;
if
(
MyFlags
&
MY_WME
)
my_error
(
EE_CANT_SEEK
,
MYF
(
0
),
my_filename
(
fd
),
my_errno
);
DBUG_PRINT
(
"error"
,(
"lseek: %lu errno: %d"
,
(
ulong
)
newpos
,
errno
));
DBUG_RETURN
(
MY_FILEPOS_ERROR
);
}
...
...
@@ -83,7 +85,7 @@ my_off_t my_seek(File fd, my_off_t pos, int whence,
/* Tell current position of file */
/* ARGSUSED */
my_off_t
my_tell
(
File
fd
,
myf
MyFlags
__attribute__
((
unused
))
)
my_off_t
my_tell
(
File
fd
,
myf
MyFlags
)
{
os_off_t
pos
;
DBUG_ENTER
(
"my_tell"
);
...
...
@@ -95,7 +97,12 @@ my_off_t my_tell(File fd, myf MyFlags __attribute__((unused)))
pos
=
lseek
(
fd
,
0L
,
MY_SEEK_CUR
);
#endif
if
(
pos
==
(
os_off_t
)
-
1
)
{
my_errno
=
errno
;
if
(
MyFlags
&
MY_WME
)
my_error
(
EE_CANT_SEEK
,
MYF
(
0
),
my_filename
(
fd
),
my_errno
);
DBUG_PRINT
(
"error"
,
(
"tell: %lu errno: %d"
,
(
ulong
)
pos
,
my_errno
));
}
DBUG_PRINT
(
"exit"
,(
"pos: %lu"
,
(
ulong
)
pos
));
DBUG_RETURN
((
my_off_t
)
pos
);
}
/* my_tell */
mysys/my_symlink.c
View file @
204af030
...
...
@@ -118,8 +118,7 @@ int my_is_symlink(const char *filename __attribute__((unused)))
'to' may be equal to 'filename'
*/
int
my_realpath
(
char
*
to
,
const
char
*
filename
,
myf
MyFlags
__attribute__
((
unused
)))
int
my_realpath
(
char
*
to
,
const
char
*
filename
,
myf
MyFlags
)
{
#if defined(HAVE_REALPATH) && !defined(HAVE_BROKEN_REALPATH)
int
result
=
0
;
...
...
sql/sql_db.cc
View file @
204af030
...
...
@@ -948,9 +948,6 @@ bool mysql_rm_db(THD *thd,char *db,bool if_exists, bool silent)
remove_db_from_cache
(
db
);
pthread_mutex_unlock
(
&
LOCK_open
);
Drop_table_error_handler
err_handler
(
thd
->
get_internal_handler
());
thd
->
push_internal_handler
(
&
err_handler
);
error
=
-
1
;
/*
We temporarily disable the binary log while dropping the objects
...
...
@@ -983,8 +980,8 @@ bool mysql_rm_db(THD *thd,char *db,bool if_exists, bool silent)
error
=
0
;
reenable_binlog
(
thd
);
}
thd
->
pop_internal_handler
();
}
if
(
!
silent
&&
deleted
>=
0
)
{
const
char
*
query
;
...
...
@@ -1213,16 +1210,34 @@ static long mysql_rm_known_files(THD *thd, MY_DIR *dirp, const char *db,
else
{
strxmov
(
filePath
,
org_path
,
"/"
,
file
->
name
,
NullS
);
if
(
my_delete_with_symlink
(
filePath
,
MYF
(
MY_WME
)))
/*
We ignore ENOENT error in order to skip files that was deleted
by concurrently running statement like REAPIR TABLE ...
*/
if
(
my_delete_with_symlink
(
filePath
,
MYF
(
0
))
&&
my_errno
!=
ENOENT
)
{
goto
err
;
my_error
(
EE_DELETE
,
MYF
(
0
),
filePath
,
my_errno
);
goto
err
;
}
}
}
if
(
thd
->
killed
||
(
tot_list
&&
mysql_rm_table_part2
(
thd
,
tot_list
,
1
,
0
,
1
,
1
))
)
if
(
thd
->
killed
)
goto
err
;
if
(
tot_list
)
{
int
res
=
0
;
Drop_table_error_handler
err_handler
(
thd
->
get_internal_handler
());
thd
->
push_internal_handler
(
&
err_handler
);
res
=
mysql_rm_table_part2
(
thd
,
tot_list
,
1
,
0
,
1
,
1
);
thd
->
pop_internal_handler
();
if
(
res
)
goto
err
;
}
/* Remove RAID directories */
{
List_iterator
<
String
>
it
(
raid_dirs
);
...
...
storage/myisam/ha_myisam.cc
View file @
204af030
...
...
@@ -590,7 +590,11 @@ int ha_myisam::net_read_dump(NET* net)
int
data_fd
=
file
->
dfile
;
int
error
=
0
;
my_seek
(
data_fd
,
0L
,
MY_SEEK_SET
,
MYF
(
MY_WME
));
if
(
my_seek
(
data_fd
,
0L
,
MY_SEEK_SET
,
MYF
(
MY_WME
))
==
MY_FILEPOS_ERROR
)
{
error
=
my_errno
;
goto
err
;
}
for
(;;)
{
ulong
packet_len
=
my_net_read
(
net
);
...
...
@@ -626,7 +630,11 @@ int ha_myisam::dump(THD* thd, int fd)
return
ENOMEM
;
int
error
=
0
;
my_seek
(
data_fd
,
0L
,
MY_SEEK_SET
,
MYF
(
MY_WME
));
if
(
my_seek
(
data_fd
,
0L
,
MY_SEEK_SET
,
MYF
(
MY_WME
))
==
MY_FILEPOS_ERROR
)
{
error
=
my_errno
;
goto
err
;
}
for
(;
bytes_to_read
>
0
;)
{
size_t
bytes
=
my_read
(
data_fd
,
buf
,
blocksize
,
MYF
(
MY_WME
));
...
...
storage/myisam/mi_check.c
View file @
204af030
...
...
@@ -1741,6 +1741,8 @@ err:
MYF
(
MY_REDEL_MAKE_BACKUP
)
:
MYF
(
0
)))
||
mi_open_datafile
(
info
,
share
,
name
,
-
1
))
got_error
=
1
;
param
->
retry_repair
=
0
;
}
}
if
(
got_error
)
...
...
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