summaryrefslogtreecommitdiff
path: root/mysql-test/main/column_compression.test
Commit message (Collapse)AuthorAgeFilesLines
* MDEV-21348 - column compression memory leakSergey Vojtovich2020-04-021-0/+11
| | | | | | | | | | The Storage-Engine Independent Column Compression does not call deflateEnd() when deflate() does not return Z_STREAM_END. This for instance happens when the data is already (externally) compressed and deflate() needs more space than the original data. This patch is based on contribution by Martijn Broenland.
* MDEV-17363 - Compressed columns cannot be restored from dumpAlexander Barkov2019-06-181-8/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In collaboration with Sergey Vojtovich <svoj@mariadb.org> The COMPRESSED clause is now a part of the data type and goes immediately after the data type and length, but before the CHARACTER SET clause, and before column attributes such as DEFAULT, COLLATE, ON UPDATE, SYSTEM VERSIONING, engine specific column attributes. In the old reduction, the COMPRESSED clause was a column attribute. New syntax: <varchar or text data type> <length> <compression> <character set> <column attributes> <varbinary or blob data type> <length> <compression> <column attributes> New syntax examples: VARCHAR(1000) COMPRESSED CHARACTER SET latin1 DEFAULT '' BLOB COMPRESSED DEFAULT '' Deprecate syntax examples: VARCHAR(1000) CHARACTER SET latin1 COMPRESSED DEFAULT '' TEXT CHARACTER SET latin1 DEFAULT '' COMPRESSED VARBINARY(1000) DEFAULT '' COMPRESSED As a side effect: - COMPRESSED is not valid as an SP label name in SQL/PSM routines any more (but it's still valid as an SP label name in sql_mode=ORACLE) - COMPRESSED is now allowed in combination with GENERATED ALWAYS AS: TEXT COMPRESSED GENERATED ALWAYS AS REPEAT('a',1000)
* MDEV-16729 VARCHAR COMPRESSED is created with a wrong length for multi-byte ↵Alexander Barkov2018-07-241-0/+11
| | | | | | | character sets Field_varstring::sql_type() did not calculate character length correctly. Using char_length() instead of the bad code.
* MDEV-15592 - Column COMPRESSED should select a 'high order' datatypeSergey Vojtovich2018-05-111-1/+35
| | | | | | | | | | | | | Compressed blob columns didn't accept data at their capacity. E.g. storing 255 bytes to TINYBLOB results in "Data too long" error. Now it is allowed assuming compression method was able to produce shorter string (so that both metadata and compressed data fits blob) and column_compression_threshold is lower than blob. If no compression was performed, we still have to reserve additional byte for metadata and thus we perform normal data truncation and return it's status.
* MDEV-16134 Wrong I_S.COLUMNS.CHARACTER_XXX_LENGTH value for compressed columnsAlexander Barkov2018-05-101-0/+16
|
* MDEV-15938 - TINYTEXT CHARACTER SET utf8 COMPRESSED truncates dataSergey Vojtovich2018-04-301-0/+8
| | | | | | | | Unexpected data truncation may occur when storing data to compressed blob column having multi byte variable length character sets. The reason was incorrect number of characters limit was enforced for blobs.
* MDEV-15763 - VARCHAR(1) COMPRESSED crashes the serverSergey Vojtovich2018-04-201-0/+10
| | | | | Storing 1 byte long string in VARCHAR() COMPRESSED column may trigger integer overflow when calculating available space for zlib output.
* MDEV-15762 - VARCHAR(0) COMPRESSED crashes the serverSergey Vojtovich2018-04-201-0/+11
| | | | | | | | Character set safe truncation is done when storing non-empty string in VARCHAR(0) COMPRESSED column, so that string becomes empty. The code didn't expect empty string after truncation. Fixed by moving empty string check after truncation.
* MDEV-14929 - AddressSanitizer: memcpy-param-overlap in Field_longstr::compressSergey Vojtovich2018-04-021-0/+12
| | | | | Handle overlaping "from" and Field_blob_compressed::value for compressed blobs similarily to regular blobs.
* Create 'main' test directory and move 't' and 'r' thereMichael Widenius2018-03-291-0/+81