diff options
author | Sergey Vojtovich <svoj@mariadb.org> | 2017-04-24 17:54:18 +0400 |
---|---|---|
committer | Sergey Vojtovich <svoj@mariadb.org> | 2017-08-31 15:44:17 +0400 |
commit | fdc47792354c820aa4a8542d7c00d434424a63fb (patch) | |
tree | 0a0cf61b7ef8fe0dc7008a32155df5fa31f0ed7f /sql/field_conv.cc | |
parent | dd4e9cddeddaa391765ca259d95c66f3cb5f9b75 (diff) | |
download | mariadb-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.cc | 3 |
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) : |