summaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
authorunknown <knielsen@knielsen-hq.org>2010-08-03 12:54:05 +0200
committerunknown <knielsen@knielsen-hq.org>2010-08-03 12:54:05 +0200
commit0c6afe17dceb926b5c757157308188e540caec1e (patch)
treef7b58e3be042609d1b4eab722e3910fca5c0d802 /data
parent3e4d2be619d1d67f6d7405514295d4faf21d39c5 (diff)
downloadmariadb-git-0c6afe17dceb926b5c757157308188e540caec1e.tar.gz
updated with changes from Percona-Server-5.1.47-11.2
Diffstat (limited to 'data')
-rw-r--r--data/data0data.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/data/data0data.c b/data/data0data.c
index e3c1f1b4f23..0715b49bf9c 100644
--- a/data/data0data.c
+++ b/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;