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
6716d16b
Commit
6716d16b
authored
Sep 27, 2005
by
serg@serg.mylan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
CHECKSUM TABLE now allows concurrent inserts
parent
c794383e
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
19 additions
and
19 deletions
+19
-19
myisam/mi_check.c
myisam/mi_check.c
+5
-5
myisam/mi_delete.c
myisam/mi_delete.c
+1
-1
myisam/mi_delete_all.c
myisam/mi_delete_all.c
+1
-1
myisam/mi_open.c
myisam/mi_open.c
+2
-2
myisam/mi_update.c
myisam/mi_update.c
+1
-1
myisam/mi_write.c
myisam/mi_write.c
+1
-1
myisam/myisamchk.c
myisam/myisamchk.c
+2
-2
myisam/myisamdef.h
myisam/myisamdef.h
+1
-1
myisam/myisampack.c
myisam/myisampack.c
+2
-2
mysql-test/r/system_mysql_db.result
mysql-test/r/system_mysql_db.result
+1
-1
sql/ha_myisam.cc
sql/ha_myisam.cc
+1
-1
sql/sql_table.cc
sql/sql_table.cc
+1
-1
No files found.
myisam/mi_check.c
View file @
6716d16b
...
...
@@ -1092,7 +1092,7 @@ int chk_data_link(MI_CHECK *param, MI_INFO *info,int extend)
"Keypointers and record positions doesn't match"
);
error
=
1
;
}
else
if
(
param
->
glob_crc
!=
info
->
s
->
state
.
checksum
&&
else
if
(
param
->
glob_crc
!=
info
->
s
tate
->
checksum
&&
(
info
->
s
->
options
&
(
HA_OPTION_CHECKSUM
|
HA_OPTION_COMPRESS_RECORD
)))
{
...
...
@@ -1388,7 +1388,7 @@ int mi_repair(MI_CHECK *param, register MI_INFO *info,
info
->
state
->
data_file_length
=
sort_param
.
max_pos
;
}
if
(
param
->
testflag
&
T_CALC_CHECKSUM
)
share
->
state
.
checksum
=
param
->
glob_crc
;
info
->
state
->
checksum
=
param
->
glob_crc
;
if
(
!
(
param
->
testflag
&
T_SILENT
))
{
...
...
@@ -2156,7 +2156,7 @@ int mi_repair_by_sort(MI_CHECK *param, register MI_INFO *info,
my_errno
);
}
if
(
param
->
testflag
&
T_CALC_CHECKSUM
)
share
->
state
.
checksum
=
param
->
glob_crc
;
info
->
state
->
checksum
=
param
->
glob_crc
;
if
(
my_chsize
(
share
->
kfile
,
info
->
state
->
key_file_length
,
0
,
MYF
(
0
)))
mi_check_print_warning
(
param
,
...
...
@@ -2577,7 +2577,7 @@ int mi_repair_parallel(MI_CHECK *param, register MI_INFO *info,
my_errno
);
}
if
(
param
->
testflag
&
T_CALC_CHECKSUM
)
share
->
state
.
checksum
=
param
->
glob_crc
;
info
->
state
->
checksum
=
param
->
glob_crc
;
if
(
my_chsize
(
share
->
kfile
,
info
->
state
->
key_file_length
,
0
,
MYF
(
0
)))
mi_check_print_warning
(
param
,
...
...
@@ -3808,7 +3808,7 @@ int recreate_table(MI_CHECK *param, MI_INFO **org_info, char *filename)
(
*
org_info
)
->
s
->
state
.
create_time
=
share
.
state
.
create_time
;
(
*
org_info
)
->
s
->
state
.
unique
=
(
*
org_info
)
->
this_unique
=
share
.
state
.
unique
;
(
*
org_info
)
->
s
->
state
.
checksum
=
share
.
state
.
checksum
;
(
*
org_info
)
->
s
tate
->
checksum
=
info
.
state
->
checksum
;
(
*
org_info
)
->
state
->
del
=
info
.
state
->
del
;
(
*
org_info
)
->
s
->
state
.
dellink
=
share
.
state
.
dellink
;
(
*
org_info
)
->
state
->
empty
=
info
.
state
->
empty
;
...
...
myisam/mi_delete.c
View file @
6716d16b
...
...
@@ -93,7 +93,7 @@ int mi_delete(MI_INFO *info,const byte *record)
if
((
*
share
->
delete_record
)(
info
))
goto
err
;
/* Remove record from database */
info
->
s
->
state
.
checksum
-=
info
->
checksum
;
info
->
s
tate
->
checksum
-=
info
->
checksum
;
info
->
update
=
HA_STATE_CHANGED
+
HA_STATE_DELETED
+
HA_STATE_ROW_CHANGED
;
info
->
state
->
records
--
;
...
...
myisam/mi_delete_all.c
View file @
6716d16b
...
...
@@ -41,7 +41,7 @@ int mi_delete_all_rows(MI_INFO *info)
info
->
state
->
key_file_length
=
share
->
base
.
keystart
;
info
->
state
->
data_file_length
=
0
;
info
->
state
->
empty
=
info
->
state
->
key_empty
=
0
;
state
->
checksum
=
0
;
info
->
state
->
checksum
=
0
;
for
(
i
=
share
->
base
.
max_key_block_length
/
MI_MIN_KEY_BLOCK_LENGTH
;
i
--
;
)
state
->
key_del
[
i
]
=
HA_OFFSET_ERROR
;
...
...
myisam/mi_open.c
View file @
6716d16b
...
...
@@ -822,7 +822,7 @@ uint mi_state_info_write(File file, MI_STATE_INFO *state, uint pWrite)
mi_sizestore
(
ptr
,
state
->
state
.
empty
);
ptr
+=
8
;
mi_sizestore
(
ptr
,
state
->
state
.
key_empty
);
ptr
+=
8
;
mi_int8store
(
ptr
,
state
->
auto_increment
);
ptr
+=
8
;
mi_int8store
(
ptr
,(
ulonglong
)
state
->
checksum
);
ptr
+=
8
;
mi_int8store
(
ptr
,(
ulonglong
)
state
->
state
.
checksum
);
ptr
+=
8
;
mi_int4store
(
ptr
,
state
->
process
);
ptr
+=
4
;
mi_int4store
(
ptr
,
state
->
unique
);
ptr
+=
4
;
mi_int4store
(
ptr
,
state
->
status
);
ptr
+=
4
;
...
...
@@ -884,7 +884,7 @@ char *mi_state_info_read(uchar *ptr, MI_STATE_INFO *state)
state
->
state
.
empty
=
mi_sizekorr
(
ptr
);
ptr
+=
8
;
state
->
state
.
key_empty
=
mi_sizekorr
(
ptr
);
ptr
+=
8
;
state
->
auto_increment
=
mi_uint8korr
(
ptr
);
ptr
+=
8
;
state
->
checksum
=
(
ha_checksum
)
mi_uint8korr
(
ptr
);
ptr
+=
8
;
state
->
state
.
checksum
=
(
ha_checksum
)
mi_uint8korr
(
ptr
);
ptr
+=
8
;
state
->
process
=
mi_uint4korr
(
ptr
);
ptr
+=
4
;
state
->
unique
=
mi_uint4korr
(
ptr
);
ptr
+=
4
;
state
->
status
=
mi_uint4korr
(
ptr
);
ptr
+=
4
;
...
...
myisam/mi_update.c
View file @
6716d16b
...
...
@@ -162,7 +162,7 @@ int mi_update(register MI_INFO *info, const byte *oldrec, byte *newrec)
if
(
auto_key_changed
)
update_auto_increment
(
info
,
newrec
);
if
(
share
->
calc_checksum
)
share
->
state
.
checksum
+=
(
info
->
checksum
-
old_checksum
);
info
->
state
->
checksum
+=
(
info
->
checksum
-
old_checksum
);
info
->
update
=
(
HA_STATE_CHANGED
|
HA_STATE_ROW_CHANGED
|
HA_STATE_AKTIV
|
key_changed
);
...
...
myisam/mi_write.c
View file @
6716d16b
...
...
@@ -142,7 +142,7 @@ int mi_write(MI_INFO *info, byte *record)
{
if
((
*
share
->
write_record
)(
info
,
record
))
goto
err
;
share
->
state
.
checksum
+=
info
->
checksum
;
info
->
state
->
checksum
+=
info
->
checksum
;
}
if
(
share
->
base
.
auto_key
)
update_auto_increment
(
info
,
record
);
...
...
myisam/myisamchk.c
View file @
6716d16b
...
...
@@ -1261,7 +1261,7 @@ static void descript(MI_CHECK *param, register MI_INFO *info, my_string name)
share
->
base
.
raid_chunksize
);
}
if
(
share
->
options
&
(
HA_OPTION_CHECKSUM
|
HA_OPTION_COMPRESS_RECORD
))
printf
(
"Checksum: %23s
\n
"
,
llstr
(
info
->
s
->
state
.
checksum
,
llbuff
));
printf
(
"Checksum: %23s
\n
"
,
llstr
(
info
->
s
tate
->
checksum
,
llbuff
));
;
if
(
share
->
options
&
HA_OPTION_DELAY_KEY_WRITE
)
printf
(
"Keys are only flushed at close
\n
"
);
...
...
@@ -1576,7 +1576,7 @@ static int mi_sort_records(MI_CHECK *param,
old_record_count
=
info
->
state
->
records
;
info
->
state
->
records
=
0
;
if
(
sort_info
.
new_data_file_type
!=
COMPRESSED_RECORD
)
share
->
state
.
checksum
=
0
;
info
->
state
->
checksum
=
0
;
if
(
sort_record_index
(
&
sort_param
,
info
,
keyinfo
,
share
->
state
.
key_root
[
sort_key
],
temp_buff
,
sort_key
,
new_file
,
update_index
)
||
...
...
myisam/myisamdef.h
View file @
6716d16b
...
...
@@ -38,6 +38,7 @@ typedef struct st_mi_status_info
my_off_t
key_empty
;
/* lost space in indexfile */
my_off_t
key_file_length
;
my_off_t
data_file_length
;
ha_checksum
checksum
;
}
MI_STATUS_INFO
;
typedef
struct
st_mi_state_info
...
...
@@ -75,7 +76,6 @@ typedef struct st_mi_state_info
ulong
sec_index_changed
;
/* Updated when new sec_index */
ulong
sec_index_used
;
/* which extra index are in use */
ulonglong
key_map
;
/* Which keys are in use */
ha_checksum
checksum
;
ulong
version
;
/* timestamp of create */
time_t
create_time
;
/* Time when created database */
time_t
recover_time
;
/* Time for last recover */
...
...
myisam/myisampack.c
View file @
6716d16b
...
...
@@ -2965,7 +2965,7 @@ static int save_state(MI_INFO *isam_file,PACK_MRG_INFO *mrg,my_off_t new_length,
share
->
state
.
key_root
[
key
]
=
HA_OFFSET_ERROR
;
for
(
key
=
0
;
key
<
share
->
state
.
header
.
max_block_size
;
key
++
)
share
->
state
.
key_del
[
key
]
=
HA_OFFSET_ERROR
;
share
->
state
.
checksum
=
crc
;
/* Save crc here */
isam_file
->
state
->
checksum
=
crc
;
/* Save crc here */
share
->
changed
=
1
;
/* Force write of header */
share
->
state
.
open_count
=
0
;
share
->
global_changed
=
0
;
...
...
@@ -3001,7 +3001,7 @@ static int save_state_mrg(File file,PACK_MRG_INFO *mrg,my_off_t new_length,
state
.
dellink
=
HA_OFFSET_ERROR
;
state
.
version
=
(
ulong
)
time
((
time_t
*
)
0
);
mi_clear_all_keys_active
(
state
.
key_map
);
state
.
checksum
=
crc
;
state
.
state
.
checksum
=
crc
;
if
(
isam_file
->
s
->
base
.
keys
)
isamchk_neaded
=
1
;
state
.
changed
=
STATE_CHANGED
|
STATE_NOT_ANALYZED
;
/* Force check of table */
...
...
mysql-test/r/system_mysql_db.result
View file @
6716d16b
...
...
@@ -73,7 +73,7 @@ Table Create Table
user CREATE TABLE `user` (
`Host` char(60) collate utf8_bin NOT NULL default '',
`User` char(16) collate utf8_bin NOT NULL default '',
`Password`
char(41) collate utf8_bin
NOT NULL default '',
`Password`
binary(41)
NOT NULL default '',
`Select_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`Insert_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
`Update_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
...
...
sql/ha_myisam.cc
View file @
6716d16b
...
...
@@ -1703,6 +1703,6 @@ int ha_myisam::ft_read(byte * buf)
uint
ha_myisam
::
checksum
()
const
{
return
(
uint
)
file
->
s
->
state
.
checksum
;
return
(
uint
)
file
->
s
tate
->
checksum
;
}
sql/sql_table.cc
View file @
6716d16b
...
...
@@ -4074,7 +4074,7 @@ bool mysql_checksum_table(THD *thd, TABLE_LIST *tables, HA_CHECK_OPT *check_opt)
strxmov
(
table_name
,
table
->
db
,
"."
,
table
->
table_name
,
NullS
);
t
=
table
->
table
=
open_ltable
(
thd
,
table
,
TL_READ
_NO_INSERT
);
t
=
table
->
table
=
open_ltable
(
thd
,
table
,
TL_READ
);
thd
->
clear_error
();
// these errors shouldn't get client
protocol
->
prepare_for_resend
();
...
...
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