55#define FTS_NULL_DOC_ID 0
58#define FTS_DOC_ID_COL_NAME "FTS_DOC_ID"
61#define FTS_DOC_ID_INDEX_NAME "FTS_DOC_ID_INDEX"
63#define FTS_DOC_ID_INDEX_NAME_LEN 16
66#define FTS_DOC_ID_LEN 8
70#define FTS_NUM_FIELDS_SORT 3
74#define MAX_DOC_ID_OPT_VAL 1073741824
80#define FTS_DOC_ID_FORMAT IB_ID_FMT
83#define fts_write_doc_id(d, s) mach_write_to_8(d, s)
86#define fts_read_doc_id(s) mach_read_from_8(s)
89#define fts_bind_doc_id(i, n, v) pars_info_bind_int8_literal(i, n, v)
97#define FTS_NO_RANKING 8
98#define FTS_PROXIMITY 16
100#define FTS_OPT_RANKING 64
102#define FTS_INDEX_TABLE_IND_NAME "FTS_INDEX_TABLE_IND"
103#define FTS_COMMON_TABLE_IND_NAME "FTS_COMMON_TABLE_IND"
112#define FTS_OPTIMIZE_THRESHOLD 10000000
116#define FTS_DOC_ID_MAX_STEP 65535
119#define FTS_MAX_WORD_LEN HA_FT_MAXBYTELEN
122#define FTS_MAX_WORD_LEN_IN_CHAR HA_FT_MAXCHARLEN
125#define FTS_DELETED_TABLE_NUM_COLS 1
126#define FTS_CONFIG_TABLE_NUM_COLS 2
127#define FTS_AUX_INDEX_TABLE_NUM_COLS 5
130#define FTS_DELETED_TABLE_COL_LEN 8
132#define FTS_CONFIG_TABLE_KEY_COL_LEN 50
133#define FTS_CONFIG_TABLE_VALUE_COL_LEN 200
135#define FTS_INDEX_WORD_LEN FTS_MAX_WORD_LEN
136#define FTS_INDEX_FIRST_DOC_ID_LEN 8
137#define FTS_INDEX_LAST_DOC_ID_LEN 8
138#define FTS_INDEX_DOC_COUNT_LEN 4
140#define FTS_INDEX_ILIST_LEN 0
142#define FTS_MAX_NESTED_EXP 31
206#define FTS_INIT_FTS_TABLE(fts_table, m_suffix, m_type, m_table) \
208 (fts_table)->suffix = m_suffix; \
209 (fts_table)->type = m_type; \
210 (fts_table)->table_id = m_table->id; \
211 (fts_table)->parent = m_table->name.m_name; \
212 (fts_table)->table = m_table; \
215#define FTS_INIT_INDEX_TABLE(fts_table, m_suffix, m_type, m_index) \
217 (fts_table)->suffix = m_suffix; \
218 (fts_table)->type = m_type; \
219 (fts_table)->table_id = m_index->table->id; \
220 (fts_table)->parent = m_index->table->name.m_name; \
221 (fts_table)->table = m_index->table; \
222 (fts_table)->index_id = m_index->id; \
404#define STOPWORD_NOT_INIT 0x1
405#define STOPWORD_OFF 0x2
406#define STOPWORD_FROM_DEFAULT 0x4
407#define STOPWORD_USER_TABLE 0x8
434#define fts_que_graph_free(graph) \
436 que_graph_free(graph); \
522 bool skip_doc_id_index);
599 const byte *query_str,
ulint query_len,
742 ulint aux_table_len);
775 size_t src_len,
char *dst,
824 const char *stopword_table_name);
831 const char *global_stopword_table,
833 const char *session_stopword_table,
852 bool has_cache_lock);
872 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:34
The state of the FTS sub system.
Definition: fts0fts.h:362
fts_cache_t * cache
FTS memory buffer for this table, or NULL if the table has no FTS index.
Definition: fts0fts.h:389
ulint bg_threads
Number of background threads accessing this table.
Definition: fts0fts.h:376
mem_heap_t * fts_heap
Heap for fts_t allocation.
Definition: fts0fts.h:398
~fts_t()
fts_t destructor.
Definition: fts0fts.cc:5442
ib_mutex_t bg_threads_mutex
Mutex protecting bg_threads* and fts_add_wq.
Definition: fts0fts.h:373
ulint doc_col
FTS doc id hidden column number in the CLUSTERED index.
Definition: fts0fts.h:392
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:385
ulint fts_status
Status bit regarding fts running state.
Definition: fts0fts.h:380
fts_t(dict_table_t *table, mem_heap_t *heap)
fts_t constructor.
Definition: fts0fts.cc:5423
ib_vector_t * indexes
Vector of FTS indexes, this is mainly for caching purposes.
Definition: fts0fts.h:395
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:7807
const char * FTS_SUFFIX_CONFIG_5_7
Definition: fts0fts.cc:148
fts_trx_t * fts_trx_create(trx_t *trx)
Create an FTS trx.
Definition: fts0fts.cc:2481
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:2335
int fts_tokenize_document_internal(MYSQL_FTPARSER_PARAM *param, char *doc, int len)
FULLTEXT tokenizer internal in MYSQL_FTPARSER_SIMPLE_MODE.
Definition: fts0fts.cc:4717
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:3160
uint64_t doc_id_t
Document id type.
Definition: fts0fts.h:77
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:3306
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:3839
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:2555
dberr_t fts_upgrade_aux_tables(dict_table_t *table)
Upgrade FTS AUX Tables.
Definition: fts0fts.cc:6374
void fts_optimize_shutdown()
Shutdown fts optimize thread.
Definition: fts0opt.cc:3008
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:2250
fts_doc_ids_t * fts_doc_ids_create(void)
Create a new fts_doc_ids_t.
Definition: fts0fts.cc:3006
void fts_add_doc_id_column(dict_table_t *table, mem_heap_t *heap)
Add the FTS document id hidden column.
Definition: fts0fts.cc:5359
const char * FTS_SUFFIX_BEING_DELETED_CACHE
Definition: fts0fts.cc:138
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:5381
ulong fts_result_cache_limit
Variable specifying the FTS result cache limit for each query.
Definition: fts0fts.cc:85
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:3522
const char * fts_default_stopword[]
InnoDB default stopword list: There are different versions of stopwords, the stop words listed below ...
Definition: fts0fts.cc:119
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:2770
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:822
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:3608
void fts_savepoint_rollback(trx_t *trx, const char *name)
Rollback to and including savepoint identified by name.
Definition: fts0fts.cc:5725
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:1240
bool fts_check_common_tables_exist(const dict_table_t *table)
Check if common tables already exist.
Definition: fts0fts.cc:1869
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:3776
void fts_add_index(dict_index_t *index, dict_table_t *table)
Add a newly create index in FTS cache.
Definition: fts0fts.cc:579
char * fts_internal_tbl_name
Variable specifying the table that has Fulltext index to display its content through information sche...
Definition: fts0fts.cc:111
const char * FTS_SUFFIX_CONFIG
Definition: fts0fts.cc:139
void fts_savepoint_take(fts_trx_t *fts_trx, const char *name)
Take a FTS savepoint.
Definition: fts0fts.cc:5541
enum fts_status fts_status_t
Definition: fts0fts.h:359
void fts_cache_index_cache_remove(dict_table_t *table, dict_index_t *index)
Remove a FTS index cache.
Definition: fts0fts.cc:866
void fts_optimize_init(void)
Startup the optimize thread and create the work queue.
Definition: fts0opt.cc:2991
void fts_trx_free(fts_trx_t *fts_trx)
Free an FTS trx.
Definition: fts0fts.cc:5146
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:2753
dberr_t fts_optimize_table(dict_table_t *table)
Run OPTIMIZE on the given table.
Definition: fts0opt.cc:2375
ulong fts_max_cache_size
Variable specifying the maximum FTS cache size for each table.
Definition: fts0fts.cc:74
void fts_free_aux_names(aux_name_vec_t *aux_vec)
Free FTS AUX table names in vector.
Definition: fts0fts.cc:1262
void fts_savepoint_release(trx_t *trx, const char *name)
Release the savepoint data identified by name.
Definition: fts0fts.cc:5587
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:4919
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:4484
fts_t * fts_create(dict_table_t *table)
Create an instance of fts_t.
Definition: fts0fts.cc:5459
ulong fts_max_token_size
Variable specifying the maximum FTS max token size.
Definition: fts0fts.cc:88
void fts_doc_ids_free(fts_doc_ids_t *doc_ids)
Free a fts_doc_ids_t.
Definition: fts0fts.cc:3022
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:709
fts_table_type_t
The FTS table types.
Definition: fts0fts.h:186
@ FTS_INDEX_TABLE
FTS auxiliary table that is specific to a particular FTS index on a table.
Definition: fts0fts.h:187
@ FTS_OBSOLETED_TABLE
FTS obsoleted tables like DOC_ID, ADDED, STOPWORDS.
Definition: fts0fts.h:194
@ FTS_COMMON_TABLE
FTS auxiliary table that is common for all FTS index on a table.
Definition: fts0fts.h:191
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:5974
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:7786
void fts_cache_init(fts_cache_t *cache)
Initialize things in cache.
Definition: fts0fts.cc:497
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:2272
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:7713
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:5185
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:672
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:1647
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:5210
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:6224
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:2176
ulint fts_get_rows_count(fts_table_t *fts_table)
Fetch COUNT(*) from specified table.
Definition: fts0fts.cc:4985
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:78
const char * FTS_SUFFIX_BEING_DELETED
Definition: fts0fts.cc:137
bool fts_enable_diag_print
Variable specifying whether we do additional FTS diagnostic printout in the log.
Definition: fts0opt.cc:244
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:1486
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:1389
constexpr size_t FTS_NUM_AUX_INDEX
The number of FTS index partitions for a fulltext index.
Definition: fts0fts.h:106
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:2111
const char * FTS_PREFIX
FTS auxiliary table prefix that are common to all FT indexes.
Definition: fts0fts.cc:127
void fts_optimize_remove_table(dict_table_t *table)
Remove the table from the OPTIMIZER's list.
Definition: fts0opt.cc:2525
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:1917
ulong fts_min_token_size
Variable specifying the minimum FTS max token size.
Definition: fts0fts.cc:91
CHARSET_INFO * fts_index_get_charset(dict_index_t *index)
Create an FTS index cache.
Definition: fts0fts.cc:787
fts_cache_t * fts_cache_create(dict_table_t *table)
Create a FTS cache.
Definition: fts0fts.cc:526
fts_status
Definition: fts0fts.h:343
@ BG_THREAD_STOP
true if the FTS background thread has finished reading the ADDED table, meaning more items can be add...
Definition: fts0fts.h:344
@ BG_THREAD_READY
true if the FTS background thread is ready
Definition: fts0fts.h:349
@ ADDED_TABLE_SYNCED
true if the ADDED table record is sync-ed after crash recovery
Definition: fts0fts.h:355
@ ADD_THREAD_STARTED
true if the FTS add thread has started
Definition: fts0fts.h:352
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:5913
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:6478
dberr_t fts_lock_all_aux_tables(THD *thd, dict_table_t *table)
Lock all FTS AUX tables (for dropping table)
Definition: fts0fts.cc:1746
const char * FTS_PREFIX_5_7
FTS auxiliary table prefix that are common to all FT indexes.
Definition: fts0fts.cc:130
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:3252
void fts_cache_clear(fts_cache_t *cache)
Clear cache.
Definition: fts0fts.cc:917
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:2057
dberr_t fts_empty_common_tables(trx_t *trx, dict_table_t *table)
Empty all common talbes.
Definition: fts0fts.cc:1583
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:81
void fts_savepoint_rollback_last_stmt(trx_t *trx)
Rollback to and including savepoint identified by name.
Definition: fts0fts.cc:5685
void fts_savepoint_laststmt_refresh(trx_t *trx)
Refresh last statement savepoint.
Definition: fts0fts.cc:5624
void fts_free(dict_table_t *table)
Free the FTS resources.
Definition: fts0fts.cc:5474
ulong fts_num_word_optimize
Variable specifying the number of word to optimize for each optimize table call.
Definition: fts0opt.cc:241
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:7828
float fts_rank_t
FTS rank type, which will be between 0 .
Definition: fts0fts.h:163
const char * FTS_SUFFIX_DELETED
Definition: fts0fts.cc:140
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:958
void fts_query_free_result(fts_result_t *result)
FTS Query free result, returned by fts_query().
Definition: fts0que.cc:3820
ulint fts_get_token_size(const CHARSET_INFO *cs, const char *token, ulint len)
Get token char size by charset.
Definition: fts0fts.cc:4688
constexpr size_t FTS_NUM_AUX_COMMON
The number of FTS AUX common table for a fulltext index.
Definition: fts0fts.h:109
fts_row_state
Type of a row during a transaction.
Definition: fts0fts.h:177
@ FTS_DELETE
Definition: fts0fts.h:180
@ FTS_INVALID
Definition: fts0fts.h:182
@ FTS_MODIFY
Definition: fts0fts.h:179
@ FTS_NOTHING
Definition: fts0fts.h:181
@ FTS_INSERT
Definition: fts0fts.h:178
unsigned short ib_uc_t
Since MySQL's character set support for Unicode is woefully inadequate (it supports basic operations ...
Definition: fts0fts.h:289
const char * FTS_SUFFIX_DELETED_CACHE
Definition: fts0fts.cc:141
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:2643
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:5783
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:177
unsigned long long int ulonglong
Definition: my_inttypes.h:56
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:33
Definition: m_ctype.h:385
Definition: plugin_ftparser.h:191
Structure to manage FTS AUX table name and MDL during its drop.
Definition: fts0fts.h:166
std::vector< char * > aux_name
AUX table name.
Definition: fts0fts.h:168
Data structure for an index.
Definition: dict0mem.h:1046
Data structure for a database table.
Definition: dict0mem.h:1909
Structure for an SQL data tuple of fields (logical record)
Definition: data0data.h:694
For storing table info when checking for orphaned tables.
Definition: fts0fts.h:902
fts_table_type_t type
FTS table type.
Definition: fts0fts.h:916
table_id_t index_id
Table FT index id.
Definition: fts0fts.h:910
char * name
Name of the table.
Definition: fts0fts.h:913
table_id_t id
Table id.
Definition: fts0fts.h:904
table_id_t parent_id
Parent table id.
Definition: fts0fts.h:907
The cache for the FTS system.
Definition: fts0types.h:144
List of document ids that were added during a transaction.
Definition: fts0fts.h:275
ib_vector_t * doc_ids
document ids (each element is of type doc_id_t).
Definition: fts0fts.h:276
ib_alloc_t * self_heap
Allocator used to create an instance of this type and the doc_ids vector.
Definition: fts0fts.h:279
This type represents a single document field.
Definition: fts0types.h:272
Since we can have multiple FTS indexes on a table, we keep a per index cache of words etc.
Definition: fts0types.h:71
Query ranked doc ids.
Definition: fts0fts.h:300
ulint words_len
words len
Definition: fts0fts.h:308
fts_rank_t rank
Rank is between 0 .
Definition: fts0fts.h:303
byte * words
this contains the words that were queried and found in this document
Definition: fts0fts.h:305
doc_id_t doc_id
Document id.
Definition: fts0fts.h:301
Query result.
Definition: fts0fts.h:312
ib_rbt_t * rankings_by_id
RB tree of type fts_ranking_t indexed by doc id.
Definition: fts0fts.h:315
ib_rbt_t * rankings_by_rank
RB tree of type fts_ranking_t indexed by rank.
Definition: fts0fts.h:317
ib_rbt_node_t * current
Current element.
Definition: fts0fts.h:313
Information required for transaction savepoint handling.
Definition: fts0fts.h:239
ib_rbt_t * tables
Modified FTS tables.
Definition: fts0fts.h:244
char * name
First entry is always NULL, the default instance.
Definition: fts0fts.h:240
Stop word control infotmation.
Definition: fts0types.h:105
ib_alloc_t * heap
The memory allocator to use.
Definition: fts0types.h:107
An UTF-16 ro UTF-8 string.
Definition: fts0fts.h:292
ulint f_n_char
Number of characters.
Definition: fts0fts.h:296
ulint f_len
Length of the string in bytes.
Definition: fts0fts.h:295
byte * f_str
string, not necessary terminated in any way
Definition: fts0fts.h:293
This is used to generate the FTS auxiliary table name, we need the table id and the index id to gener...
Definition: fts0fts.h:324
space_index_t index_id
The index id.
Definition: fts0fts.h:333
CHARSET_INFO * charset
charset info if it is for FTS index auxiliary table
Definition: fts0fts.h:339
fts_table_type_t type
The auxiliary table type.
Definition: fts0fts.h:329
const dict_table_t * table
Parent table.
Definition: fts0fts.h:338
table_id_t table_id
The table id.
Definition: fts0fts.h:331
const char * suffix
The suffix of the fts auxiliary table name, can be NULL, not used everywhere (yet)
Definition: fts0fts.h:335
const char * parent
Parent table name, this is required only for the database name.
Definition: fts0fts.h:325
A token and its positions within a document.
Definition: fts0types.h:298
Information about one changed row in a transaction.
Definition: fts0fts.h:264
doc_id_t doc_id
Id of the ins/upd/del document.
Definition: fts0fts.h:265
fts_row_state state
state of the row
Definition: fts0fts.h:267
ib_vector_t * fts_indexes
The indexes that are affected.
Definition: fts0fts.h:269
Information about changes in a single transaction affecting the FTS system.
Definition: fts0fts.h:227
ib_vector_t * last_stmt
last_stmt
Definition: fts0fts.h:233
mem_heap_t * heap
heap
Definition: fts0fts.h:235
trx_t * trx
InnoDB transaction.
Definition: fts0fts.h:228
ib_vector_t * savepoints
Active savepoints, must have at least one element, the implied savepoint.
Definition: fts0fts.h:230
Information about changed rows in a transaction for a single table.
Definition: fts0fts.h:248
ib_rbt_t * rows
rows changed; indexed by doc-id, cells are fts_trx_row_t*
Definition: fts0fts.h:253
fts_trx_t * fts_trx
link to parent
Definition: fts0fts.h:251
dict_table_t * table
table
Definition: fts0fts.h:249
que_t * docs_added_graph
Definition: fts0fts.h:260
fts_doc_ids_t * added_doc_ids
list of added doc ids (NULL until the first addition)
Definition: fts0fts.h:256
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 int uint
Definition: uca9-dump.cc:75
unsigned long int ulint
Definition: univ.i:406
A vector of pointers to data items.