54#define FTS_NULL_DOC_ID 0
57#define FTS_DOC_ID_COL_NAME "FTS_DOC_ID"
60#define FTS_DOC_ID_INDEX_NAME "FTS_DOC_ID_INDEX"
62#define FTS_DOC_ID_INDEX_NAME_LEN 16
65#define FTS_DOC_ID_LEN 8
69#define FTS_NUM_FIELDS_SORT 3
73#define MAX_DOC_ID_OPT_VAL 1073741824
79#define FTS_DOC_ID_FORMAT IB_ID_FMT
82#define fts_write_doc_id(d, s) mach_write_to_8(d, s)
85#define fts_read_doc_id(s) mach_read_from_8(s)
88#define fts_bind_doc_id(i, n, v) pars_info_bind_int8_literal(i, n, v)
96#define FTS_NO_RANKING 8
97#define FTS_PROXIMITY 16
99#define FTS_OPT_RANKING 64
101#define FTS_INDEX_TABLE_IND_NAME "FTS_INDEX_TABLE_IND"
102#define FTS_COMMON_TABLE_IND_NAME "FTS_COMMON_TABLE_IND"
111#define FTS_OPTIMIZE_THRESHOLD 10000000
115#define FTS_DOC_ID_MAX_STEP 65535
118#define FTS_MAX_WORD_LEN HA_FT_MAXBYTELEN
121#define FTS_MAX_WORD_LEN_IN_CHAR HA_FT_MAXCHARLEN
124#define FTS_DELETED_TABLE_NUM_COLS 1
125#define FTS_CONFIG_TABLE_NUM_COLS 2
126#define FTS_AUX_INDEX_TABLE_NUM_COLS 5
129#define FTS_DELETED_TABLE_COL_LEN 8
131#define FTS_CONFIG_TABLE_KEY_COL_LEN 50
132#define FTS_CONFIG_TABLE_VALUE_COL_LEN 200
134#define FTS_INDEX_WORD_LEN FTS_MAX_WORD_LEN
135#define FTS_INDEX_FIRST_DOC_ID_LEN 8
136#define FTS_INDEX_LAST_DOC_ID_LEN 8
137#define FTS_INDEX_DOC_COUNT_LEN 4
139#define FTS_INDEX_ILIST_LEN 0
141#define FTS_MAX_NESTED_EXP 31
205#define FTS_INIT_FTS_TABLE(fts_table, m_suffix, m_type, m_table) \
207 (fts_table)->suffix = m_suffix; \
208 (fts_table)->type = m_type; \
209 (fts_table)->table_id = m_table->id; \
210 (fts_table)->parent = m_table->name.m_name; \
211 (fts_table)->table = m_table; \
214#define FTS_INIT_INDEX_TABLE(fts_table, m_suffix, m_type, m_index) \
216 (fts_table)->suffix = m_suffix; \
217 (fts_table)->type = m_type; \
218 (fts_table)->table_id = m_index->table->id; \
219 (fts_table)->parent = m_index->table->name.m_name; \
220 (fts_table)->table = m_index->table; \
221 (fts_table)->index_id = m_index->id; \
403#define STOPWORD_NOT_INIT 0x1
404#define STOPWORD_OFF 0x2
405#define STOPWORD_FROM_DEFAULT 0x4
406#define STOPWORD_USER_TABLE 0x8
433#define fts_que_graph_free(graph) \
435 que_graph_free(graph); \
521 bool skip_doc_id_index);
598 const byte *query_str,
ulint query_len,
741 ulint aux_table_len);
774 size_t src_len,
char *dst,
823 const char *stopword_table_name);
830 const char *global_stopword_table,
832 const char *session_stopword_table,
851 bool has_cache_lock);
869 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:33
The state of the FTS sub system.
Definition: fts0fts.h:361
fts_cache_t * cache
FTS memory buffer for this table, or NULL if the table has no FTS index.
Definition: fts0fts.h:388
ulint bg_threads
Number of background threads accessing this table.
Definition: fts0fts.h:375
mem_heap_t * fts_heap
Heap for fts_t allocation.
Definition: fts0fts.h:397
~fts_t()
fts_t destructor.
Definition: fts0fts.cc:5411
ib_mutex_t bg_threads_mutex
Mutex protecting bg_threads* and fts_add_wq.
Definition: fts0fts.h:372
ulint doc_col
FTS doc id hidden column number in the CLUSTERED index.
Definition: fts0fts.h:391
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:384
ulint fts_status
Status bit regarding fts running state.
Definition: fts0fts.h:379
fts_t(dict_table_t *table, mem_heap_t *heap)
fts_t constructor.
Definition: fts0fts.cc:5392
ib_vector_t * indexes
Vector of FTS indexes, this is mainly for caching purposes.
Definition: fts0fts.h:394
dberr_t
Definition: db0err.h:38
Data dictionary global types.
ib_id_t space_index_t
Index identifier (unique within a tablespace).
Definition: dict0types.h:219
ib_id_t table_id_t
Table or partition identifier (unique within an InnoDB instance).
Definition: dict0types.h:217
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:7796
const char * FTS_SUFFIX_CONFIG_5_7
Definition: fts0fts.cc:147
fts_trx_t * fts_trx_create(trx_t *trx)
Create an FTS trx.
Definition: fts0fts.cc:2476
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:2330
int fts_tokenize_document_internal(MYSQL_FTPARSER_PARAM *param, char *doc, int len)
FULLTEXT tokenizer internal in MYSQL_FTPARSER_SIMPLE_MODE.
Definition: fts0fts.cc:4686
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:3130
uint64_t doc_id_t
Document id type.
Definition: fts0fts.h:76
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:3316
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:3849
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:2497
dberr_t fts_upgrade_aux_tables(dict_table_t *table)
Upgrade FTS AUX Tables.
Definition: fts0fts.cc:6343
void fts_optimize_shutdown()
Shutdown fts optimize thread.
Definition: fts0opt.cc:2950
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:2245
fts_doc_ids_t * fts_doc_ids_create(void)
Create a new fts_doc_ids_t.
Definition: fts0fts.cc:2976
void fts_add_doc_id_column(dict_table_t *table, mem_heap_t *heap)
Add the FTS document id hidden column.
Definition: fts0fts.cc:5328
const char * FTS_SUFFIX_BEING_DELETED_CACHE
Definition: fts0fts.cc:137
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:5350
ulong fts_result_cache_limit
Variable specifying the FTS result cache limit for each query.
Definition: fts0fts.cc:84
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:3492
const char * fts_default_stopword[]
InnoDB default stopword list: There are different versions of stopwords, the stop words listed below ...
Definition: fts0fts.cc:118
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:2763
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:817
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:3618
void fts_savepoint_rollback(trx_t *trx, const char *name)
Rollback to and including savepoint identified by name.
Definition: fts0fts.cc:5694
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:1235
bool fts_check_common_tables_exist(const dict_table_t *table)
Check if common tables already exist.
Definition: fts0fts.cc:1864
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:3746
void fts_add_index(dict_index_t *index, dict_table_t *table)
Add a newly create index in FTS cache.
Definition: fts0fts.cc:578
char * fts_internal_tbl_name
Variable specifying the table that has Fulltext index to display its content through information sche...
Definition: fts0fts.cc:110
const char * FTS_SUFFIX_CONFIG
Definition: fts0fts.cc:138
void fts_savepoint_take(fts_trx_t *fts_trx, const char *name)
Take a FTS savepoint.
Definition: fts0fts.cc:5510
enum fts_status fts_status_t
Definition: fts0fts.h:358
void fts_cache_index_cache_remove(dict_table_t *table, dict_index_t *index)
Remove a FTS index cache.
Definition: fts0fts.cc:861
void fts_optimize_init(void)
Startup the optimize thread and create the work queue.
Definition: fts0opt.cc:2933
void fts_trx_free(fts_trx_t *fts_trx)
Free an FTS trx.
Definition: fts0fts.cc:5115
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:2746
dberr_t fts_optimize_table(dict_table_t *table)
Run OPTIMIZE on the given table.
Definition: fts0opt.cc:2317
ulong fts_max_cache_size
Variable specifying the maximum FTS cache size for each table.
Definition: fts0fts.cc:73
void fts_free_aux_names(aux_name_vec_t *aux_vec)
Free FTS AUX table names in vector.
Definition: fts0fts.cc:1257
void fts_savepoint_release(trx_t *trx, const char *name)
Release the savepoint data identified by name.
Definition: fts0fts.cc:5556
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:4888
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:4453
fts_t * fts_create(dict_table_t *table)
Create an instance of fts_t.
Definition: fts0fts.cc:5428
ulong fts_max_token_size
Variable specifying the maximum FTS max token size.
Definition: fts0fts.cc:87
void fts_doc_ids_free(fts_doc_ids_t *doc_ids)
Free a fts_doc_ids_t.
Definition: fts0fts.cc:2992
fts_table_type_t
The FTS table types.
Definition: fts0fts.h:185
@ FTS_INDEX_TABLE
FTS auxiliary table that is specific to a particular FTS index on a table.
Definition: fts0fts.h:186
@ FTS_OBSOLETED_TABLE
FTS obsoleted tables like DOC_ID, ADDED, STOPWORDS.
Definition: fts0fts.h:193
@ FTS_COMMON_TABLE
FTS auxiliary table that is common for all FTS index on a table.
Definition: fts0fts.h:190
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:5943
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:7775
void fts_cache_init(fts_cache_t *cache)
Initialize things in cache.
Definition: fts0fts.cc:496
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:2267
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:7702
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:5154
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:671
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:1642
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:5179
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:6193
dberr_t fts_drop_index(dict_table_t *table, dict_index_t *index, trx_t *trx, aux_name_vec_t *aux_vec)
Drop auxiliary tables related to an FTS index.
Definition: fts0fts.cc:706
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:2171
ulint fts_get_rows_count(fts_table_t *fts_table)
Fetch COUNT(*) from specified table.
Definition: fts0fts.cc:4954
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:77
const char * FTS_SUFFIX_BEING_DELETED
Definition: fts0fts.cc:136
bool fts_enable_diag_print
Variable specifying whether we do additional FTS diagnostic printout in the log.
Definition: fts0opt.cc:243
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:1481
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:1384
constexpr size_t FTS_NUM_AUX_INDEX
The number of FTS index partitions for a fulltext index.
Definition: fts0fts.h:105
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:2106
const char * FTS_PREFIX
FTS auxiliary table prefix that are common to all FT indexes.
Definition: fts0fts.cc:126
void fts_optimize_remove_table(dict_table_t *table)
Remove the table from the OPTIMIZER's list.
Definition: fts0opt.cc:2467
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:1912
ulong fts_min_token_size
Variable specifying the minimum FTS max token size.
Definition: fts0fts.cc:90
CHARSET_INFO * fts_index_get_charset(dict_index_t *index)
Create an FTS index cache.
Definition: fts0fts.cc:782
fts_cache_t * fts_cache_create(dict_table_t *table)
Create a FTS cache.
Definition: fts0fts.cc:525
fts_status
Definition: fts0fts.h:342
@ BG_THREAD_STOP
true if the FTS background thread has finished reading the ADDED table, meaning more items can be add...
Definition: fts0fts.h:343
@ BG_THREAD_READY
true if the FTS background thread is ready
Definition: fts0fts.h:348
@ ADDED_TABLE_SYNCED
true if the ADDED table record is sync-ed after crash recovery
Definition: fts0fts.h:354
@ ADD_THREAD_STARTED
true if the FTS add thread has started
Definition: fts0fts.h:351
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:5882
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:6447
dberr_t fts_lock_all_aux_tables(THD *thd, dict_table_t *table)
Lock all FTS AUX tables (for dropping table)
Definition: fts0fts.cc:1741
const char * FTS_PREFIX_5_7
FTS auxiliary table prefix that are common to all FT indexes.
Definition: fts0fts.cc:129
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:3222
void fts_cache_clear(fts_cache_t *cache)
Clear cache.
Definition: fts0fts.cc:912
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:2052
dberr_t fts_empty_common_tables(trx_t *trx, dict_table_t *table)
Empty all common talbes.
Definition: fts0fts.cc:1578
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:80
void fts_savepoint_rollback_last_stmt(trx_t *trx)
Rollback to and including savepoint identified by name.
Definition: fts0fts.cc:5654
void fts_savepoint_laststmt_refresh(trx_t *trx)
Refresh last statement savepoint.
Definition: fts0fts.cc:5593
void fts_free(dict_table_t *table)
Free the FTS resources.
Definition: fts0fts.cc:5443
ulong fts_num_word_optimize
Variable specifying the number of word to optimize for each optimize table call.
Definition: fts0opt.cc:240
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:7817
float fts_rank_t
FTS rank type, which will be between 0 .
Definition: fts0fts.h:162
const char * FTS_SUFFIX_DELETED
Definition: fts0fts.cc:139
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:901
void fts_query_free_result(fts_result_t *result)
FTS Query free result, returned by fts_query().
Definition: fts0que.cc:3830
ulint fts_get_token_size(const CHARSET_INFO *cs, const char *token, ulint len)
Get token char size by charset.
Definition: fts0fts.cc:4657
constexpr size_t FTS_NUM_AUX_COMMON
The number of FTS AUX common table for a fulltext index.
Definition: fts0fts.h:108
fts_row_state
Type of a row during a transaction.
Definition: fts0fts.h:176
@ FTS_DELETE
Definition: fts0fts.h:179
@ FTS_INVALID
Definition: fts0fts.h:181
@ FTS_MODIFY
Definition: fts0fts.h:178
@ FTS_NOTHING
Definition: fts0fts.h:180
@ FTS_INSERT
Definition: fts0fts.h:177
unsigned short ib_uc_t
Since MySQL's character set support for Unicode is woefully inadequate (it supports basic operations ...
Definition: fts0fts.h:288
const char * FTS_SUFFIX_DELETED_CACHE
Definition: fts0fts.cc:140
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:2636
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:5752
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:39
static void start(mysql_harness::PluginFuncEnv *env)
Definition: http_auth_backend_plugin.cc:176
unsigned long long int ulonglong
Definition: my_inttypes.h:55
const std::string charset("charset")
Definition: commit_order_queue.h:33
stdx::expected< size_t, std::error_code > wait(int epfd, epoll_event *fd_events, size_t num_fd_events, std::chrono::milliseconds timeout)
Definition: linux_epoll.h:82
const char * table_name
Definition: rules_table_service.cc:55
Cursor end()
A past-the-end Cursor.
Definition: rules_table_service.cc:191
Query graph global types.
Record manager global types.
byte rec_t
Definition: rem0types.h:40
static bool reload(MYSQL_THD thd)
Reloads the rules into the in-memory table.
Definition: rewriter_plugin.cc:332
Row operation global types.
static bool rollback(THD *thd)
Abort the current statement and transaction.
Definition: sql_cmd_srs.cc:139
case opt name
Definition: sslopt-case.h:32
Definition: m_ctype.h:382
Definition: plugin_ftparser.h:190
Structure to manage FTS AUX table name and MDL during its drop.
Definition: fts0fts.h:165
std::vector< char * > aux_name
AUX table name.
Definition: fts0fts.h:167
Data structure for an index.
Definition: dict0mem.h:1045
Data structure for a database table.
Definition: dict0mem.h:1908
Structure for an SQL data tuple of fields (logical record)
Definition: data0data.h:681
For storing table info when checking for orphaned tables.
Definition: fts0fts.h:899
fts_table_type_t type
FTS table type.
Definition: fts0fts.h:913
table_id_t index_id
Table FT index id.
Definition: fts0fts.h:907
char * name
Name of the table.
Definition: fts0fts.h:910
table_id_t id
Table id.
Definition: fts0fts.h:901
table_id_t parent_id
Parent table id.
Definition: fts0fts.h:904
The cache for the FTS system.
Definition: fts0types.h:143
List of document ids that were added during a transaction.
Definition: fts0fts.h:274
ib_vector_t * doc_ids
document ids (each element is of type doc_id_t).
Definition: fts0fts.h:275
ib_alloc_t * self_heap
Allocator used to create an instance of this type and the doc_ids vector.
Definition: fts0fts.h:278
This type represents a single document.
Definition: fts0types.h:267
Since we can have multiple FTS indexes on a table, we keep a per index cache of words etc.
Definition: fts0types.h:70
Query ranked doc ids.
Definition: fts0fts.h:299
ulint words_len
words len
Definition: fts0fts.h:307
fts_rank_t rank
Rank is between 0 .
Definition: fts0fts.h:302
byte * words
this contains the words that were queried and found in this document
Definition: fts0fts.h:304
doc_id_t doc_id
Document id.
Definition: fts0fts.h:300
Query result.
Definition: fts0fts.h:311
ib_rbt_t * rankings_by_id
RB tree of type fts_ranking_t indexed by doc id.
Definition: fts0fts.h:314
ib_rbt_t * rankings_by_rank
RB tree of type fts_ranking_t indexed by rank.
Definition: fts0fts.h:316
ib_rbt_node_t * current
Current element.
Definition: fts0fts.h:312
Information required for transaction savepoint handling.
Definition: fts0fts.h:238
ib_rbt_t * tables
Modified FTS tables.
Definition: fts0fts.h:243
char * name
First entry is always NULL, the default instance.
Definition: fts0fts.h:239
Stop word control infotmation.
Definition: fts0types.h:104
ib_alloc_t * heap
The memory allocator to use.
Definition: fts0types.h:106
An UTF-16 ro UTF-8 string.
Definition: fts0fts.h:291
ulint f_n_char
Number of characters.
Definition: fts0fts.h:295
ulint f_len
Length of the string in bytes.
Definition: fts0fts.h:294
byte * f_str
string, not necessary terminated in any way
Definition: fts0fts.h:292
This is used to generate the FTS auxiliary table name, we need the table id and the index id to gener...
Definition: fts0fts.h:323
space_index_t index_id
The index id.
Definition: fts0fts.h:332
CHARSET_INFO * charset
charset info if it is for FTS index auxiliary table
Definition: fts0fts.h:338
fts_table_type_t type
The auxiliary table type.
Definition: fts0fts.h:328
const dict_table_t * table
Parent table.
Definition: fts0fts.h:337
table_id_t table_id
The table id.
Definition: fts0fts.h:330
const char * suffix
The suffix of the fts auxiliary table name, can be NULL, not used everywhere (yet)
Definition: fts0fts.h:334
const char * parent
Parent table name, this is required only for the database name.
Definition: fts0fts.h:324
A token and its positions within a document.
Definition: fts0types.h:293
Information about one changed row in a transaction.
Definition: fts0fts.h:263
doc_id_t doc_id
Id of the ins/upd/del document.
Definition: fts0fts.h:264
fts_row_state state
state of the row
Definition: fts0fts.h:266
ib_vector_t * fts_indexes
The indexes that are affected.
Definition: fts0fts.h:268
Information about changes in a single transaction affecting the FTS system.
Definition: fts0fts.h:226
ib_vector_t * last_stmt
last_stmt
Definition: fts0fts.h:232
mem_heap_t * heap
heap
Definition: fts0fts.h:234
trx_t * trx
InnoDB transaction.
Definition: fts0fts.h:227
ib_vector_t * savepoints
Active savepoints, must have at least one element, the implied savepoint.
Definition: fts0fts.h:229
Information about changed rows in a transaction for a single table.
Definition: fts0fts.h:247
ib_rbt_t * rows
rows changed; indexed by doc-id, cells are fts_trx_row_t*
Definition: fts0fts.h:252
fts_trx_t * fts_trx
link to parent
Definition: fts0fts.h:250
dict_table_t * table
table
Definition: fts0fts.h:248
que_t * docs_added_graph
Definition: fts0fts.h:259
fts_doc_ids_t * added_doc_ids
list of added doc ids (NULL until the first addition)
Definition: fts0fts.h:255
Red black tree node.
Definition: ut0rbt.h:60
Red black tree instance.
Definition: ut0rbt.h:71
Definition: ut0wqueue.cc:42
The info structure stored at the beginning of a heap block.
Definition: mem0mem.h:301
Definition: que0que.h:300
Definition: trx0trx.h:680
Definition: row0upd.h:466
Transaction system global type definitions.
unsigned int uint
Definition: uca-dump.cc:29
unsigned long int ulint
Definition: univ.i:407
A vector of pointers to data items.