summaryrefslogtreecommitdiff
path: root/sql/field_conv.cc
diff options
context:
space:
mode:
authorSergey Vojtovich <svoj@mariadb.org>2017-04-24 17:54:18 +0400
committerSergey Vojtovich <svoj@mariadb.org>2017-08-31 15:44:17 +0400
commitfdc47792354c820aa4a8542d7c00d434424a63fb (patch)
tree0a0cf61b7ef8fe0dc7008a32155df5fa31f0ed7f /sql/field_conv.cc
parentdd4e9cddeddaa391765ca259d95c66f3cb5f9b75 (diff)
downloadmariadb-git-fdc47792354c820aa4a8542d7c00d434424a63fb.tar.gz
MDEV-11371 - column compression
Storage engine independent support for column compression. TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB, TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT, VARCHAR and VARBINARY columns can be compressed. New COMPRESSED column attribute added: COMPRESSED[=<compression_method>] System variables added: column_compression_threshold column_compression_zlib_level column_compression_zlib_strategy column_compression_zlib_wrap Status variables added: Column_compressions Column_decompressions Limitations: - the only supported method currently is zlib - CSV storage engine stores data uncompressed on-disk even if COMPRESSED attribute is present - it is not possible to create indexes over compressed columns.
Diffstat (limited to 'sql/field_conv.cc')
-rw-r--r--sql/field_conv.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/sql/field_conv.cc b/sql/field_conv.cc
index fc3667c0f87..d97c9f1fd04 100644
--- a/sql/field_conv.cc
+++ b/sql/field_conv.cc
@@ -737,7 +737,8 @@ Field::Copy_func *Field_varstring::get_copy_func(const Field *from) const
return do_field_varbinary_pre50;
if (Field_varstring::real_type() != from->real_type() ||
Field_varstring::charset() != from->charset() ||
- length_bytes != ((const Field_varstring*) from)->length_bytes)
+ length_bytes != ((const Field_varstring*) from)->length_bytes ||
+ !compression_method() != !from->compression_method())
return do_field_string;
return length_bytes == 1 ?
(from->charset()->mbmaxlen == 1 ? do_varstring1 : do_varstring1_mb) :