My Project
|
Class for accumulating join result in a tmp table, grouping them if necessary, and sending further. More...
#include <sql_executor.h>
Public Member Functions | |
QEP_tmp_table (JOIN_TAB *tab) | |
enum_op_type | type () |
enum_nested_loop_state | put_record () |
enum_nested_loop_state | end_send () |
Finish rnd/index scan after accumulating records, switch ref_array, and send accumulated records further. | |
void | set_write_func (Next_select_func new_write_func) |
Class for accumulating join result in a tmp table, grouping them if necessary, and sending further.
Join result records are accumulated on the put_record() call. The accumulation process is determined by the write_func, it could be: end_write Simply store all records in tmp table. end_write_group Perform grouping using join->group_fields, records are expected to be sorted. end_update Perform grouping using the key generated on tmp table. Input records aren't expected to be sorted. Tmp table uses the heap engine end_update_unique Same as above, but the engine is myisam.
Lazy table initialization is used - the table will be instantiated and rnd/index scan started on the first put_record() call.
enum_nested_loop_state QEP_tmp_table::put_record | ( | ) | [inline, virtual] |
Put a new record into the operation's buffer
Implements QEP_operation.
void QEP_tmp_table::set_write_func | ( | Next_select_func | new_write_func | ) | [inline] |
write_func setter