summaryrefslogtreecommitdiff
path: root/innobase/include
diff options
context:
space:
mode:
authorunknown <marko@hundin.mysql.fi>2005-04-21 15:02:54 +0300
committerunknown <marko@hundin.mysql.fi>2005-04-21 15:02:54 +0300
commit353e499c0d5720fdcb801cd93096dbb898247988 (patch)
tree6af4105fd3bf72924a33d92c236101be1fe4eb14 /innobase/include
parentc6b55112b1ca92045f5d8c5ea70c16aea574f4a0 (diff)
downloadmariadb-git-353e499c0d5720fdcb801cd93096dbb898247988.tar.gz
InnoDB: Reduce memcpy() load in row_sel_pop_cached_row_for_mysql()
by copying only a prefix of the row that covers the requested columns. innobase/include/row0mysql.h: row_prebuilt_struct: Add field mysql_prefix_len in order to reduce memcpy() time in row_sel_pop_cached_row_for_mysql(). innobase/row/row0sel.c: row_sel_pop_cached_row_for_mysql(): memcpy() only mysql_prefix_len bytes instead of mysql_row_len. sql/ha_innodb.cc: build_template(): Initialize prebuilt->mysql_prefix_len.
Diffstat (limited to 'innobase/include')
-rw-r--r--innobase/include/row0mysql.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/innobase/include/row0mysql.h b/innobase/include/row0mysql.h
index e44d689b88b..277089430d4 100644
--- a/innobase/include/row0mysql.h
+++ b/innobase/include/row0mysql.h
@@ -599,6 +599,8 @@ struct row_prebuilt_struct {
that was decided in ha_innodb.cc,
::store_lock(), ::external_lock(),
etc. */
+ ulint mysql_prefix_len;/* byte offset of the end of
+ the last requested column */
ulint mysql_row_len; /* length in bytes of a row in the
MySQL format */
ulint n_rows_fetched; /* number of rows fetched after