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
97089cb0
Commit
97089cb0
authored
Aug 13, 2008
by
Timothy Smith
Browse files
Options
Browse Files
Download
Plain Diff
Merge some 5.0 innodb changes
parents
17544370
97e686dd
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
91 additions
and
17 deletions
+91
-17
innobase/buf/buf0buf.c
innobase/buf/buf0buf.c
+2
-0
innobase/dict/dict0dict.c
innobase/dict/dict0dict.c
+1
-1
innobase/include/buf0buf.h
innobase/include/buf0buf.h
+8
-5
innobase/include/srv0srv.h
innobase/include/srv0srv.h
+2
-0
innobase/include/trx0undo.h
innobase/include/trx0undo.h
+1
-0
innobase/srv/srv0srv.c
innobase/srv/srv0srv.c
+2
-0
innobase/trx/trx0trx.c
innobase/trx/trx0trx.c
+4
-4
innobase/trx/trx0undo.c
innobase/trx/trx0undo.c
+23
-6
mysql-test/r/innodb-autoinc-optimize.result
mysql-test/r/innodb-autoinc-optimize.result
+6
-0
mysql-test/r/innodb_bug35220.result
mysql-test/r/innodb_bug35220.result
+1
-0
mysql-test/t/innodb-autoinc-optimize.test
mysql-test/t/innodb-autoinc-optimize.test
+16
-0
mysql-test/t/innodb_bug35220.test
mysql-test/t/innodb_bug35220.test
+16
-0
sql/ha_innodb.cc
sql/ha_innodb.cc
+9
-1
No files found.
innobase/buf/buf0buf.c
View file @
97089cb0
...
...
@@ -2260,6 +2260,7 @@ buf_print(void)
ut_a
(
buf_validate
());
}
#ifdef UNIV_DEBUG
/*************************************************************************
Returns the number of latched pages in the buffer pool. */
...
...
@@ -2290,6 +2291,7 @@ buf_get_latched_pages_number(void)
mutex_exit
(
&
(
buf_pool
->
mutex
));
return
fixed_pages_number
;
}
#endif
/* UNIV_DEBUG */
/*************************************************************************
Returns the number of pending buf pool ios. */
...
...
innobase/dict/dict0dict.c
View file @
97089cb0
...
...
@@ -3554,7 +3554,7 @@ dict_foreign_parse_drop_constraints(
ptr
=
dict_accept
(
ptr
,
"FOREIGN"
,
&
success
);
if
(
!
success
)
{
if
(
!
success
||
!
ib_isspace
(
*
ptr
)
)
{
goto
loop
;
}
...
...
innobase/include/buf0buf.h
View file @
97089cb0
...
...
@@ -495,7 +495,15 @@ Prints info of the buffer pool data structure. */
void
buf_print
(
void
);
/*============*/
/*************************************************************************
Returns the number of latched pages in the buffer pool. */
ulint
buf_get_latched_pages_number
(
void
);
/*==============================*/
#endif
/* UNIV_DEBUG */
/************************************************************************
Prints a page to stderr. */
...
...
@@ -503,12 +511,7 @@ void
buf_page_print
(
/*===========*/
byte
*
read_buf
);
/* in: a database page */
/*************************************************************************
Returns the number of latched pages in the buffer pool. */
ulint
buf_get_latched_pages_number
(
void
);
/*==============================*/
/*************************************************************************
Returns the number of pending buf pool ios. */
...
...
innobase/include/srv0srv.h
View file @
97089cb0
...
...
@@ -531,7 +531,9 @@ struct export_var_struct{
ulint
innodb_buffer_pool_pages_dirty
;
ulint
innodb_buffer_pool_pages_misc
;
ulint
innodb_buffer_pool_pages_free
;
#ifdef UNIV_DEBUG
ulint
innodb_buffer_pool_pages_latched
;
#endif
/* UNIV_DEBUG */
ulint
innodb_buffer_pool_read_requests
;
ulint
innodb_buffer_pool_reads
;
ulint
innodb_buffer_pool_wait_free
;
...
...
innobase/include/trx0undo.h
View file @
97089cb0
...
...
@@ -237,6 +237,7 @@ trx_undo_set_state_at_finish(
/*=========================*/
/* out: undo log segment header page,
x-latched */
trx_rseg_t
*
rseg
,
/* in: rollback segment memory object */
trx_t
*
trx
,
/* in: transaction */
trx_undo_t
*
undo
,
/* in: undo log memory copy */
mtr_t
*
mtr
);
/* in: mtr */
...
...
innobase/srv/srv0srv.c
View file @
97089cb0
...
...
@@ -1803,7 +1803,9 @@ srv_export_innodb_status(void)
export_vars
.
innodb_buffer_pool_pages_data
=
UT_LIST_GET_LEN
(
buf_pool
->
LRU
);
export_vars
.
innodb_buffer_pool_pages_dirty
=
UT_LIST_GET_LEN
(
buf_pool
->
flush_list
);
export_vars
.
innodb_buffer_pool_pages_free
=
UT_LIST_GET_LEN
(
buf_pool
->
free
);
#ifdef UNIV_DEBUG
export_vars
.
innodb_buffer_pool_pages_latched
=
buf_get_latched_pages_number
();
#endif
/* UNIV_DEBUG */
export_vars
.
innodb_buffer_pool_pages_total
=
buf_pool
->
curr_size
;
export_vars
.
innodb_buffer_pool_pages_misc
=
buf_pool
->
max_size
-
UT_LIST_GET_LEN
(
buf_pool
->
LRU
)
-
UT_LIST_GET_LEN
(
buf_pool
->
free
);
...
...
innobase/trx/trx0trx.c
View file @
97089cb0
...
...
@@ -761,8 +761,8 @@ trx_commit_off_kernel(
mutex_enter
(
&
(
rseg
->
mutex
));
if
(
trx
->
insert_undo
!=
NULL
)
{
trx_undo_set_state_at_finish
(
trx
,
trx
->
insert_undo
,
&
mtr
);
trx_undo_set_state_at_finish
(
rseg
,
trx
,
trx
->
insert_undo
,
&
mtr
);
}
undo
=
trx
->
update_undo
;
...
...
@@ -777,8 +777,8 @@ trx_commit_off_kernel(
because only a single OS thread is allowed to do the
transaction commit for this transaction. */
update_hdr_page
=
trx_undo_set_state_at_finish
(
trx
,
undo
,
&
mtr
);
update_hdr_page
=
trx_undo_set_state_at_finish
(
rseg
,
trx
,
undo
,
&
mtr
);
/* We have to do the cleanup for the update log while
holding the rseg mutex because update log headers
...
...
innobase/trx/trx0undo.c
View file @
97089cb0
...
...
@@ -1724,6 +1724,7 @@ trx_undo_set_state_at_finish(
/*=========================*/
/* out: undo log segment header page,
x-latched */
trx_rseg_t
*
rseg
,
/* in: rollback segment memory object */
trx_t
*
trx
__attribute__
((
unused
)),
/* in: transaction */
trx_undo_t
*
undo
,
/* in: undo log memory copy */
mtr_t
*
mtr
)
/* in: mtr */
...
...
@@ -1732,8 +1733,10 @@ trx_undo_set_state_at_finish(
trx_upagef_t
*
page_hdr
;
page_t
*
undo_page
;
ulint
state
;
ut_ad
(
trx
&&
undo
&&
mtr
);
ut_ad
(
trx
);
ut_ad
(
undo
);
ut_ad
(
mtr
);
if
(
undo
->
id
>=
TRX_RSEG_N_SLOTS
)
{
fprintf
(
stderr
,
"InnoDB: Error: undo->id is %lu
\n
"
,
...
...
@@ -1747,9 +1750,23 @@ trx_undo_set_state_at_finish(
seg_hdr
=
undo_page
+
TRX_UNDO_SEG_HDR
;
page_hdr
=
undo_page
+
TRX_UNDO_PAGE_HDR
;
if
(
undo
->
size
==
1
&&
mach_read_from_2
(
page_hdr
+
TRX_UNDO_PAGE_FREE
)
<
TRX_UNDO_PAGE_REUSE_LIMIT
)
{
state
=
TRX_UNDO_CACHED
;
if
(
undo
->
size
==
1
&&
mach_read_from_2
(
page_hdr
+
TRX_UNDO_PAGE_FREE
)
<
TRX_UNDO_PAGE_REUSE_LIMIT
)
{
/* This is a heuristic to avoid the problem of all UNDO
slots ending up in one of the UNDO lists. Previously if
the server crashed with all the slots in one of the lists,
transactions that required the slots of a different type
would fail for lack of slots. */
if
(
UT_LIST_GET_LEN
(
rseg
->
update_undo_list
)
<
500
&&
UT_LIST_GET_LEN
(
rseg
->
insert_undo_list
)
<
500
)
{
state
=
TRX_UNDO_CACHED
;
}
else
{
state
=
TRX_UNDO_TO_FREE
;
}
}
else
if
(
undo
->
type
==
TRX_UNDO_INSERT
)
{
...
...
@@ -1759,7 +1776,7 @@ trx_undo_set_state_at_finish(
}
undo
->
state
=
state
;
mlog_write_ulint
(
seg_hdr
+
TRX_UNDO_STATE
,
state
,
MLOG_2BYTES
,
mtr
);
return
(
undo_page
);
...
...
mysql-test/r/innodb-autoinc-optimize.result
0 → 100644
View file @
97089cb0
drop table if exists t1;
create table t1(a int not null auto_increment primary key) engine=innodb;
insert into t1 set a = -1;
optimize table t1;
Table Op Msg_type Msg_text
test.t1 optimize status OK
mysql-test/r/innodb_bug35220.result
0 → 100644
View file @
97089cb0
SET storage_engine=InnoDB;
mysql-test/t/innodb-autoinc-optimize.test
0 → 100644
View file @
97089cb0
--
source
include
/
have_innodb
.
inc
# embedded server ignores 'delayed', so skip this
--
source
include
/
not_embedded
.
inc
--
disable_warnings
drop
table
if
exists
t1
;
--
enable_warnings
#
# Bug 34286
#
create
table
t1
(
a
int
not
null
auto_increment
primary
key
)
engine
=
innodb
;
insert
into
t1
set
a
=
-
1
;
# NOTE: The database needs to be shutdown and restarted (here) for
# the test to work. It's included for reference only.
optimize
table
t1
;
mysql-test/t/innodb_bug35220.test
0 → 100644
View file @
97089cb0
#
# Bug#35220 ALTER TABLE too picky on reserved word "foreign"
# http://bugs.mysql.com/35220
#
--
source
include
/
have_innodb
.
inc
SET
storage_engine
=
InnoDB
;
# we care only that the following SQL commands do not produce errors
--
disable_query_log
--
disable_result_log
CREATE
TABLE
bug35220
(
foreign_col
INT
,
dummy_cant_delete_all_columns
INT
);
ALTER
TABLE
bug35220
DROP
foreign_col
;
DROP
TABLE
bug35220
;
sql/ha_innodb.cc
View file @
97089cb0
...
...
@@ -244,8 +244,10 @@ struct show_var_st innodb_status_variables[]= {
(
char
*
)
&
export_vars
.
innodb_buffer_pool_pages_flushed
,
SHOW_LONG
},
{
"buffer_pool_pages_free"
,
(
char
*
)
&
export_vars
.
innodb_buffer_pool_pages_free
,
SHOW_LONG
},
#ifdef UNIV_DEBUG
{
"buffer_pool_pages_latched"
,
(
char
*
)
&
export_vars
.
innodb_buffer_pool_pages_latched
,
SHOW_LONG
},
#endif
/* UNIV_DEBUG */
{
"buffer_pool_pages_misc"
,
(
char
*
)
&
export_vars
.
innodb_buffer_pool_pages_misc
,
SHOW_LONG
},
{
"buffer_pool_pages_total"
,
...
...
@@ -4250,7 +4252,7 @@ ha_innobase::rnd_pos(
int
error
;
uint
keynr
=
active_index
;
DBUG_ENTER
(
"rnd_pos"
);
DBUG_DUMP
(
"key"
,
(
uchar
*
)
pos
,
ref_length
);
DBUG_DUMP
(
"key"
,
(
uchar
*
)
pos
,
ref_length
);
statistic_increment
(
current_thd
->
status_var
.
ha_read_rnd_count
,
&
LOCK_status
);
...
...
@@ -6882,6 +6884,12 @@ ha_innobase::innobase_read_and_init_auto_inc(
from a table when no table has been locked in ::external_lock(). */
prebuilt
->
trx
->
n_mysql_tables_in_use
++
;
/* Since we will perform a MySQL SELECT query to determine the
auto-inc value, set prebuilt->sql_stat_start = TRUE so that it
is performed like any normal SELECT, regardless of the context
we come here. */
prebuilt
->
sql_stat_start
=
TRUE
;
error
=
index_last
(
table
->
record
[
1
]);
prebuilt
->
trx
->
n_mysql_tables_in_use
--
;
...
...
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