summaryrefslogtreecommitdiff
path: root/innobase/fsp
diff options
context:
space:
mode:
authorheikki@hundin.mysql.fi <>2002-07-31 00:47:20 +0300
committerheikki@hundin.mysql.fi <>2002-07-31 00:47:20 +0300
commitbbb8125a2cad4845a61efe0f63906bd0cb64ec20 (patch)
treec292c07f8ce5669e3036ef6b705c347df3e64c0c /innobase/fsp
parentc5bdaee9ad98c363d16c97292d14eb0ce2a890b9 (diff)
downloadmariadb-git-bbb8125a2cad4845a61efe0f63906bd0cb64ec20.tar.gz
Many files:
Merge InnoDB-3.23.52c; improve AUTO-INC algorithm with SHOW TABLE STATUS; new checksum in log
Diffstat (limited to 'innobase/fsp')
-rw-r--r--innobase/fsp/fsp0fsp.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/innobase/fsp/fsp0fsp.c b/innobase/fsp/fsp0fsp.c
index d78db2a5ea8..679af640b99 100644
--- a/innobase/fsp/fsp0fsp.c
+++ b/innobase/fsp/fsp0fsp.c
@@ -933,6 +933,36 @@ fsp_header_get_free_limit(
return(limit);
}
+/**************************************************************************
+Gets the size of the tablespace from the tablespace header. If we do not
+have an auto-extending data file, this should be equal to the size of the
+data files. If there is an auto-extending data file, this can be smaller. */
+
+ulint
+fsp_header_get_tablespace_size(
+/*===========================*/
+ /* out: size in pages */
+ ulint space) /* in: space id */
+{
+ fsp_header_t* header;
+ ulint size;
+ mtr_t mtr;
+
+ ut_a(space == 0); /* We have only one log_fsp_current_... variable */
+
+ mtr_start(&mtr);
+
+ mtr_x_lock(fil_space_get_latch(space), &mtr);
+
+ header = fsp_get_space_header(space, &mtr);
+
+ size = mtr_read_ulint(header + FSP_SIZE, MLOG_4BYTES, &mtr);
+
+ mtr_commit(&mtr);
+
+ return(size);
+}
+
/***************************************************************************
Tries to extend the last data file file if it is defined as auto-extending. */
static