diff options
author | Igor Babaev <igor@askmonty.org> | 2011-05-20 12:47:39 -0700 |
---|---|---|
committer | Igor Babaev <igor@askmonty.org> | 2011-05-20 12:47:39 -0700 |
commit | 89cf840cd9709c875bb6494398970624c85e4ab0 (patch) | |
tree | b6926318d94f0bcd733468587a4bed4101c81612 /sql/field.cc | |
parent | be6d6e1b3eb0d243dfa9f1d0de108069df5774e4 (diff) | |
parent | d015b8fa0ad2bfb853da174c1c959374a24a5063 (diff) | |
download | mariadb-git-89cf840cd9709c875bb6494398970624c85e4ab0.tar.gz |
Merge
Diffstat (limited to 'sql/field.cc')
-rw-r--r-- | sql/field.cc | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/sql/field.cc b/sql/field.cc index c9851b8af50..1f51c1bfe76 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -10530,3 +10530,27 @@ Field::set_datetime_warning(MYSQL_ERROR::enum_warning_level level, uint code, field_name); } } + + +/* + @brief + Return possible keys for a field + + @details + Return bit map of keys over this field which can be used by the range + optimizer. For a field of a generic table such keys are all keys that starts + from this field. For a field of a materialized derived table/view such keys + are all keys in which this field takes a part. This is less restrictive as + keys for a materialized derived table/view are generated on the fly from + present fields, thus the case when a field for the beginning of a key is + absent is impossible. + + @return map of possible keys +*/ + +key_map Field::get_possible_keys() +{ + DBUG_ASSERT(table->pos_in_table_list); + return (table->pos_in_table_list->is_materialized_derived() ? + part_of_key : key_start); +} |