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
cd25e169
Commit
cd25e169
authored
Aug 28, 2003
by
monty@narttu.mysql.fi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ixed overflow bug in MyISAM and ISAM when using packed tables with a lot of fields and blobs
parent
5c57eb22
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
23 additions
and
355 deletions
+23
-355
isam/open.c
isam/open.c
+3
-0
isam/test_all.res
isam/test_all.res
+17
-354
myisam/mi_dynrec.c
myisam/mi_dynrec.c
+1
-1
myisam/mi_open.c
myisam/mi_open.c
+2
-0
No files found.
isam/open.c
View file @
cd25e169
...
@@ -415,6 +415,9 @@ static void setup_functions(register ISAM_SHARE *share)
...
@@ -415,6 +415,9 @@ static void setup_functions(register ISAM_SHARE *share)
share
->
read_rnd
=
_nisam_read_rnd_dynamic_record
;
share
->
read_rnd
=
_nisam_read_rnd_dynamic_record
;
share
->
delete_record
=
_nisam_delete_dynamic_record
;
share
->
delete_record
=
_nisam_delete_dynamic_record
;
share
->
compare_record
=
_nisam_cmp_dynamic_record
;
share
->
compare_record
=
_nisam_cmp_dynamic_record
;
/* add bits used to pack data to pack_reclength for faster allocation */
share
->
base
.
pack_reclength
+=
share
->
base
.
pack_bits
;
if
(
share
->
base
.
blobs
)
if
(
share
->
base
.
blobs
)
{
{
share
->
update_record
=
_nisam_update_blob_record
;
share
->
update_record
=
_nisam_update_blob_record
;
...
...
isam/test_all.res
View file @
cd25e169
echo "test2 -L -K -W -P"
test2 -L -K -W -P
test2 -L -K -W -P
- Creating isam-file
echo "test2 -L -K -W -P -A"
- Writing key:s
- Delete
- Update
- Same key: first - next -> last - prev -> first
- All keys: first - next -> last - prev -> first
- Test if: Read first - next - prev - prev - next == first
- Test if: Read last - prev - next - next - prev == last
- Test read key-part
- Read key (first) - next - delete - next -> last
- Read last of key - prev - delete - prev -> first
- Test if: Read rrnd - same
- Test nisam_records_in_range
- nisam_info
- nisam_extra(CACHE) + nisam_rrnd.... + nisam_extra(NO_CACHE)
- Removing keys
Following test have been made:
Write records: 907
Update records: 87
Same-key-read: 6
Delete records: 907
Key cacheing used
Write cacheing used
Locking used
test2 -L -K -W -P -A
test2 -L -K -W -P -A
- Creating isam-file
echo "test2 -L -K -W -P -S -R1 -m500"
- Writing key:s
- Delete
- Update
- Same key: first - next -> last - prev -> first
- All keys: first - next -> last - prev -> first
- Test if: Read first - next - prev - prev - next == first
- Test if: Read last - prev - next - next - prev == last
- Test read key-part
- Read key (first) - next - delete - next -> last
- Read last of key - prev - delete - prev -> first
- Test if: Read rrnd - same
- Test nisam_records_in_range
- nisam_info
- nisam_extra(CACHE) + nisam_rrnd.... + nisam_extra(NO_CACHE)
- Removing keys
Following test have been made:
Write records: 907
Update records: 87
Same-key-read: 6
Delete records: 907
Key cacheing used
Write cacheing used
Asyncron io with locking used
test2 -L -K -W -P -S -R1 -m500
test2 -L -K -W -P -S -R1 -m500
- Creating isam-file
echo "test2 -L -K -R1 -m2000 ; Should give error 135"
- Writing key:s
test2 -L -K -R1 -m2000
- Delete
echo "test2 -L -K -P -S -R3 -m50 -b1000000"
- Update
- Same key: first - next -> last - prev -> first
- All keys: first - next -> last - prev -> first
- Test if: Read first - next - prev - prev - next == first
- Test if: Read last - prev - next - next - prev == last
- Test read key-part
- Read key (first) - next - delete - next -> last
- Test if: Read rrnd - same
- Test nisam_records_in_range
- nisam_info
- nisam_extra(CACHE) + nisam_rrnd.... + nisam_extra(NO_CACHE)
- Removing keys
Following test have been made:
Write records: 475
Update records: 44
Same-key-read: 4
Delete records: 475
Record pointer size: 1
Key cacheing used
Write cacheing used
Locking used
test2 -L -K -R1 -m2000 ; Should give error 135
- Creating isam-file
- Writing key:s
- Delete
- Update
- Same key: first - next -> last - prev -> first
- All keys: first - next -> last - prev -> first
- Test if: Read first - next - prev - prev - next == first
- Test if: Read last - prev - next - next - prev == last
- Test read key-part
- Read key (first) - next - delete - next -> last
- Read last of key - prev - delete - prev -> first
- Read first - delete - next -> last
- Read last - delete - prev -> first
- Test if: Read rrnd - same
- Test nisam_records_in_range
- nisam_info
- nisam_extra(CACHE) + nisam_rrnd.... + nisam_extra(NO_CACHE)
- Removing keys
Following test have been made:
Write records: 1647
Update records: 125
Same-key-read: 8
Delete records: 1647
Record pointer size: 1
Key cacheing used
Locking used
test2 -L -K -P -S -R3 -m50 -b1000000
test2 -L -K -P -S -R3 -m50 -b1000000
- Creating isam-file
echo "test2 -L -B"
- Writing key:s
- Delete
- Update
- Same key: first - next -> last - prev -> first
- All keys: first - next -> last - prev -> first
- Test if: Read first - next - prev - prev - next == first
- Test if: Read last - prev - next - next - prev == last
- Test read key-part
- Test if: Read rrnd - same
- Test nisam_records_in_range
- nisam_info
- nisam_extra(CACHE) + nisam_rrnd.... + nisam_extra(NO_CACHE)
- Removing keys
Following test have been made:
Write records: 50
Update records: 5
Same-key-read: 2
Delete records: 50
Record pointer size: 3
Key cacheing used
Locking used
test2 -L -B
test2 -L -B
- Creating isam-file
echo "test2 -L -K -W -P -m50 -l"
- Writing key:s
- Delete
- Update
- Same key: first - next -> last - prev -> first
- All keys: first - next -> last - prev -> first
- Test if: Read first - next - prev - prev - next == first
- Test if: Read last - prev - next - next - prev == last
- Test read key-part
- Read key (first) - next - delete - next -> last
- Read last of key - prev - delete - prev -> first
- Test if: Read rrnd - same
- Test nisam_records_in_range
- nisam_info
- nisam_extra(CACHE) + nisam_rrnd.... + nisam_extra(NO_CACHE)
- Removing keys
Following test have been made:
Write records: 903
Update records: 86
Same-key-read: 5
Delete records: 903
Locking used
blobs used
test2 -L -K -W -P -m50 -l
test2 -L -K -W -P -m50 -l
- Creating isam-file
isamlog
- Writing key:s
echo "test2 -L -K -W -P -m50 -l -b100"
- Delete
- Update
- Same key: first - next -> last - prev -> first
- All keys: first - next -> last - prev -> first
- Test if: Read first - next - prev - prev - next == first
- Test if: Read last - prev - next - next - prev == last
- Test read key-part
- Test if: Read rrnd - same
- Test nisam_records_in_range
- nisam_info
- nisam_extra(CACHE) + nisam_rrnd.... + nisam_extra(NO_CACHE)
- Removing keys
Following test have been made:
Write records: 50
Update records: 5
Same-key-read: 2
Delete records: 50
Key cacheing used
Write cacheing used
Locking used
Commands Used count Errors Recover errors
open 14 0 0
write 700 0 0
update 70 0 0
delete 700 0 0
close 14 0 0
extra 84 0 0
Total 1582 0 0
test2 -L -K -W -P -m50 -l -b100
test2 -L -K -W -P -m50 -l -b100
- Creating isam-file
isamlog
- Writing key:s
echo "time test2"
- Delete
- Update
- Same key: first - next -> last - prev -> first
- All keys: first - next -> last - prev -> first
- Test if: Read first - next - prev - prev - next == first
- Test if: Read last - prev - next - next - prev == last
- Test read key-part
- Test if: Read rrnd - same
- Test nisam_records_in_range
- nisam_info
- nisam_extra(CACHE) + nisam_rrnd.... + nisam_extra(NO_CACHE)
- Removing keys
Following test have been made:
Write records: 50
Update records: 5
Same-key-read: 2
Delete records: 50
Key cacheing used
Write cacheing used
Locking used
Commands Used count Errors Recover errors
open 15 0 0
write 750 0 0
update 75 0 0
delete 750 0 0
close 15 0 0
extra 90 0 0
Total 1695 0 0
time test2
time test2
- Creating isam-file
echo "time test2 -K"
- Writing key:s
- Delete
- Update
- Same key: first - next -> last - prev -> first
- All keys: first - next -> last - prev -> first
- Test if: Read first - next - prev - prev - next == first
- Test if: Read last - prev - next - next - prev == last
- Test read key-part
- Read key (first) - next - delete - next -> last
- Read last of key - prev - delete - prev -> first
- Test if: Read rrnd - same
- Test nisam_records_in_range
- nisam_info
- nisam_extra(CACHE) + nisam_rrnd.... + nisam_extra(NO_CACHE)
- Removing keys
Following test have been made:
Write records: 907
Update records: 87
Same-key-read: 6
Delete records: 907
time test2 -K
time test2 -K
- Creating isam-file
echo "time test2 -L"
- Writing key:s
- Delete
- Update
- Same key: first - next -> last - prev -> first
- All keys: first - next -> last - prev -> first
- Test if: Read first - next - prev - prev - next == first
- Test if: Read last - prev - next - next - prev == last
- Test read key-part
- Read key (first) - next - delete - next -> last
- Read last of key - prev - delete - prev -> first
- Test if: Read rrnd - same
- Test nisam_records_in_range
- nisam_info
- nisam_extra(CACHE) + nisam_rrnd.... + nisam_extra(NO_CACHE)
- Removing keys
Following test have been made:
Write records: 907
Update records: 87
Same-key-read: 6
Delete records: 907
Key cacheing used
time test2 -L
time test2 -L
- Creating isam-file
echo "time test2 -L -K"
- Writing key:s
- Delete
- Update
- Same key: first - next -> last - prev -> first
- All keys: first - next -> last - prev -> first
- Test if: Read first - next - prev - prev - next == first
- Test if: Read last - prev - next - next - prev == last
- Test read key-part
- Read key (first) - next - delete - next -> last
- Read last of key - prev - delete - prev -> first
- Test if: Read rrnd - same
- Test nisam_records_in_range
- nisam_info
- nisam_extra(CACHE) + nisam_rrnd.... + nisam_extra(NO_CACHE)
- Removing keys
Following test have been made:
Write records: 907
Update records: 87
Same-key-read: 6
Delete records: 907
Locking used
time test2 -L -K
time test2 -L -K
- Creating isam-file
echo "time test2 -L -K -W"
- Writing key:s
- Delete
- Update
- Same key: first - next -> last - prev -> first
- All keys: first - next -> last - prev -> first
- Test if: Read first - next - prev - prev - next == first
- Test if: Read last - prev - next - next - prev == last
- Test read key-part
- Read key (first) - next - delete - next -> last
- Read last of key - prev - delete - prev -> first
- Test if: Read rrnd - same
- Test nisam_records_in_range
- nisam_info
- nisam_extra(CACHE) + nisam_rrnd.... + nisam_extra(NO_CACHE)
- Removing keys
Following test have been made:
Write records: 907
Update records: 87
Same-key-read: 6
Delete records: 907
Key cacheing used
Locking used
time test2 -L -K -W
time test2 -L -K -W
- Creating isam-file
echo "time test2 -L -K -W -S"
- Writing key:s
- Delete
- Update
- Same key: first - next -> last - prev -> first
- All keys: first - next -> last - prev -> first
- Test if: Read first - next - prev - prev - next == first
- Test if: Read last - prev - next - next - prev == last
- Test read key-part
- Read key (first) - next - delete - next -> last
- Read last of key - prev - delete - prev -> first
- Test if: Read rrnd - same
- Test nisam_records_in_range
- nisam_info
- nisam_extra(CACHE) + nisam_rrnd.... + nisam_extra(NO_CACHE)
- Removing keys
Following test have been made:
Write records: 907
Update records: 87
Same-key-read: 6
Delete records: 907
Key cacheing used
Write cacheing used
Locking used
time test2 -L -K -W -S
time test2 -L -K -W -S
- Creating isam-file
- Writing key:s
- Delete
- Update
- Same key: first - next -> last - prev -> first
- All keys: first - next -> last - prev -> first
- Test if: Read first - next - prev - prev - next == first
- Test if: Read last - prev - next - next - prev == last
- Test read key-part
- Read key (first) - next - delete - next -> last
- Read last of key - prev - delete - prev -> first
- Test if: Read rrnd - same
- Test nisam_records_in_range
- nisam_info
- nisam_extra(CACHE) + nisam_rrnd.... + nisam_extra(NO_CACHE)
- Removing keys
Following test have been made:
Write records: 907
Update records: 87
Same-key-read: 6
Delete records: 907
Key cacheing used
Write cacheing used
Locking used
myisam/mi_dynrec.c
View file @
cd25e169
...
@@ -62,7 +62,7 @@ int _mi_write_blob_record(MI_INFO *info, const byte *record)
...
@@ -62,7 +62,7 @@ int _mi_write_blob_record(MI_INFO *info, const byte *record)
extra
=
ALIGN_SIZE
(
MI_MAX_DYN_BLOCK_HEADER
)
+
MI_SPLIT_LENGTH
+
extra
=
ALIGN_SIZE
(
MI_MAX_DYN_BLOCK_HEADER
)
+
MI_SPLIT_LENGTH
+
MI_DYN_DELETE_BLOCK_HEADER
+
1
;
MI_DYN_DELETE_BLOCK_HEADER
+
1
;
reclength
=
(
info
->
s
->
base
.
pack_reclength
+
info
->
s
->
base
.
pack_bits
+
reclength
=
(
info
->
s
->
base
.
pack_reclength
+
_my_calc_total_blob_length
(
info
,
record
)
+
extra
);
_my_calc_total_blob_length
(
info
,
record
)
+
extra
);
if
(
reclength
>
MI_DYN_MAX_ROW_LENGTH
)
if
(
reclength
>
MI_DYN_MAX_ROW_LENGTH
)
{
{
...
...
myisam/mi_open.c
View file @
cd25e169
...
@@ -602,6 +602,8 @@ void mi_setup_functions(register MYISAM_SHARE *share)
...
@@ -602,6 +602,8 @@ void mi_setup_functions(register MYISAM_SHARE *share)
share
->
compare_unique
=
_mi_cmp_dynamic_unique
;
share
->
compare_unique
=
_mi_cmp_dynamic_unique
;
share
->
calc_checksum
=
mi_checksum
;
share
->
calc_checksum
=
mi_checksum
;
/* add bits used to pack data to pack_reclength for faster allocation */
share
->
base
.
pack_reclength
+=
share
->
base
.
pack_bits
;
if
(
share
->
base
.
blobs
)
if
(
share
->
base
.
blobs
)
{
{
share
->
update_record
=
_mi_update_blob_record
;
share
->
update_record
=
_mi_update_blob_record
;
...
...
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