diff options
Diffstat (limited to 'storage/innobase/row/row0mysql.c')
-rw-r--r-- | storage/innobase/row/row0mysql.c | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/storage/innobase/row/row0mysql.c b/storage/innobase/row/row0mysql.c index 7c9427db0d2..9f88fd8040b 100644 --- a/storage/innobase/row/row0mysql.c +++ b/storage/innobase/row/row0mysql.c @@ -476,7 +476,8 @@ handle_new_error: /* MySQL will roll back the latest SQL statement */ } else if (err == DB_ROW_IS_REFERENCED || err == DB_NO_REFERENCED_ROW - || err == DB_CANNOT_ADD_CONSTRAINT) { + || err == DB_CANNOT_ADD_CONSTRAINT + || err == DB_TOO_MANY_CONCURRENT_TRXS) { if (savept) { /* Roll back the latest, possibly incomplete insertion or update */ @@ -4058,3 +4059,25 @@ row_check_table_for_mysql( return(ret); } + +/************************************************************************* +Get the maximum row size. */ + +ulint +page_get_free_space_of_empty_noninline( +/*===================================*/ + /* out: The (approx) maximum size + of a row, this is a conservative + estimate, since the size can be + slightly larger depending upon + the ROW_FORMAT setting.*/ + dict_table_t* table) /* in: table for which max record + size is required.*/ +{ + ibool compact; + + compact = dict_table_is_comp(table); + + return(page_get_free_space_of_empty(compact) / 2); +} + |