| 712 | */ |
| 713 | |
| 714 | int Explain_union::print_explain_pushed_down(select_result_sink *output, |
| 715 | uint8 explain_flags, |
| 716 | bool is_analyze) |
| 717 | { |
| 718 | THD *thd= output->thd; |
| 719 | MEM_ROOT *mem_root= thd->mem_root; |
| 720 | List<Item> item_list; |
| 721 | Item *item_null= new (mem_root) Item_null(thd); |
| 722 | |
| 723 | /* `id` column */ |
| 724 | item_list.push_back(item_null, mem_root); |
| 725 | |
| 726 | /* `select_type` column */ |
| 727 | push_str(thd, &item_list, fake_select_type); |
| 728 | |
| 729 | /* `table` column */ |
| 730 | item_list.push_back(item_null, mem_root); |
| 731 | |
| 732 | /* `partitions` column */ |
| 733 | if (explain_flags & DESCRIBE_PARTITIONS) |
| 734 | item_list.push_back(item_null, mem_root); |
| 735 | |
| 736 | /* `type` column */ |
| 737 | item_list.push_back(item_null, mem_root); |
| 738 | |
| 739 | /* `possible_keys` column */ |
| 740 | item_list.push_back(item_null, mem_root); |
| 741 | |
| 742 | /* `key` */ |
| 743 | item_list.push_back(item_null, mem_root); |
| 744 | |
| 745 | /* `key_len` */ |
| 746 | item_list.push_back(item_null, mem_root); |
| 747 | |
| 748 | /* `ref` */ |
| 749 | item_list.push_back(item_null, mem_root); |
| 750 | |
| 751 | /* `rows` */ |
| 752 | item_list.push_back(item_null, mem_root); |
| 753 | |
| 754 | /* `r_rows` */ |
| 755 | if (is_analyze) |
| 756 | item_list.push_back(item_null, mem_root); |
| 757 | |
| 758 | /* `filtered` */ |
| 759 | if (explain_flags & DESCRIBE_EXTENDED || is_analyze) |
| 760 | item_list.push_back(item_null, mem_root); |
| 761 | |
| 762 | /* `r_filtered` */ |
| 763 | if (is_analyze) |
| 764 | item_list.push_back(item_null, mem_root); |
| 765 | |
| 766 | /* `Extra` */ |
| 767 | item_list.push_back(item_null, mem_root); |
| 768 | |
| 769 | if (output->send_data(item_list)) |
| 770 | return 1; |
| 771 | return 0; |