Commit 0d3972c6 authored by Marko Mäkelä's avatar Marko Mäkelä

Merge 10.0 into 10.1

parents b4f7f12e 9dfef6e2
...@@ -2052,7 +2052,7 @@ buf_relocate( ...@@ -2052,7 +2052,7 @@ buf_relocate(
} }
#endif /* UNIV_DEBUG */ #endif /* UNIV_DEBUG */
memcpy(dpage, bpage, sizeof *dpage); new (dpage) buf_page_t(*bpage);
/* Important that we adjust the hazard pointer before /* Important that we adjust the hazard pointer before
removing bpage from LRU list. */ removing bpage from LRU list. */
......
...@@ -1653,7 +1653,7 @@ buf_LRU_free_page( ...@@ -1653,7 +1653,7 @@ buf_LRU_free_page(
} else if (buf_page_get_state(bpage) == BUF_BLOCK_FILE_PAGE) { } else if (buf_page_get_state(bpage) == BUF_BLOCK_FILE_PAGE) {
b = buf_page_alloc_descriptor(); b = buf_page_alloc_descriptor();
ut_a(b); ut_a(b);
memcpy(b, bpage, sizeof *b); new (b) buf_page_t(*bpage);
} }
ut_ad(buf_pool_mutex_own(buf_pool)); ut_ad(buf_pool_mutex_own(buf_pool));
......
...@@ -4019,7 +4019,7 @@ fts_query( ...@@ -4019,7 +4019,7 @@ fts_query(
if (trx_is_interrupted(trx)) { if (trx_is_interrupted(trx)) {
error = DB_INTERRUPTED; error = DB_INTERRUPTED;
ut_free(lc_query_str); ut_free(lc_query_str);
if (result != NULL) { if (*result) {
fts_query_free_result(*result); fts_query_free_result(*result);
} }
goto func_exit; goto func_exit;
......
...@@ -593,6 +593,9 @@ struct dict_field_t{ ...@@ -593,6 +593,9 @@ struct dict_field_t{
unsigned fixed_len:10; /*!< 0 or the fixed length of the unsigned fixed_len:10; /*!< 0 or the fixed length of the
column if smaller than column if smaller than
DICT_ANTELOPE_MAX_INDEX_COL_LEN */ DICT_ANTELOPE_MAX_INDEX_COL_LEN */
/** Zero-initialize all fields */
dict_field_t() : col(NULL), name(NULL), prefix_len(0), fixed_len(0) {}
}; };
/**********************************************************************//** /**********************************************************************//**
......
/***************************************************************************** /*****************************************************************************
Copyright (c) 2010, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2010, 2016, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2015, 2017, MariaDB Corporation. Copyright (c) 2015, 2018, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software the terms of the GNU General Public License as published by the Free Software
...@@ -111,6 +111,14 @@ struct fts_tokenize_ctx { ...@@ -111,6 +111,14 @@ struct fts_tokenize_ctx {
ib_rbt_t* cached_stopword;/*!< in: stopword list */ ib_rbt_t* cached_stopword;/*!< in: stopword list */
dfield_t sort_field[FTS_NUM_FIELDS_SORT]; dfield_t sort_field[FTS_NUM_FIELDS_SORT];
/*!< in: sort field */ /*!< in: sort field */
fts_tokenize_ctx() :
processed_len(0), init_pos(0), buf_used(0),
rows_added(), cached_stopword(NULL), sort_field()
{
memset(rows_added, 0, sizeof rows_added);
memset(sort_field, 0, sizeof sort_field);
}
}; };
typedef struct fts_tokenize_ctx fts_tokenize_ctx_t; typedef struct fts_tokenize_ctx fts_tokenize_ctx_t;
......
...@@ -673,7 +673,6 @@ fts_parallel_tokenization( ...@@ -673,7 +673,6 @@ fts_parallel_tokenization(
merge_file = psort_info->merge_file; merge_file = psort_info->merge_file;
blob_heap = mem_heap_create(512); blob_heap = mem_heap_create(512);
memset(&doc, 0, sizeof(doc)); memset(&doc, 0, sizeof(doc));
memset(&t_ctx, 0, sizeof(t_ctx));
memset(mycount, 0, FTS_NUM_AUX_INDEX * sizeof(int)); memset(mycount, 0, FTS_NUM_AUX_INDEX * sizeof(int));
doc.charset = fts_index_get_charset( doc.charset = fts_index_get_charset(
......
...@@ -2514,8 +2514,6 @@ row_import_cfg_read_index_fields( ...@@ -2514,8 +2514,6 @@ row_import_cfg_read_index_fields(
dict_field_t* field = index->m_fields; dict_field_t* field = index->m_fields;
memset(field, 0x0, sizeof(*field) * n_fields);
for (ulint i = 0; i < n_fields; ++i, ++field) { for (ulint i = 0; i < n_fields; ++i, ++field) {
byte* ptr = row; byte* ptr = row;
...@@ -2533,6 +2531,8 @@ row_import_cfg_read_index_fields( ...@@ -2533,6 +2531,8 @@ row_import_cfg_read_index_fields(
return(DB_IO_ERROR); return(DB_IO_ERROR);
} }
new (field) dict_field_t();
field->prefix_len = mach_read_from_4(ptr); field->prefix_len = mach_read_from_4(ptr);
ptr += sizeof(ib_uint32_t); ptr += sizeof(ib_uint32_t);
......
...@@ -142,7 +142,7 @@ trx_create(void) ...@@ -142,7 +142,7 @@ trx_create(void)
trx->global_read_view_heap = mem_heap_create(256); trx->global_read_view_heap = mem_heap_create(256);
trx->xid.formatID = -1; trx->xid.null();
trx->op_info = ""; trx->op_info = "";
......
...@@ -1991,7 +1991,7 @@ buf_relocate( ...@@ -1991,7 +1991,7 @@ buf_relocate(
} }
#endif /* UNIV_DEBUG */ #endif /* UNIV_DEBUG */
memcpy(dpage, bpage, sizeof *dpage); new (dpage) buf_page_t(*bpage);
ut_d(bpage->in_LRU_list = FALSE); ut_d(bpage->in_LRU_list = FALSE);
ut_d(bpage->in_page_hash = FALSE); ut_d(bpage->in_page_hash = FALSE);
......
...@@ -1838,7 +1838,7 @@ buf_LRU_free_page( ...@@ -1838,7 +1838,7 @@ buf_LRU_free_page(
} }
if (b) { if (b) {
memcpy(b, bpage, sizeof *b); new (b) buf_page_t(*bpage);
} }
if (!buf_LRU_block_remove_hashed(bpage, zip)) { if (!buf_LRU_block_remove_hashed(bpage, zip)) {
......
...@@ -4038,7 +4038,7 @@ fts_query( ...@@ -4038,7 +4038,7 @@ fts_query(
if (trx_is_interrupted(trx)) { if (trx_is_interrupted(trx)) {
error = DB_INTERRUPTED; error = DB_INTERRUPTED;
ut_free(lc_query_str); ut_free(lc_query_str);
if (result != NULL) { if (*result) {
fts_query_free_result(*result); fts_query_free_result(*result);
} }
goto func_exit; goto func_exit;
......
...@@ -605,6 +605,9 @@ struct dict_field_t{ ...@@ -605,6 +605,9 @@ struct dict_field_t{
unsigned fixed_len:10; /*!< 0 or the fixed length of the unsigned fixed_len:10; /*!< 0 or the fixed length of the
column if smaller than column if smaller than
DICT_ANTELOPE_MAX_INDEX_COL_LEN */ DICT_ANTELOPE_MAX_INDEX_COL_LEN */
/** Zero-initialize all fields */
dict_field_t() : col(NULL), name(NULL), prefix_len(0), fixed_len(0) {}
}; };
/**********************************************************************//** /**********************************************************************//**
......
/***************************************************************************** /*****************************************************************************
Copyright (c) 2010, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2010, 2016, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2016, 2017, MariaDB Corporation. Copyright (c) 2015, 2018, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software the terms of the GNU General Public License as published by the Free Software
...@@ -111,6 +111,14 @@ struct fts_tokenize_ctx { ...@@ -111,6 +111,14 @@ struct fts_tokenize_ctx {
ib_rbt_t* cached_stopword;/*!< in: stopword list */ ib_rbt_t* cached_stopword;/*!< in: stopword list */
dfield_t sort_field[FTS_NUM_FIELDS_SORT]; dfield_t sort_field[FTS_NUM_FIELDS_SORT];
/*!< in: sort field */ /*!< in: sort field */
fts_tokenize_ctx() :
processed_len(0), init_pos(0), buf_used(0),
rows_added(), cached_stopword(NULL), sort_field()
{
memset(rows_added, 0, sizeof rows_added);
memset(sort_field, 0, sizeof sort_field);
}
}; };
typedef struct fts_tokenize_ctx fts_tokenize_ctx_t; typedef struct fts_tokenize_ctx fts_tokenize_ctx_t;
......
...@@ -676,7 +676,6 @@ fts_parallel_tokenization( ...@@ -676,7 +676,6 @@ fts_parallel_tokenization(
merge_file = psort_info->merge_file; merge_file = psort_info->merge_file;
blob_heap = mem_heap_create(512); blob_heap = mem_heap_create(512);
memset(&doc, 0, sizeof(doc)); memset(&doc, 0, sizeof(doc));
memset(&t_ctx, 0, sizeof(t_ctx));
memset(mycount, 0, FTS_NUM_AUX_INDEX * sizeof(int)); memset(mycount, 0, FTS_NUM_AUX_INDEX * sizeof(int));
doc.charset = fts_index_get_charset( doc.charset = fts_index_get_charset(
......
...@@ -2514,8 +2514,6 @@ row_import_cfg_read_index_fields( ...@@ -2514,8 +2514,6 @@ row_import_cfg_read_index_fields(
dict_field_t* field = index->m_fields; dict_field_t* field = index->m_fields;
memset(field, 0x0, sizeof(*field) * n_fields);
for (ulint i = 0; i < n_fields; ++i, ++field) { for (ulint i = 0; i < n_fields; ++i, ++field) {
byte* ptr = row; byte* ptr = row;
...@@ -2533,6 +2531,8 @@ row_import_cfg_read_index_fields( ...@@ -2533,6 +2531,8 @@ row_import_cfg_read_index_fields(
return(DB_IO_ERROR); return(DB_IO_ERROR);
} }
new (field) dict_field_t();
field->prefix_len = mach_read_from_4(ptr); field->prefix_len = mach_read_from_4(ptr);
ptr += sizeof(ib_uint32_t); ptr += sizeof(ib_uint32_t);
......
...@@ -278,7 +278,7 @@ trx_create(void) ...@@ -278,7 +278,7 @@ trx_create(void)
trx->distinct_page_access_hash = NULL; trx->distinct_page_access_hash = NULL;
trx->take_stats = FALSE; trx->take_stats = FALSE;
trx->xid.formatID = -1; trx->xid.null();
trx->op_info = ""; trx->op_info = "";
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment