MySQL 5.6.14 Source Code Document
|
#include "dict0dict.h"
#include "row0merge.h"
#include "pars0pars.h"
#include "row0ftsort.h"
#include "row0row.h"
#include "btr0cur.h"
Go to the source code of this file.
Macros | |
#define | ROW_MERGE_READ_GET_NEXT(N) |
Functions | |
UNIV_INTERN dict_index_t * | row_merge_create_fts_sort_index (dict_index_t *index, const dict_table_t *table, ibool *opt_doc_id_size) |
UNIV_INTERN ibool | row_fts_psort_info_init (trx_t *trx, row_merge_dup_t *dup, const dict_table_t *new_table, ibool opt_doc_id_size, fts_psort_t **psort, fts_psort_t **merge) |
UNIV_INTERN void | row_fts_psort_info_destroy (fts_psort_t *psort_info, fts_psort_t *merge_info) |
UNIV_INTERN void | row_fts_free_pll_merge_buf (fts_psort_t *psort_info) |
UNIV_INTERN os_thread_ret_t | fts_parallel_tokenization (void *arg) |
UNIV_INTERN void | row_fts_start_psort (fts_psort_t *psort_info) |
UNIV_INTERN os_thread_ret_t | fts_parallel_merge (void *arg) |
UNIV_INTERN void | row_fts_start_parallel_merge (fts_psort_t *merge_info) |
Variables | |
UNIV_INTERN ulong | fts_sort_pll_degree = 2 |
static que_t ** | ins_graph |
static que_t fts_tokenizer_word_t * | word |
static que_t fts_tokenizer_word_t fts_table_t * | fts_table |
Create Full Text Index with (parallel) merge sort
Created 10/13/2010 Jimmy Yang
Definition in file row0ftsort.cc.
#define ROW_MERGE_READ_GET_NEXT | ( | N | ) |
Read the next record to buffer N.
N | index into array of merge info structure |
Definition at line 36 of file row0ftsort.cc.
UNIV_INTERN os_thread_ret_t fts_parallel_merge | ( | void * | arg | ) |
Function performs the merge and insertion of the sorted records.
arg | in: parallel merge info |
Definition at line 881 of file row0ftsort.cc.
UNIV_INTERN os_thread_ret_t fts_parallel_tokenization | ( | void * | arg | ) |
Function performs parallel tokenization of the incoming doc strings. It also performs the initial in memory sort of the parsed records.
arg | in: psort_info for the thread |
Definition at line 553 of file row0ftsort.cc.
UNIV_INTERN void row_fts_free_pll_merge_buf | ( | fts_psort_t * | psort_info | ) |
Free up merge buffers when merge sort is done
psort_info | in: parallel sort info |
Definition at line 332 of file row0ftsort.cc.
UNIV_INTERN void row_fts_psort_info_destroy | ( | fts_psort_t * | psort_info, |
fts_psort_t * | merge_info | ||
) |
Clean up and deallocate FTS parallel sort structures, and close the merge sort files
psort_info | parallel sort info |
merge_info | parallel merge info |
Definition at line 294 of file row0ftsort.cc.
UNIV_INTERN ibool row_fts_psort_info_init | ( | trx_t * | trx, |
row_merge_dup_t * | dup, | ||
const dict_table_t * | new_table, | ||
ibool | opt_doc_id_size, | ||
fts_psort_t ** | psort, | ||
fts_psort_t ** | merge | ||
) |
Initialize FTS parallel sort structures.
trx | in: transaction |
dup | in,own: descriptor of FTS index being created |
new_table | in: table on which indexes are created |
opt_doc_id_size | in: whether to use 4 bytes instead of 8 bytes integer to store Doc ID during sort |
psort | out: parallel sort info to be instantiated |
merge | out: parallel merge info to be instantiated |
Definition at line 171 of file row0ftsort.cc.
UNIV_INTERN void row_fts_start_parallel_merge | ( | fts_psort_t * | merge_info | ) |
Kick off the parallel merge and insert thread
merge_info | in: parallel sort info |
Definition at line 913 of file row0ftsort.cc.
UNIV_INTERN void row_fts_start_psort | ( | fts_psort_t * | psort_info | ) |
Start the parallel tokenization and parallel merge sort
psort_info | parallel sort structure |
Definition at line 861 of file row0ftsort.cc.
UNIV_INTERN dict_index_t* row_merge_create_fts_sort_index | ( | dict_index_t * | index, |
const dict_table_t * | table, | ||
ibool * | opt_doc_id_size | ||
) |
Create a temporary "fts sort index" used to merge sort the tokenized doc string. The index has three "fields":
1) Tokenized word, 2) Doc ID (depend on number of records to sort, it can be a 4 bytes or 8 bytes integer value) 3) Word's position in original doc.
index | in: Original FTS index based on which this sort index is created |
table | in: table that FTS index is being created on |
opt_doc_id_size | out: whether to use 4 bytes instead of 8 bytes integer to store Doc ID during sort |
Definition at line 63 of file row0ftsort.cc.
UNIV_INTERN ulong fts_sort_pll_degree = 2 |
Parallel sort degree
Definition at line 49 of file row0ftsort.cc.
que_t fts_tokenizer_word_t fts_table_t* fts_table |
in: fts aux table instance
Definition at line 938 of file row0ftsort.cc.
que_t** ins_graph |
< in: transaction in: Insert query graphs
Definition at line 938 of file row0ftsort.cc.
que_t fts_tokenizer_word_t* word |
in: sorted and tokenized word
Definition at line 938 of file row0ftsort.cc.