diff options
author | Vicențiu Ciorbaru <vicentiu@mariadb.org> | 2017-09-19 12:43:02 +0300 |
---|---|---|
committer | Vicențiu Ciorbaru <vicentiu@mariadb.org> | 2017-09-19 12:43:02 +0300 |
commit | 22c322c649d5a15e3bb731d6751a0d80c8ec23b0 (patch) | |
tree | 11073f6169c237da226a977736d234c7c7b5c163 /storage/xtradb/handler | |
parent | 7d49aab32c3733f26cff8d83396a65bd120352e8 (diff) | |
parent | ec6042bda097fa53c43caf4a1acc32c5a77f6ed4 (diff) | |
download | mariadb-git-22c322c649d5a15e3bb731d6751a0d80c8ec23b0.tar.gz |
Merge branch '10.1' into 10.2
Diffstat (limited to 'storage/xtradb/handler')
-rw-r--r-- | storage/xtradb/handler/ha_innodb.cc | 21 | ||||
-rw-r--r-- | storage/xtradb/handler/ha_innodb.h | 6 |
2 files changed, 26 insertions, 1 deletions
diff --git a/storage/xtradb/handler/ha_innodb.cc b/storage/xtradb/handler/ha_innodb.cc index a56dda417cc..d8c274dc65f 100644 --- a/storage/xtradb/handler/ha_innodb.cc +++ b/storage/xtradb/handler/ha_innodb.cc @@ -10561,6 +10561,27 @@ ha_innobase::ft_init_ext( } /*****************************************************************//** +Copy a cached MySQL row. +If requested, also avoids overwriting non-read columns. +@param[out] buf Row in MySQL format. +@param[in] cached_row Which row to copy. +@param[in] rec_len Record length. */ +void +ha_innobase::copy_cached_row( + uchar* buf, + const uchar* cached_row, + uint rec_len) +{ + if (prebuilt->keep_other_fields_on_keyread) { + row_sel_copy_cached_fields_for_mysql(buf, cached_row, + prebuilt); + } else { + memcpy(buf, cached_row, rec_len); + } +} + + +/*****************************************************************//** Set up search tuple for a query through FTS_DOC_ID_INDEX on supplied Doc ID. This is used by MySQL to retrieve the documents once the search result (Doc IDs) is available */ diff --git a/storage/xtradb/handler/ha_innodb.h b/storage/xtradb/handler/ha_innodb.h index 426136e4d51..c5b0e723702 100644 --- a/storage/xtradb/handler/ha_innodb.h +++ b/storage/xtradb/handler/ha_innodb.h @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 2000, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2000, 2017, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2013, 2017, MariaDB Corporation. This program is free software; you can redistribute it and/or modify it under @@ -167,6 +167,10 @@ class ha_innobase: public handler int index_first(uchar * buf); int index_last(uchar * buf); + /* Copy a cached MySQL row. If requested, also avoids + overwriting non-read columns. */ + void copy_cached_row(uchar *to_rec, const uchar *from_rec, + uint rec_length); bool has_gap_locks() const { return true; } int rnd_init(bool scan); |