summaryrefslogtreecommitdiff
path: root/storage/innobase/include/handler0alter.h
Commit message (Collapse)AuthorAgeFilesLines
* Merge 10.2 into 10.3Marko Mäkelä2019-12-131-1/+3
|\
| * MDEV-20950 Reduce size of record offsetsbb-10.2-MDEV-20950-stack-offsetsEugene Kosov2019-12-131-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | offset_t: this is a type which represents one record offset. It's unsigned short int. a lot of functions: replace ulint with offset_t btr_pcur_restore_position_func(), page_validate(), row_ins_scan_sec_index_for_duplicate(), row_upd_clust_rec_by_insert_inherit_func(), row_vers_impl_x_locked_low(), trx_undo_prev_version_build(): allocate record offsets on the stack instead of waiting for rec_get_offsets() to allocate it from mem_heap_t. So, reducing memory allocations. RECORD_OFFSET, INDEX_OFFSET: now it's less convenient to store pointers in offset_t* array. One pointer occupies now several offset_t. And those constant are start indexes into array to places where to store pointer values REC_OFFS_HEADER_SIZE: adjusted for the new reality REC_OFFS_NORMAL_SIZE: increase size from 100 to 300 which means less heap allocations. And sizeof(offset_t[REC_OFFS_NORMAL_SIZE]) now is 600 bytes which is smaller than previous 800 bytes. REC_OFFS_SEC_INDEX_SIZE: adjusted for the new reality rem0rec.h, rem0rec.ic, rem0rec.cc: various arguments, return values and local variables types were changed to fix numerous integer conversions issues. enum field_type_t: offset types concept was introduces which replaces old offset flags stuff. Like in earlier version, 2 upper bits are used to store offset type. And this enum represents those types. REC_OFFS_SQL_NULL, REC_OFFS_MASK: removed get_type(), set_type(), get_value(), combine(): these are convenience functions to work with offsets and it's types rec_offs_base()[0]: still uses an old scheme with flags REC_OFFS_COMPACT and REC_OFFS_EXTERNAL rec_offs_base()[i]: these have type offset_t now. Two upper bits contains type.
* | Merge 10.2 into 10.3Marko Mäkelä2019-05-141-1/+1
|\ \ | |/
| * Merge 10.1 into 10.2Marko Mäkelä2019-05-131-1/+1
| |\
| | * Update FSF addressVicențiu Ciorbaru2019-05-111-1/+1
| | |
* | | Merge branch '10.2' into 10.3Oleksandr Byelkin2019-05-121-3/+8
|\ \ \ | |/ /
| * | Merge branch '10.1' into 10.2Oleksandr Byelkin2019-05-041-3/+8
| |\ \ | | |/
| | * Clean up ib_sequence::m_max_valueMarko Mäkelä2019-04-251-3/+8
| | | | | | | | | | | | | | | | | | | | | Correctly document the usage of m_max_value. Remove the const qualifier, so that the implicit assignment operator can be used. Make all members of ib_sequence private, and add an accessor member function max_value().
* | | MDEV-13359 Enable ALTER TABLE...ALGORITHM=INPLACE for compressed columnsMarko Mäkelä2017-09-011-8/+0
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | innobase_rec_reset(): Remove. This function was introduced in the InnoDB Plugin for MySQL 5.1, which later evolved into MySQL 5.5. There used to be a bug that ADD UNIQUE INDEX would not always correctly report the duplicate key value of the secondary index. This function ensured that instead of reporting total garbage values, InnoDB would report NULL. It looks like the function was made unnecessary in MySQL 5.6.6 by https://github.com/mysql/mysql-server/commit/d143097eb1e02904baed34990db637ff68fe3113 The corresponding test was subsequently adjusted in https://github.com/mysql/mysql-server/commit/fde80cf49d4b7635d2aef47d8a77681f2df62105 The ALTER TABLE tests were imported to MariaDB as part of MDEV-13625, and these tests do pass with this change. The unnecessary function did not do any harm before MDEV-11371 introduced compressed columns. One question remains: What if we needed to report a duplicate key value for a compressed column? The simple answer is that the test main.column_compression demonstrates that no indexes can be defined on compressed columns.
* | Merge InnoDB 5.7 from mysql-5.7.9.Jan Lindström2016-09-021-9/+4
|/ | | | | | | | | | | | | | | | | | | | | | | Contains also MDEV-10547: Test multi_update_innodb fails with InnoDB 5.7 The failure happened because 5.7 has changed the signature of the bool handler::primary_key_is_clustered() const virtual function ("const" was added). InnoDB was using the old signature which caused the function not to be used. MDEV-10550: Parallel replication lock waits/deadlock handling does not work with InnoDB 5.7 Fixed mutexing problem on lock_trx_handle_wait. Note that rpl_parallel and rpl_optimistic_parallel tests still fail. MDEV-10156 : Group commit tests fail on 10.2 InnoDB (branch bb-10.2-jan) Reason: incorrect merge MDEV-10550: Parallel replication can't sync with master in InnoDB 5.7 (branch bb-10.2-jan) Reason: incorrect merge
* 5.6.31Sergei Golubchik2016-06-211-5/+5
|
* move to storage/innobaseSergei Golubchik2015-05-041-0/+114