| 30823 | */ |
| 30824 | |
| 30825 | int JOIN::rollup_send_data(uint idx) |
| 30826 | { |
| 30827 | uint i; |
| 30828 | for (i= send_group_parts ; i-- > idx ; ) |
| 30829 | { |
| 30830 | int res= 0; |
| 30831 | /* Get reference pointers to sum functions in place */ |
| 30832 | copy_ref_ptr_array(ref_ptrs, rollup.ref_pointer_arrays[i]); |
| 30833 | if ((!having || having->val_bool())) |
| 30834 | { |
| 30835 | if (send_records < unit->lim.get_select_limit() && do_send_rows && |
| 30836 | (res= result->send_data_with_check(rollup.fields[i], |
| 30837 | unit, send_records)) > 0) |
| 30838 | return 1; |
| 30839 | if (!res) |
| 30840 | send_records++; |
| 30841 | } |
| 30842 | } |
| 30843 | /* Restore ref_pointer_array */ |
| 30844 | set_items_ref_array(current_ref_ptrs); |
| 30845 | return 0; |
| 30846 | } |
| 30847 | |
| 30848 | /** |
| 30849 | Write all rollup levels higher than the current one to a temp table. |
no test coverage detected