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
2927f2a2
Commit
2927f2a2
authored
Jul 04, 2003
by
ram@mysql.r18.ru
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix and test case for the bug #787: HANDLER without INDEX doesn't work with deleted rows
parent
52a7f956
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
50 additions
and
22 deletions
+50
-22
mysql-test/r/handler.result
mysql-test/r/handler.result
+19
-0
mysql-test/t/handler.test
mysql-test/t/handler.test
+14
-0
sql/sql_handler.cc
sql/sql_handler.cc
+17
-22
No files found.
mysql-test/r/handler.result
View file @
2927f2a2
...
@@ -148,3 +148,22 @@ alter table t1 type=MyISAM;
...
@@ -148,3 +148,22 @@ alter table t1 type=MyISAM;
handler t2 read first;
handler t2 read first;
ERROR 42S02: Unknown table 't2' in HANDLER
ERROR 42S02: Unknown table 't2' in HANDLER
drop table t1;
drop table t1;
create table t1 (a int);
insert into t1 values (1),(2),(3),(4),(5),(6);
delete from t1 limit 2;
handler t1 open;
handler t1 read first;
a
3
handler t1 read first limit 1,1;
a
4
handler t1 read first limit 2,2;
a
5
6
delete from t1 limit 3;
handler t1 read first;
a
6
drop table t1;
mysql-test/t/handler.test
View file @
2927f2a2
...
@@ -85,3 +85,17 @@ alter table t1 type=MyISAM;
...
@@ -85,3 +85,17 @@ alter table t1 type=MyISAM;
handler
t2
read
first
;
handler
t2
read
first
;
drop
table
t1
;
drop
table
t1
;
#
# test case for the bug #787
#
create
table
t1
(
a
int
);
insert
into
t1
values
(
1
),(
2
),(
3
),(
4
),(
5
),(
6
);
delete
from
t1
limit
2
;
handler
t1
open
;
handler
t1
read
first
;
handler
t1
read
first
limit
1
,
1
;
handler
t1
read
first
limit
2
,
2
;
delete
from
t1
limit
3
;
handler
t1
read
first
;
drop
table
t1
;
sql/sql_handler.cc
View file @
2927f2a2
...
@@ -222,6 +222,8 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
...
@@ -222,6 +222,8 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
goto
err
;
goto
err
;
}
}
if
(
err
==
HA_ERR_RECORD_DELETED
)
continue
;
if
(
err
)
if
(
err
)
{
{
if
(
err
!=
HA_ERR_KEY_NOT_FOUND
&&
err
!=
HA_ERR_END_OF_FILE
)
if
(
err
!=
HA_ERR_KEY_NOT_FOUND
&&
err
!=
HA_ERR_END_OF_FILE
)
...
@@ -233,31 +235,24 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
...
@@ -233,31 +235,24 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
}
}
goto
ok
;
goto
ok
;
}
}
if
(
cond
)
if
(
cond
&&
!
cond
->
val_int
())
continue
;
if
(
!
err
&&
num_rows
>=
offset_limit
)
{
{
err
=
err
;
String
*
packet
=
&
thd
->
packet
;
if
(
!
cond
->
val_int
())
Item
*
item
;
continue
;
protocol
->
prepare_for_resend
();
}
it
.
rewind
();
if
(
num_rows
>=
offset_limit
)
while
((
item
=
it
++
))
{
if
(
!
err
)
{
{
String
*
packet
=
&
thd
->
packet
;
if
(
item
->
send
(
thd
->
protocol
,
&
buffer
))
Item
*
item
;
{
protocol
->
prepare_for_resend
();
protocol
->
free
();
// Free used
it
.
rewind
();
my_error
(
ER_OUT_OF_RESOURCES
,
MYF
(
0
));
while
((
item
=
it
++
))
goto
err
;
{
}
if
(
item
->
send
(
thd
->
protocol
,
&
buffer
))
{
protocol
->
free
();
// Free used
my_error
(
ER_OUT_OF_RESOURCES
,
MYF
(
0
));
goto
err
;
}
}
protocol
->
write
();
}
}
protocol
->
write
();
}
}
num_rows
++
;
num_rows
++
;
}
}
...
...
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