28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/shiba/explain/mysql_explain.rb', line 28
def transform_json(json, res = [], = {})
rows = []
if (ordering = json['ordering_operation'])
index_walk = (ordering['using_filesort'] == false)
return transform_json(json['ordering_operation'], res, { "index_walk" => index_walk } )
elsif json['duplicates_removal']
return transform_json(json['duplicates_removal'], res, )
elsif json['grouping_operation']
return transform_json(json['grouping_operation'], res, )
elsif !json['nested_loop'] && !json['table']
return [{'Extra' => json['message']}]
elsif json['nested_loop']
json['nested_loop'].map do |nested|
transform_json(nested, res, )
end
elsif json['table']
res << transform_table(json['table'], )
end
res
end
|