diff options
author | marko@hundin.mysql.fi <> | 2004-12-02 19:45:07 +0200 |
---|---|---|
committer | marko@hundin.mysql.fi <> | 2004-12-02 19:45:07 +0200 |
commit | dd48953956de0e27862daa04db94c30a5cc16fae (patch) | |
tree | c3c716219a8f464ef096a6dd06835d4bfb627c8a /innobase/data | |
parent | 3ca8c79ecf5f3ecc2e2dd3a73097ca5ab80da978 (diff) | |
download | mariadb-git-dd48953956de0e27862daa04db94c30a5cc16fae.tar.gz |
Many files:
Implement more compact InnoDB record format.
Old format is available as CREATE TABLE ... ROW_FORMAT=DYNAMIC.
Diffstat (limited to 'innobase/data')
-rw-r--r-- | innobase/data/data0data.c | 9 | ||||
-rw-r--r-- | innobase/data/data0type.c | 2 |
2 files changed, 6 insertions, 5 deletions
diff --git a/innobase/data/data0data.c b/innobase/data/data0data.c index 97ec1a1acd9..25ba19d0296 100644 --- a/innobase/data/data0data.c +++ b/innobase/data/data0data.c @@ -500,7 +500,7 @@ dtuple_convert_big_rec( ut_a(dtuple_check_typed_no_assert(entry)); - size = rec_get_converted_size(entry); + size = rec_get_converted_size(index, entry); if (size > 1000000000) { fprintf(stderr, @@ -524,9 +524,10 @@ dtuple_convert_big_rec( n_fields = 0; - while ((rec_get_converted_size(entry) - >= page_get_free_space_of_empty() / 2) - || rec_get_converted_size(entry) >= REC_MAX_DATA_SIZE) { + while (rec_get_converted_size(index, entry) + >= ut_min(page_get_free_space_of_empty( + index->table->comp) / 2, + REC_MAX_DATA_SIZE)) { longest = 0; for (i = dict_index_get_n_unique_in_tree(index); diff --git a/innobase/data/data0type.c b/innobase/data/data0type.c index 714cf92bc65..9b8fb084e33 100644 --- a/innobase/data/data0type.c +++ b/innobase/data/data0type.c @@ -195,7 +195,7 @@ dtype_validate( ut_a((type->mtype >= DATA_VARCHAR) && (type->mtype <= DATA_MYSQL)); if (type->mtype == DATA_SYS) { - ut_a(type->prtype <= DATA_MIX_ID); + ut_a((type->prtype & DATA_MYSQL_TYPE_MASK) < DATA_N_SYS_COLS); } return(TRUE); |