mirror of
https://github.com/MariaDB/server.git
synced 2026-05-15 19:37:16 +02:00
MDEV-21138 Assertion col->ord_part' or f.col->ord_part' failed in row_build_index_entry_low
First part (row0mysql.cc) fixes ins_node_set_new_row() usage workflow as it is designed to operate on empty row (see row_get_prebuilt_insert_row() for example). Second part (row0ins.cc) fixes duplicate key error in FTS_DOC_ID_INDEX since history rows must not generate entries in that index. We detect FTS_DOC_ID_INDEX by a number of attributes and skip it if the row is historical. Misc fixes: row_build_index_entry_low() does not accept non-NULL tuple for FTS index (subject assertion fails), assertion (index->type != DICT_FTS) adds code understanding. Now as historical_row is copied in row_update_vers_insert() there is no need to copy the row twice: ROW_COPY_POINTERS is used to build historical_row initially. dbug_print_rec() debug functions.
This commit is contained in:
parent
d4258f3a8f
commit
7410ff436e
9 changed files with 179 additions and 8 deletions
|
|
@ -206,6 +206,7 @@ struct ins_node_t
|
|||
if this is NULL, entry list should be created
|
||||
and buffers for sys fields in row allocated */
|
||||
void vers_update_end(row_prebuilt_t *prebuilt, bool history_row);
|
||||
bool vers_history_row() const; /* true if 'row' is historical */
|
||||
};
|
||||
|
||||
/** Create an insert object.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue