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
83429586
Commit
83429586
authored
Jan 28, 2005
by
marko@hundin.mysql.fi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
InnoDB: Allow concurrent TRUNCATE and INSERT on a table. (Bug #8144)
parent
d8f0e8f0
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
8 additions
and
17 deletions
+8
-17
innobase/include/rem0rec.ic
innobase/include/rem0rec.ic
+2
-2
innobase/include/trx0trx.h
innobase/include/trx0trx.h
+3
-1
innobase/row/row0mysql.c
innobase/row/row0mysql.c
+0
-12
sql/ha_innodb.cc
sql/ha_innodb.cc
+3
-2
No files found.
innobase/include/rem0rec.ic
View file @
83429586
...
...
@@ -526,7 +526,7 @@ bits of a record. (Only compact records have status bits.) */
UNIV_INLINE
ulint
rec_get_info_and_status_bits(
/*==============*/
/*==============
===========
*/
/* out: info bits */
rec_t* rec, /* in: physical record */
ibool comp) /* in: TRUE=compact page format */
...
...
@@ -550,7 +550,7 @@ bits of a record. (Only compact records have status bits.) */
UNIV_INLINE
void
rec_set_info_and_status_bits(
/*==============*/
/*==============
===========
*/
rec_t* rec, /* in: physical record */
ibool comp, /* in: TRUE=compact page format */
ulint bits) /* in: info bits */
...
...
innobase/include/trx0trx.h
View file @
83429586
...
...
@@ -383,7 +383,9 @@ struct trx_struct{
dulint
commit_lsn
;
/* lsn at the time of the commit */
ibool
dict_operation
;
/* TRUE if the trx is used to create
a table, create an index, or drop a
table */
table. This is a hint that the table
may need to be dropped in crash
recovery. */
dulint
table_id
;
/* table id if the preceding field is
TRUE */
/*------------------------------*/
...
...
innobase/row/row0mysql.c
View file @
83429586
...
...
@@ -2561,17 +2561,6 @@ do not allow the TRUNCATE. We also reserve the data dictionary latch. */
goto
funct_exit
;
}
if
(
table
->
n_mysql_handles_opened
>
1
)
{
ut_print_timestamp
(
stderr
);
fputs
(
" InnoDB: Warning: MySQL is trying to truncate table "
,
stderr
);
ut_print_name
(
stderr
,
trx
,
table
->
name
);
fputs
(
"
\n
"
"InnoDB: though there are still open handles to it.
\n
"
,
stderr
);
err
=
DB_ERROR
;
goto
funct_exit
;
}
/* TODO: could we replace the counter n_foreign_key_checks_running
with lock checks on the table? Acquire here an exclusive lock on the
table, and rewrite lock0lock.c and the lock wait in srv0srv.c so that
...
...
@@ -2594,7 +2583,6 @@ fputs(" InnoDB: Warning: MySQL is trying to truncate table ", stderr);
lock_reset_all_on_table
(
table
);
trx
->
dict_operation
=
TRUE
;
trx
->
table_id
=
table
->
id
;
/* scan SYS_INDEXES for all indexes of the table */
...
...
sql/ha_innodb.cc
View file @
83429586
...
...
@@ -5787,11 +5787,12 @@ ha_innobase::store_lock(
if
(
lock_type
!=
TL_IGNORE
&&
lock
.
type
==
TL_UNLOCK
)
{
/* If we are not doing a LOCK TABLE or DISCARD/IMPORT
TABLESPACE, then allow multiple writers */
TABLESPACE
or TRUNCATE TABLE
, then allow multiple writers */
if
((
lock_type
>=
TL_WRITE_CONCURRENT_INSERT
&&
lock_type
<=
TL_WRITE
)
&&
!
thd
->
in_lock_tables
&&
!
thd
->
tablespace_op
)
{
&&
!
thd
->
tablespace_op
&&
thd
->
lex
->
sql_command
!=
SQLCOM_TRUNCATE
)
{
lock_type
=
TL_WRITE_ALLOW_WRITE
;
}
...
...
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