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
4fdadd62
Commit
4fdadd62
authored
Aug 16, 2007
by
mhansson@dl145s.mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge mhansson@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into dl145s.mysql.com:/data0/mhansson/my50-bug28570
parents
222fddcb
1da8451d
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
49 additions
and
3 deletions
+49
-3
mysql-test/r/innodb_mysql.result
mysql-test/r/innodb_mysql.result
+18
-0
mysql-test/t/innodb_mysql.test
mysql-test/t/innodb_mysql.test
+28
-0
sql/handler.cc
sql/handler.cc
+2
-1
sql/opt_range.cc
sql/opt_range.cc
+1
-2
No files found.
mysql-test/r/innodb_mysql.result
View file @
4fdadd62
...
@@ -1047,4 +1047,22 @@ t1 CREATE TABLE `t1` (
...
@@ -1047,4 +1047,22 @@ t1 CREATE TABLE `t1` (
KEY `a` (`a`(255))
KEY `a` (`a`(255))
) ENGINE=InnoDB DEFAULT CHARSET=utf8
) ENGINE=InnoDB DEFAULT CHARSET=utf8
drop table t1;
drop table t1;
CREATE TABLE t1 (
a INT,
b INT,
KEY (b)
) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1,10), (2,10), (2,20), (3,30);
START TRANSACTION;
SELECT * FROM t1 WHERE b=20 FOR UPDATE;
a b
2 20
START TRANSACTION;
SELECT * FROM t1 WHERE b=10 ORDER BY A FOR UPDATE;
a b
1 10
2 10
ROLLBACK;
ROLLBACK;
DROP TABLE t1;
End of 5.0 tests
End of 5.0 tests
mysql-test/t/innodb_mysql.test
View file @
4fdadd62
...
@@ -881,5 +881,33 @@ insert into t1 values('aaa');
...
@@ -881,5 +881,33 @@ insert into t1 values('aaa');
alter
table
t1
add
index
(
a
(
1024
));
alter
table
t1
add
index
(
a
(
1024
));
show
create
table
t1
;
show
create
table
t1
;
drop
table
t1
;
drop
table
t1
;
# Bug #28570: handler::index_read() is called with different find_flag when
# ORDER BY is used
#
CREATE
TABLE
t1
(
a
INT
,
b
INT
,
KEY
(
b
)
)
ENGINE
=
InnoDB
;
INSERT
INTO
t1
VALUES
(
1
,
10
),
(
2
,
10
),
(
2
,
20
),
(
3
,
30
);
START
TRANSACTION
;
SELECT
*
FROM
t1
WHERE
b
=
20
FOR
UPDATE
;
--
connect
(
conn2
,
localhost
,
root
,,
test
)
# This statement gives a "failed: 1205: Lock wait timeout exceeded; try
# restarting transaction" message when the bug is present.
START
TRANSACTION
;
SELECT
*
FROM
t1
WHERE
b
=
10
ORDER
BY
A
FOR
UPDATE
;
ROLLBACK
;
--
disconnect
conn2
--
connection
default
ROLLBACK
;
DROP
TABLE
t1
;
--
echo
End
of
5.0
tests
--
echo
End
of
5.0
tests
sql/handler.cc
View file @
4fdadd62
...
@@ -2610,7 +2610,8 @@ int handler::read_multi_range_next(KEY_MULTI_RANGE **found_range_p)
...
@@ -2610,7 +2610,8 @@ int handler::read_multi_range_next(KEY_MULTI_RANGE **found_range_p)
read_range_first()
read_range_first()
start_key Start key. Is 0 if no min range
start_key Start key. Is 0 if no min range
end_key End key. Is 0 if no max range
end_key End key. Is 0 if no max range
eq_range_arg Set to 1 if start_key == end_key
eq_range_arg Set to 1 if start_key == end_key and the range endpoints
will not change during query execution.
sorted Set to 1 if result should be sorted per key
sorted Set to 1 if result should be sorted per key
NOTES
NOTES
...
...
sql/opt_range.cc
View file @
4fdadd62
...
@@ -6369,8 +6369,7 @@ QUICK_RANGE_SELECT *get_quick_select_for_ref(THD *thd, TABLE *table,
...
@@ -6369,8 +6369,7 @@ QUICK_RANGE_SELECT *get_quick_select_for_ref(THD *thd, TABLE *table,
range
->
min_key
=
range
->
max_key
=
(
char
*
)
ref
->
key_buff
;
range
->
min_key
=
range
->
max_key
=
(
char
*
)
ref
->
key_buff
;
range
->
min_length
=
range
->
max_length
=
ref
->
key_length
;
range
->
min_length
=
range
->
max_length
=
ref
->
key_length
;
range
->
flag
=
((
ref
->
key_length
==
key_info
->
key_length
&&
range
->
flag
=
((
ref
->
key_length
==
key_info
->
key_length
&&
(
key_info
->
flags
&
(
HA_NOSAME
|
HA_END_SPACE_KEY
))
==
(
key_info
->
flags
&
HA_END_SPACE_KEY
)
==
0
)
?
EQ_RANGE
:
0
);
HA_NOSAME
)
?
EQ_RANGE
:
0
);
if
(
!
(
quick
->
key_parts
=
key_part
=
(
KEY_PART
*
)
if
(
!
(
quick
->
key_parts
=
key_part
=
(
KEY_PART
*
)
alloc_root
(
&
quick
->
alloc
,
sizeof
(
KEY_PART
)
*
ref
->
key_parts
)))
alloc_root
(
&
quick
->
alloc
,
sizeof
(
KEY_PART
)
*
ref
->
key_parts
)))
...
...
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