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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
38a72a16
Commit
38a72a16
authored
Feb 20, 2004
by
vva@eagle.mysql.r18.ru
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fixed for BUG #2719 "Heap tables status shows wrong or missing data"
parent
00e2668b
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
137 additions
and
1 deletion
+137
-1
heap/hp_delete.c
heap/hp_delete.c
+6
-1
heap/hp_write.c
heap/hp_write.c
+3
-0
mysql-test/r/show_check.result
mysql-test/r/show_check.result
+74
-0
mysql-test/t/show_check.test
mysql-test/t/show_check.test
+54
-0
No files found.
heap/hp_delete.c
View file @
38a72a16
...
@@ -67,6 +67,8 @@ int hp_rb_delete_key(HP_INFO *info, register HP_KEYDEF *keyinfo,
...
@@ -67,6 +67,8 @@ int hp_rb_delete_key(HP_INFO *info, register HP_KEYDEF *keyinfo,
const
byte
*
record
,
byte
*
recpos
,
int
flag
)
const
byte
*
record
,
byte
*
recpos
,
int
flag
)
{
{
heap_rb_param
custom_arg
;
heap_rb_param
custom_arg
;
uint
old_allocated
;
int
res
;
if
(
flag
)
if
(
flag
)
info
->
last_pos
=
NULL
;
/* For heap_rnext/heap_rprev */
info
->
last_pos
=
NULL
;
/* For heap_rnext/heap_rprev */
...
@@ -74,7 +76,10 @@ int hp_rb_delete_key(HP_INFO *info, register HP_KEYDEF *keyinfo,
...
@@ -74,7 +76,10 @@ int hp_rb_delete_key(HP_INFO *info, register HP_KEYDEF *keyinfo,
custom_arg
.
keyseg
=
keyinfo
->
seg
;
custom_arg
.
keyseg
=
keyinfo
->
seg
;
custom_arg
.
key_length
=
hp_rb_make_key
(
keyinfo
,
info
->
recbuf
,
record
,
recpos
);
custom_arg
.
key_length
=
hp_rb_make_key
(
keyinfo
,
info
->
recbuf
,
record
,
recpos
);
custom_arg
.
search_flag
=
SEARCH_SAME
;
custom_arg
.
search_flag
=
SEARCH_SAME
;
return
tree_delete
(
&
keyinfo
->
rb_tree
,
info
->
recbuf
,
&
custom_arg
);
old_allocated
=
keyinfo
->
rb_tree
.
allocated
;
res
=
tree_delete
(
&
keyinfo
->
rb_tree
,
info
->
recbuf
,
&
custom_arg
);
info
->
s
->
index_length
+=
(
keyinfo
->
rb_tree
.
allocated
-
old_allocated
);
return
res
;
}
}
/* Remove one key from hash-table */
/* Remove one key from hash-table */
...
...
heap/hp_write.c
View file @
38a72a16
...
@@ -99,6 +99,7 @@ int hp_rb_write_key(HP_INFO *info, HP_KEYDEF *keyinfo, const byte *record,
...
@@ -99,6 +99,7 @@ int hp_rb_write_key(HP_INFO *info, HP_KEYDEF *keyinfo, const byte *record,
byte
*
recpos
)
byte
*
recpos
)
{
{
heap_rb_param
custom_arg
;
heap_rb_param
custom_arg
;
uint
old_allocated
;
info
->
last_pos
=
NULL
;
/* For heap_rnext/heap_rprev */
info
->
last_pos
=
NULL
;
/* For heap_rnext/heap_rprev */
custom_arg
.
keyseg
=
keyinfo
->
seg
;
custom_arg
.
keyseg
=
keyinfo
->
seg
;
...
@@ -113,12 +114,14 @@ int hp_rb_write_key(HP_INFO *info, HP_KEYDEF *keyinfo, const byte *record,
...
@@ -113,12 +114,14 @@ int hp_rb_write_key(HP_INFO *info, HP_KEYDEF *keyinfo, const byte *record,
custom_arg
.
search_flag
=
SEARCH_SAME
;
custom_arg
.
search_flag
=
SEARCH_SAME
;
keyinfo
->
rb_tree
.
flag
=
0
;
keyinfo
->
rb_tree
.
flag
=
0
;
}
}
old_allocated
=
keyinfo
->
rb_tree
.
allocated
;
if
(
!
tree_insert
(
&
keyinfo
->
rb_tree
,
(
void
*
)
info
->
recbuf
,
if
(
!
tree_insert
(
&
keyinfo
->
rb_tree
,
(
void
*
)
info
->
recbuf
,
custom_arg
.
key_length
,
&
custom_arg
))
custom_arg
.
key_length
,
&
custom_arg
))
{
{
my_errno
=
HA_ERR_FOUND_DUPP_KEY
;
my_errno
=
HA_ERR_FOUND_DUPP_KEY
;
return
1
;
return
1
;
}
}
info
->
s
->
index_length
+=
(
keyinfo
->
rb_tree
.
allocated
-
old_allocated
);
return
0
;
return
0
;
}
}
...
...
mysql-test/r/show_check.result
View file @
38a72a16
...
@@ -313,3 +313,77 @@ table CREATE TABLE `table` (
...
@@ -313,3 +313,77 @@ table CREATE TABLE `table` (
) ENGINE=MyISAM DEFAULT CHARSET=latin1
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE `table`;
DROP TABLE `table`;
SET sql_quote_show_create=ON;
SET sql_quote_show_create=ON;
select @@max_heap_table_size;
@@max_heap_table_size
1047552
CREATE TABLE t1 (
a int(11) default NULL,
KEY a TYPE BTREE (a)
) ENGINE=HEAP;
CREATE TABLE t2 (
b int(11) default NULL,
index(b)
) ENGINE=HEAP;
CREATE TABLE t3 (
a int(11) default NULL,
b int(11) default NULL,
KEY a TYPE BTREE (a),
index(b)
) ENGINE=HEAP;
insert into t1 values (1),(2);
insert into t2 values (1),(2);
insert into t3 values (1,1),(2,2);
show table status;
Name Type Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
t1 HEAP Fixed 2 5 39904 249415 42 0 NULL NULL NULL NULL latin1_swedish_ci NULL
t2 HEAP Fixed 2 5 39904 249415 39904 0 NULL NULL NULL NULL latin1_swedish_ci NULL
t3 HEAP Fixed 2 9 33072 248103 22090 0 NULL NULL NULL NULL latin1_swedish_ci NULL
insert into t1 values (3),(4);
insert into t2 values (3),(4);
insert into t3 values (3,3),(4,4);
show table status;
Name Type Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
t1 HEAP Fixed 4 5 39904 249415 84 0 NULL NULL NULL NULL latin1_swedish_ci NULL
t2 HEAP Fixed 4 5 39904 249415 39904 0 NULL NULL NULL NULL latin1_swedish_ci NULL
t3 HEAP Fixed 4 9 33072 248103 22132 0 NULL NULL NULL NULL latin1_swedish_ci NULL
insert into t1 values (5);
insert into t2 values (5);
insert into t3 values (5,5);
show table status;
Name Type Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
t1 HEAP Fixed 5 5 39904 249415 105 0 NULL NULL NULL NULL latin1_swedish_ci NULL
t2 HEAP Fixed 5 5 39904 249415 39904 0 NULL NULL NULL NULL latin1_swedish_ci NULL
t3 HEAP Fixed 5 9 33072 248103 22153 0 NULL NULL NULL NULL latin1_swedish_ci NULL
delete from t1 where a=3;
delete from t2 where b=3;
delete from t3 where a=3;
show table status;
Name Type Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
t1 HEAP Fixed 4 5 39904 249415 105 5 NULL NULL NULL NULL latin1_swedish_ci NULL
t2 HEAP Fixed 4 5 39904 249415 39904 5 NULL NULL NULL NULL latin1_swedish_ci NULL
t3 HEAP Fixed 4 9 33072 248103 22153 9 NULL NULL NULL NULL latin1_swedish_ci NULL
delete from t1;
delete from t2;
delete from t3;
show table status;
Name Type Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
t1 HEAP Fixed 0 5 0 249415 0 0 NULL NULL NULL NULL latin1_swedish_ci NULL
t2 HEAP Fixed 0 5 0 249415 0 0 NULL NULL NULL NULL latin1_swedish_ci NULL
t3 HEAP Fixed 0 9 0 248103 0 0 NULL NULL NULL NULL latin1_swedish_ci NULL
insert into t1 values (5);
insert into t2 values (5);
insert into t3 values (5,5);
show table status;
Name Type Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
t1 HEAP Fixed 1 5 39904 249415 21 0 NULL NULL NULL NULL latin1_swedish_ci NULL
t2 HEAP Fixed 1 5 39904 249415 39904 0 NULL NULL NULL NULL latin1_swedish_ci NULL
t3 HEAP Fixed 1 9 33072 248103 22069 0 NULL NULL NULL NULL latin1_swedish_ci NULL
delete from t1 where a=5;
delete from t2 where b=5;
delete from t3 where a=5;
show table status;
Name Type Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
t1 HEAP Fixed 0 5 39904 249415 21 5 NULL NULL NULL NULL latin1_swedish_ci NULL
t2 HEAP Fixed 0 5 39904 249415 39904 5 NULL NULL NULL NULL latin1_swedish_ci NULL
t3 HEAP Fixed 0 9 33072 248103 22069 9 NULL NULL NULL NULL latin1_swedish_ci NULL
drop table t1, t2, t3;
mysql-test/t/show_check.test
View file @
38a72a16
...
@@ -182,3 +182,57 @@ SHOW CREATE TABLE `table`;
...
@@ -182,3 +182,57 @@ SHOW CREATE TABLE `table`;
DROP
TABLE
`table`
;
DROP
TABLE
`table`
;
SET
sql_quote_show_create
=
ON
;
SET
sql_quote_show_create
=
ON
;
#
# Test for bug #2719 "Heap tables status shows wrong or missing data."
#
select
@@
max_heap_table_size
;
CREATE
TABLE
t1
(
a
int
(
11
)
default
NULL
,
KEY
a
TYPE
BTREE
(
a
)
)
ENGINE
=
HEAP
;
CREATE
TABLE
t2
(
b
int
(
11
)
default
NULL
,
index
(
b
)
)
ENGINE
=
HEAP
;
CREATE
TABLE
t3
(
a
int
(
11
)
default
NULL
,
b
int
(
11
)
default
NULL
,
KEY
a
TYPE
BTREE
(
a
),
index
(
b
)
)
ENGINE
=
HEAP
;
insert
into
t1
values
(
1
),(
2
);
insert
into
t2
values
(
1
),(
2
);
insert
into
t3
values
(
1
,
1
),(
2
,
2
);
show
table
status
;
insert
into
t1
values
(
3
),(
4
);
insert
into
t2
values
(
3
),(
4
);
insert
into
t3
values
(
3
,
3
),(
4
,
4
);
show
table
status
;
insert
into
t1
values
(
5
);
insert
into
t2
values
(
5
);
insert
into
t3
values
(
5
,
5
);
show
table
status
;
delete
from
t1
where
a
=
3
;
delete
from
t2
where
b
=
3
;
delete
from
t3
where
a
=
3
;
show
table
status
;
delete
from
t1
;
delete
from
t2
;
delete
from
t3
;
show
table
status
;
insert
into
t1
values
(
5
);
insert
into
t2
values
(
5
);
insert
into
t3
values
(
5
,
5
);
show
table
status
;
delete
from
t1
where
a
=
5
;
delete
from
t2
where
b
=
5
;
delete
from
t3
where
a
=
5
;
show
table
status
;
drop
table
t1
,
t2
,
t3
;
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