summaryrefslogtreecommitdiff
path: root/storage/xtradb/data
diff options
context:
space:
mode:
authorunknown <knielsen@knielsen-hq.org>2010-08-04 10:39:53 +0200
committerunknown <knielsen@knielsen-hq.org>2010-08-04 10:39:53 +0200
commit3f1c763a94cd25c4810692983f6e61b528e21268 (patch)
treed8f9632933303f9bdf8cdc875613ca99f51ecbcb /storage/xtradb/data
parenta74d04671d23fa65bd610184965cc2974ec41cf9 (diff)
parent0c6afe17dceb926b5c757157308188e540caec1e (diff)
downloadmariadb-git-3f1c763a94cd25c4810692983f6e61b528e21268.tar.gz
Merge XtraDB from Percona-Server-5.1.47-11 into MariaDB.
Diffstat (limited to 'storage/xtradb/data')
-rw-r--r--storage/xtradb/data/data0data.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/storage/xtradb/data/data0data.c b/storage/xtradb/data/data0data.c
index e3c1f1b4f23..0715b49bf9c 100644
--- a/storage/xtradb/data/data0data.c
+++ b/storage/xtradb/data/data0data.c
@@ -666,6 +666,21 @@ dtuple_convert_big_rec(
goto skip_field;
}
+ /* In DYNAMIC and COMPRESSED format, store
+ locally any non-BLOB columns whose maximum
+ length does not exceed 256 bytes. This is
+ because there is no room for the "external
+ storage" flag when the maximum length is 255
+ bytes or less. This restriction trivially
+ holds in REDUNDANT and COMPACT format, because
+ there we always store locally columns whose
+ length is up to local_len == 788 bytes.
+ @see rec_init_offsets_comp_ordinary */
+ if (ifield->col->mtype != DATA_BLOB
+ && ifield->col->len < 256) {
+ goto skip_field;
+ }
+
longest_i = i;
longest = savings;