summaryrefslogtreecommitdiff
path: root/sql/field.h
diff options
context:
space:
mode:
Diffstat (limited to 'sql/field.h')
-rw-r--r--sql/field.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/sql/field.h b/sql/field.h
index dfc02149f9d..c60c5e3bece 100644
--- a/sql/field.h
+++ b/sql/field.h
@@ -869,6 +869,18 @@ public:
*/
Column_statistics_collected *collected_stats;
+ enum stats_availability
+ {
+ STATISTICS_CACHED=0,
+ STATISTICS_FOR_RANGE_PREDICATES_AVAILABLE,
+ STATISTICS_FOR_NDV_AVAILABLE
+ };
+
+ /*
+ Caches the value of whether statistics are available for a field or not.
+ */
+ uint stats_available;
+
/*
This is additional data provided for any computed(virtual) field,
default function or check constraint.
@@ -1907,6 +1919,16 @@ public:
/* Mark field in read map. Updates also virtual fields */
void register_field_in_read_map();
+ bool is_first_component_of_key(KEY *key);
+ void statistics_available_via_keys();
+ void statistics_available_via_stat_tables();
+ void is_statistics_available();
+ bool is_statistics_available_for_range_predicates();
+ bool is_ndv_available();
+ bool is_ndv_available_via_stat_tables();
+ bool is_ndv_available_via_keys();
+ bool is_eits_usable();
+
virtual Compression_method *compression_method() const { return 0; }
virtual Virtual_tmp_table **virtual_tmp_table_addr()