summaryrefslogtreecommitdiff
path: root/storage
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2021-11-09 08:26:59 +0200
committerMarko Mäkelä <marko.makela@mariadb.com>2021-11-09 08:26:59 +0200
commit524b4a89da3d9143ad72a82d73617ffde9e3a7a8 (patch)
tree4365b284812f3ea742b0d7bb96f2447c3c657b54 /storage
parentf7054ff5dfea7b84afdde11c14898cff7154521e (diff)
parentd6d1a1fc21084c81a0795a26e67577c2a718f6ea (diff)
downloadmariadb-git-524b4a89da3d9143ad72a82d73617ffde9e3a7a8.tar.gz
Merge 10.2 into 10.3
Diffstat (limited to 'storage')
-rw-r--r--storage/innobase/pars/pars0grm.cc2
-rw-r--r--storage/innobase/pars/pars0grm.y2
-rw-r--r--storage/maria/ma_extra.c8
3 files changed, 9 insertions, 3 deletions
diff --git a/storage/innobase/pars/pars0grm.cc b/storage/innobase/pars/pars0grm.cc
index 10d0d0becd7..1e10a61f5ad 100644
--- a/storage/innobase/pars/pars0grm.cc
+++ b/storage/innobase/pars/pars0grm.cc
@@ -79,7 +79,7 @@ que_node_t */
#include "que0que.h"
#include "row0sel.h"
-#ifdef __GNUC__
+#if defined __GNUC__ && (!defined __clang_major__ || __clang_major__ > 11)
#pragma GCC diagnostic ignored "-Wfree-nonheap-object"
#endif
diff --git a/storage/innobase/pars/pars0grm.y b/storage/innobase/pars/pars0grm.y
index 3fb0865f608..ed2b9bc09b0 100644
--- a/storage/innobase/pars/pars0grm.y
+++ b/storage/innobase/pars/pars0grm.y
@@ -38,7 +38,7 @@ que_node_t */
#include "que0que.h"
#include "row0sel.h"
-#ifdef __GNUC__
+#if defined __GNUC__ && (!defined __clang_major__ || __clang_major__ > 11)
#pragma GCC diagnostic ignored "-Wfree-nonheap-object"
#endif
diff --git a/storage/maria/ma_extra.c b/storage/maria/ma_extra.c
index c2ac4d588a9..9abcab81107 100644
--- a/storage/maria/ma_extra.c
+++ b/storage/maria/ma_extra.c
@@ -210,7 +210,13 @@ int maria_extra(MARIA_HA *info, enum ha_extra_function function,
info->last_key.data + share->base.max_key_length*2,
info->save_lastkey_data_length + info->save_lastkey_ref_length);
info->update= info->save_update | HA_STATE_WRITTEN;
- info->lastinx= info->save_lastinx;
+ if (info->lastinx != info->save_lastinx) /* Index changed */
+ {
+ info->lastinx = info->save_lastinx;
+ info->last_key.keyinfo= info->s->keyinfo + info->lastinx;
+ info->last_key.flag= 0;
+ info->page_changed=1;
+ }
info->cur_row.lastpos= info->save_lastpos;
info->last_key.data_length= info->save_lastkey_data_length;
info->last_key.ref_length= info->save_lastkey_ref_length;