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
ab1f95df
Commit
ab1f95df
authored
Mar 24, 2006
by
msvensson@neptunus.(none)
Browse files
Options
Browse Files
Download
Plain Diff
Merge 192.168.0.100:mysql/mysql-5.0
into neptunus.(none):/home/msvensson/mysql/mysql-5.1
parents
6a6d3055
de6b1b77
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
91 additions
and
20 deletions
+91
-20
client/mysqltest.c
client/mysqltest.c
+9
-2
include/config-win.h
include/config-win.h
+15
-0
mysql-test/lib/mtr_report.pl
mysql-test/lib/mtr_report.pl
+9
-1
mysql-test/mysql-test-run.pl
mysql-test/mysql-test-run.pl
+12
-5
mysql-test/r/subselect.result
mysql-test/r/subselect.result
+6
-0
mysql-test/t/subselect.test
mysql-test/t/subselect.test
+11
-0
mysys/my_lib.c
mysys/my_lib.c
+17
-9
sql/opt_range.cc
sql/opt_range.cc
+12
-3
No files found.
client/mysqltest.c
View file @
ab1f95df
...
@@ -463,6 +463,7 @@ static VAR* var_init(VAR* v, const char *name, int name_len, const char *val,
...
@@ -463,6 +463,7 @@ static VAR* var_init(VAR* v, const char *name, int name_len, const char *val,
static
void
var_free
(
void
*
v
);
static
void
var_free
(
void
*
v
);
void
dump_result_to_reject_file
(
const
char
*
record_file
,
char
*
buf
,
int
size
);
void
dump_result_to_reject_file
(
const
char
*
record_file
,
char
*
buf
,
int
size
);
void
dump_result_to_log_file
(
const
char
*
record_file
,
char
*
buf
,
int
size
);
int
close_connection
(
struct
st_query
*
);
int
close_connection
(
struct
st_query
*
);
static
void
set_charset
(
struct
st_query
*
);
static
void
set_charset
(
struct
st_query
*
);
...
@@ -671,9 +672,9 @@ static void die(const char *fmt, ...)
...
@@ -671,9 +672,9 @@ static void die(const char *fmt, ...)
}
}
va_end
(
args
);
va_end
(
args
);
/* Dump the result that has been accumulated so far to
reject
file */
/* Dump the result that has been accumulated so far to
.log
file */
if
(
result_file
&&
ds_res
.
length
)
if
(
result_file
&&
ds_res
.
length
)
dump_result_to_
reject
_file
(
result_file
,
ds_res
.
str
,
ds_res
.
length
);
dump_result_to_
log
_file
(
result_file
,
ds_res
.
str
,
ds_res
.
length
);
/* Clean up and exit */
/* Clean up and exit */
free_used_memory
();
free_used_memory
();
...
@@ -3500,6 +3501,12 @@ void dump_result_to_reject_file(const char *record_file, char *buf, int size)
...
@@ -3500,6 +3501,12 @@ void dump_result_to_reject_file(const char *record_file, char *buf, int size)
str_to_file
(
fn_format
(
reject_file
,
record_file
,
""
,
".reject"
,
2
),
buf
,
size
);
str_to_file
(
fn_format
(
reject_file
,
record_file
,
""
,
".reject"
,
2
),
buf
,
size
);
}
}
void
dump_result_to_log_file
(
const
char
*
record_file
,
char
*
buf
,
int
size
)
{
char
log_file
[
FN_REFLEN
];
str_to_file
(
fn_format
(
log_file
,
record_file
,
""
,
".log"
,
2
),
buf
,
size
);
}
static
void
check_regerr
(
my_regex_t
*
r
,
int
err
)
static
void
check_regerr
(
my_regex_t
*
r
,
int
err
)
{
{
char
err_buf
[
1024
];
char
err_buf
[
1024
];
...
...
include/config-win.h
View file @
ab1f95df
...
@@ -422,8 +422,15 @@ inline double ulonglong2double(ulonglong value)
...
@@ -422,8 +422,15 @@ inline double ulonglong2double(ulonglong value)
#define shared_memory_buffer_length 16000
#define shared_memory_buffer_length 16000
#define default_shared_memory_base_name "MYSQL"
#define default_shared_memory_base_name "MYSQL"
#ifdef CYBOZU
#define MYSQL_DEFAULT_CHARSET_NAME "utf8"
#define MYSQL_DEFAULT_COLLATION_NAME "utf8_general_cs"
#define HAVE_UTF8_GENERAL_CS 1
#else
#define MYSQL_DEFAULT_CHARSET_NAME "latin1"
#define MYSQL_DEFAULT_CHARSET_NAME "latin1"
#define MYSQL_DEFAULT_COLLATION_NAME "latin1_swedish_ci"
#define MYSQL_DEFAULT_COLLATION_NAME "latin1_swedish_ci"
#endif
#define HAVE_SPATIAL 1
#define HAVE_SPATIAL 1
#define HAVE_RTREE_KEYS 1
#define HAVE_RTREE_KEYS 1
...
@@ -435,8 +442,10 @@ inline double ulonglong2double(ulonglong value)
...
@@ -435,8 +442,10 @@ inline double ulonglong2double(ulonglong value)
/* Define charsets you want */
/* Define charsets you want */
/* #undef HAVE_CHARSET_armscii8 */
/* #undef HAVE_CHARSET_armscii8 */
/* #undef HAVE_CHARSET_ascii */
/* #undef HAVE_CHARSET_ascii */
#ifndef CYBOZU
#define HAVE_CHARSET_big5 1
#define HAVE_CHARSET_big5 1
#define HAVE_CHARSET_cp1250 1
#define HAVE_CHARSET_cp1250 1
#endif
/* #undef HAVE_CHARSET_cp1251 */
/* #undef HAVE_CHARSET_cp1251 */
/* #undef HAVE_CHARSET_cp1256 */
/* #undef HAVE_CHARSET_cp1256 */
/* #undef HAVE_CHARSET_cp1257 */
/* #undef HAVE_CHARSET_cp1257 */
...
@@ -445,27 +454,33 @@ inline double ulonglong2double(ulonglong value)
...
@@ -445,27 +454,33 @@ inline double ulonglong2double(ulonglong value)
/* #undef HAVE_CHARSET_cp866 */
/* #undef HAVE_CHARSET_cp866 */
#define HAVE_CHARSET_cp932 1
#define HAVE_CHARSET_cp932 1
/* #undef HAVE_CHARSET_dec8 */
/* #undef HAVE_CHARSET_dec8 */
#ifndef CYBOZU
#define HAVE_CHARSET_eucjpms 1
#define HAVE_CHARSET_eucjpms 1
#define HAVE_CHARSET_euckr 1
#define HAVE_CHARSET_euckr 1
#define HAVE_CHARSET_gb2312 1
#define HAVE_CHARSET_gb2312 1
#define HAVE_CHARSET_gbk 1
#define HAVE_CHARSET_gbk 1
#endif
/* #undef HAVE_CHARSET_greek */
/* #undef HAVE_CHARSET_greek */
/* #undef HAVE_CHARSET_hebrew */
/* #undef HAVE_CHARSET_hebrew */
/* #undef HAVE_CHARSET_hp8 */
/* #undef HAVE_CHARSET_hp8 */
/* #undef HAVE_CHARSET_keybcs2 */
/* #undef HAVE_CHARSET_keybcs2 */
/* #undef HAVE_CHARSET_koi8r */
/* #undef HAVE_CHARSET_koi8r */
/* #undef HAVE_CHARSET_koi8u */
/* #undef HAVE_CHARSET_koi8u */
#ifndef CYBOZU
#define HAVE_CHARSET_latin1 1
#define HAVE_CHARSET_latin1 1
#define HAVE_CHARSET_latin2 1
#define HAVE_CHARSET_latin2 1
#endif
/* #undef HAVE_CHARSET_latin5 */
/* #undef HAVE_CHARSET_latin5 */
/* #undef HAVE_CHARSET_latin7 */
/* #undef HAVE_CHARSET_latin7 */
/* #undef HAVE_CHARSET_macce */
/* #undef HAVE_CHARSET_macce */
/* #undef HAVE_CHARSET_macroman */
/* #undef HAVE_CHARSET_macroman */
#define HAVE_CHARSET_sjis 1
#define HAVE_CHARSET_sjis 1
/* #undef HAVE_CHARSET_swe7 */
/* #undef HAVE_CHARSET_swe7 */
#ifndef CYBOZU
#define HAVE_CHARSET_tis620 1
#define HAVE_CHARSET_tis620 1
#define HAVE_CHARSET_ucs2 1
#define HAVE_CHARSET_ucs2 1
#define HAVE_CHARSET_ujis 1
#define HAVE_CHARSET_ujis 1
#endif
#define HAVE_CHARSET_utf8 1
#define HAVE_CHARSET_utf8 1
#define HAVE_UCA_COLLATIONS 1
#define HAVE_UCA_COLLATIONS 1
mysql-test/lib/mtr_report.pl
View file @
ab1f95df
...
@@ -36,6 +36,7 @@ sub mtr_show_failed_diff ($) {
...
@@ -36,6 +36,7 @@ sub mtr_show_failed_diff ($) {
my
$reject_file
=
"
r/
$tname
.reject
";
my
$reject_file
=
"
r/
$tname
.reject
";
my
$result_file
=
"
r/
$tname
.result
";
my
$result_file
=
"
r/
$tname
.result
";
my
$log_file
=
"
r/
$tname
.log
";
my
$eval_file
=
"
r/
$tname
.eval
";
my
$eval_file
=
"
r/
$tname
.eval
";
if
(
$::opt_suite
ne
"
main
"
)
if
(
$::opt_suite
ne
"
main
"
)
...
@@ -43,10 +44,11 @@ sub mtr_show_failed_diff ($) {
...
@@ -43,10 +44,11 @@ sub mtr_show_failed_diff ($) {
$reject_file
=
"
$::glob_mysql_test_dir/suite/$::opt_suite/
$reject_file
";
$reject_file
=
"
$::glob_mysql_test_dir/suite/$::opt_suite/
$reject_file
";
$result_file
=
"
$::glob_mysql_test_dir/suite/$::opt_suite/
$result_file
";
$result_file
=
"
$::glob_mysql_test_dir/suite/$::opt_suite/
$result_file
";
$eval_file
=
"
$::glob_mysql_test_dir/suite/$::opt_suite/
$eval_file
";
$eval_file
=
"
$::glob_mysql_test_dir/suite/$::opt_suite/
$eval_file
";
$log_file
=
"
$::glob_mysql_test_dir/suite/$::opt_suite/
$log_file
";
}
}
if
(
-
f
$eval_file
)
if
(
-
f
$eval_file
)
{
{
$result_file
=
$eval_file
;
$result_file
=
$eval_file
;
}
}
elsif
(
$::opt_result_ext
and
elsif
(
$::opt_result_ext
and
...
@@ -70,6 +72,12 @@ sub mtr_show_failed_diff ($) {
...
@@ -70,6 +72,12 @@ sub mtr_show_failed_diff ($) {
print
"
http://www.mysql.com/doc/en/Reporting_mysqltest_bugs.html
\n
";
print
"
http://www.mysql.com/doc/en/Reporting_mysqltest_bugs.html
\n
";
print
"
to find the reason to this problem and how to report this.
\n\n
";
print
"
to find the reason to this problem and how to report this.
\n\n
";
}
}
if
(
-
f
$log_file
)
{
print
"
Result from queries before failure can be found in
$log_file
\n
";
# FIXME Maybe a tail -f -n 10 $log_file here
}
}
}
sub
mtr_report_test_name
($)
{
sub
mtr_report_test_name
($)
{
...
...
mysql-test/mysql-test-run.pl
View file @
ab1f95df
...
@@ -2786,11 +2786,11 @@ sub mysqld_start ($$$$$) {
...
@@ -2786,11 +2786,11 @@ sub mysqld_start ($$$$$) {
if
(
$opt_gdb
||
$opt_manual_gdb
)
if
(
$opt_gdb
||
$opt_manual_gdb
)
{
{
gdb_arguments
(
\
$args
,
\
$exe
,
$type
);
gdb_arguments
(
\
$args
,
\
$exe
,
"
$type
"
.
"
_
$idx
"
);
}
}
elsif
(
$opt_ddd
||
$opt_manual_ddd
)
elsif
(
$opt_ddd
||
$opt_manual_ddd
)
{
{
ddd_arguments
(
\
$args
,
\
$exe
,
$type
);
ddd_arguments
(
\
$args
,
\
$exe
,
"
$type
"
.
"
_
$idx
"
);
}
}
elsif
(
$opt_manual_debug
)
elsif
(
$opt_manual_debug
)
{
{
...
@@ -3325,9 +3325,10 @@ sub run_mysqltest ($) {
...
@@ -3325,9 +3325,10 @@ sub run_mysqltest ($) {
ddd_arguments
(
\
$args
,
\
$exe
,
"
client
");
ddd_arguments
(
\
$args
,
\
$exe
,
"
client
");
}
}
if
(
$glob_use_libtool
)
if
(
$glob_use_libtool
and
$opt_valgrind
)
{
{
# Add "libtool --mode-execute" before the test to execute
# Add "libtool --mode-execute" before the test to execute
# if running in valgrind(to avoid valgrinding bash)
unshift
(
@$args
,
"
--mode=execute
",
$exe
);
unshift
(
@$args
,
"
--mode=execute
",
$exe
);
$exe
=
"
libtool
";
$exe
=
"
libtool
";
}
}
...
@@ -3361,6 +3362,9 @@ sub gdb_arguments {
...
@@ -3361,6 +3362,9 @@ sub gdb_arguments {
my
$str
=
join
("
",
@$$args
);
my
$str
=
join
("
",
@$$args
);
my
$gdb_init_file
=
"
$opt_tmpdir
/gdbinit.
$type
";
my
$gdb_init_file
=
"
$opt_tmpdir
/gdbinit.
$type
";
# Remove the old gdbinit file
unlink
(
$gdb_init_file
);
if
(
$type
eq
"
client
"
)
if
(
$type
eq
"
client
"
)
{
{
# write init file for client
# write init file for client
...
@@ -3382,7 +3386,7 @@ sub gdb_arguments {
...
@@ -3382,7 +3386,7 @@ sub gdb_arguments {
if
(
$opt_manual_gdb
)
if
(
$opt_manual_gdb
)
{
{
print
"
\n
To start gdb for
$type
, type in another window:
\n
";
print
"
\n
To start gdb for
$type
, type in another window:
\n
";
print
"
cd
$glob_mysql_test_dir
;
\n
";
print
"
cd
$glob_mysql_test_dir
;
\n
";
print
"
gdb -x
$gdb_init_file
$
$exe
\n
";
print
"
gdb -x
$gdb_init_file
$
$exe
\n
";
...
@@ -3422,6 +3426,9 @@ sub ddd_arguments {
...
@@ -3422,6 +3426,9 @@ sub ddd_arguments {
my
$str
=
join
("
",
@$$args
);
my
$str
=
join
("
",
@$$args
);
my
$gdb_init_file
=
"
$opt_tmpdir
/gdbinit.
$type
";
my
$gdb_init_file
=
"
$opt_tmpdir
/gdbinit.
$type
";
# Remove the old gdbinit file
unlink
(
$gdb_init_file
);
if
(
$type
eq
"
client
"
)
if
(
$type
eq
"
client
"
)
{
{
# write init file for client
# write init file for client
...
@@ -3444,7 +3451,7 @@ sub ddd_arguments {
...
@@ -3444,7 +3451,7 @@ sub ddd_arguments {
if
(
$opt_manual_ddd
)
if
(
$opt_manual_ddd
)
{
{
print
"
\n
To start ddd for
$type
, type in another window:
\n
";
print
"
\n
To start ddd for
$type
, type in another window:
\n
";
print
"
cd
$glob_mysql_test_dir
;
\n
";
print
"
cd
$glob_mysql_test_dir
;
\n
";
print
"
ddd -x
$gdb_init_file
$
$exe
\n
";
print
"
ddd -x
$gdb_init_file
$
$exe
\n
";
...
...
mysql-test/r/subselect.result
View file @
ab1f95df
...
@@ -3163,3 +3163,9 @@ t
...
@@ -3163,3 +3163,9 @@ t
crash1
crash1
crash1
crash1
drop table t1;
drop table t1;
create table t1 (c int, key(c));
insert into t1 values (1142477582), (1142455969);
create table t2 (a int, b int);
insert into t2 values (2, 1), (1, 0);
delete from t1 where c <= 1140006215 and (select b from t2 where a = 2) = 1;
drop table t1, t2;
mysql-test/t/subselect.test
View file @
ab1f95df
...
@@ -2074,3 +2074,14 @@ create table t1( f1 int,f2 int);
...
@@ -2074,3 +2074,14 @@ create table t1( f1 int,f2 int);
insert
into
t1
values
(
1
,
1
),(
2
,
2
);
insert
into
t1
values
(
1
,
1
),(
2
,
2
);
select
tt
.
t
from
(
select
'crash1'
as
t
,
f2
from
t1
)
as
tt
left
join
t1
on
tt
.
t
=
'crash2'
and
tt
.
f2
=
t1
.
f2
where
tt
.
t
=
'crash1'
;
select
tt
.
t
from
(
select
'crash1'
as
t
,
f2
from
t1
)
as
tt
left
join
t1
on
tt
.
t
=
'crash2'
and
tt
.
f2
=
t1
.
f2
where
tt
.
t
=
'crash1'
;
drop
table
t1
;
drop
table
t1
;
#
# Bug #18306: server crash on delete using subquery.
#
create
table
t1
(
c
int
,
key
(
c
));
insert
into
t1
values
(
1142477582
),
(
1142455969
);
create
table
t2
(
a
int
,
b
int
);
insert
into
t2
values
(
2
,
1
),
(
1
,
0
);
delete
from
t1
where
c
<=
1140006215
and
(
select
b
from
t2
where
a
=
2
)
=
1
;
drop
table
t1
,
t2
;
mysys/my_lib.c
View file @
ab1f95df
...
@@ -398,14 +398,6 @@ MY_DIR *my_dir(const char *path, myf MyFlags)
...
@@ -398,14 +398,6 @@ MY_DIR *my_dir(const char *path, myf MyFlags)
tmp_file
[
2
]
=
'*'
;
tmp_file
[
2
]
=
'*'
;
tmp_file
[
3
]
=
'\0'
;
tmp_file
[
3
]
=
'\0'
;
#ifdef __BORLANDC__
if
((
handle
=
findfirst
(
tmp_path
,
&
find
,
0
))
==
-
1L
)
goto
error
;
#else
if
((
handle
=
_findfirst
(
tmp_path
,
&
find
))
==
-
1L
)
goto
error
;
#endif
if
(
!
(
buffer
=
my_malloc
(
ALIGN_SIZE
(
sizeof
(
MY_DIR
))
+
if
(
!
(
buffer
=
my_malloc
(
ALIGN_SIZE
(
sizeof
(
MY_DIR
))
+
ALIGN_SIZE
(
sizeof
(
DYNAMIC_ARRAY
))
+
ALIGN_SIZE
(
sizeof
(
DYNAMIC_ARRAY
))
+
sizeof
(
MEM_ROOT
),
MyFlags
)))
sizeof
(
MEM_ROOT
),
MyFlags
)))
...
@@ -425,7 +417,23 @@ MY_DIR *my_dir(const char *path, myf MyFlags)
...
@@ -425,7 +417,23 @@ MY_DIR *my_dir(const char *path, myf MyFlags)
/* MY_DIR structure is allocated and completly initialized at this point */
/* MY_DIR structure is allocated and completly initialized at this point */
result
=
(
MY_DIR
*
)
buffer
;
result
=
(
MY_DIR
*
)
buffer
;
#ifdef __BORLANDC__
if
((
handle
=
findfirst
(
tmp_path
,
&
find
,
0
))
==
-
1L
)
#else
if
((
handle
=
_findfirst
(
tmp_path
,
&
find
))
==
-
1L
)
#endif
{
DBUG_PRINT
(
"info"
,
(
"find_first returned error"
));
if
(
errno
!=
EINVAL
)
goto
error
;
/*
Could not read the directory, no read access.
Probably because by "chmod -r".
continue and return zero files in dir
*/
}
do
do
{
{
#ifdef __BORLANDC__
#ifdef __BORLANDC__
...
...
sql/opt_range.cc
View file @
ab1f95df
...
@@ -4799,9 +4799,18 @@ static SEL_TREE *get_mm_tree(RANGE_OPT_PARAM *param,COND *cond)
...
@@ -4799,9 +4799,18 @@ static SEL_TREE *get_mm_tree(RANGE_OPT_PARAM *param,COND *cond)
/* Here when simple cond */
/* Here when simple cond */
if
(
cond
->
const_item
())
if
(
cond
->
const_item
())
{
{
if
(
cond
->
val_int
())
/*
DBUG_RETURN
(
new
SEL_TREE
(
SEL_TREE
::
ALWAYS
));
During the cond->val_int() evaluation we can come across a subselect
DBUG_RETURN
(
new
SEL_TREE
(
SEL_TREE
::
IMPOSSIBLE
));
item which may allocate memory on the thd->mem_root and assumes
all the memory allocated has the same life span as the subselect
item itself. So we have to restore the thread's mem_root here.
*/
MEM_ROOT
*
tmp_root
=
param
->
mem_root
;
param
->
thd
->
mem_root
=
param
->
old_root
;
tree
=
cond
->
val_int
()
?
new
(
tmp_root
)
SEL_TREE
(
SEL_TREE
::
ALWAYS
)
:
new
(
tmp_root
)
SEL_TREE
(
SEL_TREE
::
IMPOSSIBLE
);
param
->
thd
->
mem_root
=
tmp_root
;
DBUG_RETURN
(
tree
);
}
}
table_map
ref_tables
=
0
;
table_map
ref_tables
=
0
;
...
...
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