summaryrefslogtreecommitdiff
path: root/storage/tokudb
Commit message (Collapse)AuthorAgeFilesLines
* MDEV-22522 RPM packages have meaningless summary/descriptionbb-10.2-MDEV-22522Alexey Bychko2021-11-231-0/+5
| | | | | this patch moves cpack summury and description for optional packages to the appropriate CMakeLists.txt files
* fix depricated pthread_yield() for tokudbOleksandr Byelkin2021-10-281-1/+3
|
* MDEV-23786: Assertion `!is_set() || (m_status == DA_OK_BULK && is_bulk_op())'Rucha Deodhar2021-07-263-2/+26
| | | | | | | | | failed for TokuDB engine CREATE TABLE Analysis: Assertion failure happens because the database doesn't exist to create the table but ha_tokudb::create() still returns false. So error is not reported. Fix: Store the error state and report the error.
* MDEV-24790 CAST('0e1111111111' AS DECIMAL(38,0)) returns a wrong resultAlexander Barkov2021-02-081-3/+2
|
* MDEV-17556 Assertion `bitmap_is_set_all(&table->s->all_set)' failedNikita Malyavin2021-01-081-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The assertion failed in handler::ha_reset upon SELECT under READ UNCOMMITTED from table with index on virtual column. This was the debug-only failure, though the problem is mush wider: * MY_BITMAP is a structure containing my_bitmap_map, the latter is a raw bitmap. * read_set, write_set and vcol_set of TABLE are the pointers to MY_BITMAP * The rest of MY_BITMAPs are stored in TABLE and TABLE_SHARE * The pointers to the stored MY_BITMAPs, like orig_read_set etc, and sometimes all_set and tmp_set, are assigned to the pointers. * Sometimes tmp_use_all_columns is used to substitute the raw bitmap directly with all_set.bitmap * Sometimes even bitmaps are directly modified, like in TABLE::update_virtual_field(): bitmap_clear_all(&tmp_set) is called. The last three bullets in the list, when used together (which is mostly always) make the program flow cumbersome and impossible to follow, notwithstanding the errors they cause, like this MDEV-17556, where tmp_set pointer was assigned to read_set, write_set and vcol_set, then its bitmap was substituted with all_set.bitmap by dbug_tmp_use_all_columns() call, and then bitmap_clear_all(&tmp_set) was applied to all this. To untangle this knot, the rule should be applied: * Never substitute bitmaps! This patch is about this. orig_*, all_set bitmaps are never substituted already. This patch changes the following function prototypes: * tmp_use_all_columns, dbug_tmp_use_all_columns to accept MY_BITMAP** and to return MY_BITMAP * instead of my_bitmap_map* * tmp_restore_column_map, dbug_tmp_restore_column_maps to accept MY_BITMAP* instead of my_bitmap_map* These functions now will substitute read_set/write_set/vcol_set directly, and won't touch underlying bitmaps.
* Merge branch '10.1' into 10.2Oleksandr Byelkin2020-10-292-2/+9
|\
| * MDEV-23702 calculating(auto rounding) issueSergei Golubchik2020-10-292-4/+9
| | | | | | | | | | | | | | | | | | | | Implement a different fix for "MDEV-19232: Floating point precision / value comparison problem" Instead of truncating decimal values after every division, truncate them for comparison purposes. This reverts commit 62d73df6b270 but keeps the test.
* | Merge branch '10.1' into 10.2mariadb-10.2.33Sergei Golubchik2020-08-0641-99/+94
|\ \ | |/
| * Merge branch 'merge/merge-tokudb-5.6' into 10.1Sergei Golubchik2020-08-0542-100/+95
| |\
| | * 5.6.49-89.0Sergei Golubchik2020-08-0447-148/+125
| | |
* | | Merge branch '10.1' into 10.2Oleksandr Byelkin2020-08-022-9/+2
|\ \ \ | |/ /
| * | MDEV-19232: Floating point precision / value comparison problemVarun Gupta2020-07-222-9/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The issue occurs when the subquery_cache is enabled. When there is a cache miss the division was leading to a value with scale 9. In the case of cache hit the value returned was of scale 9 and due to the different values for the scales the where condition evaluated to FALSE, hence the output was incomplete. To fix this problem we need to round up the decimal to the limit mentioned in Item::decimals. This would make sure the values are compared with the same scale.
* | | get rid of cmake warningSergei Golubchik2020-05-271-1/+1
| | |
* | | MDEV-19622: Fix a TokuDB resultMarko Mäkelä2020-05-141-0/+8
| | |
* | | Merge branch '10.1' into 10.2Oleksandr Byelkin2020-05-022-4/+4
|\ \ \ | |/ /
| * | Merge branch 'merge-tokudb-5.6' into 10.1Oleksandr Byelkin2020-04-301-1/+1
| |\ \ | | |/
| | * 5.6.47-87.0Oleksandr Byelkin2020-04-301-1/+1
| | |
| * | Merge branch '5.5' into 10.1Oleksandr Byelkin2020-04-301-3/+3
| |\ \
| | * | don't enable -Werror in ft-indexSergei Golubchik2020-04-291-3/+3
| | | |
* | | | MDEV-20604: Duplicate key value is silently truncated to 64 characters in ↵Oleksandr Byelkin2020-04-011-37/+37
| | | | | | | | | | | | | | | | | | | | | | | | print_keydup_error Added indication of truncated string for "s" and "M" formats
* | | | MDEV-14330: move tokudb manpages to right packagesVicențiu Ciorbaru2020-01-284-0/+257
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move tokuftdump and tokuft_logprint man pages to storage/tokudb. The man pages are now part of tokudb-engine cmake component. This change is mostly for RPM & DEB based packaging generated through CMake & CPack. Debian upstream already handles this change via the custom scripts in debian/
* | | | Remove an unused tokuvalgrind scriptMarko Mäkelä2020-01-232-11/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the only symlink in the repository. Symlinks can cause trouble when using file systems or operating systems that do not support them. Also remove the unused file DartConfig.cmake that refers to the script.
* | | | Merge branch '10.1' into 10.2Oleksandr Byelkin2020-01-2027-111/+239
|\ \ \ \ | |/ / /
| * | | Merge branch 'merge-tokudb-5.6' into 10.1Oleksandr Byelkin2020-01-1927-111/+239
| |\ \ \ | | | |/ | | |/|
| | * | 5.6.46-86.2Oleksandr Byelkin2020-01-1928-112/+249
| | | |
| * | | fix a bad mergeSergei Golubchik2019-12-201-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in 10.1+ one should use MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-address-of-packed-member") and it's already done in storage/tokudb/PerconaFT/CMakeLists.txt
| * | | Merge remote-tracking branch 'origin/5.5' into 10.1Alexander Barkov2019-12-161-0/+6
| |\ \ \ | | | |/ | | |/|
| | * | tokudb: disable check_huge_pages_in_practice()Sergei Golubchik2019-12-131-0/+1
| | | | | | | | | | | | | | | | crashes on Debian 10
| | * | tokudb: fix to compile with gcc 9.2.0Sergei Golubchik2019-12-131-0/+6
| | | |
* | | | Merge branch '10.1' into 10.2Oleksandr Byelkin2019-10-3019-133/+232
|\ \ \ \ | |/ / /
| * | | Merge branch 'merge-tokudb-5.6' into 10.1Oleksandr Byelkin2019-10-3019-133/+232
| |\ \ \ | | | |/ | | |/|
| | * | 5.6.45-86.1Oleksandr Byelkin2019-10-3019-134/+231
| | | |
* | | | Merge 10.1 into 10.2Marko Mäkelä2019-10-111-80/+88
|\ \ \ \ | |/ / /
| * | | Merge 5.5 into 10.1Marko Mäkelä2019-10-111-80/+88
| |\ \ \ | | | |/ | | |/|
| | * | MDEV-14383 tokudb_bugs. tests failed in buildbot, lost connection to serverSergei Golubchik2019-09-016-0/+18
| | | | | | | | | | | | | | | | | | | | don't run tokudb tests under tcmalloc, this is not a supported combination.
* | | | Merge 10.1 into 10.2Marko Mäkelä2019-09-231-1/+1
|\ \ \ \ | |/ / /
| * | | MDEV-18094: Query with order by limit picking index scan over filesortVarun Gupta2019-09-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | In the function test_if_cheaper_ordering we make a decision if using an index is better than using filesort for ordering. If we chose to do range access then in test_quick_select we should make sure that cost for table scan is set to DBL_MAX so that it is not picked.
* | | | Merge 10.1 into 10.2Marko Mäkelä2019-09-183-6/+6
|\ \ \ \ | |/ / /
| * | | Post fix after the patch for MDEV-20576.Igor Babaev2019-09-133-6/+6
| | | | | | | | | | | | | | | | Adjusted test results.
* | | | Updated mtr files to support different compiled in optionsMonty2019-09-0118-20/+274
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows one to run the test suite even if any of the following options are changed: - character-set-server - collation-server - join-cache-level - log-basename - max-allowed-packet - optimizer-switch - query-cache-size and query-cache-type - skip-name-resolve - table-definition-cache - table-open-cache - Some innodb options etc Changes: - Don't print out the value of system variables as one can't depend on them to being constants. - Don't set global variables to 'default' as the default may not be the same as the test was started with if there was an additional option file. Instead save original value and reset it at end of test. - Test that depends on the latin1 character set should include default_charset.inc or set the character set to latin1 - Test that depends on the original optimizer switch, should include default_optimizer_switch.inc - Test that depends on the value of a specific system variable should set it in the test (like optimizer_use_condition_selectivity) - Split subselect3.test into subselect3.test and subselect3.inc to make it easier to set and reset system variables. - Added .opt files for test that required specfic options that could be changed by external configuration files. - Fixed result files in rockdsb & tokudb that had not been updated for a while.
* | | | Remove test that where only applicable for MySQLMonty2019-09-018-3997/+0
| | | | | | | | | | | | | | | | These was part of an incomplete old merge from MySQL 5.6
* | | | MDEV-19925: Column ... cannot be converted from type 'varchar(20)' to type ↵Sujatha2019-08-273-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 'varchar(20)' Cherry picking: Bug#25135304: RBR: WRONG FIELD LENGTH IN ERROR MESSAGE commit 47bd3f7cf3c8518f62b1580ec65af2ba7ac13b95 Description: ============ In row based replication, when replicating from a table with a field with character set set to UTF8mb3 to the same table with the same field set to character set UTF8mb4 I get a confusing error message: For VARCHAR: VARCHAR(1) 'utf8mb3' to VARCHAR(1) 'utf8mb4' "Column 0 of table 'test.t1' cannot be converted from type 'varchar(3)' to type 'varchar(1)'" Similar issue with CHAR type as well. Issue with respect to BLOB types: For BLOB: LONGBLOB to TINYBLOB - Error message displays incorrect blob type. "Column 0 of table 'test.t1' cannot be converted from type 'tinyblob' to type 'tinyblob'" For BINARY to BINARY - Error message displays incorrect type for master side field. "Column 0 of table 'test.t' cannot be converted from type 'char(1)' to type 'binary(10)'" Similar issue exists for VARBINARY type. It is displayed as 'VARCHAR'. Analysis: ========= In Row based replication charset information is not sent as part of metadata from master to slave. For VARCHAR field its character length is converted into equivalent octets/bytes and stored internally. At the time of displaying the data to user it is converted back to original character length. For example: VARCHAR(2)- utf8mb3 is stored as:2*3 = VARCHAR(6) At the time of displaying it to user VARCHAR(6)- charset utf8mb3:6/3= VARCHAR(2). At present the internally converted octect length is sent from master to slave with out providing the charset information. On slave side if the type conversion fails 'show_sql_type' function is used to get the type specific information from metadata. Since there is no charset information is available the filed type is displayed as VARCHAR(6). This results in confused error message. For CHAR fields CHAR(1)- utf8mb3 - CHAR(3) CHAR(1)- utf8mb4 - CHAR(4) 'show_sql_type' function which retrieves type information from metadata uses (bytes/local charset length) to get actual character length. If slave's chaset is 'utf8mb4' then CHAR(3/4)-->CHAR(0) CHAR(4/4)-->CHAR(1). This results in confused error message. Analysis for BLOB type issue: BLOB's length is represented in two forms. 1. Actual length i.e (length < 256) type= MYSQL_TYPE_TINY_BLOB; (length < 65536) type= MYSQL_TYPE_BLOB; ... 2. packlength - The number of bytes used to represent the length of the blob 1- tinyblob 2- blob ... In row based replication only the packlength is written in the binary log. On the slave side this packlength is interpreted as actual length of the blob. Hence the length is always < 256 and the type is displayed as tiny blob. Analysis for BINARY to BINARY type issue: The character set information is needed to identify a filed's type as char or binary. Since master side character set information is not available on the slave side both binary and char fields are displayed as char. Fix: === For CHAR and VARCHAR fields display their length in octets for both source and target fields. For target field display the charset information if it is relevant. For blob type changed the code to use the packlength and display appropriate blob type in error message. For binary and varbinary fields use the slave side character set as reference to map them to binary or varbinary fields.
* | | | Merge branch '10.1' into 10.2Oleksandr Byelkin2019-07-2654-28/+346
|\ \ \ \ | |/ / /
| * | | Merge branch 'merge-tokudb-5.6' into 10.1Oleksandr Byelkin2019-07-2654-28/+346
| |\ \ \ | | | |/ | | |/|
| | * | 5.6.44-86.0Oleksandr Byelkin2019-07-2654-23/+347
| | | |
* | | | Merge 10.1 into 10.2Marko Mäkelä2019-06-121-6/+2
|\ \ \ \ | |/ / /
| * | | MDEV-15734 - calculation inside sizeof() warningSergey Vojtovich2019-05-301-6/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reverted incorrect change introduced by 548d03d7. As result is char**, third qsort() parameter must be sizeof(char*). Not sizeof(result[0] + 2), which is same as sizeof(result[0]). Not even sizeof(result[0]) + 2, which would cause invalid memory access. Proper sorting is responsibility of logfilenamecompare() callback.
* | | | Merge 10.1 into 10.2Marko Mäkelä2019-05-1315-19/+19
|\ \ \ \ | |/ / /
| * | | Merge branch '5.5' into 10.1Vicențiu Ciorbaru2019-05-1115-19/+19
| |\ \ \ | | | |/ | | |/|
| | * | Update FSF AddressVicențiu Ciorbaru2019-05-111039-1044/+1044
| | | | | | | | | | | | | | | | * Update wrong zip-code