diff options
author | Igor Babaev <igor@askmonty.org> | 2010-12-01 23:39:39 -0800 |
---|---|---|
committer | Igor Babaev <igor@askmonty.org> | 2010-12-01 23:39:39 -0800 |
commit | 80377bbf6dadd1772f6b4f4d4258892a023d586a (patch) | |
tree | e7714b26e34057ed2f21770099001373c996cb51 /sql/sql_class.h | |
parent | 7970b3346a9909f2d4e63b528a4d3bb5f11515ae (diff) | |
download | mariadb-git-80377bbf6dadd1772f6b4f4d4258892a023d586a.tar.gz |
MWL #21: "index_merge: non-ROR intersection".
The second (final) patch.
Diffstat (limited to 'sql/sql_class.h')
-rw-r--r-- | sql/sql_class.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/sql/sql_class.h b/sql/sql_class.h index 8d27e09ac71..bde632a87e2 100644 --- a/sql/sql_class.h +++ b/sql/sql_class.h @@ -2966,6 +2966,7 @@ class Unique :public Sql_alloc IO_CACHE file; TREE tree; uchar *record_pointers; + ulong filtered_out_elems; bool flush(); uint size; uint full_size; @@ -2991,8 +2992,15 @@ public: void close_for_expansion() { tree.flag= TREE_ONLY_DUPS; } bool get(TABLE *table); + + inline static double get_search_cost(uint tree_elems, uint compare_factor) + { + return log((double) tree_elems) / (compare_factor * M_LN2); + } + static double get_use_cost(uint *buffer, uint nkeys, uint key_size, - ulonglong max_in_memory_size); + ulonglong max_in_memory_size, uint compare_factor, + bool intersect_fl, bool *in_memory); inline static int get_cost_calc_buff_size(ulong nkeys, uint key_size, ulonglong max_in_memory_size) { |