diff options
| author | Marko Mäkelä <marko.makela@mariadb.com> | 2018-02-15 16:12:15 +0200 |
|---|---|---|
| committer | Marko Mäkelä <marko.makela@mariadb.com> | 2018-02-15 16:12:15 +0200 |
| commit | 633d252e32acd68a95786b68be867df90c33e3c9 (patch) | |
| tree | 83f34ae964155498ac5ba404e40e4d96ba88bd17 | |
| parent | f40c11d88bbe5156f23abe9e70c0ce4e4406d4ac (diff) | |
| parent | 4074c7455655466b81f4f19f77a31fbd9ea605e5 (diff) | |
| download | mariadb-git-633d252e32acd68a95786b68be867df90c33e3c9.tar.gz | |
Merge bb-10.2-ext into 10.3
| -rw-r--r-- | storage/innobase/fts/fts0fts.cc | 33 | ||||
| -rw-r--r-- | storage/innobase/fts/fts0opt.cc | 10 |
2 files changed, 28 insertions, 15 deletions
diff --git a/storage/innobase/fts/fts0fts.cc b/storage/innobase/fts/fts0fts.cc index 8635c5d49fe..d1c3d004456 100644 --- a/storage/innobase/fts/fts0fts.cc +++ b/storage/innobase/fts/fts0fts.cc @@ -2705,7 +2705,11 @@ retry: fts_table.parent = table->name.m_name; trx = trx_allocate_for_background(); - trx_start_internal(trx); + if (srv_read_only_mode) { + trx_start_internal_read_only(trx); + } else { + trx_start_internal(trx); + } trx->op_info = "update the next FTS document id"; @@ -2814,6 +2818,10 @@ fts_update_sync_doc_id( fts_cache_t* cache = table->fts->cache; char fts_name[MAX_FULL_NAME_LEN]; + if (srv_read_only_mode) { + return DB_READ_ONLY; + } + fts_table.suffix = "CONFIG"; fts_table.table_id = table->id; fts_table.type = FTS_COMMON_TABLE; @@ -3058,6 +3066,10 @@ fts_commit_table( /*=============*/ fts_trx_table_t* ftt) /*!< in: FTS table to commit*/ { + if (srv_read_only_mode) { + return DB_READ_ONLY; + } + const ib_rbt_node_t* node; ib_rbt_t* rows; dberr_t error = DB_SUCCESS; @@ -3807,7 +3819,6 @@ fts_doc_fetch_by_doc_id( trx_t* trx = trx_allocate_for_background(); que_t* graph; - trx_start_internal(trx); trx->op_info = "fetching indexed FTS document"; /* The FTS index can be supplied by caller directly with @@ -3895,13 +3906,7 @@ fts_doc_fetch_by_doc_id( } error = fts_eval_sql(trx, graph); - - if (error == DB_SUCCESS) { - fts_sql_commit(trx); - } else { - fts_sql_rollback(trx); - } - + fts_sql_commit(trx); trx_free_for_background(trx); if (!get_doc) { @@ -4370,6 +4375,10 @@ fts_sync( bool wait, bool has_dict) { + if (srv_read_only_mode) { + return DB_READ_ONLY; + } + ulint i; dberr_t error = DB_SUCCESS; fts_cache_t* cache = sync->table->fts->cache; @@ -7346,7 +7355,11 @@ fts_load_stopword( if (!trx) { trx = trx_allocate_for_background(); - trx_start_internal(trx); + if (srv_read_only_mode) { + trx_start_internal_read_only(trx); + } else { + trx_start_internal(trx); + } trx->op_info = "upload FTS stopword"; new_trx = TRUE; } diff --git a/storage/innobase/fts/fts0opt.cc b/storage/innobase/fts/fts0opt.cc index 3a05f1f013a..910721d8b32 100644 --- a/storage/innobase/fts/fts0opt.cc +++ b/storage/innobase/fts/fts0opt.cc @@ -989,7 +989,6 @@ fts_table_fetch_doc_ids( if (!trx) { trx = trx_allocate_for_background(); - trx_start_internal(trx); alloc_bk_trx = TRUE; } @@ -1018,17 +1017,14 @@ fts_table_fetch_doc_ids( "CLOSE c;"); error = fts_eval_sql(trx, graph); + fts_sql_commit(trx); mutex_enter(&dict_sys->mutex); que_graph_free(graph); mutex_exit(&dict_sys->mutex); if (error == DB_SUCCESS) { - fts_sql_commit(trx); - ib_vector_sort(doc_ids->doc_ids, fts_update_doc_id_cmp); - } else { - fts_sql_rollback(trx); } if (alloc_bk_trx) { @@ -2442,6 +2438,10 @@ fts_optimize_table( /*===============*/ dict_table_t* table) /*!< in: table to optimiza */ { + if (srv_read_only_mode) { + return DB_READ_ONLY; + } + dberr_t error = DB_SUCCESS; fts_optimize_t* optim = NULL; fts_t* fts = table->fts; |
