summaryrefslogtreecommitdiff
path: root/sql/ha_innodb.cc
diff options
context:
space:
mode:
authorunknown <grog@mysql.com>2005-11-17 15:08:49 +0100
committerunknown <grog@mysql.com>2005-11-17 15:08:49 +0100
commit30df60fa732eada8c7f9958710469c69cf81ab08 (patch)
tree3c64eca055df277e9a097a76d891e38941cf946c /sql/ha_innodb.cc
parent47044ea63b779ed6d89df35f5fb642b1a8191528 (diff)
downloadmariadb-git-30df60fa732eada8c7f9958710469c69cf81ab08.tar.gz
set_var.cc, mysqld.cc, ha_innodb.h:
BUG#12701: SHOW VARIABLES does not show correct size of buffer pool. ha_innodb.cc: BUG#12701: SHOW VARIABLES does not show correct size of buffer pool sql/ha_innodb.cc: BUG#12701: SHOW VARIABLES does not show correct size of buffer pool sql/ha_innodb.h: BUG#12701: SHOW VARIABLES does not show correct size of buffer pool. sql/mysqld.cc: BUG#12701: SHOW VARIABLES does not show correct size of buffer pool. sql/set_var.cc: BUG#12701: SHOW VARIABLES does not show correct size of buffer pool.
Diffstat (limited to 'sql/ha_innodb.cc')
-rw-r--r--sql/ha_innodb.cc34
1 files changed, 27 insertions, 7 deletions
diff --git a/sql/ha_innodb.cc b/sql/ha_innodb.cc
index 556186d5584..60ec6f8e2bb 100644
--- a/sql/ha_innodb.cc
+++ b/sql/ha_innodb.cc
@@ -142,15 +142,16 @@ uint innobase_init_flags = 0;
ulong innobase_cache_size = 0;
ulong innobase_large_page_size = 0;
-/* The default values for the following, type long, start-up parameters
-are declared in mysqld.cc: */
+/* The default values for the following, type long or longlong, start-up
+parameters are declared in mysqld.cc: */
long innobase_mirrored_log_groups, innobase_log_files_in_group,
- innobase_log_file_size, innobase_log_buffer_size,
- innobase_buffer_pool_awe_mem_mb,
- innobase_buffer_pool_size, innobase_additional_mem_pool_size,
- innobase_file_io_threads, innobase_lock_wait_timeout,
- innobase_force_recovery, innobase_open_files;
+ innobase_log_buffer_size, innobase_buffer_pool_awe_mem_mb,
+ innobase_additional_mem_pool_size, innobase_file_io_threads,
+ innobase_lock_wait_timeout, innobase_force_recovery,
+ innobase_open_files;
+
+longlong innobase_buffer_pool_size, innobase_log_file_size;
/* The default values for the following char* start-up parameters
are determined in innobase_init below: */
@@ -1210,6 +1211,25 @@ innobase_init(void)
ut_a(DATA_MYSQL_TRUE_VARCHAR == (ulint)MYSQL_TYPE_VARCHAR);
+ /* Check that values don't overflow on 32-bit systems. */
+ if (sizeof(ulint) == 4) {
+ if (innobase_buffer_pool_size > UINT_MAX32) {
+ sql_print_error(
+ "innobase_buffer_pool_size can't be over 4GB"
+ " on 32-bit systems");
+
+ DBUG_RETURN(0);
+ }
+
+ if (innobase_log_file_size > UINT_MAX32) {
+ sql_print_error(
+ "innobase_log_file_size can't be over 4GB"
+ " on 32-bit systems");
+
+ DBUG_RETURN(0);
+ }
+ }
+
os_innodb_umask = (ulint)my_umask;
/* First calculate the default path for innodb_data_home_dir etc.,