57#define FTS_NULL_DOC_ID 0
60#define FTS_DOC_ID_COL_NAME "FTS_DOC_ID"
63#define FTS_DOC_ID_INDEX_NAME "FTS_DOC_ID_INDEX"
65#define FTS_DOC_ID_INDEX_NAME_LEN 16
68#define FTS_DOC_ID_LEN 8
72#define FTS_NUM_FIELDS_SORT 3
76#define MAX_DOC_ID_OPT_VAL 1073741824
82#define FTS_DOC_ID_FORMAT IB_ID_FMT
85#define fts_write_doc_id(d, s) mach_write_to_8(d, s)
88#define fts_read_doc_id(s) mach_read_from_8(s)
91#define fts_bind_doc_id(i, n, v) pars_info_bind_int8_literal(i, n, v)
99#define FTS_NO_RANKING 8
100#define FTS_PROXIMITY 16
102#define FTS_OPT_RANKING 64
104#define FTS_INDEX_TABLE_IND_NAME "FTS_INDEX_TABLE_IND"
105#define FTS_COMMON_TABLE_IND_NAME "FTS_COMMON_TABLE_IND"
114#define FTS_OPTIMIZE_THRESHOLD 10000000
118#define FTS_DOC_ID_MAX_STEP 65535
121#define FTS_MAX_WORD_LEN HA_FT_MAXBYTELEN
124#define FTS_MAX_WORD_LEN_IN_CHAR HA_FT_MAXCHARLEN
127#define FTS_DELETED_TABLE_NUM_COLS 1
128#define FTS_CONFIG_TABLE_NUM_COLS 2
129#define FTS_AUX_INDEX_TABLE_NUM_COLS 5
132#define FTS_DELETED_TABLE_COL_LEN 8
134#define FTS_CONFIG_TABLE_KEY_COL_LEN 50
135#define FTS_CONFIG_TABLE_VALUE_COL_LEN 200
137#define FTS_INDEX_WORD_LEN FTS_MAX_WORD_LEN
138#define FTS_INDEX_FIRST_DOC_ID_LEN 8
139#define FTS_INDEX_LAST_DOC_ID_LEN 8
140#define FTS_INDEX_DOC_COUNT_LEN 4
142#define FTS_INDEX_ILIST_LEN 0
144#define FTS_MAX_NESTED_EXP 31
208#define FTS_INIT_FTS_TABLE(fts_table, m_suffix, m_type, m_table) \
210 (fts_table)->suffix = m_suffix; \
211 (fts_table)->type = m_type; \
212 (fts_table)->table_id = m_table->id; \
213 (fts_table)->parent = m_table->name.m_name; \
214 (fts_table)->table = m_table; \
217#define FTS_INIT_INDEX_TABLE(fts_table, m_suffix, m_type, m_index) \
219 (fts_table)->suffix = m_suffix; \
220 (fts_table)->type = m_type; \
221 (fts_table)->table_id = m_index->table->id; \
222 (fts_table)->parent = m_index->table->name.m_name; \
223 (fts_table)->table = m_index->table; \
224 (fts_table)->index_id = m_index->id; \
406#define STOPWORD_NOT_INIT 0x1
407#define STOPWORD_OFF 0x2
408#define STOPWORD_FROM_DEFAULT 0x4
409#define STOPWORD_USER_TABLE 0x8
436#define fts_que_graph_free(graph) \
438 que_graph_free(graph); \
524 bool skip_doc_id_index);
601 const byte *query_str,
ulint query_len,
744 ulint aux_table_len);
777 size_t src_len,
char *dst,
826 const char *stopword_table_name);
833 const char *global_stopword_table,
835 const char *session_stopword_table,
854 bool has_cache_lock);
874 const char *new_name,
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:36
The state of the FTS sub system.
Definition: fts0fts.h:364
fts_cache_t * cache
FTS memory buffer for this table, or NULL if the table has no FTS index.
Definition: fts0fts.h:391
ulint bg_threads
Number of background threads accessing this table.
Definition: fts0fts.h:378
mem_heap_t * fts_heap
Heap for fts_t allocation.
Definition: fts0fts.h:400
~fts_t()
fts_t destructor.
Definition: fts0fts.cc:5445
ib_mutex_t bg_threads_mutex
Mutex protecting bg_threads* and fts_add_wq.
Definition: fts0fts.h:375
ulint doc_col
FTS doc id hidden column number in the CLUSTERED index.
Definition: fts0fts.h:394
ib_wqueue_t * add_wq
Work queue for scheduling jobs for the FTS 'Add' thread, or NULL if the thread has not yet been creat...
Definition: fts0fts.h:387
ulint fts_status
Status bit regarding fts running state.
Definition: fts0fts.h:382
fts_t(dict_table_t *table, mem_heap_t *heap)
fts_t constructor.
Definition: fts0fts.cc:5426
ib_vector_t * indexes
Vector of FTS indexes, this is mainly for caching purposes.
Definition: fts0fts.h:397
dberr_t
Definition: db0err.h:39
Data dictionary global types.
ib_id_t space_index_t
Index identifier (unique within a tablespace).
Definition: dict0types.h:234
ib_id_t table_id_t
Table or partition identifier (unique within an InnoDB instance).
Definition: dict0types.h:232
Some definitions for full-text indices.
size_t innobase_fts_casedn_str(CHARSET_INFO *cs, char *src, size_t src_len, char *dst, size_t dst_len)
Makes all characters in a string lower case.
Definition: ha_innodb.cc:8106
const char * FTS_SUFFIX_CONFIG_5_7
Definition: fts0fts.cc:150
fts_trx_t * fts_trx_create(trx_t *trx)
Create an FTS trx.
Definition: fts0fts.cc:2484
dberr_t fts_create_index_tables(trx_t *trx, dict_index_t *index)
Creates the column specific ancillary tables needed for supporting an FTS index on the given table.
Definition: fts0fts.cc:2338
int fts_tokenize_document_internal(MYSQL_FTPARSER_PARAM *param, char *doc, int len)
FULLTEXT tokenizer internal in MYSQL_FTPARSER_SIMPLE_MODE.
Definition: fts0fts.cc:4720
dberr_t fts_create_doc_id(dict_table_t *table, dtuple_t *row, mem_heap_t *heap)
Create a new document id.
Definition: fts0fts.cc:3163
uint64_t doc_id_t
Document id type.
Definition: fts0fts.h:79
float fts_retrieve_ranking(fts_result_t *result, doc_id_t doc_id)
Retrieve the FTS Relevance Ranking result for doc with doc_id.
Definition: fts0que.cc:3307
void fts_query_sort_result_on_rank(fts_result_t *result)
FTS Query sort result, returned by fts_query() on fts_ranking_t::rank.
Definition: fts0que.cc:3840
void fts_startup(void)
FTS initialize.
void fts_optimize_request_sync_table(dict_table_t *table)
Send sync fts cache for the table.
Definition: fts0opt.cc:2573
dberr_t fts_upgrade_aux_tables(dict_table_t *table)
Upgrade FTS AUX Tables.
Definition: fts0fts.cc:6377
void fts_optimize_shutdown()
Shutdown fts optimize thread.
Definition: fts0opt.cc:3026
dberr_t fts_create_index_dd_tables(dict_table_t *table)
Check if a table has FTS index needs to have its auxiliary index tables' metadata updated in DD.
Definition: fts0fts.cc:2253
fts_doc_ids_t * fts_doc_ids_create(void)
Create a new fts_doc_ids_t.
Definition: fts0fts.cc:3009
void fts_add_doc_id_column(dict_table_t *table, mem_heap_t *heap)
Add the FTS document id hidden column.
Definition: fts0fts.cc:5362
const char * FTS_SUFFIX_BEING_DELETED_CACHE
Definition: fts0fts.cc:140
doc_id_t fts_update_doc_id(dict_table_t *table, upd_field_t *ufield, doc_id_t *next_doc_id)
Add new fts doc id to the update vector.
Definition: fts0fts.cc:5384
ulong fts_result_cache_limit
Variable specifying the FTS result cache limit for each query.
Definition: fts0fts.cc:87
void fts_add_doc_from_tuple(fts_trx_table_t *ftt, doc_id_t doc_id, const dtuple_t *tuple)
Fetch the document from tuple, tokenize the text data and insert the text data into fts auxiliary tab...
Definition: fts0fts.cc:3525
const char * fts_default_stopword[]
InnoDB default stopword list: There are different versions of stopwords, the stop words listed below ...
Definition: fts0fts.cc:121
dberr_t fts_get_next_doc_id(const dict_table_t *table, doc_id_t *doc_id)
Get the next available document id.
Definition: fts0fts.cc:2773
fts_index_cache_t * fts_cache_index_cache_create(dict_table_t *table, dict_index_t *index)
Create a FTS index cache.
Definition: fts0fts.cc:825
dberr_t fts_query(trx_t *trx, dict_index_t *index, uint flags, const byte *query_str, ulint query_len, fts_result_t **result, ulonglong limit)
FTS Query entry point.
Definition: fts0que.cc:3609
void fts_savepoint_rollback(trx_t *trx, const char *name)
Rollback to and including savepoint identified by name.
Definition: fts0fts.cc:5728
bool fts_drop_dd_tables(const aux_name_vec_t *aux_vec, bool file_per_table)
Drop FTS AUX table DD table objects in vector.
Definition: fts0fts.cc:1243
bool fts_check_common_tables_exist(const dict_table_t *table)
Check if common tables already exist.
Definition: fts0fts.cc:1872
doc_id_t fts_get_max_doc_id(dict_table_t *table)
Get maximum Doc ID in a table if index "FTS_DOC_ID_INDEX" exists.
Definition: fts0fts.cc:3779
void fts_add_index(dict_index_t *index, dict_table_t *table)
Add a newly create index in FTS cache.
Definition: fts0fts.cc:582
char * fts_internal_tbl_name
Variable specifying the table that has Fulltext index to display its content through information sche...
Definition: fts0fts.cc:113
const char * FTS_SUFFIX_CONFIG
Definition: fts0fts.cc:141
void fts_savepoint_take(fts_trx_t *fts_trx, const char *name)
Take a FTS savepoint.
Definition: fts0fts.cc:5544
enum fts_status fts_status_t
Definition: fts0fts.h:361
void fts_cache_index_cache_remove(dict_table_t *table, dict_index_t *index)
Remove a FTS index cache.
Definition: fts0fts.cc:869
void fts_optimize_init(void)
Startup the optimize thread and create the work queue.
Definition: fts0opt.cc:3009
void fts_trx_free(fts_trx_t *fts_trx)
Free an FTS trx.
Definition: fts0fts.cc:5149
void fts_update_next_doc_id(trx_t *trx, const dict_table_t *table, const char *table_name, doc_id_t doc_id)
Update the next and last Doc ID in the CONFIG table to be the input "doc_id" value (+ 1).
Definition: fts0fts.cc:2756
dberr_t fts_optimize_table(dict_table_t *table)
Run OPTIMIZE on the given table.
Definition: fts0opt.cc:2393
ulong fts_max_cache_size
Variable specifying the maximum FTS cache size for each table.
Definition: fts0fts.cc:76
void fts_free_aux_names(aux_name_vec_t *aux_vec)
Free FTS AUX table names in vector.
Definition: fts0fts.cc:1265
void fts_savepoint_release(trx_t *trx, const char *name)
Release the savepoint data identified by name.
Definition: fts0fts.cc:5590
doc_id_t fts_init_doc_id(const dict_table_t *table)
Get the initial Doc ID by consulting the CONFIG table.
Definition: fts0fts.cc:4922
dberr_t fts_sync_table(dict_table_t *table, bool unlock_cache, bool wait, bool has_dict)
Run SYNC on the table, i.e., write out data from the cache to the FTS auxiliary INDEX table and clear...
Definition: fts0fts.cc:4487
fts_t * fts_create(dict_table_t *table)
Create an instance of fts_t.
Definition: fts0fts.cc:5462
ulong fts_max_token_size
Variable specifying the maximum FTS max token size.
Definition: fts0fts.cc:90
void fts_doc_ids_free(fts_doc_ids_t *doc_ids)
Free a fts_doc_ids_t.
Definition: fts0fts.cc:3025
dberr_t fts_drop_index(dict_table_t *table, dict_index_t *index, trx_t *trx, aux_name_vec_t *aux_vec, bool adding_another=false)
Drop auxiliary tables related to an FTS index.
Definition: fts0fts.cc:712
fts_table_type_t
The FTS table types.
Definition: fts0fts.h:188
@ FTS_INDEX_TABLE
FTS auxiliary table that is specific to a particular FTS index on a table.
Definition: fts0fts.h:189
@ FTS_OBSOLETED_TABLE
FTS obsoleted tables like DOC_ID, ADDED, STOPWORDS.
Definition: fts0fts.h:196
@ FTS_COMMON_TABLE
FTS auxiliary table that is common for all FTS index on a table.
Definition: fts0fts.h:193
bool innobase_fts_drop_dd_table(const char *name, bool file_per_table)
Drop dd table & tablespace for fts aux table.
bool fts_load_stopword(const dict_table_t *table, trx_t *trx, const char *global_stopword_table, const char *session_stopword_table, bool stopword_is_on, bool reload)
This function loads specified stopword into FTS cache.
Definition: fts0fts.cc:5977
int innobase_fts_text_cmp_prefix(const void *cs, const void *p1, const void *p2)
Compare two character string according to their charset.
Definition: ha_innodb.cc:8085
void fts_cache_init(fts_cache_t *cache)
Initialize things in cache.
Definition: fts0fts.cc:500
dberr_t fts_create_index_tables_low(trx_t *trx, dict_index_t *index, const char *table_name, table_id_t table_id)
Create auxiliary index tables for an FTS index.
Definition: fts0fts.cc:2275
int innobase_fts_text_cmp(const void *cs, const void *p1, const void *p2)
Compare two character string according to their charset.
Definition: ha_innodb.cc:8012
doc_id_t fts_get_doc_id_from_row(dict_table_t *table, dtuple_t *row)
Extract the doc id from the FTS hidden column.
Definition: fts0fts.cc:5188
bool fts_check_cached_index(dict_table_t *table)
Check indexes in the fts->indexes is also present in index cache and table->indexes list.
Definition: fts0fts.cc:675
dberr_t fts_drop_tables(trx_t *trx, dict_table_t *table, aux_name_vec_t *aux_vec)
Drops the ancillary tables needed for supporting an FTS index on a given table.
Definition: fts0fts.cc:1650
doc_id_t fts_get_doc_id_from_rec(dict_table_t *table, const rec_t *rec, const dict_index_t *index, mem_heap_t *heap)
Extract the doc id from the record that belongs to index.
Definition: fts0fts.cc:5213
bool fts_init_index(dict_table_t *table, bool has_cache_lock)
This function brings FTS index in sync when FTS index is first used.
Definition: fts0fts.cc:6227
bool fts_create_common_dd_tables(const dict_table_t *table)
Update DD system table for auxiliary common tables for an FTS index.
Definition: fts0fts.cc:2179
ulint fts_get_rows_count(fts_table_t *fts_table)
Fetch COUNT(*) from specified table.
Definition: fts0fts.cc:4988
bool fts_need_sync
Whether the total memory used for FTS cache is exhausted, and we will need a sync to free some memory...
Definition: fts0fts.cc:80
const char * FTS_SUFFIX_BEING_DELETED
Definition: fts0fts.cc:139
bool fts_enable_diag_print
Variable specifying whether we do additional FTS diagnostic printout in the log.
Definition: fts0opt.cc:261
dberr_t fts_drop_index_tables(trx_t *trx, dict_index_t *index, aux_name_vec_t *aux_vec)
Since we do a horizontal split on the index table, we need to drop all the split tables.
Definition: fts0fts.cc:1489
dberr_t fts_rename_aux_tables(dict_table_t *table, const char *new_name, trx_t *trx, bool replay)
Rename auxiliary tables for all fts index for a table.
Definition: fts0fts.cc:1392
constexpr size_t FTS_NUM_AUX_INDEX
The number of FTS index partitions for a fulltext index.
Definition: fts0fts.h:108
void fts_detach_aux_tables(const dict_table_t *table, bool dict_locked)
Allow all the auxiliary tables of specified base table to be evictable if they exist,...
Definition: fts0fts.cc:2114
const char * FTS_PREFIX
FTS auxiliary table prefix that are common to all FT indexes.
Definition: fts0fts.cc:129
void fts_optimize_remove_table(dict_table_t *table)
Remove the table from the OPTIMIZER's list.
Definition: fts0opt.cc:2543
dberr_t fts_create_common_tables(trx_t *trx, const dict_table_t *table, const char *name, bool skip_doc_id_index)
Creates the common auxiliary tables needed for supporting an FTS index on the given table.
Definition: fts0fts.cc:1920
ulong fts_min_token_size
Variable specifying the minimum FTS max token size.
Definition: fts0fts.cc:93
CHARSET_INFO * fts_index_get_charset(dict_index_t *index)
Create an FTS index cache.
Definition: fts0fts.cc:790
fts_cache_t * fts_cache_create(dict_table_t *table)
Create a FTS cache.
Definition: fts0fts.cc:529
fts_status
Definition: fts0fts.h:345
@ BG_THREAD_STOP
true if the FTS background thread has finished reading the ADDED table, meaning more items can be add...
Definition: fts0fts.h:346
@ BG_THREAD_READY
true if the FTS background thread is ready
Definition: fts0fts.h:351
@ ADDED_TABLE_SYNCED
true if the ADDED table record is sync-ed after crash recovery
Definition: fts0fts.h:357
@ ADD_THREAD_STARTED
true if the FTS add thread has started
Definition: fts0fts.h:354
CHARSET_INFO * fts_valid_stopword_table(const char *stopword_table_name)
Check whether user supplied stopword table exists and is of the right format.
Definition: fts0fts.cc:5916
dberr_t fts_upgrade_rename(const dict_table_t *table, bool rollback)
Rename FTS AUX tablespace name from 8.0 format to 5.7 format.
Definition: fts0fts.cc:6481
dberr_t fts_lock_all_aux_tables(THD *thd, dict_table_t *table)
Lock all FTS AUX tables (for dropping table)
Definition: fts0fts.cc:1749
const char * FTS_PREFIX_5_7
FTS auxiliary table prefix that are common to all FT indexes.
Definition: fts0fts.cc:132
dberr_t fts_commit(trx_t *trx)
The given transaction is about to be committed; do whatever is necessary from the FTS system's POV.
Definition: fts0fts.cc:3255
void fts_cache_clear(fts_cache_t *cache)
Clear cache.
Definition: fts0fts.cc:920
void fts_freeze_aux_tables(const dict_table_t *table)
Freeze all auiliary tables to be not evictable if exist, with dict_mutex held.
Definition: fts0fts.cc:2060
dberr_t fts_empty_common_tables(trx_t *trx, dict_table_t *table)
Empty all common talbes.
Definition: fts0fts.cc:1586
char * fts_get_parent_table_name(const char *aux_table_name, ulint aux_table_len)
ulong fts_max_total_cache_size
Variable specifying the total memory allocated for FTS cache.
Definition: fts0fts.cc:83
void fts_savepoint_rollback_last_stmt(trx_t *trx)
Rollback to and including savepoint identified by name.
Definition: fts0fts.cc:5688
void fts_savepoint_laststmt_refresh(trx_t *trx)
Refresh last statement savepoint.
Definition: fts0fts.cc:5627
void fts_free(dict_table_t *table)
Free the FTS resources.
Definition: fts0fts.cc:5477
ulong fts_num_word_optimize
Variable specifying the number of word to optimize for each optimize table call.
Definition: fts0opt.cc:258
ulint innobase_mysql_fts_get_token(CHARSET_INFO *charset, const byte *start, const byte *end, fts_string_t *token)
Get the next token from the given string and store it in *token.
Definition: ha_innodb.cc:8127
float fts_rank_t
FTS rank type, which will be between 0 .
Definition: fts0fts.h:165
const char * FTS_SUFFIX_DELETED
Definition: fts0fts.cc:142
dberr_t fts_table_fetch_doc_ids(trx_t *trx, fts_table_t *fts_table, fts_doc_ids_t *doc_ids)
Read the rows from the FTS index.
Definition: fts0opt.cc:988
void fts_query_free_result(fts_result_t *result)
FTS Query free result, returned by fts_query().
Definition: fts0que.cc:3821
ulint fts_get_token_size(const CHARSET_INFO *cs, const char *token, ulint len)
Get token char size by charset.
Definition: fts0fts.cc:4691
constexpr size_t FTS_NUM_AUX_COMMON
The number of FTS AUX common table for a fulltext index.
Definition: fts0fts.h:111
fts_row_state
Type of a row during a transaction.
Definition: fts0fts.h:179
@ FTS_DELETE
Definition: fts0fts.h:182
@ FTS_INVALID
Definition: fts0fts.h:184
@ FTS_MODIFY
Definition: fts0fts.h:181
@ FTS_NOTHING
Definition: fts0fts.h:183
@ FTS_INSERT
Definition: fts0fts.h:180
unsigned short ib_uc_t
Since MySQL's character set support for Unicode is woefully inadequate (it supports basic operations ...
Definition: fts0fts.h:291
const char * FTS_SUFFIX_DELETED_CACHE
Definition: fts0fts.cc:143
void fts_trx_add_op(trx_t *trx, dict_table_t *table, doc_id_t doc_id, fts_row_state state, ib_vector_t *fts_indexes)
Notify the FTS system about an operation on an FTS-indexed table.
Definition: fts0fts.cc:2646
bool fts_is_aux_table_name(fts_aux_table_t *table, const char *name, ulint len)
Check if a table is an FTS auxiliary table name.
Definition: fts0fts.cc:5786
Prototypes for global functions in ha_innodb.cc that are called by InnoDB C code.
The simple hash table utility.
static int flags[50]
Definition: hp_test1.cc:40
static void start(mysql_harness::PluginFuncEnv *env)
Definition: http_auth_backend_plugin.cc:180
unsigned long long int ulonglong
Definition: my_inttypes.h:56
static PFS_engine_table_share_proxy table
Definition: pfs.cc:61
const std::string charset("charset")
Definition: commit_order_queue.h:34
static int wait(mysql_cond_t *that, mysql_mutex_t *mutex_arg, const char *, unsigned int)
Definition: mysql_cond_v1_native.cc:63
const char * table_name
Definition: rules_table_service.cc:56
Cursor end()
A past-the-end Cursor.
Definition: rules_table_service.cc:192
Query graph global types.
Record manager global types.
byte rec_t
Definition: rem0types.h:41
static bool reload(MYSQL_THD thd)
Reloads the rules into the in-memory table.
Definition: rewriter_plugin.cc:333
Row operation global types.
static bool rollback(THD *thd)
Abort the current statement and transaction.
Definition: sql_cmd_srs.cc:140
case opt name
Definition: sslopt-case.h:29
Definition: m_ctype.h:421
Definition: plugin_ftparser.h:195
Structure to manage FTS AUX table name and MDL during its drop.
Definition: fts0fts.h:168
std::vector< char * > aux_name
AUX table name.
Definition: fts0fts.h:170
Data structure for an index.
Definition: dict0mem.h:1041
Data structure for a database table.
Definition: dict0mem.h:1904
Structure for an SQL data tuple of fields (logical record)
Definition: data0data.h:696
For storing table info when checking for orphaned tables.
Definition: fts0fts.h:904
fts_table_type_t type
FTS table type.
Definition: fts0fts.h:918
table_id_t index_id
Table FT index id.
Definition: fts0fts.h:912
char * name
Name of the table.
Definition: fts0fts.h:915
table_id_t id
Table id.
Definition: fts0fts.h:906
table_id_t parent_id
Parent table id.
Definition: fts0fts.h:909
The cache for the FTS system.
Definition: fts0types.h:146
List of document ids that were added during a transaction.
Definition: fts0fts.h:277
ib_vector_t * doc_ids
document ids (each element is of type doc_id_t).
Definition: fts0fts.h:278
ib_alloc_t * self_heap
Allocator used to create an instance of this type and the doc_ids vector.
Definition: fts0fts.h:281
This type represents a single document field.
Definition: fts0types.h:274
Since we can have multiple FTS indexes on a table, we keep a per index cache of words etc.
Definition: fts0types.h:73
Query ranked doc ids.
Definition: fts0fts.h:302
ulint words_len
words len
Definition: fts0fts.h:310
fts_rank_t rank
Rank is between 0 .
Definition: fts0fts.h:305
byte * words
this contains the words that were queried and found in this document
Definition: fts0fts.h:307
doc_id_t doc_id
Document id.
Definition: fts0fts.h:303
Query result.
Definition: fts0fts.h:314
ib_rbt_t * rankings_by_id
RB tree of type fts_ranking_t indexed by doc id.
Definition: fts0fts.h:317
ib_rbt_t * rankings_by_rank
RB tree of type fts_ranking_t indexed by rank.
Definition: fts0fts.h:319
ib_rbt_node_t * current
Current element.
Definition: fts0fts.h:315
Information required for transaction savepoint handling.
Definition: fts0fts.h:241
ib_rbt_t * tables
Modified FTS tables.
Definition: fts0fts.h:246
char * name
First entry is always NULL, the default instance.
Definition: fts0fts.h:242
Stop word control infotmation.
Definition: fts0types.h:107
ib_alloc_t * heap
The memory allocator to use.
Definition: fts0types.h:109
An UTF-16 ro UTF-8 string.
Definition: fts0fts.h:294
ulint f_n_char
Number of characters.
Definition: fts0fts.h:298
ulint f_len
Length of the string in bytes.
Definition: fts0fts.h:297
byte * f_str
string, not necessary terminated in any way
Definition: fts0fts.h:295
This is used to generate the FTS auxiliary table name, we need the table id and the index id to gener...
Definition: fts0fts.h:326
space_index_t index_id
The index id.
Definition: fts0fts.h:335
CHARSET_INFO * charset
charset info if it is for FTS index auxiliary table
Definition: fts0fts.h:341
fts_table_type_t type
The auxiliary table type.
Definition: fts0fts.h:331
const dict_table_t * table
Parent table.
Definition: fts0fts.h:340
table_id_t table_id
The table id.
Definition: fts0fts.h:333
const char * suffix
The suffix of the fts auxiliary table name, can be NULL, not used everywhere (yet)
Definition: fts0fts.h:337
const char * parent
Parent table name, this is required only for the database name.
Definition: fts0fts.h:327
A token and its positions within a document.
Definition: fts0types.h:300
Information about one changed row in a transaction.
Definition: fts0fts.h:266
doc_id_t doc_id
Id of the ins/upd/del document.
Definition: fts0fts.h:267
fts_row_state state
state of the row
Definition: fts0fts.h:269
ib_vector_t * fts_indexes
The indexes that are affected.
Definition: fts0fts.h:271
Information about changes in a single transaction affecting the FTS system.
Definition: fts0fts.h:229
ib_vector_t * last_stmt
last_stmt
Definition: fts0fts.h:235
mem_heap_t * heap
heap
Definition: fts0fts.h:237
trx_t * trx
InnoDB transaction.
Definition: fts0fts.h:230
ib_vector_t * savepoints
Active savepoints, must have at least one element, the implied savepoint.
Definition: fts0fts.h:232
Information about changed rows in a transaction for a single table.
Definition: fts0fts.h:250
ib_rbt_t * rows
rows changed; indexed by doc-id, cells are fts_trx_row_t*
Definition: fts0fts.h:255
fts_trx_t * fts_trx
link to parent
Definition: fts0fts.h:253
dict_table_t * table
table
Definition: fts0fts.h:251
que_t * docs_added_graph
Definition: fts0fts.h:262
fts_doc_ids_t * added_doc_ids
list of added doc ids (NULL until the first addition)
Definition: fts0fts.h:258
Red black tree node.
Definition: ut0rbt.h:61
Red black tree instance.
Definition: ut0rbt.h:72
Definition: ut0wqueue.cc:43
The info structure stored at the beginning of a heap block.
Definition: mem0mem.h:302
Definition: que0que.h:301
Definition: trx0trx.h:675
Definition: row0upd.h:467
Transaction system global type definitions.
unsigned long int ulint
Definition: univ.i:406
A vector of pointers to data items.