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
a2dfa952
Commit
a2dfa952
authored
Jul 02, 2003
by
unknown
Browse files
Options
Browse Files
Download
Plain Diff
Merge sinisa@bk-internal.mysql.com:/home/bk/mysql-4.0
into sinisa.nasamreza.org:/mnt/work/mysql-4.0
parents
417c571b
6806765a
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
34 additions
and
27 deletions
+34
-27
sql/ha_innodb.cc
sql/ha_innodb.cc
+34
-27
No files found.
sql/ha_innodb.cc
View file @
a2dfa952
...
...
@@ -982,6 +982,12 @@ innobase_commit(
trx
=
check_trx_exists
(
thd
);
/* Release a possible FIFO ticket and search latch. Since we will
reserve the kernel mutex, we have to release the search system latch
first to obey the latching order. */
innobase_release_stat_resources
(
trx
);
/* The flag thd->transaction.all.innodb_active_trans is set to 1 in
::external_lock, ::start_stmt, and innobase_savepoint, and it is only
set to 0 in a commit or a rollback. If it is 0 we know there cannot be
...
...
@@ -1008,9 +1014,7 @@ innobase_commit(
/* If we had reserved the auto-inc lock for some
table in this SQL statement we release it now */
innodb_srv_conc_enter_innodb
(
trx
);
row_unlock_table_autoinc_for_mysql
(
trx
);
innodb_srv_conc_exit_innodb
(
trx
);
}
/* Store the current undo_no of the transaction so that we
know where to roll back if we have to roll back the next
...
...
@@ -1019,9 +1023,6 @@ innobase_commit(
trx_mark_sql_stat_end
(
trx
);
}
/* Release a possible FIFO ticket and search latch */
innobase_release_stat_resources
(
trx
);
/* Tell the InnoDB server that there might be work for utility
threads: */
...
...
@@ -1114,18 +1115,20 @@ innobase_rollback(
trx
=
check_trx_exists
(
thd
);
/* Release a possible FIFO ticket and search latch. Since we will
reserve the kernel mutex, we have to release the search system latch
first to obey the latching order. */
innobase_release_stat_resources
(
trx
);
if
(
trx
->
auto_inc_lock
)
{
/* If we had reserved the auto-inc lock for some table (if
we come here to roll back the latest SQL statement) we
release it now before a possibly lengthy rollback */
innodb_srv_conc_enter_innodb
(
trx
);
row_unlock_table_autoinc_for_mysql
(
trx
);
innodb_srv_conc_exit_innodb
(
trx
);
}
innodb_srv_conc_enter_innodb
(
trx
);
if
(
trx_handle
!=
(
void
*
)
&
innodb_dummy_stmt_trx_handle
||
(
!
(
thd
->
options
&
(
OPTION_NOT_AUTOCOMMIT
|
OPTION_BEGIN
))))
{
...
...
@@ -1135,11 +1138,6 @@ innobase_rollback(
error
=
trx_rollback_last_sql_stat_for_mysql
(
trx
);
}
innodb_srv_conc_exit_innodb
(
trx
);
/* Release a possible FIFO ticket and search latch */
innobase_release_stat_resources
(
trx
);
DBUG_RETURN
(
convert_error_code_to_mysql
(
error
,
NULL
));
}
...
...
@@ -1166,17 +1164,17 @@ innobase_rollback_to_savepoint(
trx
=
check_trx_exists
(
thd
);
innodb_srv_conc_enter_innodb
(
trx
);
/* Release a possible FIFO ticket and search latch. Since we will
reserve the kernel mutex, we have to release the search system latch
first to obey the latching order. */
innobase_release_stat_resources
(
trx
);
error
=
trx_rollback_to_savepoint_for_mysql
(
trx
,
savepoint_name
,
&
mysql_binlog_cache_pos
);
innodb_srv_conc_exit_innodb
(
trx
);
*
binlog_cache_pos
=
(
my_off_t
)
mysql_binlog_cache_pos
;
/* Release a possible FIFO ticket and search latch */
innobase_release_stat_resources
(
trx
);
DBUG_RETURN
(
convert_error_code_to_mysql
(
error
,
NULL
));
}
...
...
@@ -4496,6 +4494,12 @@ ha_innobase::external_lock(
trx
->
mysql_n_tables_locked
=
0
;
prebuilt
->
used_in_HANDLER
=
FALSE
;
/* Release a possible FIFO ticket and search latch. Since we
may reserve the kernel mutex, we have to release the search
system latch first to obey the latching order. */
innobase_release_stat_resources
(
trx
);
if
(
!
(
thd
->
options
&
(
OPTION_NOT_AUTOCOMMIT
|
OPTION_BEGIN
)))
{
if
(
thd
->
transaction
.
all
.
innodb_active_trans
!=
0
)
{
...
...
@@ -4511,11 +4515,6 @@ ha_innobase::external_lock(
read_view_close_for_mysql
(
trx
);
}
}
/* Here we release the search latch and the InnoDB thread FIFO
ticket if they were reserved. */
innobase_release_stat_resources
(
trx
);
}
DBUG_RETURN
(
error
);
...
...
@@ -4532,6 +4531,7 @@ innodb_show_status(
{
String
*
packet
=
&
thd
->
packet
;
char
*
buf
;
trx_t
*
trx
;
DBUG_ENTER
(
"innodb_show_status"
);
...
...
@@ -4542,6 +4542,10 @@ innodb_show_status(
DBUG_RETURN
(
-
1
);
}
trx
=
check_trx_exists
(
thd
);
innobase_release_stat_resources
(
trx
);
/* We let the InnoDB Monitor to output at most 200 kB of text, add
a safety margin of 10 kB for buffer overruns */
...
...
@@ -4553,7 +4557,7 @@ innodb_show_status(
field_list
.
push_back
(
new
Item_empty_string
(
"Status"
,
strlen
(
buf
)));
if
(
send_fields
(
thd
,
field_list
,
1
))
{
if
(
send_fields
(
thd
,
field_list
,
1
))
{
ut_free
(
buf
);
...
...
@@ -4729,6 +4733,11 @@ ha_innobase::innobase_read_and_init_auto_inc(
(
trx_t
*
)
current_thd
->
transaction
.
all
.
innobase_tid
);
ut_a
(
prebuilt
->
table
);
/* In case MySQL calls this in the middle of a SELECT query, release
possible adaptive hash latch to avoid deadlocks of threads */
trx_search_latch_release_if_reserved
(
prebuilt
->
trx
);
auto_inc
=
dict_table_autoinc_read
(
prebuilt
->
table
);
if
(
auto_inc
!=
0
)
{
...
...
@@ -4738,9 +4747,7 @@ ha_innobase::innobase_read_and_init_auto_inc(
return
(
0
);
}
innodb_srv_conc_enter_innodb
(
prebuilt
->
trx
);
error
=
row_lock_table_autoinc_for_mysql
(
prebuilt
);
innodb_srv_conc_exit_innodb
(
prebuilt
->
trx
);
if
(
error
!=
DB_SUCCESS
)
{
error
=
convert_error_code_to_mysql
(
error
,
user_thd
);
...
...
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