1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-24 11:21:21 +03:00

MDEV-7833:ANALYZE FORMAT=JSON and Range checked for each record

This commit is contained in:
Oleksandr Byelkin
2015-04-02 18:19:33 +02:00
parent 7f613ebdb6
commit a220905083
6 changed files with 234 additions and 13 deletions

View File

@@ -54,7 +54,7 @@ it into the slow query log.
class String_list: public List<char>
{
public:
bool append_str(MEM_ROOT *mem_root, const char *str);
const char *append_str(MEM_ROOT *mem_root, const char *str);
};
class Json_writer;
@@ -622,11 +622,29 @@ private:
It's a set of keys, tabular explain prints hex bitmap, json prints key names.
*/
typedef const char* NAME;
class Explain_range_checked_fer : public Sql_alloc
{
public:
String_list key_set;
key_map keys_map;
private:
ha_rows full_scan, index_merge;
ha_rows *keys_stat;
NAME *keys_stat_names;
uint keys;
public:
Explain_range_checked_fer()
:Sql_alloc(), full_scan(0), index_merge(0),
keys_stat(0), keys_stat_names(0), keys(0)
{}
int append_possible_keys_stat(MEM_ROOT *alloc,
TABLE *table, key_map possible_keys);
void collect_data(QUICK_SELECT_I *quick);
void print_json(Json_writer *writer, bool is_analyze);
};
/*