summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2015-04-28 13:42:58 +0200
committerSergei Golubchik <serg@mariadb.org>2015-04-28 13:42:58 +0200
commit40e95608d99c2997e4af445ec4da68febc9e87f1 (patch)
treee6169f56a4f41b74e6b462fb39ad4ccf0f743851
parentfd39c56effd5b56aae2ebe7709a1fbf73503edcd (diff)
downloadmariadb-git-40e95608d99c2997e4af445ec4da68febc9e87f1.tar.gz
percona-server-5.5.42-37.1.tar.gz
-rw-r--r--storage/xtradb/handler/ha_innodb.cc10
-rw-r--r--storage/xtradb/include/univ.i2
-rw-r--r--storage/xtradb/lock/lock0lock.c2
-rw-r--r--storage/xtradb/srv/srv0start.c15
4 files changed, 19 insertions, 10 deletions
diff --git a/storage/xtradb/handler/ha_innodb.cc b/storage/xtradb/handler/ha_innodb.cc
index c9a89b69375..88816d322a9 100644
--- a/storage/xtradb/handler/ha_innodb.cc
+++ b/storage/xtradb/handler/ha_innodb.cc
@@ -11490,10 +11490,8 @@ ha_innobase::cmp_ref(
len1 = innobase_read_from_2_little_endian(ref1);
len2 = innobase_read_from_2_little_endian(ref2);
- ref1 += 2;
- ref2 += 2;
- result = ((Field_blob*)field)->cmp( ref1, len1,
- ref2, len2);
+ result = ((Field_blob*)field)->cmp(ref1 + 2, len1,
+ ref2 + 2, len2);
} else {
result = field->key_cmp(ref1, ref2);
}
@@ -13752,6 +13750,10 @@ ib_warn_row_too_big(const dict_table_t* table)
THD* thd = current_thd;
+ if (thd == NULL) {
+ return;
+ }
+
push_warning_printf(
thd, MYSQL_ERROR::WARN_LEVEL_WARN, HA_ERR_TO_BIG_ROW,
"Row size too large (> %lu). Changing some columns to TEXT"
diff --git a/storage/xtradb/include/univ.i b/storage/xtradb/include/univ.i
index 56241492038..50606b7001f 100644
--- a/storage/xtradb/include/univ.i
+++ b/storage/xtradb/include/univ.i
@@ -64,7 +64,7 @@ component, i.e. we show M.N.P as M.N */
(INNODB_VERSION_MAJOR << 8 | INNODB_VERSION_MINOR)
#ifndef PERCONA_INNODB_VERSION
-#define PERCONA_INNODB_VERSION 37.0
+#define PERCONA_INNODB_VERSION 37.1
#endif
#define INNODB_VERSION_STR MYSQL_SERVER_VERSION
diff --git a/storage/xtradb/lock/lock0lock.c b/storage/xtradb/lock/lock0lock.c
index 7330b066515..9d0151f40f8 100644
--- a/storage/xtradb/lock/lock0lock.c
+++ b/storage/xtradb/lock/lock0lock.c
@@ -4720,7 +4720,7 @@ loop:
}
}
- if (!srv_print_innodb_lock_monitor && !srv_show_locks_held) {
+ if (!srv_print_innodb_lock_monitor || !srv_show_locks_held) {
nth_trx++;
goto loop;
}
diff --git a/storage/xtradb/srv/srv0start.c b/storage/xtradb/srv/srv0start.c
index 5c40e0b703e..85a3818d77e 100644
--- a/storage/xtradb/srv/srv0start.c
+++ b/storage/xtradb/srv/srv0start.c
@@ -122,9 +122,16 @@ UNIV_INTERN enum srv_shutdown_state srv_shutdown_state = SRV_SHUTDOWN_NONE;
static os_file_t files[1000];
/** io_handler_thread parameters for thread identification */
-static ulint n[SRV_MAX_N_IO_THREADS + 8];
-/** io_handler_thread identifiers */
-static os_thread_id_t thread_ids[SRV_MAX_N_IO_THREADS + 8];
+static ulint n[SRV_MAX_N_IO_THREADS];
+/** io_handler_thread identifiers. The extra elements at the end are allocated
+as follows:
+SRV_MAX_N_IO_THREADS + 1: srv_master_thread
+SRV_MAX_N_IO_THREADS + 2: srv_lock_timeout_thread
+SRV_MAX_N_IO_THREADS + 3: srv_error_monitor_thread
+SRV_MAX_N_IO_THREADS + 4: srv_monitor_thread
+SRV_MAX_N_IO_THREADS + 5: srv_LRU_dump_restore_thread
+SRV_MAX_N_IO_THREADS + 6: srv_redo_log_follow_thread */
+static os_thread_id_t thread_ids[SRV_MAX_N_IO_THREADS + 7];
/** We use this mutex to test the return value of pthread_mutex_trylock
on successful locking. HP-UX does NOT return 0, though Linux et al do. */
@@ -1184,7 +1191,7 @@ init_log_online(void)
/* Create the thread that follows the redo log to output the
changed page bitmap */
os_thread_create(&srv_redo_log_follow_thread, NULL,
- thread_ids + 5 + SRV_MAX_N_IO_THREADS);
+ thread_ids + 6 + SRV_MAX_N_IO_THREADS);
}
}