diff options
-rw-r--r-- | innobase/include/row0mysql.h | 8 | ||||
-rw-r--r-- | sql/ha_innodb.cc | 8 |
2 files changed, 14 insertions, 2 deletions
diff --git a/innobase/include/row0mysql.h b/innobase/include/row0mysql.h index d4634482752..ce86efa2fc7 100644 --- a/innobase/include/row0mysql.h +++ b/innobase/include/row0mysql.h @@ -547,7 +547,10 @@ struct row_prebuilt_struct { format */ ulint hint_need_to_fetch_extra_cols; /* normally this is set to 0; if this - is set to ROW_RETRIEVE_PRIMARY_KEY, + is set to ROW_RETRIEVE_PRIMARY_KEY + (that value is obsolete starting from + 5.0.2, because we always fetch the + primary key cols), then we should at least retrieve all columns in the primary key; if this is set to ROW_RETRIEVE_ALL_COLS, then @@ -620,6 +623,9 @@ struct row_prebuilt_struct { /* Values for hint_need_to_fetch_extra_cols */ #define ROW_RETRIEVE_PRIMARY_KEY 1 + /* value 1 is obsolete starting from + 5.0.2, because we always fetch the + primary key cols */ #define ROW_RETRIEVE_ALL_COLS 2 diff --git a/sql/ha_innodb.cc b/sql/ha_innodb.cc index c7384857d79..f40421092da 100644 --- a/sql/ha_innodb.cc +++ b/sql/ha_innodb.cc @@ -2208,7 +2208,13 @@ build_template( ulint n_fields; ulint n_requested_fields = 0; ibool fetch_all_in_key = FALSE; - ibool fetch_primary_key_cols = FALSE; + ibool fetch_primary_key_cols = TRUE; /* The ROR code in + opt_range.cc assumes that the + primary key cols are always + retrieved. Starting from + MySQL-5.0.2, let us always + fetch them, even though it + wastes some CPU. */ ulint i; if (prebuilt->select_lock_type == LOCK_X) { |