summaryrefslogtreecommitdiff
path: root/sql/table.h
diff options
context:
space:
mode:
authorIgor Babaev <igor@askmonty.org>2011-12-31 02:25:57 -0800
committerIgor Babaev <igor@askmonty.org>2011-12-31 02:25:57 -0800
commitb6b5f9fabe4866a8753e81e1f80593b645f35d8e (patch)
tree5ea9c96070eeb391ca24850300a800289d365f26 /sql/table.h
parent1c47e1ca0d9b2753b2f447df9efad2d14fbba74b (diff)
downloadmariadb-git-b6b5f9fabe4866a8753e81e1f80593b645f35d8e.tar.gz
Implementation of the MWL#247: Make the optimizer use extended keys.
The main patch. .
Diffstat (limited to 'sql/table.h')
-rw-r--r--sql/table.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/sql/table.h b/sql/table.h
index 5dd464ac876..1f3369a4ea5 100644
--- a/sql/table.h
+++ b/sql/table.h
@@ -418,6 +418,7 @@ typedef struct st_table_share
uint stored_fields;
uint rec_buff_length; /* Size of table->record[] buffer */
uint keys, key_parts;
+ uint ext_key_parts; /* Total number of key parts in extended keys */
uint max_key_length, max_unique_length, total_key_length;
uint uniques; /* Number of UNIQUE index */
uint null_fields; /* number of null fields */
@@ -438,6 +439,7 @@ typedef struct st_table_share
uint column_bitmap_size;
uchar frm_version;
uint vfields; /* Number of computed (virtual) fields */
+ bool use_ext_keys; /* Extended keys can be used */
bool null_field_first;
bool system; /* Set if system table (one record) */
bool crypted; /* If .frm file is crypted */
@@ -652,6 +654,13 @@ typedef struct st_table_share
return (tmp_table == SYSTEM_TMP_TABLE || is_view) ? 0 : table_map_id;
}
+ void set_use_ext_keys_flag(bool fl)
+ {
+ use_ext_keys= fl;
+ }
+
+ uint actual_n_key_parts(THD *thd);
+
} TABLE_SHARE;
@@ -991,6 +1000,8 @@ struct st_table {
}
DBUG_VOID_RETURN;
}
+ uint actual_n_key_parts(KEY *keyinfo);
+ ulong actual_key_flags(KEY *keyinfo);
};
enum enum_schema_table_state