diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2019-04-26 18:19:50 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2019-04-26 18:19:50 +0300 |
commit | 1a5ba2a4be96445da62a2051aa7ceaa4363011f8 (patch) | |
tree | 29cfeaf1ef2cbaf0119313d9b206479abc79358d /storage/innobase | |
parent | 4e9f8c9cc4932db53d5bae456bcdb9f33f822254 (diff) | |
parent | f3a9f12bc327d9568488999a20120eabcd1e6d68 (diff) | |
download | mariadb-git-1a5ba2a4be96445da62a2051aa7ceaa4363011f8.tar.gz |
MDEV-19342 Merge new release of InnoDB 5.7.26 to 10.2
Diffstat (limited to 'storage/innobase')
-rw-r--r-- | storage/innobase/handler/ha_innodb.cc | 4 | ||||
-rw-r--r-- | storage/innobase/include/univ.i | 2 | ||||
-rw-r--r-- | storage/innobase/os/os0file.cc | 18 |
3 files changed, 19 insertions, 5 deletions
diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index d9ee942324a..953a4d89037 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 2000, 2018, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2000, 2019, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2008, 2009 Google Inc. Copyright (c) 2009, Percona Inc. Copyright (c) 2012, Facebook Inc. @@ -10977,7 +10977,7 @@ innodb_base_col_setup_for_stored( for (uint i= 0; i < field->table->s->fields; ++i) { const Field* base_field = field->table->field[i]; - if (!base_field->vcol_info + if (base_field->stored_in_db() && bitmap_is_set(&field->table->tmp_set, i)) { ulint z; for (z = 0; z < table->n_cols; z++) { diff --git a/storage/innobase/include/univ.i b/storage/innobase/include/univ.i index 3aa52aadae7..d21de888320 100644 --- a/storage/innobase/include/univ.i +++ b/storage/innobase/include/univ.i @@ -41,7 +41,7 @@ Created 1/20/1994 Heikki Tuuri #define INNODB_VERSION_MAJOR 5 #define INNODB_VERSION_MINOR 7 -#define INNODB_VERSION_BUGFIX 25 +#define INNODB_VERSION_BUGFIX 26 /* The following is the InnoDB version as shown in SELECT plugin_version FROM information_schema.plugins; diff --git a/storage/innobase/os/os0file.cc b/storage/innobase/os/os0file.cc index 10a8f44b062..98a328c7f47 100644 --- a/storage/innobase/os/os0file.cc +++ b/storage/innobase/os/os0file.cc @@ -1962,10 +1962,24 @@ LinuxAIOHandler::collect() will be done in the calling function. */ m_array->acquire(); - slot->ret = events[i].res2; + /* events[i].res2 should always be ZERO */ + ut_ad(events[i].res2 == 0); slot->io_already_done = true; - slot->n_bytes = events[i].res; + /*Even though events[i].res is an unsigned number + in libaio, it is used to return a negative value + (negated errno value) to indicate error and a positive + value to indicate number of bytes read or written. */ + + if (events[i].res > slot->len) { + /* failure */ + slot->n_bytes = 0; + slot->ret = events[i].res; + } else { + /* success */ + slot->n_bytes = events[i].res; + slot->ret = 0; + } m_array->release(); } |