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
3f28115e
Commit
3f28115e
authored
12 years ago
by
Sergei Golubchik
Browse files
Options
Browse Files
Download
Plain Diff
5.3 merge
parents
db39910f
c068b831
Changes
35
Hide whitespace changes
Inline
Side-by-side
Showing
35 changed files
with
351 additions
and
277 deletions
+351
-277
cmd-line-utils/libedit/sys.h
cmd-line-utils/libedit/sys.h
+11
-11
mysql-test/include/icp_tests.inc
mysql-test/include/icp_tests.inc
+3
-3
mysql-test/mysql-test-run.pl
mysql-test/mysql-test-run.pl
+3
-2
mysql-test/r/innodb_icp.result
mysql-test/r/innodb_icp.result
+9
-9
mysql-test/r/join_cache.result
mysql-test/r/join_cache.result
+12
-12
mysql-test/r/lock_multi.result
mysql-test/r/lock_multi.result
+1
-0
mysql-test/r/maria_icp.result
mysql-test/r/maria_icp.result
+9
-9
mysql-test/r/myisam_icp.result
mysql-test/r/myisam_icp.result
+9
-24
mysql-test/r/myisam_icp_notembedded.result
mysql-test/r/myisam_icp_notembedded.result
+19
-0
mysql-test/r/myisam_mrr.result
mysql-test/r/myisam_mrr.result
+15
-0
mysql-test/r/status.result
mysql-test/r/status.result
+11
-5
mysql-test/r/status_user.result
mysql-test/r/status_user.result
+5
-2
mysql-test/r/type_timestamp.result
mysql-test/r/type_timestamp.result
+13
-0
mysql-test/t/join_cache.test
mysql-test/t/join_cache.test
+4
-4
mysql-test/t/lock_multi.test
mysql-test/t/lock_multi.test
+1
-0
mysql-test/t/myisam_icp.test
mysql-test/t/myisam_icp.test
+0
-128
mysql-test/t/myisam_icp_notembedded.test
mysql-test/t/myisam_icp_notembedded.test
+139
-0
mysql-test/t/myisam_mrr.test
mysql-test/t/myisam_mrr.test
+0
-1
mysql-test/t/type_timestamp.test
mysql-test/t/type_timestamp.test
+6
-1
mysys/thr_lock.c
mysys/thr_lock.c
+31
-12
plugin/auth_pam/auth_pam.c
plugin/auth_pam/auth_pam.c
+4
-0
scripts/make_binary_distribution.sh
scripts/make_binary_distribution.sh
+1
-0
scripts/mysql_config.sh
scripts/mysql_config.sh
+1
-1
sql/handler.cc
sql/handler.cc
+3
-3
sql/item_timefunc.cc
sql/item_timefunc.cc
+0
-8
sql/item_timefunc.h
sql/item_timefunc.h
+0
-5
sql/multi_range_read.cc
sql/multi_range_read.cc
+8
-4
sql/mysqld.cc
sql/mysqld.cc
+8
-8
sql/sql_class.h
sql/sql_class.h
+5
-5
sql/sql_handler.cc
sql/sql_handler.cc
+1
-1
sql/sql_join_cache.cc
sql/sql_join_cache.cc
+6
-6
storage/innobase/btr/btr0sea.c
storage/innobase/btr/btr0sea.c
+3
-3
storage/innobase/ha/ha0ha.c
storage/innobase/ha/ha0ha.c
+3
-3
storage/innobase/include/ha0ha.h
storage/innobase/include/ha0ha.h
+5
-5
storage/innobase/include/ha0ha.ic
storage/innobase/include/ha0ha.ic
+2
-2
No files found.
cmd-line-utils/libedit/sys.h
View file @
3f28115e
...
...
@@ -40,6 +40,17 @@
#ifndef _h_sys
#define _h_sys
#ifdef __linux__
/* Apparently we need _GNU_SOURCE defined to get access to wcsdup on Linux */
#ifndef _GNU_SOURCE
#define _GNU_SOURCE
#endif
#endif
#ifndef __USE_XOPEN
#define __USE_XOPEN
#endif
#ifdef HAVE_SYS_CDEFS_H
#include <sys/cdefs.h>
#endif
...
...
@@ -92,17 +103,6 @@ size_t strlcpy(char *dst, const char *src, size_t size);
char
*
fgetln
(
FILE
*
fp
,
size_t
*
len
);
#endif
#ifdef __linux__
/* Apparently we need _GNU_SOURCE defined to get access to wcsdup on Linux */
#ifndef _GNU_SOURCE
#define _GNU_SOURCE
#endif
#endif
#ifndef __USE_XOPEN
#define __USE_XOPEN
#endif
#include <wchar.h>
#include <wctype.h>
...
...
This diff is collapsed.
Click to expand it.
mysql-test/include/icp_tests.inc
View file @
3f28115e
...
...
@@ -862,15 +862,15 @@ CREATE TABLE t1 (
INSERT
INTO
t1
VALUES
(
'3'
,
'3'
),(
'4'
,
'4'
),(
'5'
,
'5'
);
flush
status
;
show
status
like
"Handler_
pushed
%"
;
show
status
like
"Handler_
icp
%"
;
SELECT
*
FROM
t1
FORCE
INDEX
(
c1
)
WHERE
(
c1
=
'3'
or
c1
=
'4'
)
and
c1
%
2
=
0
;
show
status
like
"Handler_
pushed
%"
;
show
status
like
"Handler_
icp
%"
;
SELECT
*
FROM
t1
WHERE
(
c2
=
'3'
or
c2
=
'4'
)
and
c2
%
2
=
0
;
show
status
like
"Handler_
pushed
%"
;
show
status
like
"Handler_
icp
%"
;
DROP
TABLE
t1
;
This diff is collapsed.
Click to expand it.
mysql-test/mysql-test-run.pl
View file @
3f28115e
...
...
@@ -2748,7 +2748,8 @@ sub setup_vardir() {
{
$plugindir
=
$mysqld_variables
{'
plugin-dir
'}
||
'
.
';
# hm, what paths work for debs and for rpms ?
for
(
<
$bindir
/lib/m
ysql
/plugin/
*.
so
>
,
for
(
<
$bindir
/lib64/m
ysql
/plugin/
*.
so
>
,
<
$bindir
/lib/m
ysql
/plugin/
*.
so
>
,
<
$bindir
/lib/plugin
/*.
dll
>
)
{
my
$pname
=
basename
(
$_
);
...
...
@@ -4785,7 +4786,7 @@ sub extract_warning_lines ($$) {
qr/Slave: Operation DROP USER failed for 'create_rout_db'/
,
qr|Checking table: '\..mtr.test_suppressions'|
,
qr|Table \./test/bug53592 has a primary key in InnoDB data dictionary, but not in MySQL|
,
qr|
mysqld:
Table '\..mtr.test_suppressions' is marked as crashed and should be repaired|
,
qr|Table '\..mtr.test_suppressions' is marked as crashed and should be repaired|
,
qr|Can't open shared library.*ha_archive|
,
qr|InnoDB: Error: table 'test/bug39438'|
,
qr| entry '.*' ignored in --skip-name-resolve mode|
,
...
...
This diff is collapsed.
Click to expand it.
mysql-test/r/innodb_icp.result
View file @
3f28115e
...
...
@@ -816,24 +816,24 @@ KEY (c1)
);
INSERT INTO t1 VALUES ('3', '3'),('4','4'),('5','5');
flush status;
show status like "Handler_
pushed
%";
show status like "Handler_
icp
%";
Variable_name Value
Handler_
pushed_index_cond_checks
0
Handler_
pushed_index_cond_filtered
0
Handler_
icp_attempts
0
Handler_
icp_match
0
SELECT * FROM t1 FORCE INDEX(c1) WHERE (c1='3' or c1='4') and c1 % 2 = 0 ;
c1 c2
4 4
show status like "Handler_
pushed
%";
show status like "Handler_
icp
%";
Variable_name Value
Handler_
pushed_index_cond_checks
2
Handler_
pushed_index_cond_filtered
1
Handler_
icp_attempts
2
Handler_
icp_match
1
SELECT * FROM t1 WHERE (c2='3' or c2='4') and c2 % 2 = 0 ;
c1 c2
4 4
show status like "Handler_
pushed
%";
show status like "Handler_
icp
%";
Variable_name Value
Handler_
pushed_index_cond_checks
2
Handler_
pushed_index_cond_filtered
1
Handler_
icp_attempts
2
Handler_
icp_match
1
DROP TABLE t1;
#
# BUG#920132: Assert trx->n_active_thrs == 1 failed at que0que.c line 1050
...
...
This diff is collapsed.
Click to expand it.
mysql-test/r/join_cache.result
View file @
3f28115e
...
...
@@ -3520,10 +3520,10 @@ where t1.f1=t2.f1 and t2.f2 between t1.f1 and t2.f2;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
1 SIMPLE t2 ref f1 f1 4 test.t1.f1 3 Using index condition(BKA); Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
show status like "Handler_
pushed
%";
show status like "Handler_
icp
%";
Variable_name Value
Handler_
pushed_index_cond_checks
20
Handler_
pushed_index_cond_filtered 16
Handler_
icp_attempts
20
Handler_
icp_match 4
set join_cache_level=6;
select t2.f1, t2.f2, t2.f3 from t1,t2
where t1.f1=t2.f1 and t2.f2 between t1.f1 and t1.f2 and t2.f2 + 1 >= t1.f1 + 1;
...
...
@@ -3537,10 +3537,10 @@ where t1.f1=t2.f1 and t2.f2 between t1.f1 and t2.f2;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
1 SIMPLE t2 ref f1 f1 4 test.t1.f1 3 Using index condition(BKA); Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
show status like "Handler_
pushed
%";
show status like "Handler_
icp
%";
Variable_name Value
Handler_
pushed_index_cond_checks
40
Handler_
pushed_index_cond_filtered 32
Handler_
icp_attempts
40
Handler_
icp_match 8
set join_cache_level=7;
select t2.f1, t2.f2, t2.f3 from t1,t2
where t1.f1=t2.f1 and t2.f2 between t1.f1 and t1.f2 and t2.f2 + 1 >= t1.f1 + 1;
...
...
@@ -3554,10 +3554,10 @@ where t1.f1=t2.f1 and t2.f2 between t1.f1 and t2.f2;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
1 SIMPLE t2 ref f1 f1 4 test.t1.f1 3 Using index condition(BKA); Using where; Using join buffer (flat, BKAH join); Key-ordered Rowid-ordered scan
show status like "Handler_
pushed
%";
show status like "Handler_
icp
%";
Variable_name Value
Handler_
pushed_index_cond_checks
60
Handler_
pushed_index_cond_filtered 48
Handler_
icp_attempts
60
Handler_
icp_match 12
set join_cache_level=8;
select t2.f1, t2.f2, t2.f3 from t1,t2
where t1.f1=t2.f1 and t2.f2 between t1.f1 and t1.f2 and t2.f2 + 1 >= t1.f1 + 1;
...
...
@@ -3571,10 +3571,10 @@ where t1.f1=t2.f1 and t2.f2 between t1.f1 and t2.f2;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
1 SIMPLE t2 ref f1 f1 4 test.t1.f1 3 Using index condition(BKA); Using where; Using join buffer (flat, BKAH join); Key-ordered Rowid-ordered scan
show status like "Handler_
pushed
%";
show status like "Handler_
icp
%";
Variable_name Value
Handler_
pushed_index_cond_checks
80
Handler_
pushed_index_cond_filtered 64
Handler_
icp_attempts
80
Handler_
icp_match 16
drop table t1,t2;
set join_cache_level=default;
#
...
...
This diff is collapsed.
Click to expand it.
mysql-test/r/lock_multi.result
View file @
3f28115e
drop table if exists t1,t2;
drop DATABASE if exists mysqltest_1;
create table t1(n int);
insert into t1 values (1);
select get_lock("mysqltest_lock", 100);
...
...
This diff is collapsed.
Click to expand it.
mysql-test/r/maria_icp.result
View file @
3f28115e
...
...
@@ -822,24 +822,24 @@ KEY (c1)
);
INSERT INTO t1 VALUES ('3', '3'),('4','4'),('5','5');
flush status;
show status like "Handler_
pushed
%";
show status like "Handler_
icp
%";
Variable_name Value
Handler_
pushed_index_cond_checks
0
Handler_
pushed_index_cond_filtered
0
Handler_
icp_attempts
0
Handler_
icp_match
0
SELECT * FROM t1 FORCE INDEX(c1) WHERE (c1='3' or c1='4') and c1 % 2 = 0 ;
c1 c2
4 4
show status like "Handler_
pushed
%";
show status like "Handler_
icp
%";
Variable_name Value
Handler_
pushed_index_cond_checks
2
Handler_
pushed_index_cond_filtered
1
Handler_
icp_attempts
2
Handler_
icp_match
1
SELECT * FROM t1 WHERE (c2='3' or c2='4') and c2 % 2 = 0 ;
c1 c2
4 4
show status like "Handler_
pushed
%";
show status like "Handler_
icp
%";
Variable_name Value
Handler_
pushed_index_cond_checks
2
Handler_
pushed_index_cond_filtered
1
Handler_
icp_attempts
2
Handler_
icp_match
1
DROP TABLE t1;
set storage_engine= @save_storage_engine;
set optimizer_switch=@maria_icp_tmp;
This diff is collapsed.
Click to expand it.
mysql-test/r/myisam_icp.result
View file @
3f28115e
...
...
@@ -820,24 +820,24 @@ KEY (c1)
);
INSERT INTO t1 VALUES ('3', '3'),('4','4'),('5','5');
flush status;
show status like "Handler_
pushed
%";
show status like "Handler_
icp
%";
Variable_name Value
Handler_
pushed_index_cond_checks
0
Handler_
pushed_index_cond_filtered
0
Handler_
icp_attempts
0
Handler_
icp_match
0
SELECT * FROM t1 FORCE INDEX(c1) WHERE (c1='3' or c1='4') and c1 % 2 = 0 ;
c1 c2
4 4
show status like "Handler_
pushed
%";
show status like "Handler_
icp
%";
Variable_name Value
Handler_
pushed_index_cond_checks
2
Handler_
pushed_index_cond_filtered
1
Handler_
icp_attempts
2
Handler_
icp_match
1
SELECT * FROM t1 WHERE (c2='3' or c2='4') and c2 % 2 = 0 ;
c1 c2
4 4
show status like "Handler_
pushed
%";
show status like "Handler_
icp
%";
Variable_name Value
Handler_
pushed_index_cond_checks
2
Handler_
pushed_index_cond_filtered
1
Handler_
icp_attempts
2
Handler_
icp_match
1
DROP TABLE t1;
drop table if exists t0, t1, t1i, t1m;
#
...
...
@@ -914,19 +914,4 @@ Warning 1292 Truncated incorrect DOUBLE value: 'c'
Warning 1292 Truncated incorrect DOUBLE value: 'c'
SET optimizer_switch=@save_optimizer_switch;
DROP TABLE t1,t2,t3,t4;
#
# BUG#933412: Server crashes in _mi_put_key_in_record on KILL QUERY with ICP, STRAIGHT_JOIN
#
CREATE TABLE t1 (
b INT,
c VARCHAR(1) NOT NULL,
d DATETIME,
KEY (c, b)
) ENGINE=MyISAM;
# INSERT some data
CREATE TABLE t2 ( a INT ) ENGINE=MyISAM;
INSERT INTO t2 VALUES
(7),(3),(7),(3);
# Now run a number of ICP queries while trying to kill them
DROP TABLE t1,t2;
set optimizer_switch=@myisam_icp_tmp;
This diff is collapsed.
Click to expand it.
mysql-test/r/myisam_icp_notembedded.result
0 → 100644
View file @
3f28115e
drop table if exists t1,t2;
set @myisam_icp_notembedded_tmp=@@optimizer_switch;
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
#
# BUG#933412: Server crashes in _mi_put_key_in_record on KILL QUERY with ICP, STRAIGHT_JOIN
#
CREATE TABLE t1 (
b INT,
c VARCHAR(1) NOT NULL,
d DATETIME,
KEY (c, b)
) ENGINE=MyISAM;
# INSERT some data
CREATE TABLE t2 ( a INT ) ENGINE=MyISAM;
INSERT INTO t2 VALUES
(7),(3),(7),(3);
# Now run a number of ICP queries while trying to kill them
DROP TABLE t1,t2;
set optimizer_switch=@myisam_icp_notembedded_tmp;
This diff is collapsed.
Click to expand it.
mysql-test/r/myisam_mrr.result
View file @
3f28115e
...
...
@@ -563,6 +563,9 @@ drop table t1;
flush status;
show status like 'Handler_mrr%';
Variable_name Value
Handler_mrr_init 0
Handler_mrr_key_refills 0
Handler_mrr_rowid_refills 0
create table t0 (a int);
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
create table t1 (a int, b int, filler char(200), key(a));
...
...
@@ -578,6 +581,9 @@ sum(b)
1230
show status like 'handler_mrr%';
Variable_name Value
Handler_mrr_init 1
Handler_mrr_key_refills 0
Handler_mrr_rowid_refills 0
set @mrr_buffer_size_save= @@mrr_buffer_size;
set mrr_buffer_size=128;
explain select sum(b) from t1 where a < 1600;
...
...
@@ -590,6 +596,9 @@ sum(b)
196800
show status like 'handler_mrr%';
Variable_name Value
Handler_mrr_init 1
Handler_mrr_key_refills 0
Handler_mrr_rowid_refills 1
set @@mrr_buffer_size= @mrr_buffer_size_save;
#Now, let's check BKA:
set @join_cache_level_save= @@join_cache_level;
...
...
@@ -605,6 +614,9 @@ sum(t1.b)
1230
show status like 'handler_mrr%';
Variable_name Value
Handler_mrr_init 1
Handler_mrr_key_refills 0
Handler_mrr_rowid_refills 0
set join_buffer_size=10;
explain select sum(t1.b) from t0,t1 where t0.a=t1.a;
id select_type table type possible_keys key key_len ref rows Extra
...
...
@@ -616,6 +628,9 @@ sum(t1.b)
1230
show status like 'handler_mrr%';
Variable_name Value
Handler_mrr_init 2
Handler_mrr_key_refills 3
Handler_mrr_rowid_refills 3
set join_cache_level= @join_cache_level_save;
set join_buffer_size= @join_buffer_size_save;
drop table t0, t1;
...
...
This diff is collapsed.
Click to expand it.
mysql-test/r/status.result
View file @
3f28115e
...
...
@@ -275,9 +275,12 @@ Variable_name Value
Handler_commit 0
Handler_delete 0
Handler_discover 0
Handler_icp_attempts 0
Handler_icp_match 0
Handler_mrr_init 0
Handler_mrr_key_refills 0
Handler_mrr_rowid_refills 0
Handler_prepare 0
Handler_pushed_index_cond_checks 0
Handler_pushed_index_cond_filtered 0
Handler_read_first 0
Handler_read_key 4
Handler_read_last 0
...
...
@@ -300,7 +303,7 @@ Created_tmp_files 0
Created_tmp_tables 2
Handler_tmp_update 2
Handler_tmp_write 7
Rows_tmp_read
38
Rows_tmp_read
41
drop table t1;
CREATE TABLE t1 (i int(11) DEFAULT NULL, KEY i (i) ) ENGINE=MyISAM;
insert into t1 values (1),(2),(3),(4),(5);
...
...
@@ -313,9 +316,12 @@ Variable_name Value
Handler_commit 0
Handler_delete 0
Handler_discover 0
Handler_icp_attempts 0
Handler_icp_match 0
Handler_mrr_init 0
Handler_mrr_key_refills 0
Handler_mrr_rowid_refills 0
Handler_prepare 0
Handler_pushed_index_cond_checks 0
Handler_pushed_index_cond_filtered 0
Handler_read_first 0
Handler_read_key 2
Handler_read_last 0
...
...
This diff is collapsed.
Click to expand it.
mysql-test/r/status_user.result
View file @
3f28115e
...
...
@@ -100,9 +100,12 @@ Variable_name Value
Handler_commit 19
Handler_delete 1
Handler_discover 0
Handler_icp_attempts 0
Handler_icp_match 0
Handler_mrr_init 0
Handler_mrr_key_refills 0
Handler_mrr_rowid_refills 0
Handler_prepare 18
Handler_pushed_index_cond_checks 0
Handler_pushed_index_cond_filtered 0
Handler_read_first 0
Handler_read_key 3
Handler_read_last 0
...
...
This diff is collapsed.
Click to expand it.
mysql-test/r/type_timestamp.result
View file @
3f28115e
...
...
@@ -587,6 +587,19 @@ Variable_name Value
Handler_read_next 1
DROP TABLE t1, t2;
End of 5.1 tests
#
# lp:923429 Crash in decimal_cmp on using UNIX_TIMESTAMP with a wrongly formatted timestamp
#
SELECT UNIX_TIMESTAMP('abc') > 0;
UNIX_TIMESTAMP('abc') > 0
NULL
Warnings:
Warning 1292 Incorrect datetime value: 'abc'
SELECT UNIX_TIMESTAMP('abc');
UNIX_TIMESTAMP('abc')
NULL
Warnings:
Warning 1292 Incorrect datetime value: 'abc'
Bug#50888 valgrind warnings in Field_timestamp::val_str
...
...
This diff is collapsed.
Click to expand it.
mysql-test/t/join_cache.test
View file @
3f28115e
...
...
@@ -1533,7 +1533,7 @@ where t1.f1=t2.f1 and t2.f2 between t1.f1 and t1.f2 and t2.f2 + 1 >= t1.f1 + 1;
explain
select
t2
.
f1
,
t2
.
f2
,
t2
.
f3
from
t1
,
t2
where
t1
.
f1
=
t2
.
f1
and
t2
.
f2
between
t1
.
f1
and
t2
.
f2
;
show
status
like
"Handler_
pushed
%"
;
show
status
like
"Handler_
icp
%"
;
set
join_cache_level
=
6
;
select
t2
.
f1
,
t2
.
f2
,
t2
.
f3
from
t1
,
t2
...
...
@@ -1541,7 +1541,7 @@ where t1.f1=t2.f1 and t2.f2 between t1.f1 and t1.f2 and t2.f2 + 1 >= t1.f1 + 1;
explain
select
t2
.
f1
,
t2
.
f2
,
t2
.
f3
from
t1
,
t2
where
t1
.
f1
=
t2
.
f1
and
t2
.
f2
between
t1
.
f1
and
t2
.
f2
;
show
status
like
"Handler_
pushed
%"
;
show
status
like
"Handler_
icp
%"
;
set
join_cache_level
=
7
;
select
t2
.
f1
,
t2
.
f2
,
t2
.
f3
from
t1
,
t2
...
...
@@ -1549,7 +1549,7 @@ where t1.f1=t2.f1 and t2.f2 between t1.f1 and t1.f2 and t2.f2 + 1 >= t1.f1 + 1;
explain
select
t2
.
f1
,
t2
.
f2
,
t2
.
f3
from
t1
,
t2
where
t1
.
f1
=
t2
.
f1
and
t2
.
f2
between
t1
.
f1
and
t2
.
f2
;
show
status
like
"Handler_
pushed
%"
;
show
status
like
"Handler_
icp
%"
;
set
join_cache_level
=
8
;
select
t2
.
f1
,
t2
.
f2
,
t2
.
f3
from
t1
,
t2
...
...
@@ -1557,7 +1557,7 @@ where t1.f1=t2.f1 and t2.f2 between t1.f1 and t1.f2 and t2.f2 + 1 >= t1.f1 + 1;
explain
select
t2
.
f1
,
t2
.
f2
,
t2
.
f3
from
t1
,
t2
where
t1
.
f1
=
t2
.
f1
and
t2
.
f2
between
t1
.
f1
and
t2
.
f2
;
show
status
like
"Handler_
pushed
%"
;
show
status
like
"Handler_
icp
%"
;
drop
table
t1
,
t2
;
set
join_cache_level
=
default
;
...
...
This diff is collapsed.
Click to expand it.
mysql-test/t/lock_multi.test
View file @
3f28115e
...
...
@@ -3,6 +3,7 @@
--
disable_warnings
drop
table
if
exists
t1
,
t2
;
drop
DATABASE
if
exists
mysqltest_1
;
--
enable_warnings
# Test to see if select will get the lock ahead of low priority update
...
...
This diff is collapsed.
Click to expand it.
mysql-test/t/myisam_icp.test
View file @
3f28115e
...
...
@@ -262,133 +262,5 @@ SET optimizer_switch=@save_optimizer_switch;
DROP
TABLE
t1
,
t2
,
t3
,
t4
;
--
echo
#
--
echo
# BUG#933412: Server crashes in _mi_put_key_in_record on KILL QUERY with ICP, STRAIGHT_JOIN
--
echo
#
CREATE
TABLE
t1
(
b
INT
,
c
VARCHAR
(
1
)
NOT
NULL
,
d
DATETIME
,
KEY
(
c
,
b
)
)
ENGINE
=
MyISAM
;
--
echo
# INSERT some data
--
disable_query_log
INSERT
INTO
t1
(
b
,
d
,
c
)
VALUES
(
4
,
'2005-01-08 00:00:00'
,
'f'
),
(
1
,
'2004-05-20 10:45:51'
,
'c'
),(
2
,
'2006-08-11 21:33:49'
,
'e'
),
(
5
,
'2003-05-19 00:20:40'
,
'a'
),(
3
,
'2005-01-03 06:18:39'
,
'a'
),
(
7
,
'2008-11-25 18:18:14'
,
'b'
),(
6
,
'2008-11-09 15:53:46'
,
'b'
),
(
9
,
'2003-03-01 03:40:36'
,
'c'
),(
8
,
'2003-09-25 23:14:09'
,
'd'
),
(
0
,
'2007-01-17 09:18:31'
,
'f'
),(
9
,
'2008-09-08 09:52:24'
,
'c'
),
(
2
,
'2008-03-10 00:00:00'
,
'a'
),(
0
,
'2003-03-14 09:31:07'
,
'c'
),
(
4
,
'2005-04-25 00:00:00'
,
'h'
),(
6
,
'2001-08-01 05:55:55'
,
'e'
),
(
3
,
'2005-04-09 01:22:48'
,
'f'
),(
7
,
'2009-11-12 13:27:22'
,
'r'
),
(
0
,
'2009-03-28 05:05:28'
,
'h'
),(
15
,
'2005-05-16 04:35:41'
,
'f'
),
(
7
,
'2006-03-26 05:19:58'
,
'c'
),(
9
,
'2002-10-06 02:17:00'
,
'g'
),
(
4
,
'2007-01-28 03:28:20'
,
'b'
),(
1
,
'2009-04-22 10:16:40'
,
'c'
),
(
2
,
'2003-01-01 19:39:00'
,
'f'
),(
0
,
'2008-05-03 19:16:29'
,
't'
),
(
2
,
'2005-01-28 00:00:00'
,
'j'
),(
8
,
'2004-01-10 00:00:00'
,
'w'
),
(
8
,
'2000-06-13 21:56:37'
,
'a'
),(
5
,
'2001-03-21 19:24:49'
,
'o'
),
(
99
,
'2003-12-20 21:29:06'
,
'f'
),(
0
,
'1900-01-01 00:00:00'
,
'w'
),
(
7
,
'2000-12-19 00:00:00'
,
'c'
),(
0
,
'2000-03-03 06:10:19'
,
'l'
),
(
3
,
'2000-08-11 00:00:00'
,
'q'
),(
0
,
'2007-05-25 03:46:41'
,
'e'
),
(
241
,
'2005-05-17 00:00:00'
,
'j'
),(
4
,
'2005-11-02 00:44:06'
,
'r'
),
(
43
,
'2001-07-11 00:00:00'
,
'a'
),(
1
,
'2008-12-01 18:30:27'
,
'z'
),
(
4
,
'2004-10-25 00:00:00'
,
'i'
),(
5
,
'2000-04-08 12:12:01'
,
'c'
),
(
0
,
'1900-01-01 00:00:00'
,
'f'
),(
9
,
'2002-05-13 22:47:02'
,
'p'
),
(
1
,
'2008-10-09 15:39:40'
,
'd'
),(
3
,
'2004-06-24 00:00:00'
,
'd'
),
(
0
,
'2008-03-06 00:00:00'
,
'r'
),(
9
,
'2007-04-16 18:40:03'
,
'i'
),
(
3
,
'2008-03-16 19:49:37'
,
't'
),(
7
,
'2003-07-15 08:11:21'
,
'd'
),
(
8
,
'2005-02-11 00:04:53'
,
'r'
),(
0
,
'2002-09-21 00:00:00'
,
'y'
),
(
3
,
'2004-11-03 00:37:21'
,
'z'
),(
6
,
'2007-10-18 00:00:00'
,
'e'
),
(
6
,
'2007-01-21 10:42:56'
,
'o'
),(
5
,
'2000-03-26 21:21:04'
,
'b'
),
(
9
,
'2001-03-15 08:08:21'
,
'e'
),(
1
,
'2001-10-16 12:56:59'
,
'a'
),
(
6
,
'2004-05-01 23:45:55'
,
'o'
),(
4
,
'2000-03-04 00:00:00'
,
'f'
),
(
9
,
'2002-12-03 16:48:28'
,
'e'
),(
8
,
'2003-01-09 00:36:07'
,
'm'
),
(
1
,
'2006-06-22 04:32:41'
,
's'
),(
8
,
'2008-09-20 05:01:48'
,
'q'
),
(
4
,
'2006-06-02 22:15:31'
,
'g'
),(
2
,
'2002-05-14 07:07:42'
,
'e'
),
(
7
,
'2005-06-05 01:30:42'
,
'r'
),(
127
,
'2004-05-11 01:56:48'
,
'a'
),
(
210
,
'2003-11-05 00:41:34'
,
'z'
),(
5
,
'1900-01-01 00:00:00'
,
'h'
),
(
1
,
'2006-04-16 00:00:00'
,
'f'
),(
7
,
'2000-12-17 00:00:00'
,
'x'
),
(
8
,
'2009-05-09 20:43:07'
,
'b'
),(
175
,
'2008-11-26 16:33:09'
,
'p'
),
(
0
,
'2002-05-09 21:18:44'
,
'v'
),(
8
,
'2002-06-01 11:32:25'
,
'k'
),
(
1
,
'2008-11-09 23:56:00'
,
'a'
),(
0
,
'2008-01-08 10:18:46'
,
'c'
),
(
2
,
'2005-04-16 00:00:00'
,
'o'
),(
5
,
'2002-08-25 00:00:00'
,
'b'
),
(
64
,
'2005-12-05 21:51:52'
,
'b'
),(
4
,
'2005-08-10 00:00:00'
,
'i'
),
(
6
,
'2006-03-23 00:00:00'
,
'd'
),(
9
,
'2007-01-27 00:00:00'
,
'i'
),
(
8
,
'2008-08-16 00:00:00'
,
'a'
),(
7
,
'2003-01-16 12:13:18'
,
'k'
),
(
0
,
'2003-06-22 00:00:00'
,
'v'
),(
5
,
'2008-06-20 05:43:56'
,
'u'
),
(
8
,
'2004-09-23 18:57:17'
,
'e'
),(
1
,
'2000-12-26 00:00:00'
,
'y'
),
(
4
,
'2009-06-01 13:00:28'
,
'e'
),(
1
,
'2009-11-18 06:28:48'
,
'm'
),
(
0
,
'2004-06-12 10:01:10'
,
'e'
),(
2
,
'2005-10-16 01:48:55'
,
'e'
),
(
5
,
'2001-12-23 09:50:21'
,
'l'
),(
6
,
'1900-01-01 00:00:00'
,
'a'
),
(
1
,
'2001-10-28 00:00:00'
,
'd'
),(
1
,
'2008-07-12 23:30:19'
,
's'
),
(
0
,
'2002-10-11 16:51:16'
,
'r'
),(
4
,
'2007-09-18 06:27:10'
,
'x'
),
(
1
,
'2007-02-21 12:28:14'
,
'e'
),(
6
,
'2001-09-16 00:00:00'
,
'f'
),
(
0
,
'2007-09-20 02:25:45'
,
'c'
),(
0
,
'2006-08-07 03:25:56'
,
'j'
),
(
8
,
'2006-12-04 20:20:32'
,
't'
),(
7
,
'2007-09-05 10:13:10'
,
'i'
),
(
9
,
'2006-04-12 17:59:57'
,
't'
),(
2
,
'2009-04-28 00:06:09'
,
'b'
),
(
8
,
'2000-01-07 00:00:00'
,
'b'
),(
7
,
'2000-03-25 10:04:41'
,
'k'
),
(
4
,
'2000-07-10 00:44:55'
,
'w'
),(
9
,
'2007-09-22 14:26:26'
,
'j'
),
(
9
,
'2003-09-11 22:41:17'
,
'a'
),(
0
,
'2004-06-07 13:52:32'
,
'c'
),
(
8
,
'2008-10-09 00:00:00'
,
'p'
),(
1
,
'2007-04-01 00:00:00'
,
'c'
),
(
9
,
'2000-12-05 00:00:00'
,
'i'
),(
3
,
'1900-01-01 00:00:00'
,
'a'
),
(
3
,
'2005-12-24 21:50:54'
,
'e'
),(
8
,
'2009-07-21 19:34:55'
,
'n'
),
(
9
,
'2005-11-13 17:57:56'
,
'd'
),(
7
,
'2004-10-07 06:41:39'
,
'l'
),
(
1
,
'2004-11-20 08:05:08'
,
'u'
),(
3
,
'2005-05-25 00:00:00'
,
'r'
),
(
1
,
'2006-09-02 14:16:41'
,
'u'
),(
8
,
'2006-01-07 00:00:00'
,
'a'
),
(
9
,
'2003-04-05 00:54:20'
,
'w'
),(
2
,
'2003-12-22 00:00:00'
,
'a'
),
(
9
,
'2006-04-16 17:31:40'
,
'e'
),(
6
,
'2005-02-10 14:22:46'
,
'e'
),
(
7
,
'2004-04-27 05:54:52'
,
'p'
),(
1
,
'2005-12-07 00:00:00'
,
't'
),
(
5
,
'2004-04-03 20:56:28'
,
'd'
),(
4
,
'2000-09-07 05:17:16'
,
'h'
),
(
2
,
'2004-08-04 16:10:42'
,
'i'
),(
1
,
'2007-03-04 00:00:00'
,
'b'
),
(
9
,
'1900-01-01 00:00:00'
,
'd'
),(
1
,
'2000-05-12 23:02:50'
,
'm'
),
(
2
,
'1900-01-01 00:00:00'
,
'l'
),(
1
,
'1900-01-01 00:00:00'
,
'k'
),
(
4
,
'2000-07-14 01:25:18'
,
'd'
),(
5
,
'2009-08-21 00:00:00'
,
'w'
),
(
6
,
'2009-05-25 13:33:54'
,
'f'
),(
7
,
'2006-06-13 00:00:00'
,
'e'
),
(
8
,
'1900-01-01 00:00:00'
,
'a'
),(
6
,
'2004-02-24 00:00:00'
,
'j'
),
(
0
,
'2003-05-21 07:03:46'
,
'k'
),(
9
,
'1900-01-01 00:00:00'
,
'e'
),
(
2
,
'1900-01-01 00:00:00'
,
'y'
),(
2
,
'2000-12-22 00:00:00'
,
'e'
),
(
3
,
'2003-09-26 00:00:00'
,
'f'
),(
2
,
'2001-01-13 08:20:19'
,
'h'
),
(
9
,
'2008-09-23 20:03:28'
,
'n'
),(
5
,
'2007-03-20 02:41:38'
,
's'
),
(
1
,
'2009-02-14 10:27:18'
,
'a'
),(
0
,
'2001-08-10 17:44:05'
,
's'
),
(
3
,
'2008-01-20 12:49:54'
,
'v'
),(
1
,
'2001-05-05 09:09:59'
,
'r'
);
--
enable_query_log
CREATE
TABLE
t2
(
a
INT
)
ENGINE
=
MyISAM
;
INSERT
INTO
t2
VALUES
(
7
),(
3
),(
7
),(
3
);
# 'con2' will be the connection that will run all the KILLable statements
--
connect
(
con2
,
127.0
.
0.1
,
root
,,
test
)
--
let
$run
=
300
--
let
$con_id
=
`SELECT CONNECTION_ID()`
--
echo
# Now run a number of ICP queries while trying to kill them
--
disable_query_log
--
disable_result_log
while
(
$run
)
{
--
send
SELECT
*
FROM
t1
AS
alias1
STRAIGHT_JOIN
t1
AS
alias2
ON
alias2
.
c
=
alias1
.
c
WHERE
alias2
.
b
>=
9
;
--
connect
(
con1
,
127.0
.
0.1
,
root
,,
test
)
--
eval
KILL
QUERY
$con_id
--
disconnect
con1
--
dec
$run
--
connection
con2
--
error
0
,
ER_QUERY_INTERRUPTED
--
reap
}
--
enable_result_log
--
enable_query_log
--
disconnect
con2
--
connection
default
DROP
TABLE
t1
,
t2
;
set
optimizer_switch
=@
myisam_icp_tmp
;
This diff is collapsed.
Click to expand it.
mysql-test/t/myisam_icp_notembedded.test
0 → 100644
View file @
3f28115e
--
source
include
/
not_embedded
.
inc
--
disable_warnings
drop
table
if
exists
t1
,
t2
;
--
enable_warnings
set
@
myisam_icp_notembedded_tmp
=@@
optimizer_switch
;
set
optimizer_switch
=
'mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'
;
--
echo
#
--
echo
# BUG#933412: Server crashes in _mi_put_key_in_record on KILL QUERY with ICP, STRAIGHT_JOIN
--
echo
#
CREATE
TABLE
t1
(
b
INT
,
c
VARCHAR
(
1
)
NOT
NULL
,
d
DATETIME
,
KEY
(
c
,
b
)
)
ENGINE
=
MyISAM
;
--
echo
# INSERT some data
--
disable_query_log
INSERT
INTO
t1
(
b
,
d
,
c
)
VALUES
(
4
,
'2005-01-08 00:00:00'
,
'f'
),
(
1
,
'2004-05-20 10:45:51'
,
'c'
),(
2
,
'2006-08-11 21:33:49'
,
'e'
),
(
5
,
'2003-05-19 00:20:40'
,
'a'
),(
3
,
'2005-01-03 06:18:39'
,
'a'
),
(
7
,
'2008-11-25 18:18:14'
,
'b'
),(
6
,
'2008-11-09 15:53:46'
,
'b'
),
(
9
,
'2003-03-01 03:40:36'
,
'c'
),(
8
,
'2003-09-25 23:14:09'
,
'd'
),
(
0
,
'2007-01-17 09:18:31'
,
'f'
),(
9
,
'2008-09-08 09:52:24'
,
'c'
),
(
2
,
'2008-03-10 00:00:00'
,
'a'
),(
0
,
'2003-03-14 09:31:07'
,
'c'
),
(
4
,
'2005-04-25 00:00:00'
,
'h'
),(
6
,
'2001-08-01 05:55:55'
,
'e'
),
(
3
,
'2005-04-09 01:22:48'
,
'f'
),(
7
,
'2009-11-12 13:27:22'
,
'r'
),
(
0
,
'2009-03-28 05:05:28'
,
'h'
),(
15
,
'2005-05-16 04:35:41'
,
'f'
),
(
7
,
'2006-03-26 05:19:58'
,
'c'
),(
9
,
'2002-10-06 02:17:00'
,
'g'
),
(
4
,
'2007-01-28 03:28:20'
,
'b'
),(
1
,
'2009-04-22 10:16:40'
,
'c'
),
(
2
,
'2003-01-01 19:39:00'
,
'f'
),(
0
,
'2008-05-03 19:16:29'
,
't'
),
(
2
,
'2005-01-28 00:00:00'
,
'j'
),(
8
,
'2004-01-10 00:00:00'
,
'w'
),
(
8
,
'2000-06-13 21:56:37'
,
'a'
),(
5
,
'2001-03-21 19:24:49'
,
'o'
),
(
99
,
'2003-12-20 21:29:06'
,
'f'
),(
0
,
'1900-01-01 00:00:00'
,
'w'
),
(
7
,
'2000-12-19 00:00:00'
,
'c'
),(
0
,
'2000-03-03 06:10:19'
,
'l'
),
(
3
,
'2000-08-11 00:00:00'
,
'q'
),(
0
,
'2007-05-25 03:46:41'
,
'e'
),
(
241
,
'2005-05-17 00:00:00'
,
'j'
),(
4
,
'2005-11-02 00:44:06'
,
'r'
),
(
43
,
'2001-07-11 00:00:00'
,
'a'
),(
1
,
'2008-12-01 18:30:27'
,
'z'
),
(
4
,
'2004-10-25 00:00:00'
,
'i'
),(
5
,
'2000-04-08 12:12:01'
,
'c'
),
(
0
,
'1900-01-01 00:00:00'
,
'f'
),(
9
,
'2002-05-13 22:47:02'
,
'p'
),
(
1
,
'2008-10-09 15:39:40'
,
'd'
),(
3
,
'2004-06-24 00:00:00'
,
'd'
),
(
0
,
'2008-03-06 00:00:00'
,
'r'
),(
9
,
'2007-04-16 18:40:03'
,
'i'
),
(
3
,
'2008-03-16 19:49:37'
,
't'
),(
7
,
'2003-07-15 08:11:21'
,
'd'
),
(
8
,
'2005-02-11 00:04:53'
,
'r'
),(
0
,
'2002-09-21 00:00:00'
,
'y'
),
(
3
,
'2004-11-03 00:37:21'
,
'z'
),(
6
,
'2007-10-18 00:00:00'
,
'e'
),
(
6
,
'2007-01-21 10:42:56'
,
'o'
),(
5
,
'2000-03-26 21:21:04'
,
'b'
),
(
9
,
'2001-03-15 08:08:21'
,
'e'
),(
1
,
'2001-10-16 12:56:59'
,
'a'
),
(
6
,
'2004-05-01 23:45:55'
,
'o'
),(
4
,
'2000-03-04 00:00:00'
,
'f'
),
(
9
,
'2002-12-03 16:48:28'
,
'e'
),(
8
,
'2003-01-09 00:36:07'
,
'm'
),
(
1
,
'2006-06-22 04:32:41'
,
's'
),(
8
,
'2008-09-20 05:01:48'
,
'q'
),
(
4
,
'2006-06-02 22:15:31'
,
'g'
),(
2
,
'2002-05-14 07:07:42'
,
'e'
),
(
7
,
'2005-06-05 01:30:42'
,
'r'
),(
127
,
'2004-05-11 01:56:48'
,
'a'
),
(
210
,
'2003-11-05 00:41:34'
,
'z'
),(
5
,
'1900-01-01 00:00:00'
,
'h'
),
(
1
,
'2006-04-16 00:00:00'
,
'f'
),(
7
,
'2000-12-17 00:00:00'
,
'x'
),
(
8
,
'2009-05-09 20:43:07'
,
'b'
),(
175
,
'2008-11-26 16:33:09'
,
'p'
),
(
0
,
'2002-05-09 21:18:44'
,
'v'
),(
8
,
'2002-06-01 11:32:25'
,
'k'
),
(
1
,
'2008-11-09 23:56:00'
,
'a'
),(
0
,
'2008-01-08 10:18:46'
,
'c'
),
(
2
,
'2005-04-16 00:00:00'
,
'o'
),(
5
,
'2002-08-25 00:00:00'
,
'b'
),
(
64
,
'2005-12-05 21:51:52'
,
'b'
),(
4
,
'2005-08-10 00:00:00'
,
'i'
),
(
6
,
'2006-03-23 00:00:00'
,
'd'
),(
9
,
'2007-01-27 00:00:00'
,
'i'
),
(
8
,
'2008-08-16 00:00:00'
,
'a'
),(
7
,
'2003-01-16 12:13:18'
,
'k'
),
(
0
,
'2003-06-22 00:00:00'
,
'v'
),(
5
,
'2008-06-20 05:43:56'
,
'u'
),
(
8
,
'2004-09-23 18:57:17'
,
'e'
),(
1
,
'2000-12-26 00:00:00'
,
'y'
),
(
4
,
'2009-06-01 13:00:28'
,
'e'
),(
1
,
'2009-11-18 06:28:48'
,
'm'
),
(
0
,
'2004-06-12 10:01:10'
,
'e'
),(
2
,
'2005-10-16 01:48:55'
,
'e'
),
(
5
,
'2001-12-23 09:50:21'
,
'l'
),(
6
,
'1900-01-01 00:00:00'
,
'a'
),
(
1
,
'2001-10-28 00:00:00'
,
'd'
),(
1
,
'2008-07-12 23:30:19'
,
's'
),
(
0
,
'2002-10-11 16:51:16'
,
'r'
),(
4
,
'2007-09-18 06:27:10'
,
'x'
),
(
1
,
'2007-02-21 12:28:14'
,
'e'
),(
6
,
'2001-09-16 00:00:00'
,
'f'
),
(
0
,
'2007-09-20 02:25:45'
,
'c'
),(
0
,
'2006-08-07 03:25:56'
,
'j'
),
(
8
,
'2006-12-04 20:20:32'
,
't'
),(
7
,
'2007-09-05 10:13:10'
,
'i'
),
(
9
,
'2006-04-12 17:59:57'
,
't'
),(
2
,
'2009-04-28 00:06:09'
,
'b'
),
(
8
,
'2000-01-07 00:00:00'
,
'b'
),(
7
,
'2000-03-25 10:04:41'
,
'k'
),
(
4
,
'2000-07-10 00:44:55'
,
'w'
),(
9
,
'2007-09-22 14:26:26'
,
'j'
),
(
9
,
'2003-09-11 22:41:17'
,
'a'
),(
0
,
'2004-06-07 13:52:32'
,
'c'
),
(
8
,
'2008-10-09 00:00:00'
,
'p'
),(
1
,
'2007-04-01 00:00:00'
,
'c'
),
(
9
,
'2000-12-05 00:00:00'
,
'i'
),(
3
,
'1900-01-01 00:00:00'
,
'a'
),
(
3
,
'2005-12-24 21:50:54'
,
'e'
),(
8
,
'2009-07-21 19:34:55'
,
'n'
),
(
9
,
'2005-11-13 17:57:56'
,
'd'
),(
7
,
'2004-10-07 06:41:39'
,
'l'
),
(
1
,
'2004-11-20 08:05:08'
,
'u'
),(
3
,
'2005-05-25 00:00:00'
,
'r'
),
(
1
,
'2006-09-02 14:16:41'
,
'u'
),(
8
,
'2006-01-07 00:00:00'
,
'a'
),
(
9
,
'2003-04-05 00:54:20'
,
'w'
),(
2
,
'2003-12-22 00:00:00'
,
'a'
),
(
9
,
'2006-04-16 17:31:40'
,
'e'
),(
6
,
'2005-02-10 14:22:46'
,
'e'
),
(
7
,
'2004-04-27 05:54:52'
,
'p'
),(
1
,
'2005-12-07 00:00:00'
,
't'
),
(
5
,
'2004-04-03 20:56:28'
,
'd'
),(
4
,
'2000-09-07 05:17:16'
,
'h'
),
(
2
,
'2004-08-04 16:10:42'
,
'i'
),(
1
,
'2007-03-04 00:00:00'
,
'b'
),
(
9
,
'1900-01-01 00:00:00'
,
'd'
),(
1
,
'2000-05-12 23:02:50'
,
'm'
),
(
2
,
'1900-01-01 00:00:00'
,
'l'
),(
1
,
'1900-01-01 00:00:00'
,
'k'
),
(
4
,
'2000-07-14 01:25:18'
,
'd'
),(
5
,
'2009-08-21 00:00:00'
,
'w'
),
(
6
,
'2009-05-25 13:33:54'
,
'f'
),(
7
,
'2006-06-13 00:00:00'
,
'e'
),
(
8
,
'1900-01-01 00:00:00'
,
'a'
),(
6
,
'2004-02-24 00:00:00'
,
'j'
),
(
0
,
'2003-05-21 07:03:46'
,
'k'
),(
9
,
'1900-01-01 00:00:00'
,
'e'
),
(
2
,
'1900-01-01 00:00:00'
,
'y'
),(
2
,
'2000-12-22 00:00:00'
,
'e'
),
(
3
,
'2003-09-26 00:00:00'
,
'f'
),(
2
,
'2001-01-13 08:20:19'
,
'h'
),
(
9
,
'2008-09-23 20:03:28'
,
'n'
),(
5
,
'2007-03-20 02:41:38'
,
's'
),
(
1
,
'2009-02-14 10:27:18'
,
'a'
),(
0
,
'2001-08-10 17:44:05'
,
's'
),
(
3
,
'2008-01-20 12:49:54'
,
'v'
),(
1
,
'2001-05-05 09:09:59'
,
'r'
);
--
enable_query_log
CREATE
TABLE
t2
(
a
INT
)
ENGINE
=
MyISAM
;
INSERT
INTO
t2
VALUES
(
7
),(
3
),(
7
),(
3
);
# 'con2' will be the connection that will run all the KILLable statements
--
connect
(
con2
,
127.0
.
0.1
,
root
,,
test
)
--
let
$run
=
300
--
let
$con_id
=
`SELECT CONNECTION_ID()`
--
echo
# Now run a number of ICP queries while trying to kill them
--
disable_query_log
--
disable_result_log
while
(
$run
)
{
--
send
SELECT
*
FROM
t1
AS
alias1
STRAIGHT_JOIN
t1
AS
alias2
ON
alias2
.
c
=
alias1
.
c
WHERE
alias2
.
b
>=
9
;
--
connect
(
con1
,
127.0
.
0.1
,
root
,,
test
)
--
eval
KILL
QUERY
$con_id
--
disconnect
con1
--
dec
$run
--
connection
con2
--
error
0
,
ER_QUERY_INTERRUPTED
--
reap
}
--
enable_result_log
--
enable_query_log
--
disconnect
con2
--
connection
default
DROP
TABLE
t1
,
t2
;
set
optimizer_switch
=@
myisam_icp_notembedded_tmp
;
This diff is collapsed.
Click to expand it.
mysql-test/t/myisam_mrr.test
View file @
3f28115e
...
...
@@ -313,7 +313,6 @@ set join_buffer_size=10;
explain
select
sum
(
t1
.
b
)
from
t0
,
t1
where
t0
.
a
=
t1
.
a
;
flush
status
;
select
sum
(
t1
.
b
)
from
t0
,
t1
where
t0
.
a
=
t1
.
a
;
--
replace_result
1
1
or2
2
1
or2
show
status
like
'handler_mrr%'
;
set
join_cache_level
=
@
join_cache_level_save
;
...
...
This diff is collapsed.
Click to expand it.
mysql-test/t/type_timestamp.test
View file @
3f28115e
...
...
@@ -411,6 +411,12 @@ DROP TABLE t1, t2;
--
echo
End
of
5.1
tests
--
echo
#
--
echo
# lp:923429 Crash in decimal_cmp on using UNIX_TIMESTAMP with a wrongly formatted timestamp
--
echo
#
SELECT
UNIX_TIMESTAMP
(
'abc'
)
>
0
;
SELECT
UNIX_TIMESTAMP
(
'abc'
);
--
echo
--
echo
Bug
#50888 valgrind warnings in Field_timestamp::val_str
--
echo
...
...
@@ -441,4 +447,3 @@ SELECT MAX(dt) = '2011-01-06 12:34:30' FROM t1;
DROP
TABLE
t1
;
--
echo
End
of
5.5
tests
This diff is collapsed.
Click to expand it.
mysys/thr_lock.c
View file @
3f28115e
/*
Copyright (c) 2000, 2011, Oracle and/or its affiliates
Copyright (c) 2012, Monty Program Ab
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
...
...
@@ -176,7 +177,8 @@ thr_lock_owner_equal(THR_LOCK_INFO *rhs, THR_LOCK_INFO *lhs)
static
uint
found_errors
=
0
;
static
int
check_lock
(
struct
st_lock_list
*
list
,
const
char
*
lock_type
,
const
char
*
where
,
my_bool
same_owner
,
my_bool
no_cond
)
const
char
*
where
,
my_bool
same_owner
,
my_bool
no_cond
,
my_bool
read_lock
)
{
THR_LOCK_DATA
*
data
,
**
prev
;
uint
count
=
0
;
...
...
@@ -189,6 +191,23 @@ static int check_lock(struct st_lock_list *list, const char* lock_type,
for
(
data
=
list
->
data
;
data
&&
count
++
<
MAX_LOCKS
;
data
=
data
->
next
)
{
if
(
data
->
type
==
TL_UNLOCK
)
{
fprintf
(
stderr
,
"Warning: Found unlocked lock at %s: %s
\n
"
,
lock_type
,
where
);
return
1
;
}
if
((
read_lock
&&
data
->
type
>
TL_READ_NO_INSERT
)
||
(
!
read_lock
&&
data
->
type
<=
TL_READ_NO_INSERT
))
{
fprintf
(
stderr
,
"Warning: Found %s lock in %s queue at %s: %s
\n
"
,
read_lock
?
"write"
:
"read"
,
read_lock
?
"read"
:
"write"
,
lock_type
,
where
);
return
1
;
}
if
(
data
->
type
!=
last_lock_type
)
last_lock_type
=
TL_IGNORE
;
if
(
data
->
prev
!=
prev
)
...
...
@@ -245,11 +264,14 @@ static void check_locks(THR_LOCK *lock, const char *where,
if
(
found_errors
<
MAX_FOUND_ERRORS
)
{
if
(
check_lock
(
&
lock
->
write
,
"write"
,
where
,
1
,
1
)
|
check_lock
(
&
lock
->
write_wait
,
"write_wait"
,
where
,
0
,
0
)
|
check_lock
(
&
lock
->
read
,
"read"
,
where
,
0
,
1
)
|
check_lock
(
&
lock
->
read_wait
,
"read_wait"
,
where
,
0
,
0
))
if
(
check_lock
(
&
lock
->
write
,
"write"
,
where
,
1
,
1
,
0
)
|
check_lock
(
&
lock
->
write_wait
,
"write_wait"
,
where
,
0
,
0
,
0
)
|
check_lock
(
&
lock
->
read
,
"read"
,
where
,
0
,
1
,
1
)
|
check_lock
(
&
lock
->
read_wait
,
"read_wait"
,
where
,
0
,
0
,
1
))
{
DBUG_ASSERT
(
my_assert_on_error
==
0
);
found_errors
++
;
}
if
(
found_errors
<
MAX_FOUND_ERRORS
)
{
...
...
@@ -621,17 +643,16 @@ wait_for_lock(struct st_lock_list *wait, THR_LOCK_DATA *data,
static
enum
enum_thr_lock_result
thr_lock
(
THR_LOCK_DATA
*
data
,
THR_LOCK_INFO
*
owner
,
enum
thr_lock_type
lock_type
,
ulong
lock_wait_timeout
)
thr_lock
(
THR_LOCK_DATA
*
data
,
THR_LOCK_INFO
*
owner
,
ulong
lock_wait_timeout
)
{
THR_LOCK
*
lock
=
data
->
lock
;
enum
enum_thr_lock_result
result
=
THR_LOCK_SUCCESS
;
struct
st_lock_list
*
wait_queue
;
enum
thr_lock_type
lock_type
=
data
->
type
;
DBUG_ENTER
(
"thr_lock"
);
data
->
next
=
0
;
data
->
cond
=
0
;
/* safety */
data
->
type
=
lock_type
;
data
->
owner
=
owner
;
/* Must be reset ! */
data
->
priority
&=
~
THR_LOCK_LATE_PRIV
;
mysql_mutex_lock
(
&
lock
->
mutex
);
...
...
@@ -964,9 +985,7 @@ void thr_unlock(THR_LOCK_DATA *data, uint unlock_flags)
if
(
lock_type
==
TL_READ_NO_INSERT
)
lock
->
read_no_write_count
--
;
data
->
type
=
TL_UNLOCK
;
/* Mark unlocked */
check_locks
(
lock
,
"after releasing lock"
,
lock_type
,
1
);
wake_up_waiters
(
lock
);
check_locks
(
lock
,
"end of thr_unlock"
,
lock_type
,
1
);
mysql_mutex_unlock
(
&
lock
->
mutex
);
DBUG_VOID_RETURN
;
}
...
...
@@ -986,6 +1005,7 @@ static void wake_up_waiters(THR_LOCK *lock)
enum
thr_lock_type
lock_type
;
DBUG_ENTER
(
"wake_up_waiters"
);
check_locks
(
lock
,
"before waking up waiters"
,
TL_UNLOCK
,
1
);
if
(
!
lock
->
write
.
data
)
/* If no active write locks */
{
data
=
lock
->
write_wait
.
data
;
...
...
@@ -1140,8 +1160,7 @@ thr_multi_lock(THR_LOCK_DATA **data, uint count, THR_LOCK_INFO *owner,
/* lock everything */
for
(
pos
=
data
,
end
=
data
+
count
;
pos
<
end
;
pos
++
)
{
enum
enum_thr_lock_result
result
=
thr_lock
(
*
pos
,
owner
,
(
*
pos
)
->
type
,
lock_wait_timeout
);
enum
enum_thr_lock_result
result
=
thr_lock
(
*
pos
,
owner
,
lock_wait_timeout
);
if
(
result
!=
THR_LOCK_SUCCESS
)
{
/* Aborted */
thr_multi_unlock
(
data
,(
uint
)
(
pos
-
data
),
0
);
...
...
This diff is collapsed.
Click to expand it.
plugin/auth_pam/auth_pam.c
View file @
3f28115e
...
...
@@ -14,6 +14,10 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
#ifndef _GNU_SOURCE
#define _GNU_SOURCE
/* For strndup() */
#endif
#include <mysql/plugin_auth.h>
#include <string.h>
#include <my_config.h>
...
...
This diff is collapsed.
Click to expand it.
scripts/make_binary_distribution.sh
View file @
3f28115e
...
...
@@ -274,6 +274,7 @@ cd ..
# the build for the relevant directories.
# ----------------------------------------------------------------------
@MAKE@
DESTDIR
=
$BASE
install
\
libexecdir
=
@prefix@/libexec
\
pkglibdir
=
@pkglibdir@
\
pkgincludedir
=
@pkgincludedir@
\
pkgdatadir
=
@pkgdatadir@
\
...
...
This diff is collapsed.
Click to expand it.
scripts/mysql_config.sh
View file @
3f28115e
...
...
@@ -85,7 +85,7 @@ bindir='@bindir@'
# If installed, search for the compiled in directory first (might be "lib64")
pkglibdir
=
'@pkglibdir@'
pkglibdir_rel
=
`
echo
$pkglibdir
|
sed
-e
"s;^
$basedir
/;;"
`
fix_path pkglibdir
$pkglibdir_rel
lib/mysql lib
fix_path pkglibdir
$pkglibdir_rel
lib
64/mysql lib64 lib
/mysql lib
plugindir
=
'@pkgplugindir@'
plugindir_rel
=
`
echo
$plugindir
|
sed
-e
"s;^
$basedir
/;;"
`
...
...
This diff is collapsed.
Click to expand it.
sql/handler.cc
View file @
3f28115e
...
...
@@ -4631,10 +4631,10 @@ extern "C" enum icp_result handler_index_cond_check(void* h_arg)
if
(
h
->
end_range
&&
h
->
compare_key2
(
h
->
end_range
)
>
0
)
return
ICP_OUT_OF_RANGE
;
h
->
increment_statistics
(
&
SSV
::
ha_
pushed_index_cond_check
s
);
h
->
increment_statistics
(
&
SSV
::
ha_
icp_attempt
s
);
if
((
res
=
h
->
pushed_idx_cond
->
val_int
()
?
ICP_MATCH
:
ICP_NO_MATCH
)
==
ICP_
NO_
MATCH
)
h
->
increment_statistics
(
&
SSV
::
ha_
pushed_index_cond_filtered
);
ICP_MATCH
)
h
->
increment_statistics
(
&
SSV
::
ha_
icp_match
);
return
res
;
}
...
...
This diff is collapsed.
Click to expand it.
sql/item_timefunc.cc
View file @
3f28115e
...
...
@@ -1199,15 +1199,7 @@ bool Item_func_unix_timestamp::get_timestamp_value(my_time_t *seconds,
MYSQL_TIME
ltime
;
if
(
get_arg0_date
(
&
ltime
,
0
))
{
/*
We have to set null_value again because get_arg0_date will also set it
to true if we have wrong datetime parameter (and we should return 0 in
this case).
*/
null_value
=
args
[
0
]
->
null_value
;
return
1
;
}
uint
error_code
;
*
seconds
=
TIME_to_timestamp
(
current_thd
,
&
ltime
,
&
error_code
);
...
...
This diff is collapsed.
Click to expand it.
sql/item_timefunc.h
View file @
3f28115e
...
...
@@ -436,11 +436,6 @@ public:
enum_monotonicity_info
get_monotonicity_info
()
const
;
longlong
val_int_endpoint
(
bool
left_endp
,
bool
*
incl_endp
);
bool
check_partition_func_processor
(
uchar
*
int_arg
)
{
return
FALSE
;}
void
fix_num_length_and_dec
()
{
maybe_null
=
false
;
Item_func_seconds_hybrid
::
fix_num_length_and_dec
();
}
/*
UNIX_TIMESTAMP() depends on the current timezone
(and thus may not be used as a partitioning function)
...
...
This diff is collapsed.
Click to expand it.
sql/multi_range_read.cc
View file @
3f28115e
...
...
@@ -526,7 +526,7 @@ int Mrr_ordered_index_reader::refill_buffer(bool initial)
{
/* This is a non-initial buffer fill and we've got a non-empty buffer */
THD
*
thd
=
current_thd
;
status_var_increment
(
thd
->
status_var
.
ha_mrr_
extra_key_sorts
);
status_var_increment
(
thd
->
status_var
.
ha_mrr_
key_refills_count
);
}
key_buffer
->
sort
((
key_buffer
->
type
()
==
Lifo_buffer
::
FORWARD
)
?
...
...
@@ -626,7 +626,7 @@ int Mrr_ordered_rndpos_reader::refill_buffer(bool initial)
{
/* Ok, this was a successful buffer refill operation */
THD
*
thd
=
current_thd
;
status_var_increment
(
thd
->
status_var
.
ha_mrr_
extra_rowid_sorts
);
status_var_increment
(
thd
->
status_var
.
ha_mrr_
rowid_refills_count
);
}
DBUG_RETURN
(
res
);
...
...
@@ -861,8 +861,6 @@ int DsMrr_impl::dsmrr_init(handler *h_arg, RANGE_SEQ_IF *seq_funcs,
strategy
=
disk_strategy
=
&
reader_factory
.
ordered_rndpos_reader
;
}
status_var_increment
(
thd
->
status_var
.
ha_multi_range_read_init_count
);
full_buf
=
buf
->
buffer
;
full_buf_end
=
buf
->
buffer_end
;
...
...
@@ -952,6 +950,12 @@ int DsMrr_impl::dsmrr_init(handler *h_arg, RANGE_SEQ_IF *seq_funcs,
goto
error
;
}
}
/*
At this point, we're sure that we're running a native MRR scan (i.e. we
didnt fall back to default implementation for some reason).
*/
status_var_increment
(
thd
->
status_var
.
ha_mrr_init_count
);
res
=
strategy
->
refill_buffer
(
TRUE
);
if
(
res
)
...
...
This diff is collapsed.
Click to expand it.
sql/mysqld.cc
View file @
3f28115e
...
...
@@ -6869,15 +6869,15 @@ SHOW_VAR status_vars[]= {
{
"Handler_commit"
,
(
char
*
)
offsetof
(
STATUS_VAR
,
ha_commit_count
),
SHOW_LONG_STATUS
},
{
"Handler_delete"
,
(
char
*
)
offsetof
(
STATUS_VAR
,
ha_delete_count
),
SHOW_LONG_STATUS
},
{
"Handler_discover"
,
(
char
*
)
offsetof
(
STATUS_VAR
,
ha_discover_count
),
SHOW_LONG_STATUS
},
#if 0
/* Made 3 counters below temporarily invisible until we agree upon their names */
{"Handler_mrr_extra_key_sorts", (char*) offsetof(STATUS_VAR, ha_mrr_extra_key_sorts), SHOW_LONG_STATUS},
{"Handler_mrr_extra_rowid_sorts", (char*) offsetof(STATUS_VAR, ha_mrr_extra_rowid_sorts), SHOW_LONG_STATUS},
{"Handler_mrr_init", (char*) offsetof(STATUS_VAR, ha_multi_range_read_init_count), SHOW_LONG_STATUS},
#endif
{
"Handler_icp_attempts "
,
(
char
*
)
offsetof
(
STATUS_VAR
,
ha_icp_attempts
),
SHOW_LONG_STATUS
},
{
"Handler_icp_match"
,
(
char
*
)
offsetof
(
STATUS_VAR
,
ha_icp_match
),
SHOW_LONG_STATUS
},
{
"Handler_mrr_init"
,
(
char
*
)
offsetof
(
STATUS_VAR
,
ha_mrr_init_count
),
SHOW_LONG_STATUS
},
{
"Handler_mrr_key_refills"
,
(
char
*
)
offsetof
(
STATUS_VAR
,
ha_mrr_key_refills_count
),
SHOW_LONG_STATUS
},
{
"Handler_mrr_rowid_refills"
,
(
char
*
)
offsetof
(
STATUS_VAR
,
ha_mrr_rowid_refills_count
),
SHOW_LONG_STATUS
},
{
"Handler_prepare"
,
(
char
*
)
offsetof
(
STATUS_VAR
,
ha_prepare_count
),
SHOW_LONG_STATUS
},
{
"Handler_pushed_index_cond_checks"
,(
char
*
)
offsetof
(
STATUS_VAR
,
ha_pushed_index_cond_checks
),
SHOW_LONG_STATUS
},
{
"Handler_pushed_index_cond_filtered"
,(
char
*
)
offsetof
(
STATUS_VAR
,
ha_pushed_index_cond_filtered
),
SHOW_LONG_STATUS
},
{
"Handler_read_first"
,
(
char
*
)
offsetof
(
STATUS_VAR
,
ha_read_first_count
),
SHOW_LONG_STATUS
},
{
"Handler_read_key"
,
(
char
*
)
offsetof
(
STATUS_VAR
,
ha_read_key_count
),
SHOW_LONG_STATUS
},
{
"Handler_read_last"
,
(
char
*
)
offsetof
(
STATUS_VAR
,
ha_read_last_count
),
SHOW_LONG_STATUS
},
...
...
This diff is collapsed.
Click to expand it.
sql/sql_class.h
View file @
3f28115e
...
...
@@ -591,9 +591,9 @@ typedef struct system_status_var
calls made by range access. The intent is to count only calls made by
BatchedKeyAccess.
*/
ulong
ha_m
ulti_range_read
_init_count
;
ulong
ha_mrr_
extra_key_sorts
;
ulong
ha_mrr_
extra_rowid_sorts
;
ulong
ha_m
rr
_init_count
;
ulong
ha_mrr_
key_refills_count
;
ulong
ha_mrr_
rowid_refills_count
;
ulong
ha_rollback_count
;
ulong
ha_update_count
;
...
...
@@ -602,8 +602,8 @@ typedef struct system_status_var
ulong
ha_tmp_update_count
;
ulong
ha_tmp_write_count
;
ulong
ha_prepare_count
;
ulong
ha_
pushed_index_cond_check
s
;
ulong
ha_
pushed_index_cond_filtered
;
ulong
ha_
icp_attempt
s
;
ulong
ha_
icp_match
;
ulong
ha_discover_count
;
ulong
ha_savepoint_count
;
ulong
ha_savepoint_rollback_count
;
...
...
This diff is collapsed.
Click to expand it.
sql/sql_handler.cc
View file @
3f28115e
...
...
@@ -750,7 +750,7 @@ retry:
if
(
handler
->
lock
->
lock_count
>
0
)
{
bool
lock_error
;
int
lock_error
;
handler
->
lock
->
locks
[
0
]
->
type
=
handler
->
lock
->
locks
[
0
]
->
org_type
;
...
...
This diff is collapsed.
Click to expand it.
sql/sql_join_cache.cc
View file @
3f28115e
...
...
@@ -4027,9 +4027,9 @@ bool bka_skip_index_tuple(range_seq_t rseq, range_id_t range_info)
JOIN_CACHE_BKA
*
cache
=
(
JOIN_CACHE_BKA
*
)
rseq
;
THD
*
thd
=
cache
->
thd
();
bool
res
;
status_var_increment
(
thd
->
status_var
.
ha_
pushed_index_cond_check
s
);
if
((
res
=
cache
->
skip_index_tuple
(
range_info
)))
status_var_increment
(
thd
->
status_var
.
ha_
pushed_index_cond_filtered
);
status_var_increment
(
thd
->
status_var
.
ha_
icp_attempt
s
);
if
(
!
(
res
=
cache
->
skip_index_tuple
(
range_info
)))
status_var_increment
(
thd
->
status_var
.
ha_
icp_match
);
DBUG_RETURN
(
res
);
}
...
...
@@ -4506,9 +4506,9 @@ bool bkah_skip_index_tuple(range_seq_t rseq, range_id_t range_info)
JOIN_CACHE_BKAH
*
cache
=
(
JOIN_CACHE_BKAH
*
)
rseq
;
THD
*
thd
=
cache
->
thd
();
bool
res
;
status_var_increment
(
thd
->
status_var
.
ha_
pushed_index_cond_check
s
);
if
((
res
=
cache
->
skip_index_tuple
(
range_info
)))
status_var_increment
(
thd
->
status_var
.
ha_
pushed_index_cond_filtered
);
status_var_increment
(
thd
->
status_var
.
ha_
icp_attempt
s
);
if
(
!
(
res
=
cache
->
skip_index_tuple
(
range_info
)))
status_var_increment
(
thd
->
status_var
.
ha_
icp_match
);
DBUG_RETURN
(
res
);
}
...
...
This diff is collapsed.
Click to expand it.
storage/innobase/btr/btr0sea.c
View file @
3f28115e
...
...
@@ -535,7 +535,7 @@ btr_search_update_hash_ref(
{
dict_index_t
*
index
;
ulint
fold
;
const
rec_t
*
rec
;
rec_t
*
rec
;
ut_ad
(
cursor
->
flag
==
BTR_CUR_HASH_FAIL
);
#ifdef UNIV_SYNC_DEBUG
...
...
@@ -839,7 +839,7 @@ btr_search_guess_on_hash(
{
buf_pool_t
*
buf_pool
;
buf_block_t
*
block
;
const
rec_t
*
rec
;
rec_t
*
rec
;
ulint
fold
;
index_id_t
index_id
;
#ifdef notdefined
...
...
@@ -925,7 +925,7 @@ btr_search_guess_on_hash(
ut_ad
(
page_rec_is_user_rec
(
rec
));
btr_cur_position
(
index
,
(
rec_t
*
)
rec
,
block
,
cursor
);
btr_cur_position
(
index
,
rec
,
block
,
cursor
);
/* Check the validity of the guess within the page */
...
...
This diff is collapsed.
Click to expand it.
storage/innobase/ha/ha0ha.c
View file @
3f28115e
...
...
@@ -106,7 +106,7 @@ ha_insert_for_fold_func(
#if defined UNIV_AHI_DEBUG || defined UNIV_DEBUG
buf_block_t
*
block
,
/*!< in: buffer block containing the data */
#endif
/* UNIV_AHI_DEBUG || UNIV_DEBUG */
const
rec_t
*
data
)
/*!< in: data, must not be NULL */
rec_t
*
data
)
/*!< in: data, must not be NULL */
{
hash_cell_t
*
cell
;
ha_node_t
*
node
;
...
...
@@ -238,11 +238,11 @@ ha_search_and_update_if_found_func(
/*===============================*/
hash_table_t
*
table
,
/*!< in/out: hash table */
ulint
fold
,
/*!< in: folded value of the searched data */
const
rec_t
*
data
,
/*!< in: pointer to the data */
rec_t
*
data
,
/*!< in: pointer to the data */
#if defined UNIV_AHI_DEBUG || defined UNIV_DEBUG
buf_block_t
*
new_block
,
/*!< in: block containing new_data */
#endif
/* UNIV_AHI_DEBUG || UNIV_DEBUG */
const
rec_t
*
new_data
)
/*!< in: new pointer to the data */
rec_t
*
new_data
)
/*!< in: new pointer to the data */
{
ha_node_t
*
node
;
...
...
This diff is collapsed.
Click to expand it.
storage/innobase/include/ha0ha.h
View file @
3f28115e
...
...
@@ -38,7 +38,7 @@ Looks for an element in a hash table.
@return pointer to the data of the first hash table node in chain
having the fold number, NULL if not found */
UNIV_INLINE
const
rec_t
*
rec_t
*
ha_search_and_get_data
(
/*===================*/
hash_table_t
*
table
,
/*!< in: hash table */
...
...
@@ -52,11 +52,11 @@ ha_search_and_update_if_found_func(
/*===============================*/
hash_table_t
*
table
,
/*!< in/out: hash table */
ulint
fold
,
/*!< in: folded value of the searched data */
const
rec_t
*
data
,
/*!< in: pointer to the data */
rec_t
*
data
,
/*!< in: pointer to the data */
#if defined UNIV_AHI_DEBUG || defined UNIV_DEBUG
buf_block_t
*
new_block
,
/*!< in: block containing new_data */
#endif
/* UNIV_AHI_DEBUG || UNIV_DEBUG */
const
rec_t
*
new_data
);
/*!< in: new pointer to the data */
rec_t
*
new_data
);
/*!< in: new pointer to the data */
#if defined UNIV_AHI_DEBUG || defined UNIV_DEBUG
/** Looks for an element when we know the pointer to the data and
...
...
@@ -131,7 +131,7 @@ ha_insert_for_fold_func(
#if defined UNIV_AHI_DEBUG || defined UNIV_DEBUG
buf_block_t
*
block
,
/*!< in: buffer block containing the data */
#endif
/* UNIV_AHI_DEBUG || UNIV_DEBUG */
const
rec_t
*
data
);
/*!< in: data, must not be NULL */
rec_t
*
data
);
/*!< in: data, must not be NULL */
#if defined UNIV_AHI_DEBUG || defined UNIV_DEBUG
/**
...
...
@@ -210,7 +210,7 @@ struct ha_node_struct {
#if defined UNIV_AHI_DEBUG || defined UNIV_DEBUG
buf_block_t
*
block
;
/*!< buffer block containing the data, or NULL */
#endif
/* UNIV_AHI_DEBUG || UNIV_DEBUG */
const
rec_t
*
data
;
/*!< pointer to the data */
rec_t
*
data
;
/*!< pointer to the data */
ulint
fold
;
/*!< fold value for the data */
};
...
...
This diff is collapsed.
Click to expand it.
storage/innobase/include/ha0ha.ic
View file @
3f28115e
...
...
@@ -58,7 +58,7 @@ ha_node_set_data_func(
#if defined UNIV_AHI_DEBUG || defined UNIV_DEBUG
buf_block_t* block, /*!< in: buffer block containing the data */
#endif /* UNIV_AHI_DEBUG || UNIV_DEBUG */
const
rec_t* data) /*!< in: pointer to the data */
rec_t* data) /*!< in: pointer to the data */
{
#if defined UNIV_AHI_DEBUG || defined UNIV_DEBUG
node->block = block;
...
...
@@ -111,7 +111,7 @@ Looks for an element in a hash table.
@return pointer to the data of the first hash table node in chain
having the fold number, NULL if not found */
UNIV_INLINE
const
rec_t*
rec_t*
ha_search_and_get_data(
/*===================*/
hash_table_t* table, /*!< in: hash table */
...
...
This diff is collapsed.
Click to expand it.
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