summaryrefslogtreecommitdiff
path: root/innobase/data
diff options
context:
space:
mode:
authormarko@hundin.mysql.fi <>2004-12-02 19:45:07 +0200
committermarko@hundin.mysql.fi <>2004-12-02 19:45:07 +0200
commitdd48953956de0e27862daa04db94c30a5cc16fae (patch)
treec3c716219a8f464ef096a6dd06835d4bfb627c8a /innobase/data
parent3ca8c79ecf5f3ecc2e2dd3a73097ca5ab80da978 (diff)
downloadmariadb-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.c9
-rw-r--r--innobase/data/data0type.c2
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);