summaryrefslogtreecommitdiff
path: root/storage/innobase
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2019-04-26 18:19:50 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2019-04-26 18:19:50 +0300
commit1a5ba2a4be96445da62a2051aa7ceaa4363011f8 (patch)
tree29cfeaf1ef2cbaf0119313d9b206479abc79358d /storage/innobase
parent4e9f8c9cc4932db53d5bae456bcdb9f33f822254 (diff)
parentf3a9f12bc327d9568488999a20120eabcd1e6d68 (diff)
downloadmariadb-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.cc4
-rw-r--r--storage/innobase/include/univ.i2
-rw-r--r--storage/innobase/os/os0file.cc18
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();
}